Civilization 5 v1.0.1.217 (+14 Trainer)

Civilization 5 v1.0.1.217 (+14 Trainer)

Civilization 5 v1.0.1.217 (+14 Trainer) [DelphiUniverse]

Text file description:

==============
For developers
==============
If you want to code your own civilization trainer, you may freely use the included
dynamic link library (Core.dll). It has all the features you can find in my own
trainer.
All you need to do is to code your own GUI (graphics user interface) and then load
the functions from Core.dll.
To be able to use the functions inside Core.dll you are going to need to know a little
bit about the functions:
======================================================================================
					Core.dll:
======================================================================================
Will work for: Civilization 1.0.1.217 DirectX9 - DirectX11
               (Will not work for earlier versions)
Amount of functions inside: 25
List of functions:
The first is the ordinal number of the functions.
The second is the name of the functions.
You can import functions based on name or ordinal.
I prefer ordinals as they are fastest and makes
the executable smaller. Choose whatever you like.
The third column if the amount of parameters each
function takes.
The fourth and fifth column is the actual parameters
used in the function. If the column is empty, then
it takes no parameters.
FUNCTION	FUNCTION		     FUNCTION		PARAMETERS1	PARAMETERS2
ORDINALS	NAMES			   PARAMETERCOUNT
  @1		GameExist			0
  @2		GameOpen			0
  @3		WriteResource			1		Value:DWORD
  @4		ReadResource			0
  @5		WriteFreeResourceSlots		0
  @6		CheckFreeResourceSlots		0
  @7		WriteGold			1		Value:DWORD
  @8		ReadGold			0
  @9		WriteCulture			1		Value:DWORD
  @10		ReadCulture			0
  @11		WriteGoldenProgress		1		Value:DWORD
  @12		ReadGoldenProgress		0
  @13		WriteGoldenTurn			1		Value:DWORD
  @14		ReadGoldenTurn			0
  @15		WriteGreatGeneral		1		Value:DWORD
  @16		ReadGreatGeneral		0
  @17		SetMovement			2		State:DWORD	Value:DWORD
  @18		GetMovementState		0
  @19		SetExperience			2		State:DWORD	Value:DWORD
  @20		GetExperienceState		0
  @21		SetHealing			2		State:DWORD	Value:DWORD
  @22		GetHealingState			0
  @23		SetCityModifier 		2		State:DWORD	Value:DWORD
  @24		GetCityModifierState		0
  @25		PrintBaseAddr			0
=======================
A word about parameters
=======================
All parameters that has a name of "State" can be set to either 1 or 0.
1 means it will activate and 0 means it will be deactivated.
All parameters that has a name of "Value" is the value you want to set
on the current variable. For example, if you run the function "WriteGold"
you would set Value to 10000 for example to write 10k gold.
=================================
Full Explanation of each function
=================================
---------------------------------------------------------------------------------
@1 GameExist
Use this function to check if Civilization is running/started.
Parameters: None
Return value:
	0 = The game is not running
	NonZero = The game exist in memory and is running
---------------------------------------------------------------------------------
@2 GameOpen
Use this function to open the civilization game process. This function is
essential to have the trainer work in the first place. This is the one and
only function that must be run before you can use any function in the dll.
This applies to all functions except "GameExist" function.
This function will not launch and execute civilization, it will only open
the process memory. The user have to run civilization on his own.
Parameters: None
Return value:
	0 = The process could not be opened.
	NonZero = Process was successfully opened
---------------------------------------------------------------------------------
@3 WriteResource
Use this function to set all strategic and luxury resources to a specific value.
Parameters: 1
	Param #1 = Value to set
Return value: None
---------------------------------------------------------------------------------
@4 ReadResource
Use this function to read from memory how many Iron resources you have. If you
initially set resources by using the function "WriteResource", then all resources
should be the same, so reading the Iron resource should be enough to gather information
about all resources.
Parameters: None
Return value:
	The return value is the amount of Iron resources in the game.
---------------------------------------------------------------------------------
@5 WriteFreeResourceSlots
This function will zero out all spent/used resource slots in the game.
Parameters: None
Return value: None
---------------------------------------------------------------------------------
@6 CheckFreeResourceSlots
This function will check if you have any spent/used resource slots from
any of the 6 strategic resources in the game.
Parameters: None
Return value:
	0 = No slots were in use
	NonZero = One, several or all slots were in use
---------------------------------------------------------------------------------
@7 WriteGold
Use this function to set the amount of gold in game.
Parameters: 1
	Param #1 = Gold to set
Return value: None
---------------------------------------------------------------------------------
@8 ReadGold
This function reads the amount of gold you have in game.
Parameters: None
Return value:
	The return value is the amount of gold.
---------------------------------------------------------------------------------
@9 WriteCulture
Use this function to set the amount of culture in game.
Parameters: 1
	Param #1 = Culture to set
Return value: None
---------------------------------------------------------------------------------
@10 ReadCulture
This function reads the amount of culture you have in game.
Parameters: None
Return value:
	The return value is the amount of culture.
---------------------------------------------------------------------------------
@11 WriteGoldenProgress
Use this function to set the amount of golden progress in game.
Parameters: 1
	Param #1 = Golden Progress to set.
Return value: None
---------------------------------------------------------------------------------
@12 ReadGoldenProgress
This function reads the amount of Golden Progress you have in game.
Parameters: None
Return value:
	The return value is the amount of Golden Progress.
---------------------------------------------------------------------------------
@13 WriteGoldenTurn
Use this function to set the amount of Golden Turns you have in game.
Parameters: 1
	Param #1 = Golden Turns to set.
Return value: None
---------------------------------------------------------------------------------
@14 ReadGoldenTurn
This function reads the amount of Golden Turns you have in game.
Parameters: 0
Return value:
	The return value is the amount of Golden Turns.
---------------------------------------------------------------------------------
@15 WriteGreatGeneral
Use this function to set the amount of Great General points in game.
Parameters: 1
	Param #1 = Great General Points to set.
Return value: None
---------------------------------------------------------------------------------
@16 ReadGreatGeneral
This function reads the amount of Great General Points you have in game.
Parameters: None
Return value:
	The return value is the amount of Great General Points.
---------------------------------------------------------------------------------
@17 SetMovement
This function will inject code into civilization to make it possible to
have unlimited movement points for all units. When you click a unit it
will give that unit x movement points (Depends what you set in parameter 2)
and then it will make it have unlimited movement points.
The reason you want to set movement point in parameter 2 is because if it is
initially set to just 1 movement point, the unit will cancel if you try to move
it any longer than 1 hexagon, then you would have to reclick it again and move
it once more. Setting a good initial point before making unlimited move is
essential.
Due to the code injection nature of this function, if you close your
trainer program, the code injected will still be inside game memory.
So when you restart your trainer again you can use the next function
to check if AntiMovement is still in game memory.
Parameters: 2
	Param #1 = State - Set to 1 to activate or set to 0 to deactivate
	Param #2 = Value - Initial Movement Points to set
Return value: None
---------------------------------------------------------------------------------
@18 GetMovementState
This function will check if anti movement code is still present in game
memory.
Parameters: None
Return value:
	The return value will be 1 if Anti Movement is active and 0 if not active.
---------------------------------------------------------------------------------
@19 SetExperience
Use this function to set unit experience in game. This function will inject
code into the memory of civilization and stay there, even if you close your
trainer. Use the next function to check if it still is active in memory.
Parameters: 2
	Param #1 = State - Set to 1 to activate or set to 0 to deactivate
	Param #2 = Value - Set the experience value to use
Return value: None
---------------------------------------------------------------------------------
@20 GetExperienceState
This function will check if experience code is still present in game memory.
Parameters: None
Return value:
	The return value will be 1 if active and 0 if not active.
---------------------------------------------------------------------------------
@21 SetHealing
Use this function to set unit healing in game. This function will inject
code into the memory of civilization and stay there, even if you close
your trainer. Use the next function to check if it still is active in
memory.
Parameters: 2
	Param #1 = State - Set to 1 to activate or set to 0 to deactivate
	Param #2 = Value - Health value in the range of 0-10
			   (0=no health, 10=full health)
Return value: None
---------------------------------------------------------------------------------
@22 GetHealingState
This function will check if Unit healing code is still present in game
memory.
Parameters: None
Return value:
	The return value will be 1 if active and 0 if not active.
---------------------------------------------------------------------------------
@23 SetCityModifier
Use this function to set the city modifier of Production, Science and Gold in
cities. This function will inject code into the memory of civilization and stay
there, even if you close your trainer. Use the next function to check if it still
is active in memory.
The city production modifier will update when you buy a building that improves
production. It will also update if you sell a building that improves production.
The same goes for science and gold modifiers as well, you need to buy or sell a
building that specifically improves these areas for it to update.
Parameters: 2
	Param #1 = State - Set to 1 to activate or set to 0 to deactivate
	Param #2 = Value - City Modifier percentage value
Return value: None
---------------------------------------------------------------------------------
@24 GetCityModifierState
This function will check if city modifier code is still present and active in game
memory.
Parameters: None
Return value:
	The return value will be 1 if active and 0 if not active.
---------------------------------------------------------------------------------
@25 PrintBaseAddr
This function is not a cheat function, it is meant to be used for programmers
under debugging sessions. It will output a message box with the base address
of civilization 5 - CvGameCoreDLLFinal Release.dll
The value will be printed using decimal numbers. Use a calculator to convert
it to hex if needed.
I found it to be essential when debugging but I cant see a reason you would
need it yourself, but i've included it just in case anyone ever needs it.
NB: The game must have been opened beforehand. You must use the function
    "GameOpen" before using this or else it will output zero (0).
Parameters: None
Return value: None
---------------------------------------------------------------------------------
==============
Final thoughts
==============
All you need to do is code a graphics user interface and then
include Core.dll with your program to make the trainer work.
I will most likely make future versions of this dll with more
functions and more cheats, support for future versions of
civilization.
But I can't promise I will. I hope it will be useful for you.
Thanks to Sid Meier for this great game.
To activate these hotkeys, click the Keyboard Hook activate button in the Trainer program. It will
make a keyboard hook to allow you to use cheat codes with the use of hotkeys.
The reason you want to do this is because when you switch between civilization and the trainer, back and forth you will force civilization to reload all graphics data into the graphics memory, this is a time
consuming process.
You want to use cheat codes while staying in the game. So use this feature for this purpose.
Here are the hotkeys:
ALT + F1 = Anti Movement-Cost Cheat
ALT + F2 = Train Unit Experience
ALT + F3 = Set Health on units
ALT + F5 = Set City Modifier (Science,Production and Gold)
ALT + BACKSPACE = Turn off all cheat switches
ALT + INSERT	= Resources (Maximum)
ALT + HOME	= Gold (Maximum)
ALT + PAGEUP	= Culture (Maximum)
ALT + DELETE	= Golden Age Progress (Maximum)
ALT + END	= Golden Age Turns (Maximum)
ALT + PAGEDOWN	= Great General Progress (Maximum)
ALT + LEFT	= Free all used resource slots
ALT + RIGHT	= Zero all (Will zero out the following):
			1: Gold
			2: Golden Age Progress
			3: Golden Age Turns
			4: Culture
			5: All Strategic and Luxury Resources
			6: Great General Progress
Civilization V Trainer v 3.3 for Civilization 5 v 1.0.1.217
		..by DelphiUniverse
================================================================
		Changes since last release
================================================================
* Fixed a bad pointer for gold. Fireaxis have made a significant
  protection mechanism that triggers randomly. I cant reveal the
  counter action I have done because Fireaxis will make a counter
  for THAT again. You probably noticed the gold pointer sometimes
  didnt work, at random. Well, it is fixed now.
* Changed the default experience value from 5000 to 9000 because
  some units require more than 5000 to gain all promotions
* Made progress bar of wait dialog a tad smaller
* Little bit code maintenance work
================================================================
			Recommendations
================================================================
The default settings of the trainer is set to NOT do things
automatically. But if you want it to automate things for you,
I recommend that you edit "Settings.ini" and change these:
Set "AutoHookKeyboard" to 1 to automatically hook your keyboard
so that you can use hotkeys right away.
Set "MinimizeOnRun" to 1 to automatically minimize the trainer
when the game launches.
================================================================
			About Trainer
================================================================
This trainer is designed to work with Civilization 5 v 1.0.1.217
DirectX 9 and DirectX 11.
Do not attempt to use it with earlier or future versions of the game.
It will contaminate and corrupt memory if you do.
This trainer will give you the following:
* Gold
* Golden Age Progress
* Golden Age Turns
* Culture
* Strategic Resources
* Luxury Resources
* Clear spent resource slots
* Great General
* Unit Experience
* Movement
* Heal units
* City Modifier
* Full hotkey support
* May set custom values
================================================================
			Installation
================================================================
1. Create a new folder anywhere you like.
2. Extract this archive into that folder.
3. Done.
================================================================
			How to use
================================================================
Start game and Trainer in any order you like.
================================================================
			Switched Cheats
================================================================
1: MOVEMENT SWITCH:
This cheat will give unlimited movement points to units. Activate it and then click any unit, in any number, in any priority and move them around. Always remember to deactivate a switched cheat before making another turn.
Set the initial movement point in the left editbox to set a default initial value for your units. Why would you want to set a initial movement score when the movement is already infinite?
The reason is simple: Because if you have 1 movement point left, it will cancel if you try to move it more than 1 hex, its pretty annoying. The default initial value is already set so you do not need to worry about it.
2: EXPERIENCE SWITCH:
This cheat will give experience to your units. Set a initial experience value in the editbox on the left, then click all your units. You only need to click them once. Then deactivate the cheat when finished.
3: HEALING SWITCH:
This cheat will set health points on your units. Set the health point you want in the editbox on the left side (it can be in the range of 0-10 where 0 is no health and 10 is full health) Then click all units you want to set this health value upon. Deactivate the cheat when finished.
4: CITY MODIFIER SWITCH:
This is probably the most complex cheat to use. (It's really not that complex). This cheat will set the city modifier value (it is in percentage %).
It will set the modifier value on 3 things: Production, Science and Gold. To have this cheat work you will need to buy OR sell a building that affects any of these 3 areas. Thats it.
Quick hint: I recommend buying:
University (to enable modifier for science)
Factory (to enable production modifier)
Stock Exchange (to enable gold modifier)
You can also sell buildings that affects these areas, the modifier will update that way too.
================================================================
			Hotkeys note:
================================================================
Keyboard hooks consumes a tiny bit extra resources of your system it is not noticeable in most situations, therefore I have coded it as an option with a switch. You can turn hotkeys on and off as you like.
You can also have your hotkeys make a beep when activated and deactivated to confirm your choices. All hotkeys use the same sound frequencies. Activation will give a high pitch frequency and deactivation will give a low frequency.
You may also turn off this beep signalling by removing the check mark in the checkbox.
BEWARE: When using keyboard hooks your anti virus can react to it, so you have to unblock it if it does.
See Hotkeys.txt for information on the different set of hotkeys.
================================================================
			UpDown Controls
================================================================
I have added Up-Down controls to all edit boxes in the program.
You may change values in an edit box in many ways:
1: Click a button to choose a predefined value.
2: Click the edit box and type a custom value.
3: Click the up-down control buttons to change values.
4: Use the up-down arrow keys on your keyboard.
5: Use mouse wheel to change values.
================================================================
			Troubleshooting
================================================================
Q1: Trainer doesnt work?
A1: Use only with Civ 5 version 1.0.1.217. It will not work with other versions.
Q2: Trainer still doesnt work?
A2: Your firewall/antivirus blocked it, unblock it and run it again. I need to do this myself all the time.
Q3: Trainer is still not working?
A3: The 6 primary cheats will only update after you click a city or do a next turn.
Q4: I use WinXP and the trainer runs and quits almost instantly?
A4: Try to run it using Win98 Compatability mode.
Q5: After I run the trainer, the editboxes does not reflect the real values from the Game?
A5: This usually happen when you run the trainer for the first time and it was blocked by
    the antivirus or firewall. If it is blocked it cant open the civ process and therefore
    cant read the values, the result is it will show random values in the edit boxes.
================================================================
			Author
================================================================
Coded by DelphiUniverse in pure assembly language. Program is coded
using jump tables for all gui elements avvoiding long and nasty
switches. When you click a button or an editbox it happens instantly
without parsing through alot of code.
My favorite coding equipment:
* SteelSeries 7G keyboard (Nothing close to it, nothing above it)
* 26" 2ms screen for coding happiness
==============
For developers
==============
If you want to code your own civilization trainer, you may freely use the included
dynamic link library (Core.dll). It has all the features you can find in my own
trainer.
All you need to do is to code your own GUI (graphics user interface) and then load
the functions from Core.dll.
To be able to use the functions inside Core.dll you are going to need to know a little
bit about the functions:
======================================================================================
					Core.dll:
======================================================================================
Will work for: Civilization 1.0.1.217 DirectX9 - DirectX11
               (Will not work for earlier versions)
Amount of functions inside: 25
List of functions:
The first is the ordinal number of the functions.
The second is the name of the functions.
You can import functions based on name or ordinal.
I prefer ordinals as they are fastest and makes
the executable smaller. Choose whatever you like.
The third column if the amount of parameters each
function takes.
The fourth and fifth column is the actual parameters
used in the function. If the column is empty, then
it takes no parameters.
FUNCTION	FUNCTION		     FUNCTION		PARAMETERS1	PARAMETERS2
ORDINALS	NAMES			   PARAMETERCOUNT
  @1		GameExist			0
  @2		GameOpen			0
  @3		WriteResource			1		Value:DWORD
  @4		ReadResource			0
  @5		WriteFreeResourceSlots		0
  @6		CheckFreeResourceSlots		0
  @7		WriteGold			1		Value:DWORD
  @8		ReadGold			0
  @9		WriteCulture			1		Value:DWORD
  @10		ReadCulture			0
  @11		WriteGoldenProgress		1		Value:DWORD
  @12		ReadGoldenProgress		0
  @13		WriteGoldenTurn			1		Value:DWORD
  @14		ReadGoldenTurn			0
  @15		WriteGreatGeneral		1		Value:DWORD
  @16		ReadGreatGeneral		0
  @17		SetMovement			2		State:DWORD	Value:DWORD
  @18		GetMovementState		0
  @19		SetExperience			2		State:DWORD	Value:DWORD
  @20		GetExperienceState		0
  @21		SetHealing			2		State:DWORD	Value:DWORD
  @22		GetHealingState			0
  @23		SetCityModifier 		2		State:DWORD	Value:DWORD
  @24		GetCityModifierState		0
  @25		PrintBaseAddr			0
=======================
A word about parameters
=======================
All parameters that has a name of "State" can be set to either 1 or 0.
1 means it will activate and 0 means it will be deactivated.
All parameters that has a name of "Value" is the value you want to set
on the current variable. For example, if you run the function "WriteGold"
you would set Value to 10000 for example to write 10k gold.
=================================
Full Explanation of each function
=================================
---------------------------------------------------------------------------------
@1 GameExist
Use this function to check if Civilization is running/started.
Parameters: None
Return value:
	0 = The game is not running
	NonZero = The game exist in memory and is running
---------------------------------------------------------------------------------
@2 GameOpen
Use this function to open the civilization game process. This function is
essential to have the trainer work in the first place. This is the one and
only function that must be run before you can use any function in the dll.
This applies to all functions except "GameExist" function.
This function will not launch and execute civilization, it will only open
the process memory. The user have to run civilization on his own.
Parameters: None
Return value:
	0 = The process could not be opened.
	NonZero = Process was successfully opened
---------------------------------------------------------------------------------
@3 WriteResource
Use this function to set all strategic and luxury resources to a specific value.
Parameters: 1
	Param #1 = Value to set
Return value: None
---------------------------------------------------------------------------------
@4 ReadResource
Use this function to read from memory how many Iron resources you have. If you
initially set resources by using the function "WriteResource", then all resources
should be the same, so reading the Iron resource should be enough to gather information
about all resources.
Parameters: None
Return value:
	The return value is the amount of Iron resources in the game.
---------------------------------------------------------------------------------
@5 WriteFreeResourceSlots
This function will zero out all spent/used resource slots in the game.
Parameters: None
Return value: None
---------------------------------------------------------------------------------
@6 CheckFreeResourceSlots
This function will check if you have any spent/used resource slots from
any of the 6 strategic resources in the game.
Parameters: None
Return value:
	0 = No slots were in use
	NonZero = One, several or all slots were in use
---------------------------------------------------------------------------------
@7 WriteGold
Use this function to set the amount of gold in game.
Parameters: 1
	Param #1 = Gold to set
Return value: None
---------------------------------------------------------------------------------
@8 ReadGold
This function reads the amount of gold you have in game.
Parameters: None
Return value:
	The return value is the amount of gold.
---------------------------------------------------------------------------------
@9 WriteCulture
Use this function to set the amount of culture in game.
Parameters: 1
	Param #1 = Culture to set
Return value: None
---------------------------------------------------------------------------------
@10 ReadCulture
This function reads the amount of culture you have in game.
Parameters: None
Return value:
	The return value is the amount of culture.
---------------------------------------------------------------------------------
@11 WriteGoldenProgress
Use this function to set the amount of golden progress in game.
Parameters: 1
	Param #1 = Golden Progress to set.
Return value: None
---------------------------------------------------------------------------------
@12 ReadGoldenProgress
This function reads the amount of Golden Progress you have in game.
Parameters: None
Return value:
	The return value is the amount of Golden Progress.
---------------------------------------------------------------------------------
@13 WriteGoldenTurn
Use this function to set the amount of Golden Turns you have in game.
Parameters: 1
	Param #1 = Golden Turns to set.
Return value: None
---------------------------------------------------------------------------------
@14 ReadGoldenTurn
This function reads the amount of Golden Turns you have in game.
Parameters: 0
Return value:
	The return value is the amount of Golden Turns.
---------------------------------------------------------------------------------
@15 WriteGreatGeneral
Use this function to set the amount of Great General points in game.
Parameters: 1
	Param #1 = Great General Points to set.
Return value: None
---------------------------------------------------------------------------------
@16 ReadGreatGeneral
This function reads the amount of Great General Points you have in game.
Parameters: None
Return value:
	The return value is the amount of Great General Points.
---------------------------------------------------------------------------------
@17 SetMovement
This function will inject code into civilization to make it possible to
have unlimited movement points for all units. When you click a unit it
will give that unit x movement points (Depends what you set in parameter 2)
and then it will make it have unlimited movement points.
The reason you want to set movement point in parameter 2 is because if it is
initially set to just 1 movement point, the unit will cancel if you try to move
it any longer than 1 hexagon, then you would have to reclick it again and move
it once more. Setting a good initial point before making unlimited move is
essential.
Due to the code injection nature of this function, if you close your
trainer program, the code injected will still be inside game memory.
So when you restart your trainer again you can use the next function
to check if AntiMovement is still in game memory.
Parameters: 2
	Param #1 = State - Set to 1 to activate or set to 0 to deactivate
	Param #2 = Value - Initial Movement Points to set
Return value: None
---------------------------------------------------------------------------------
@18 GetMovementState
This function will check if anti movement code is still present in game
memory.
Parameters: None
Return value:
	The return value will be 1 if Anti Movement is active and 0 if not active.
---------------------------------------------------------------------------------
@19 SetExperience
Use this function to set unit experience in game. This function will inject
code into the memory of civilization and stay there, even if you close your
trainer. Use the next function to check if it still is active in memory.
Parameters: 2
	Param #1 = State - Set to 1 to activate or set to 0 to deactivate
	Param #2 = Value - Set the experience value to use
Return value: None
---------------------------------------------------------------------------------
@20 GetExperienceState
This function will check if experience code is still present in game memory.
Parameters: None
Return value:
	The return value will be 1 if active and 0 if not active.
---------------------------------------------------------------------------------
@21 SetHealing
Use this function to set unit healing in game. This function will inject
code into the memory of civilization and stay there, even if you close
your trainer. Use the next function to check if it still is active in
memory.
Parameters: 2
	Param #1 = State - Set to 1 to activate or set to 0 to deactivate
	Param #2 = Value - Health value in the range of 0-10
			   (0=no health, 10=full health)
Return value: None
---------------------------------------------------------------------------------
@22 GetHealingState
This function will check if Unit healing code is still present in game
memory.
Parameters: None
Return value:
	The return value will be 1 if active and 0 if not active.
---------------------------------------------------------------------------------
@23 SetCityModifier
Use this function to set the city modifier of Production, Science and Gold in
cities. This function will inject code into the memory of civilization and stay
there, even if you close your trainer. Use the next function to check if it still
is active in memory.
The city production modifier will update when you buy a building that improves
production. It will also update if you sell a building that improves production.
The same goes for science and gold modifiers as well, you need to buy or sell a
building that specifically improves these areas for it to update.
Parameters: 2
	Param #1 = State - Set to 1 to activate or set to 0 to deactivate
	Param #2 = Value - City Modifier percentage value
Return value: None
---------------------------------------------------------------------------------
@24 GetCityModifierState
This function will check if city modifier code is still present and active in game
memory.
Parameters: None
Return value:
	The return value will be 1 if active and 0 if not active.
---------------------------------------------------------------------------------
@25 PrintBaseAddr
This function is not a cheat function, it is meant to be used for programmers
under debugging sessions. It will output a message box with the base address
of civilization 5 - CvGameCoreDLLFinal Release.dll
The value will be printed using decimal numbers. Use a calculator to convert
it to hex if needed.
I found it to be essential when debugging but I cant see a reason you would
need it yourself, but i've included it just in case anyone ever needs it.
NB: The game must have been opened beforehand. You must use the function
    "GameOpen" before using this or else it will output zero (0).
Parameters: None
Return value: None
---------------------------------------------------------------------------------
==============
Final thoughts
==============
All you need to do is code a graphics user interface and then
include Core.dll with your program to make the trainer work.
I will most likely make future versions of this dll with more
functions and more cheats, support for future versions of
civilization.
But I can't promise I will. I hope it will be useful for you.
Thanks to Sid Meier for this great game.
To activate these hotkeys, click the Keyboard Hook activate button in the Trainer program. It will
make a keyboard hook to allow you to use cheat codes with the use of hotkeys.
The reason you want to do this is because when you switch between civilization and the trainer, back and forth you will force civilization to reload all graphics data into the graphics memory, this is a time
consuming process.
You want to use cheat codes while staying in the game. So use this feature for this purpose.
Here are the hotkeys:
ALT + F1 = Anti Movement-Cost Cheat
ALT + F2 = Train Unit Experience
ALT + F3 = Set Health on units
ALT + F5 = Set City Modifier (Science,Production and Gold)
ALT + BACKSPACE = Turn off all cheat switches
ALT + INSERT	= Resources (Maximum)
ALT + HOME	= Gold (Maximum)
ALT + PAGEUP	= Culture (Maximum)
ALT + DELETE	= Golden Age Progress (Maximum)
ALT + END	= Golden Age Turns (Maximum)
ALT + PAGEDOWN	= Great General Progress (Maximum)
ALT + LEFT	= Free all used resource slots
ALT + RIGHT	= Zero all (Will zero out the following):
			1: Gold
			2: Golden Age Progress
			3: Golden Age Turns
			4: Culture
			5: All Strategic and Luxury Resources
			6: Great General Progress
Civilization V Trainer v 3.3 for Civilization 5 v 1.0.1.217
		..by DelphiUniverse
================================================================
		Changes since last release
================================================================
* Fixed a bad pointer for gold. Fireaxis have made a significant
  protection mechanism that triggers randomly. I cant reveal the
  counter action I have done because Fireaxis will make a counter
  for THAT again. You probably noticed the gold pointer sometimes
  didnt work, at random. Well, it is fixed now.
* Changed the default experience value from 5000 to 9000 because
  some units require more than 5000 to gain all promotions
* Made progress bar of wait dialog a tad smaller
* Little bit code maintenance work
================================================================
			Recommendations
================================================================
The default settings of the trainer is set to NOT do things
automatically. But if you want it to automate things for you,
I recommend that you edit "Settings.ini" and change these:
Set "AutoHookKeyboard" to 1 to automatically hook your keyboard
so that you can use hotkeys right away.
Set "MinimizeOnRun" to 1 to automatically minimize the trainer
when the game launches.
================================================================
			About Trainer
================================================================
This trainer is designed to work with Civilization 5 v 1.0.1.217
DirectX 9 and DirectX 11.
Do not attempt to use it with earlier or future versions of the game.
It will contaminate and corrupt memory if you do.
This trainer will give you the following:
* Gold
* Golden Age Progress
* Golden Age Turns
* Culture
* Strategic Resources
* Luxury Resources
* Clear spent resource slots
* Great General
* Unit Experience
* Movement
* Heal units
* City Modifier
* Full hotkey support
* May set custom values
================================================================
			Installation
================================================================
1. Create a new folder anywhere you like.
2. Extract this archive into that folder.
3. Done.
================================================================
			How to use
================================================================
Start game and Trainer in any order you like.
================================================================
			Switched Cheats
================================================================
1: MOVEMENT SWITCH:
This cheat will give unlimited movement points to units. Activate it and then click any unit, in any number, in any priority and move them around. Always remember to deactivate a switched cheat before making another turn.
Set the initial movement point in the left editbox to set a default initial value for your units. Why would you want to set a initial movement score when the movement is already infinite?
The reason is simple: Because if you have 1 movement point left, it will cancel if you try to move it more than 1 hex, its pretty annoying. The default initial value is already set so you do not need to worry about it.
2: EXPERIENCE SWITCH:
This cheat will give experience to your units. Set a initial experience value in the editbox on the left, then click all your units. You only need to click them once. Then deactivate the cheat when finished.
3: HEALING SWITCH:
This cheat will set health points on your units. Set the health point you want in the editbox on the left side (it can be in the range of 0-10 where 0 is no health and 10 is full health) Then click all units you want to set this health value upon. Deactivate the cheat when finished.
4: CITY MODIFIER SWITCH:
This is probably the most complex cheat to use. (It's really not that complex). This cheat will set the city modifier value (it is in percentage %).
It will set the modifier value on 3 things: Production, Science and Gold. To have this cheat work you will need to buy OR sell a building that affects any of these 3 areas. Thats it.
Quick hint: I recommend buying:
University (to enable modifier for science)
Factory (to enable production modifier)
Stock Exchange (to enable gold modifier)
You can also sell buildings that affects these areas, the modifier will update that way too.
================================================================
			Hotkeys note:
================================================================
Keyboard hooks consumes a tiny bit extra resources of your system it is not noticeable in most situations, therefore I have coded it as an option with a switch. You can turn hotkeys on and off as you like.
You can also have your hotkeys make a beep when activated and deactivated to confirm your choices. All hotkeys use the same sound frequencies. Activation will give a high pitch frequency and deactivation will give a low frequency.
You may also turn off this beep signalling by removing the check mark in the checkbox.
BEWARE: When using keyboard hooks your anti virus can react to it, so you have to unblock it if it does.
See Hotkeys.txt for information on the different set of hotkeys.
================================================================
			UpDown Controls
================================================================
I have added Up-Down controls to all edit boxes in the program.
You may change values in an edit box in many ways:
1: Click a button to choose a predefined value.
2: Click the edit box and type a custom value.
3: Click the up-down control buttons to change values.
4: Use the up-down arrow keys on your keyboard.
5: Use mouse wheel to change values.
================================================================
			Troubleshooting
================================================================
Q1: Trainer doesnt work?
A1: Use only with Civ 5 version 1.0.1.217. It will not work with other versions.
Q2: Trainer still doesnt work?
A2: Your firewall/antivirus blocked it, unblock it and run it again. I need to do this myself all the time.
Q3: Trainer is still not working?
A3: The 6 primary cheats will only update after you click a city or do a next turn.
Q4: I use WinXP and the trainer runs and quits almost instantly?
A4: Try to run it using Win98 Compatability mode.
Q5: After I run the trainer, the editboxes does not reflect the real values from the Game?
A5: This usually happen when you run the trainer for the first time and it was blocked by
    the antivirus or firewall. If it is blocked it cant open the civ process and therefore
    cant read the values, the result is it will show random values in the edit boxes.
================================================================
			Author
================================================================
Coded by DelphiUniverse in pure assembly language. Program is coded
using jump tables for all gui elements avvoiding long and nasty
switches. When you click a button or an editbox it happens instantly
without parsing through alot of code.
My favorite coding equipment:
* SteelSeries 7G keyboard (Nothing close to it, nothing above it)
* 26" 2ms screen for coding happiness

File information

Trainers are memory resident programs that alter the behaviour of a game.

Your anti-virus software and web browser may detect them as malware (viruses, worms, trojans, bots etc.).

This is almost always a false alarm.

File name: CIVILIZATION.5.V1.0.1.217.PLUS14TRN.DELPHIUNIVERSE.ZIP

File size: 21.68 KB

Mime type: Stdin has more than one entry--rest ignored compressed-encoding=application/zip; charset=binary

Trainer FAQ