91
"[X] <== Prepare Environment for Cheating Script 2.0 (ACTIVATE ME FIRST)"
FF0000
Auto Assembler Script
{
===========================================
Game Title : Total War - Rome II
Game Version : 1.15.0 (13639)
Game Sponsor : fennix102
Process Name : Rome2.exe
Script Version: 2.0
CE Version : 6.4
Release date : 16-Sep-2014
Author : Recifense
History:
16-Sep-14: Release for version 2.0.0
Features:
- Prepare environment for bypassing CRC-Check
===========================================
}
//=========================================
// Definitions
define(CODESIZE,0x01496200)
define(LUDO,Rome2.dll)
//=========================================
define(ctCE64,(float)6.4)
//=========================================
[ENABLE]
//=========================================
alloc(CodeCopy,CODESIZE,LUDO)
alloc(_IniMem,4096,LUDO)
//=========================================
label(iFlagOK)
label(pCodeCopy)
label(_ExitIM)
//=========================================
registersymbol(CodeCopy)
registersymbol(_IniMem)
registersymbol(iFlagOK)
registersymbol(pCodeCopy)
//=========================================
_IniMem:
pushad
pushfd
mov ecx,CODESIZE
shr ecx,2
mov esi,LUDO
mov edi,CodeCopy
cld
rep movsd
push #500
call kernel32.sleep
mov ecx,CODESIZE
shr ecx,2
mov esi,LUDO
mov edi,CodeCopy
repe cmpsd
test ecx,ecx
jnz _ExitIM
mov dword ptr [iFlagOK],55555555
_ExitIM:
popfd
popad
ret
//=========================================
db '=====================================>'
db 'CE6.4 Script by Recifense 090614'
//=========================================
// Variables
pCodeCopy:
dd CodeCopy
iFlagOK:
dd 0
//=========================================
CREATETHREAD(_IniMem)
//=========================================
// Script for Restoring Original Codes
[DISABLE]
//=========================================
unregistersymbol(CodeCopy)
unregistersymbol(_IniMem)
unregistersymbol(iFlagOK)
unregistersymbol(pCodeCopy)
//=========================================
dealloc(CodeCopy)
//============= Scripts End ===============
// ****************************************
// NOTES
// ****************************************
{
}
90
"[X] <== Rome II Total War - EE v2.0.0-14116 Steam Script 1.1"
FF0000
Auto Assembler Script
{
===========================================
Game Title : Rome II Total War - Emperor Edition
Game Version : 2.0.0 (14116)
Game Sponsor : fennix102
Proces Name : Rome2.exe
Script Version: 1.1
CE Version : 6.4
Release date : 02-Oct-2014
Author : Recifense
History:
16-Sep-14: First Release (13903)
02-Oct-14: Release for version 2.0.0 (14116) Steam (+fix GM)
Features:
- Minimum Money
- Unlimited Action Points
- Agent
- Troop
- Army Commander
- Recover Troop Size on Move
- Blessed Units:
- Cunning (10)
- Zeal (10)
- Authority (10)
- Ambition (10)
- Gravitas (10)
- Max. Age (40)
- Province Minimum PO (10)
- Recover Mercenaries Available
- Unit Can Act again:
- Agent
- Army Commander
- Army Reinforcement in 1 Turn
- Province Growth in 1 turn
- Province Minimum PS (10)
- God Mode:
- Ground Battle
- Sea Battle
- Unlimited Ammo
- Research in 1 Turn
- Const/Improv in 1 Turn
- pointers
- CRC bypassing
===========================================
}
//=========================================
// Definitions
define(LUDO,Rome2.dll)
define(LUDOEND,Rome2.dll+00f90000)
define(MHPR,Rome2.dll+00960c0e)
define(MMMT,Rome2.dll+005ba61b)
define(MMMS,Rome2.dll+00abc811)
define(MCDE,Rome2.dll+006b12f3)
define(MSCR,Rome2.dll+00b8f202)
define(MAPC,Rome2.dll+0098779a)
define(MAPT,Rome2.dll+002d3b57)
define(MAPA,Rome2.dll+00a60e57)
define(MSPE,Rome2.dll+00287071)
define(MPPO,Rome2.dll+00025d7f)
define(MMCA,Rome2.dll+00318174)
define(MAAP,Rome2.dll+00a6e1c0)
define(MART,Rome2.dll+00c1e110)
define(MTAN,Rome2.dll+00c584cf) //#=
define(MCAP,Rome2.dll+0020118e)
define(MPGH,Rome2.dll+0019143c) //#=
define(MPPS,Rome2.dll+0013ca58)
define(MTSZ,Rome2.dll+0028d57f)
define(MTAP,Rome2.dll+00044ec0)
define(MTA1,Rome2.dll+002d3b60)
define(MSSZ,Rome2.dll+00c5852e) //#=
define(MRPS,Rome2.dll+002abdb5) //#=
define(MCPS,Rome2.dll+00e79ecc) //#=
define(MIPS,Rome2.dll+00a3993d) //#=
define(MSTP,Rome2.dll+008e64e7)
define(MOAM,Rome2.dll+00869b60)
define(GDMS,Rome2.dll+000cdcd1)
define(MBUN,Rome2.dll+00086521)
define(GDM2,Rome2.dll+002b3a7d)
define(GDM3,Rome2.dll+00bf7ce6)
define(GDM4,Rome2.dll+004ba0b2) //#=
define(GDMD,Rome2.dll+0034e820)
define(GDM1,Rome2.dll+00bf47f0)
define(CHKP,Rome2.dll+00f3f5c8)
define(CHKQ,Rome2.dll+00f421b8)
define(CHKR,Rome2.dll+003f9c7e)
define(CHKS,Rome2.dll+00a6b69e)
define(CHKU,Rome2.dll+00b6707e)
define(CHKV,Rome2.dll+00443767)
define(CHKX,Rome2.dll+005fb307)
define(CHKY,Rome2.dll+00688297)
define(RPPS,Rome2.dll+0072374a)
//=========================================
// Constants used in the script (that can be changed)
define(ctCE64,(float)6.4)
define(ctMMON,#64000) // Minimum Money
define(ctMATT,#10) // Minimum Attributes
define(ctMAGE,#40) // Maximum Age
define(ctPMPO,#10) // Province minimum Public Order
define(ctPMSP,#10) // Province minimum Surplus
//=========================================
[ENABLE]
//=========================================
//LuaCall(CheckVersion())
//=========================================
// Check if script is compatible to this game version
// If false the script will not be loaded
assert(MHPR,8b 80 0c 01 00 00 51 50 c6 45 ff 01 e8 ?? ?? ?? ?? 83 c4 08 84)
assert(MMMT,01 b7 34 05 00 00 66 c7 87 40 05 00 00 00 01 e8 ?? ?? ?? ?? 84)
assert(MMMS,29 96 34 05 00 00 8d 44 8e 44 8b b6 38 05 00 00 8b 86 44 01 00)
assert(MCDE,8b 55 0c 8b 42 04 56 8b 75 08 2b 46 04 57 8d 04 40 03 c0 03 c0)
assert(MSCR,8b 82 34 05 00 00 6a 40 8d 4d e8 89 45 f8 e8 ?? ?? ?? ?? 8d 4d)
assert(MAPC,89 46 14 5e 5d c2 04 00 57 8b ce e8 ?? ?? ?? ?? 5f 5e 5d c2 04)
assert(MAPT,2b c2 89 41 64 5d c2 04 00 c7 41 64 00 00 00 00 5d c2 04 00 ??)
assert(MAPA,2b c2 89 41 14 5d c2 04 00 c7 41 14 00 00 00 00 5d c2 04 00 ??)
assert(MSPE,8b 45 e0 2b 46 28 89 07 0f 89 ?? ?? ?? ?? 8b 56 28 2b 56 30 0f)
assert(MPPO,89 56 0c 8b 4e 14 8b c2 3b c1 ?? ?? 8b 4e 10 3b c8 ?? ?? 89 4e)
assert(MMCA,8b 46 08 85 c0 ?? ?? 8b 4d 10 39 41 08 ?? ?? 83 4d fc 01 8b 13)
assert(MAAP,c7 41 14 00 00 00 00 c7 81 8c 00 00 00 ff ff ff ff c3 ?? ?? ??)
assert(MART,8b 0e 83 79 2c 00 0f 85 ?? ?? ?? ?? 8b 41 28 85 c0 ?? ?? 8b 00)
assert(MTAN,89 56 44 8b 46 38 85 c0 ?? ?? 8b 00 85 c0 ?? ?? 8b 00 8b 80 9c)
assert(MCAP,f3 0f 11 86 90 00 00 00 e8 ?? ?? ?? ?? 5e 8b e5 5d c2 04 00 ??)
assert(MPGH,8b f8 39 7e 08 ?? ?? 8b ce e8 ?? ?? ?? ?? 39 46 04 ?? ?? 8b ce)
assert(MPPS,8b f1 8b 46 04 89 45 fc 8b 06 8b 58 7c 8b 48 78 8d 04 8b 57 89)
assert(MTSZ,89 4e 44 8b 50 70 8a 48 74 f3 0f 10 40 78 89 55 f4 8d 55 f4 88)
assert(MTAP,c7 81 34 01 00 00 ff ff ff ff c7 41 64 00 00 00 00 c3 cc cc cc)
assert(MTA1,c7 41 64 00 00 00 00 5d c2 04 00 cc cc cc ?? ?? ?? ?? ?? ?? ??)
assert(MSSZ,8b 00 89 46 44 8b 56 20 8b 52 08 8d 4e 20 8d 45 08 50 89 75 08)
assert(MRPS,03 d0 3b 51 20 ?? ?? 8b 76 18 01 46 08 5b 5f 5e 8b e5 5d c2 08)
assert(MCPS,8b 46 0c 3b 46 10 0f 82 ?? ?? ?? ?? 53 57 6a 00 6a 30 e8 ?? ??)
assert(MIPS,8b 46 0c 3b 46 10 ?? ?? 57 6a 30 e8 ?? ?? ?? ?? 8b d8 83 c4 08)
assert(MSTP,89 be bc 08 00 00 8b 86 98 08 00 00 3b 86 a4 08 00 00 ?? ?? 84)
assert(MOAM,f3 0f 5c c1 0f 2f c8 f3 0f 11 86 54 0f 00 00 0f 86 ?? ?? ?? ??)
assert(GDMS,8b be 08 07 00 00 3b f8 ?? ?? 2b f8 89 be 08 07 00 00 5f 5e 5b)
assert(MBUN,8b 97 04 07 00 00 db 87 04 07 00 00 85 d2 ?? ?? d8 05 ?? ?? ??)
assert(GDM2,89 8e 08 07 00 00 89 be 10 0b 00 00 83 be 10 0b 00 00 00 5f ??)
assert(GDM3,89 81 08 07 00 00 f3 0f 10 05 ?? ?? ?? ?? 51 f3 0f 11 04 24 e8)
assert(GDM4,d9 9e 0c 0b 00 00 8b ce e8 ?? ?? ?? ?? 8b 40 24 66 0f 6e 40 6c)
assert(GDMD,55 8b ec 53 56 8b 75 08 8b 86 50 02 00 00 8b 40 10 48 8b d9 83)
assert(GDM1,55 8b ec 83 ec 5c 53 56 8b f1 8b 8e 54 02 00 00 57 33 ff 3b cf)
assert(CHKP,8b 4d 10 8b 7d 08 8b c1 8b d1 03 c6 3b fe ?? ?? 3b f8 0f 82 ??)
assert(CHKQ,8b 4d 10 8b 7d 08 8b c1 8b d1 03 c6 3b fe ?? ?? 3b f8 0f 82 ??)
assert(CHKR,55 8b 6c 24 10 0f b6 0c 2a 8b 06 33 c8 81 e1 ff 00 00 00 c1 e8)
assert(CHKS,55 8b 6c 24 10 0f b6 0c 2a 8b 06 33 c8 81 e1 ff 00 00 00 c1 e8)
assert(CHKU,55 8b 6c 24 10 0f b6 0c 2a 8b 06 33 c8 81 e1 ff 00 00 00 c1 e8)
assert(CHKV,57 8b 7c 24 14 8d 64 24 00 83 fd 07 ?? ?? ff 24 ad ?? ?? ?? ??)
assert(CHKX,57 8b 7c 24 14 8d 64 24 00 83 fd 07 ?? ?? ff 24 ad ?? ?? ?? ??)
assert(CHKY,57 8b 7c 24 14 8d 64 24 00 83 fd 07 ?? ?? ff 24 ad ?? ?? ?? ??)
//=========================================
alloc(MyCode,4096,LUDO)
//=========================================
// Declaration section
label(_MonHumanPlayer)
label(_BackMHP)
label(_ExitMHP)
label(_MonMinimumMoneyT)
label(_BackMMT)
label(_ExitMMT)
label(_MonMinimumMoneyS)
label(_BackMMS)
label(_ExitMMS)
label(_MonCurDate)
label(_BackMCD)
label(_ExitMCD)
label(_MonSelCommander)
label(_MonSC00)
label(_BackMSC)
label(_ExitMSC)
label(_MonActionPointsC)
label(_BackMAC)
label(_ExitMAC)
label(_MonActionPointsT)
label(_MonAT00)
label(_BackMAT)
label(_ExitMAT)
label(_MonActionPointsA)
label(_BackMAA)
label(_ExitMAA)
label(_MonSelProvince)
label(_BackMSP)
label(_ExitMSP)
label(_MonProvincePO)
label(_BackMPP)
label(_ExitMPP)
label(_MonMercAvail)
label(_BackMMA)
label(_ExitMMA)
label(_MonAgentAP)
label(_BackAAP)
label(_ExitAAP)
label(_MonArmyReinf)
label(_BackMAR)
label(_ExitMAR)
label(_MonTroopAttrition)
label(_BackMTA)
label(_ExitMTA)
label(_MonCommanderAP)
label(_BackCAP)
label(_ExitCAP)
label(_MonProvinceGrowth)
label(_BackMPG)
label(_ExitMPG)
label(_MonProvPopSurplus)
label(_BackPPS)
label(_ExitPPS)
label(_MonTroopSize)
label(_BackMTS)
label(_ExitMTS)
label(_MonTroopAP)
label(_BackTAP)
label(_ExitTAP)
label(_MonTroopAP1)
label(_BackTA1)
label(_ExitTA1)
label(_MonShipSize)
label(_BackMSS)
label(_ExitMSS)
label(_MonResProgress)
label(_BackMRP)
label(_ExitMRP)
label(_MonConstProg)
label(_BackMCP)
label(_ExitMCP)
label(_MonImproProg)
label(_BackMIP)
label(_ExitMIP)
label(_MonSelTroop)
label(_BackMST)
label(_ExitMST)
label(_MonAmmo)
label(_BackMAM)
label(_ExitMAM)
label(_GodModeS)
label(_BackGMS)
label(_ExitGMS)
label(_MonBattleUnits)
label(_BackMBU)
label(_ExitMBU)
label(_GodMode2)
label(_BackGM2)
label(_ExitGM2)
label(_GodMode3)
label(_BackGM3)
label(_ExitGM3)
label(_GodMode4)
label(_BackGM4)
label(_ExitGM4)
label(_GodMode)
label(_BackGMD)
label(_ExitGMD)
label(_GodMode1)
label(_BackGM1)
label(_ExitGM1)
label(_HackPoint)
label(_BackHPT)
label(_ExitHPT)
label(_HackPointQ)
label(_BackHPQ)
label(_ExitHPQ)
label(_HackPointR)
label(_BackHPR)
label(_ExitHPR)
label(_HackPointS)
label(_BackHPS)
label(_ExitHPS)
label(_HackPointU)
label(_BackHPU)
label(_ExitHPU)
label(_HackPointV)
label(_BackHPV)
label(_ExitHPV)
label(_HackPointX)
label(_BackHPX)
label(_ExitHPX)
label(_HackPointY)
label(_BackHPY)
label(_ExitHPY)
label(pMoney)
label(pPlayer)
label(pCommander)
label(pProvince)
label(pTroop)
label(pCommon)
label(iPlayerID)
label(iEnableMMM)
label(iEnableMAP)
label(iEnableMTS)
label(iEnableMBU)
label(iEnableMIA)
label(iEnableMPP)
label(iEnableMMA)
label(iEnableMAA)
label(iEnableMAR)
label(iEnableMTA)
label(iEnableMPG)
label(iEnablePPS)
label(iEnableGMD)
label(iEnableMAM)
label(iEnableMRP)
label(iEnableMCP)
label(iEnableCRC)
label(iMinMoney)
label(iMaxAge)
label(iMinAttrib)
label(iMinPO)
label(iMinSP)
label(iDate)
label(iCounter)
label(iCounterQ)
label(iCounterR)
label(iCounterS)
label(iCounterU)
label(iCounterV)
label(iCounterX)
label(iCounterY)
label(iCounterZ)
//=========================================
// Registering Symbols
registersymbol(MyCode)
registersymbol(pMoney)
registersymbol(pPlayer)
registersymbol(pCommander)
registersymbol(pProvince)
registersymbol(pTroop)
registersymbol(pCommon)
registersymbol(iPlayerID)
registersymbol(iEnableMMM)
registersymbol(iEnableMAP)
registersymbol(iEnableMTS)
registersymbol(iEnableMBU)
registersymbol(iEnableMIA)
registersymbol(iEnableMPP)
registersymbol(iEnableMMA)
registersymbol(iEnableMAA)
registersymbol(iEnableMAR)
registersymbol(iEnableMTA)
registersymbol(iEnableMPG)
registersymbol(iEnablePPS)
registersymbol(iEnableGMD)
registersymbol(iEnableMAM)
registersymbol(iEnableMRP)
registersymbol(iEnableMCP)
registersymbol(iEnableCRC)
registersymbol(iMinMoney)
registersymbol(iMinAttrib)
registersymbol(iMinPO)
registersymbol(iMinSP)
registersymbol(iMaxAge)
registersymbol(iCounter)
registersymbol(iCounterQ)
registersymbol(iCounterR)
registersymbol(iCounterS)
registersymbol(iCounterU)
registersymbol(iCounterV)
registersymbol(iCounterX)
registersymbol(iCounterY)
registersymbol(iCounterZ)
registersymbol(iDate)
//=========================================
MyCode:
//========================================= EE (13903)
// TBS - At the Faction Statistic Screen
_MonHumanPlayer:
push ebx
mov ebx,[eax+0000010c]
mov [pPlayer],ebx
mov ebx,[ebx+04]
mov [iPlayerID],ebx
_ExitMHP:
pop ebx
mov eax,[eax+0000010C] // Original code
jmp _BackMHP // Back to main code
//========================================= EE (13903)
// TBS - During turn changing
_MonMinimumMoneyT:
push eax
push ecx
add [edi+00000534],esi // Original code (upd money)
mov ecx,edi
mov eax,[ecx+00000538]
test eax,eax
jz _ExitMMT
mov eax,[eax+04]
cmp eax,[iPlayerID]
jne _ExitMMT
cmp dword ptr [iEnableMMM],0
je _ExitMMT // Jump if feature is disabled
mov eax,[iMinMoney]
cmp eax,[ecx+00000534]
js _ExitMMT
mov [ecx+00000534],eax
_ExitMMT:
pop ecx
pop eax
jmp _BackMMT // Back to main code
//========================================= EE (13903)
// TBS - When spending money
_MonMinimumMoneyS:
push eax
push ecx
sub [esi+00000534],edx // Original code (upd money)
mov ecx,esi
mov eax,[ecx+00000538]
test eax,eax
jz _ExitMMS
mov eax,[eax+04]
cmp eax,[iPlayerID]
jne _ExitMMS
cmp dword ptr [iEnableMMM],0
je _ExitMMS // Jump if feature is disabled
mov eax,[iMinMoney]
cmp eax,[ecx+00000534]
js _ExitMMS
mov [ecx+00000534],eax
_ExitMMS:
pop ecx
pop eax
jmp _BackMMS // Back to main code
//========================================= EE (13903)
// TBS In Main Game Screen
_MonCurDate:
mov edx,[ebp+0C] // Original code
mov eax,[edx+04] // Original code (rd Date)
mov [iDate],eax
_ExitMCD:
jmp _BackMCD // Back to main code
//========================================= EE (13903)
// TBS - In the agent/general details window
_MonSelCommander:
push ebx
mov [pCommander],edx
mov eax,[edx+000001d8]
test eax,eax
jz _ExitMSC
mov eax,[eax]
test eax,eax
jz _ExitMSC
mov eax,[eax+04]
cmp eax,[iPlayerID]
jne _ExitMSC
cmp dword ptr [iEnableMBU],0
je _MonSC00 // Jump if feature is disabled
mov eax,[iMinAttrib]
// Cunning
mov ebx,[edx+0000034c]
cmp ebx,eax
cmovs ebx,eax
mov [edx+0000034c],ebx
// Zeal
mov ebx,[edx+00000350]
cmp ebx,eax
cmovs ebx,eax
mov [edx+00000350],ebx
// Authority
mov ebx,[edx+00000354]
cmp ebx,eax
cmovs ebx,eax
mov [edx+00000354],ebx
// Ambition
mov ebx,[edx+00000530]
cmp ebx,eax
cmovs ebx,eax
mov [edx+00000530],ebx
// Gravitas
mov ebx,[edx+00000534]
cmp ebx,eax
cmovs ebx,eax
mov [edx+00000534],ebx
_MonSC00:
cmp dword ptr [iEnableMIA],0
je _ExitMSC // Jump if feature is disabled
mov eax,[iDate]
mov ebx,[iMaxAge]
sub eax,ebx
cmp eax,[edx+000002a0]
js _ExitMSC
mov [edx+000002a0],eax
_ExitMSC:
pop ebx
mov eax,[edx+00000534] // Original code (rds Gravitas)
jmp _BackMSC // Back to main code
//========================================= EE (13903)
// TBS (Commander)
_MonActionPointsC:
push ecx
mov ecx,[esi+000001d8]
test ecx,ecx
jz _ExitMAC
mov ecx,[ecx]
test ecx,ecx
jz _ExitMAC
mov ecx,[ecx+04]
cmp ecx,[iPlayerID]
jne _ExitMAC
cmp dword ptr [iEnableMAP],0
je _ExitMAC // Jump if feature is disabled
cmp eax,[esi+14]
js _ExitMAC
mov eax,[esi+14]
_ExitMAC:
pop ecx
mov [esi+14],eax // Original code (upds AP)
pop esi // Original code
pop ebp // Original code
jmp _BackMAC // Back to main code
//========================================= EE (13903)
// TBS (Troops)
_MonActionPointsT:
push ebx
mov ebx,[ecx+3c]
test ebx,ebx
jz _ExitMAT
mov ebx,[ebx+04]
cmp ebx,[iPlayerID]
jne _ExitMAT
cmp dword ptr [iEnableMTS],0
je _MonAT00 // Jump if feature is disabled
mov ebx,[ecx+48]
mov [ecx+44],ebx
_MonAT00:
cmp dword ptr [iEnableMAP],0
je _ExitMAT // Jump if feature is disabled
mov eax,[ecx+64]
xor edx,edx
_ExitMAT:
pop ebx
sub eax,edx // Original code
mov [ecx+64],eax // Original code (upds AP)
jmp _BackMAT // Back to main code
//========================================= EE (13903)
// TBS (Agents)
_MonActionPointsA:
push ebx
mov ebx,[ecx+000001d8]
test ebx,ebx
jz _ExitMAA
mov ebx,[ebx]
test ebx,ebx
jz _ExitMAA
mov ebx,[ebx+04]
cmp ebx,[iPlayerID]
jne _ExitMAA
cmp dword ptr [iEnableMAP],0
je _ExitMAA // Jump if feature is disabled
mov eax,[ecx+14]
xor edx,edx
_ExitMAA:
pop ebx
sub eax,edx // Original code
mov [ecx+14],eax // Original code (upds AP)
jmp _BackMAA // Back to main code
//========================================= EE (13903)
// TBS - Public Order undercursor on province detail
_MonSelProvince:
mov eax,[esi]
mov [pProvince],eax
_ExitMSP:
mov eax,[ebp-20] // Original code
sub eax,[esi+28] // Original code (rds PO)
jmp _BackMSP // Back to main code
//========================================= EE (13903)
// TBS - During Turn changing
_MonProvincePO:
cmp dword ptr [iEnableMPP],0
je _ExitMPP // Jump if feature is disabled
mov ecx,[edi] // Get pProvince
test ecx,ecx
jz _ExitMPP
mov ecx,[ecx+68] // Get ppPlayer
test ecx,ecx
jz _ExitMPP
mov ecx,[ecx] // Get pPlayer
test ecx,ecx
jz _ExitMPP
mov ecx,[ecx+04] // Get iPlayerID
cmp ecx,[iPlayerID]
jne _ExitMPP
mov ecx,[iMinPO] // Minimum PO value
cmp edx,ecx
cmovs edx,ecx
_ExitMPP:
mov [esi+0C],edx // Original code (upd PO)
mov ecx,[esi+14] // Original code
jmp _BackMPP // Back to main code
//========================================= EE (13903)
// TBS - Mercenaries available to player's commander
_MonMercAvail:
test edi,edi // Is there a commander?
jz _ExitMMA
mov eax,[edi+000001d8] // Get pOwner
test eax,eax
jz _ExitMMA
mov eax,[eax] // Get player
test eax,eax
jz _ExitMMA
mov eax,[eax+04]
cmp eax,[iPlayerID]
jne _ExitMMA
cmp dword ptr [iEnableMMA],0
je _ExitMMA // Jump if feature is disabled
mov eax,[esi+10]
cmp eax,[esi+08]
js _ExitMMA
mov [esi+08],eax
_ExitMMA:
mov eax,[esi+08] // Original code (rd MA)
test eax,eax // Original code
jmp _BackMMA // Back to main code
//========================================= EE (13903)
// TBS - Agent can act again
_MonAgentAP:
push eax
inc dword ptr [iCounterZ] // For debugging
mov eax,[ecx+000001d8] // Get pOwner
test eax,eax
jz _ExitAAP
mov eax,[eax] // Get player
test eax,eax
jz _ExitAAP
mov eax,[eax+04]
cmp eax,[iPlayerID]
jne _ExitAAP
cmp dword ptr [iEnableMAA],0
je _ExitAAP // Jump if feature is disabled
mov eax,[ecx+10]
mov [ecx+14],eax
mov [ecx+0000008C],eax
mov byte ptr [ecx+000005b8],00
pop eax
ret
//====
_ExitAAP:
pop eax
mov [ecx+14],00000000 // Original code (AP = 0)
jmp _BackAAP // Back to main code
//========================================= EE (13903)
// TBS - During Turn changing
_MonArmyReinf:
push edi
push esi
mov edi,[esi] // Get pReinf
cmp dword ptr [iEnableMAR],0
je _ExitMAR // Jump if feature is disabled
mov esi,[edi+28] // Get ppArmy
test esi,esi
jz _ExitMAR
mov esi,[esi] // Get pArmy
test esi,esi
jz _ExitMAR
mov esi,[esi] // Get Army
test esi,esi
jz _ExitMAR
mov esi,[esi+00000094] // Get pOwner
test esi,esi
jz _ExitMAR
mov esi,[esi] // Get player
test esi,esi
jz _ExitMAR
mov esi,[esi+04]
cmp esi,[iPlayerID]
jne _ExitMAR
mov dword ptr [edi+2c],00 // Finish it
_ExitMAR:
pop esi
pop edi
mov ecx,[esi] // Original code
cmp dword ptr [ecx+2C],00 // Original code (rd #Turns)
jmp _BackMAR // Back to main code
//========================================= EE (13903)
// TBS During Turn
_MonTroopAttrition:
mov eax,[esi+3c]
test eax,eax
jz _ExitMTA
mov eax,[eax+04]
cmp eax,[iPlayerID]
jne _ExitMTA
cmp dword ptr [iEnableMTA],0
je _ExitMTA // Jump if feature is disabled
mov edx,[esi+48]
_ExitMTA:
mov [esi+44],edx // Original code (upds TS)
mov eax,[esi+38] // Original code
jmp _BackMTA // Back to main code
//========================================= EE (13903)
// TBS - Commander can act again
_MonCommanderAP:
push eax
cmp dword ptr [iEnableMAA],0
je _ExitCAP // Jump if feature is disabled
mov eax,[esi+000001d8] // Get pOwner
test eax,eax
jz _ExitCAP
mov eax,[eax] // Get player
test eax,eax
jz _ExitCAP
mov eax,[eax+04]
cmp eax,[iPlayerID]
jne _ExitCAP
mov eax,[esi+14]
mov [esi+0000008C],eax
mov byte ptr [esi+000005b8],00
_ExitCAP:
pop eax
movss [esi+00000090],xmm0 // Original code
jmp _BackCAP // Back to main code
//========================================= EE (13903)
// TBS - During Turn changing
_MonProvinceGrowth:
push ebx
cmp dword ptr [iEnableMPG],0
je _ExitMPG // Jump if feature is disabled
mov ebx,[esi] // Get pProvince
test ebx,ebx
jz _ExitMPG
mov ebx,[ebx+68] // Get pPlayer
test ebx,ebx
jz _ExitMPG
mov ebx,[ebx] // Get player
test ebx,ebx
jz _ExitMPG
mov ebx,[ebx+04]
cmp ebx,[iPlayerID]
jne _ExitMPG
mov [esi+08],eax
_ExitMPG:
pop ebx
mov edi,eax // Original code
cmp [esi+08],edi // Original code (rd growth)
jmp _BackMPG // Back to main code
//========================================= EE (13903)
// TBS - When Growth Undercursor
_MonProvPopSurplus:
push ebx
mov esi,ecx // Original code
mov ebx,[ebp+04]
cmp ebx,RPPS
jne _ExitPPS
mov ebx,[esi] // Get pProvince
test ebx,ebx
jz _ExitPPS
mov [pProvince],ebx
cmp dword ptr [iEnablePPS],0
je _ExitPPS // Jump if feature is disabled
mov ebx,[ebx+68] // Get pPlayer
test ebx,ebx
jz _ExitPPS
mov ebx,[ebx] // Get player
test ebx,ebx
jz _ExitPPS
mov ebx,[ebx+04]
cmp ebx,[iPlayerID]
jne _ExitPPS
mov eax,[iMinSP]
cmp eax,[esi+04]
js _ExitPPS
mov [esi+04],eax
_ExitPPS:
pop ebx
mov eax,[esi+04] // Original code (rd Pop Surplus)
jmp _BackPPS // Back to main code
//========================================= EE (13903)
// TBS (After a battle)
_MonTroopSize:
push ebx
mov ebx,[esi+3c]
test ebx,ebx
jz _ExitMTS
mov ebx,[ebx+04]
cmp ebx,[iPlayerID]
jne _ExitMTS
cmp dword ptr [iEnableMTS],0
je _ExitMTS // Jump if feature is disabled
mov ecx,[esi+48]
_ExitMTS:
pop ebx
mov [esi+44],ecx // Original code (upds size)
mov edx,[eax+70] // Original code
jmp _BackMTS // Back to main code
//========================================= EE (13903)
// TBS (After a battle)
_MonTroopAP:
push ebx
mov ebx,[ecx+3c]
test ebx,ebx
jz _ExitTAP
mov ebx,[ebx+04]
cmp ebx,[iPlayerID]
jne _ExitTAP
cmp dword ptr [iEnableMAP],0
je _ExitTAP // Jump if feature is disabled
mov ebx,[ecx+64]
mov [ecx+00000134],ebx
pop ebx
ret
//==
_ExitTAP:
pop ebx
mov [ecx+00000134],FFFFFFFF // Original code
jmp _BackTAP // Back to main code
//========================================= EE (13903)
// TBS (After a battle)
_MonTroopAP1:
push ebx
mov ebx,[ecx+3c]
test ebx,ebx
jz _ExitTA1
mov ebx,[ebx+04]
cmp ebx,[iPlayerID]
jne _ExitTA1
cmp dword ptr [iEnableMAP],0
je _ExitTA1 // Jump if feature is disabled
mov ebx,[ecx+64]
mov [ecx+00000134],ebx
pop ebx
pop ebp
ret 0004
//==
_ExitTA1:
pop ebx
mov [ecx+64],00000000 // Original code
jmp _BackTA1 // Back to main code
//========================================= EE (13903)
// TBS (at open sea)(in fact #sailors)
_MonShipSize:
push ebx
mov ebx,[esi+3c]
test ebx,ebx
jz _ExitMSS
mov ebx,[ebx+04]
cmp ebx,[iPlayerID]
jne _ExitMSS
cmp dword ptr [iEnableMTS],0
je _ExitMSS // Jump if feature is disabled
mov ebx,[esi+48]
mov [eax],ebx
_ExitMSS:
pop ebx
mov eax,[eax] // Original code
mov [esi+44],eax // Original code (upds size)
jmp _BackMSS // Back to main code
//========================================= EE (13903)
// TBS During turn changing
_MonResProgress:
push ebx
mov ebx,[esi+14]
test ebx,ebx
jz _ExitMRP
mov ebx,[ebx+04]
cmp ebx,[iPlayerID]
jne _ExitMRP
cmp dword ptr [iEnableMRP],0
je _ExitMRP // Jump if feature is disabled
mov edx,[ecx+20] // Get value_needed
mov ebx,[esi+18] // Get pResearchProgress
mov [ebx+08],edx // Complete research
_ExitMRP:
pop ebx
add edx,eax // Original code
cmp edx,[ecx+20] // Original code
jmp _BackMRP // Back to main code
//========================================= EE (13903)
// TBS During turn changing
_MonConstProg:
push ebx
mov ebx,[ebp+2c]
test ebx,ebx
jz _ExitMCP
mov ebx,[ebx+04]
cmp ebx,[iPlayerID]
jne _ExitMCP
cmp dword ptr [iEnableMCP],0
je _ExitMCP // Jump if feature is disabled
mov ebx,[esi+10] // Get value_needed
mov [esi+0c],ebx // Complete construction
_ExitMCP:
pop ebx
mov eax,[esi+0C] // Original code (Prog)
cmp eax,[esi+10] // Original code
jmp _BackMCP // Back to main code
//========================================= EE (13903)
// TBS During turn changing
_MonImproProg:
push ebx
mov ebx,[ebp+2c]
test ebx,ebx
jz _ExitMIP
mov ebx,[ebx+04]
cmp ebx,[iPlayerID]
jne _ExitMIP
cmp dword ptr [iEnableMCP],0
je _ExitMIP // Jump if feature is disabled
mov ebx,[esi+10] // Get value_needed
mov [esi+0c],ebx // Complete construction
_ExitMIP:
pop ebx
mov eax,[esi+0C] // Original code (Prog)
cmp eax,[esi+10] // Original code
jmp _BackMIP // Back to main code
//-----------------------------------------------------------------------------
//========================================= EE (13903)
// RTS - Selected Troop
_MonSelTroop:
push eax
mov [pTroop],edi
test edi,edi
jz _ExitMST
cmp byte ptr [edi+000000d8],01
jne _ExitMST
mov eax,[edi+000000ac]
test eax,eax
jz _ExitMST
mov eax,[eax+30]
mov [pCommon],eax
_ExitMST:
pop eax
mov [esi+000008BC],edi // Original code
jmp _BackMST // Back to main code
//========================================= EE (13903)
// RTS - During Battle
// ESI = Troop_Index
_MonAmmo:
push ecx
cmp dword ptr [iEnableMAM],0
je _ExitMAM // Jump if feature is disabled
mov ecx,[esi+30]
cmp ecx,[pCommon]
jne _ExitMAM
cvtsi2ss xmm0,[esi+00000f58]
xorps xmm1,xmm1
_ExitMAM:
pop ecx
subss xmm0,xmm1 // Original code
comiss xmm1,xmm0 // Original code
jmp _BackMAM // Back to main code
//========================================= EE (13903)
// RTS - During Battle (Ship)
// ESI = Ship
_GodModeS:
push ebx
cmp dword ptr [iEnableGMD],0
je _ExitGMS // Jump if feature is disabled
mov edi,[esi+00000258] // pTroopIndex
test edi,edi
jz _ExitGMS
mov edi,[edi+30]
cmp edi,[pCommon]
jne _ExitGMS
mov edi,#64000
mov ebx,[esi+00000704]
cmp ebx,edi
cmovs ebx,edi
mov [esi+00000704],ebx
mov [esi+00000708],ebx
xor eax,eax
_ExitGMS:
pop ebx
mov edi,[esi+00000708] // Original code (rd cHP)
jmp _BackGMS // Back to main code
//========================================= EE (13903)
// RTS - During Battle
// ESI = UNIT
_MonBattleUnits:
push ebx
cmp dword ptr [iEnableGMD],0
je _ExitMBU // Jump if feature is disabled
mov edx,[edi+00000258] // pTroopIndex
test edx,edx
jz _ExitMBU
mov edx,[edx+30]
cmp edx,[pCommon]
jne _ExitMBU
mov edx,#64000
mov ebx,[esi+00000704]
cmp ebx,edx
cmovs ebx,edx
mov [edi+00000704],ebx
mov [edi+00000708],ebx
_ExitMBU:
pop ebx
mov edx,[edi+00000704] // Original code
jmp _BackMBU // Back to main code
//========================================= EE (13903)
// RTS - During Battle (Unit on Fire)
// ESI = UNIT
_GodMode2:
push ebx
push edi
cmp dword ptr [iEnableGMD],0
je _ExitGM2 // Jump if feature is disabled
mov edi,[esi+00000258] // pTroopIndex
test edi,edi
jz _ExitGM2
mov edi,[edi+30]
cmp edi,[pCommon]
jne _ExitGM2
mov edi,#64000
mov ebx,[esi+00000704]
cmp ebx,edi
cmovs ebx,edi
mov [esi+00000704],ebx
mov ecx,ebx
_ExitGM2:
pop edi
pop ebx
mov [esi+00000708],ecx // Original code (upd cHP)
jmp _BackGM2 // Back to main code
//========================================= EE (13903)
// RTS - During Battle (More protection against Fire)
// ECX = UNIT
_GodMode3:
push ebx
push edi
push esi
mov esi,ecx
cmp dword ptr [iEnableGMD],0
je _ExitGM3 // Jump if feature is disabled
mov edi,[esi+00000258] // pTroopIndex
test edi,edi
jz _ExitGM3
mov edi,[edi+30]
cmp edi,[pCommon]
jne _ExitGM3
mov edi,#64000
mov ebx,[esi+00000704]
cmp ebx,edi
cmovs ebx,edi
mov [esi+00000704],ebx
mov eax,ebx
_ExitGM3:
pop esi
pop edi
pop ebx
mov [ecx+00000708],eax // Original code (upd cHP)
jmp _BackGM3 // Back to main code
//========================================= EE (13903)
// RTS - During Battle (More protection against Fire)
// ESI = UNIT
_GodMode4:
push edi
fstp dword ptr [esi+00000B0C] // Original code (upd Damage)
cmp dword ptr [iEnableGMD],0
je _ExitGM4 // Jump if feature is disabled
mov edi,[esi+00000258] // pTroopIndex
test edi,edi
jz _ExitGM4
mov edi,[edi+30]
cmp edi,[pCommon]
jne _ExitGM4
xor edi,edi
mov [esi+00000b0c],edi // Damage = 0
_ExitGM4:
pop edi
jmp _BackGM4 // Back to main code
//========================================= s1.1
// RTS - During Battle (Horses)
_GodMode:
push ecx
cmp dword ptr [iEnableGMD],0
je _ExitGMD // Jump if feature is disabled
mov ecx,[esp+08]
mov ecx,[ecx+00000258] // pTroopIndex
test ecx,ecx
jz _ExitGMD
mov ecx,[ecx+30]
cmp ecx,[pCommon]
jne _ExitGMD
pop ecx
ret 0004
//==
_ExitGMD:
pop ecx
push ebp // Original code
mov ebp,esp // Original code
push ebx // Original code
push esi // Original code
jmp _BackGMD // Back to main code
//========================================= s1.1
// RTS - During Battle (Soldiers)
// ECX = TroopIndex
_GodMode1:
push eax
cmp dword ptr [iEnableGMD],0
je _ExitGM1 // Jump if feature is disabled
mov eax,[ecx+00000258] // pTroopIndex
test eax,eax
jz _ExitGM1
mov eax,[eax+30]
cmp eax,[pCommon]
jne _ExitGM1
pop eax
ret 0004
//==
_ExitGM1:
pop eax
push ebp // Original code
mov ebp,esp // Original code
sub esp,5C // Original code
jmp _BackGM1 // Back to main code
//-----------------------------------------------------------------------------
//========================================= EE (13903)
// Cheating CRC check
_HackPoint:
cmp dword ptr [iFlagOK],55555555
jne _ExitHPT
cmp dword ptr [iEnableCRC],0
je _ExitHPT // Jump if feature is disabled
cmp esi,LUDO
jl _ExitHPT
cmp esi,LUDOEND
jge _ExitHPT
mov edi,LUDO
sub esi,edi
mov edi,CodeCopy
add esi,edi
inc dword ptr [iCounter]
_ExitHPT:
mov ecx,[ebp+10] // Original code
mov edi,[ebp+08] // Original code
jmp _BackHPT // Back to main code (keeping the template)
//========================================= EE (13903)
// Cheating CRC check
_HackPointQ:
cmp dword ptr [iFlagOK],55555555
jne _ExitHPQ
cmp dword ptr [iEnableCRC],0
je _ExitHPQ // Jump if feature is disabled
cmp esi,LUDO
jl _ExitHPQ
cmp esi,LUDOEND
jge _ExitHPQ
mov edi,LUDO
sub esi,edi
mov edi,CodeCopy
add esi,edi
inc dword ptr [iCounterQ]
_ExitHPQ:
mov ecx,[ebp+10] // Original code
mov edi,[ebp+08] // Original code
jmp _BackHPQ // Back to main code (keeping the template)
//========================================= EE (13903)
// Cheating CRC check
_HackPointR:
push ebp // Original code
mov ebp,[esp+10] // Original code
cmp dword ptr [iFlagOK],55555555
jne _ExitHPR
cmp dword ptr [iEnableCRC],0
je _ExitHPR // Jump if feature is disabled
cmp ebp,LUDO
jl _ExitHPR
cmp ebp,LUDOEND
jge _ExitHPR
mov ecx,LUDO
sub ebp,ecx
mov ecx,CodeCopy
add ebp,ecx
inc dword ptr [iCounterR]
_ExitHPR:
jmp _BackHPR // Back to main code (keeping the template)
//========================================= EE (13903)
// Cheating CRC check
_HackPointS:
push ebp // Original code
mov ebp,[esp+10] // Original code
cmp dword ptr [iFlagOK],55555555
jne _ExitHPS
cmp dword ptr [iEnableCRC],0
je _ExitHPS // Jump if feature is disabled
cmp ebp,LUDO
jl _ExitHPS
cmp ebp,LUDOEND
jge _ExitHPS
mov ecx,LUDO
sub ebp,ecx
mov ecx,CodeCopy
add ebp,ecx
inc dword ptr [iCounterS]
_ExitHPS:
jmp _BackHPS // Back to main code (keeping the template)
//========================================= EE (13903)
// Cheating CRC check
_HackPointU:
push ebp // Original code
mov ebp,[esp+10] // Original code
cmp dword ptr [iFlagOK],55555555
jne _ExitHPU
cmp dword ptr [iEnableCRC],0
je _ExitHPU // Jump if feature is disabled
cmp ebp,LUDO
jl _ExitHPU
cmp ebp,LUDOEND
jge _ExitHPU
mov ecx,LUDO
sub ebp,ecx
mov ecx,CodeCopy
add ebp,ecx
inc dword ptr [iCounterU]
_ExitHPU:
jmp _BackHPU // Back to main code (keeping the template)
//========================================= EE (13903)
// Cheating CRC check
_HackPointV:
push edi // Original code
mov edi,[esp+14] // Original code
cmp dword ptr [iFlagOK],55555555
jne _ExitHPV
cmp dword ptr [iEnableCRC],0
je _ExitHPV // Jump if feature is disabled
cmp edi,LUDO
jl _ExitHPV
cmp edi,LUDOEND
jge _ExitHPV
push ecx
mov ecx,LUDO
sub edi,ecx
mov ecx,CodeCopy
add edi,ecx
pop ecx
inc dword ptr [iCounterV]
_ExitHPV:
jmp _BackHPV // Back to main code (keeping the template)
//========================================= EE (13903)
// Cheating CRC check
_HackPointX:
push edi // Original code
mov edi,[esp+14] // Original code
cmp dword ptr [iFlagOK],55555555
jne _ExitHPX
cmp dword ptr [iEnableCRC],0
je _ExitHPX // Jump if feature is disabled
cmp edi,LUDO
jl _ExitHPX
cmp edi,LUDOEND
jge _ExitHPX
push ecx
mov ecx,LUDO
sub edi,ecx
mov ecx,CodeCopy
add edi,ecx
pop ecx
inc dword ptr [iCounterX]
_ExitHPX:
jmp _BackHPX // Back to main code (keeping the template)
//========================================= EE (13903)
// Cheating CRC check
_HackPointY:
push edi // Original code
mov edi,[esp+14] // Original code
cmp dword ptr [iFlagOK],55555555
jne _ExitHPY
cmp dword ptr [iEnableCRC],0
je _ExitHPY // Jump if feature is disabled
cmp edi,LUDO
jl _ExitHPY
cmp edi,LUDOEND
jge _ExitHPY
push ecx
mov ecx,LUDO
sub edi,ecx
mov ecx,CodeCopy
add edi,ecx
pop ecx
inc dword ptr [iCounterY]
_ExitHPY:
jmp _BackHPY // Back to main code (keeping the template)
//=========================================
db '================================================>'
db 'CE6.4 Script by Recifense 100214'
//=========================================
// Variables
iEnableMMM:
dd 0
iEnableMAP:
dd 0
iEnableMTS:
dd 0
iEnableMBU:
dd 0
iEnableMIA:
dd 0
iEnableMPP:
dd 0
iEnableMMA:
dd 0
iEnableMAA:
dd 0
iEnableMAR:
dd 0
iEnableMTA:
dd 0
iEnableMPG:
dd 0
iEnablePPS:
dd 0
iEnableGMD:
dd 0
iEnableMAM:
dd 0
iEnableMRP:
dd 0
iEnableMCP:
dd 0
iEnableCRC:
dd 1
pMoney:
dd 0
iPlayerID:
dd #9999
pPlayer:
dd MyCode
pCommander:
dd 0
pProvince:
dd 0
pTroop:
dd 0
pCommon:
dd MyCode
iMinMoney:
dd ctMMON
iMaxAge:
dd ctMAGE
iMinAttrib:
dd ctMATT
iMinPO:
dd ctPMPO
iMinSP:
dd ctPMSP
iDate:
dd #481
iCounter:
dd 0
iCounterQ:
dd 0
iCounterR:
dd 0
iCounterS:
dd 0
iCounterU:
dd 0
iCounterV:
dd 0
iCounterX:
dd 0
iCounterY:
dd 0
iCounterZ:
dd 0
//=========================================
// Hacking Points
MHPR:
jmp _MonHumanPlayer
nop
_BackMHP:
MMMT:
jmp _MonMinimumMoneyT
nop
_BackMMT:
MMMS:
jmp _MonMinimumMoneyS
nop
_BackMMS:
MCDE:
jmp _MonCurDate
nop
_BackMCD:
MSCR:
jmp _MonSelCommander
nop
_BackMSC:
MAPC:
jmp _MonActionPointsC
_BackMAC:
MAPT:
jmp _MonActionPointsT
_BackMAT:
MAPA:
jmp _MonActionPointsA
_BackMAA:
MSPE:
jmp _MonSelProvince
nop
_BackMSP:
MPPO:
jmp _MonProvincePO
nop
_BackMPP:
MMCA:
jmp _MonMercAvail
_BackMMA:
MAAP:
jmp _MonAgentAP
nop
nop
_BackAAP:
MART:
jmp _MonArmyReinf
nop
_BackMAR:
MTAN:
jmp _MonTroopAttrition
nop
_BackMTA:
MCAP:
jmp _MonCommanderAP
nop
nop
nop
_BackCAP:
MPGH:
jmp _MonProvinceGrowth
_BackMPG:
MPPS:
jmp _MonProvPopSurplus
_BackPPS:
MTSZ:
jmp _MonTroopSize
nop
_BackMTS:
MTAP:
jmp _MonTroopAP
db 90 90 90 90 90
_BackTAP:
MTA1:
jmp _MonTroopAP1
db 90 90
_BackTA1:
MSSZ:
jmp _MonShipSize
_BackMSS:
MRPS:
jmp _MonResProgress
_BackMRP:
MCPS:
jmp _MonConstProg
nop
_BackMCP:
MIPS:
jmp _MonImproProg
nop
_BackMIP:
//-----------------------------
MSTP:
jmp _MonSelTroop
nop
_BackMST:
MOAM:
jmp _MonAmmo
nop
nop
_BackMAM:
GDMS:
jmp _GodModeS
nop
_BackGMS:
MBUN:
jmp _MonBattleUnits
nop
_BackMBU:
GDM2:
jmp _GodMode2
nop
_BackGM2:
GDM3:
jmp _GodMode3
nop
_BackGM3:
GDM4:
jmp _GodMode4
nop
_BackGM4:
GDMD:
jmp _GodMode
_BackGMD:
GDM1:
jmp _GodMode1
nop
_BackGM1:
//-----------------------------
CHKP:
jmp _HackPoint
nop
_BackHPT:
CHKQ:
jmp _HackPointQ
nop
_BackHPQ:
CHKR:
jmp _HackPointR
_BackHPR:
CHKS:
jmp _HackPointS
_BackHPS:
CHKU:
jmp _HackPointU
_BackHPU:
CHKV:
jmp _HackPointV
_BackHPV:
CHKX:
jmp _HackPointX
_BackHPX:
CHKY:
jmp _HackPointY
_BackHPY:
//=========================================
// Script for Restoring Original Codes
[DISABLE]
MHPR:
// mov eax,[eax+0000010C]
db 8b 80 0c 01 00 00
MMMT:
// add [edi+00000534],esi
db 01 b7 34 05 00 00
MMMS:
// sub [esi+00000534],edx
db 29 96 34 05 00 00
MCDE:
// mov edx,[ebp+0C]
// mov eax,[edx+04]
db 8b 55 0c 8b 42 04
MSCR:
// mov eax,[edx+00000534]
db 8b 82 34 05 00 00
MAPC:
// mov [esi+14],eax
// pop esi
// pop ebp
db 89 46 14 5e 5d
MAPT:
// sub eax,edx
// mov [ecx+64],eax
db 2b c2 89 41 64
MAPA:
// sub eax,edx
// mov [ecx+14],eax
db 2b c2 89 41 14
MSPE:
// mov eax,[ebp-20]
// sub eax,[esi+28]
db 8b 45 e0 2b 46 28
MPPO:
// mov [esi+0C],edx
// mov ecx,[esi+14]
db 89 56 0c 8b 4e 14
MMCA:
// mov eax,[esi+08]
// test eax,eax
db 8b 46 08 85 c0
MAAP:
// mov [ecx+14],00000000
db c7 41 14 00 00 00 00
MART:
// mov ecx,[esi]
// cmp dword ptr [ecx+2C],00
db 8b 0e 83 79 2c 00
MTAN:
// mov [esi+44],edx
// mov eax,[esi+38]
db 89 56 44 8b 46 38
MCAP:
// movss [esi+00000090],xmm0
db f3 0f 11 86 90 00 00 00
MPGH:
// mov edi,eax
// cmp [esi+08],edi
db 8b f8 39 7e 08
MPPS:
// mov esi,ecx
// mov eax,[esi+04]
db 8b f1 8b 46 04
MTSZ:
// mov [esi+44],ecx
// mov edx,[eax+70]
db 89 4e 44 8b 50 70
MTAP:
// mov [ecx+00000134],FFFFFFFF
db c7 81 34 01 00 00 ff ff ff ff
MTA1:
// mov [ecx+64],00000000
db c7 41 64 00 00 00 00
MSSZ:
// mov eax,[eax]
// mov [esi+44],eax
db 8b 00 89 46 44
MRPS:
// add edx,eax
// cmp edx,[ecx+20]
db 03 d0 3b 51 20
MCPS:
// mov eax,[esi+0C]
// cmp eax,[esi+10]
db 8b 46 0c 3b 46 10
MIPS:
// mov eax,[esi+0C]
// cmp eax,[esi+10]
db 8b 46 0c 3b 46 10
//---------------------------
MSTP:
// mov [esi+000008BC],edi
db 89 be bc 08 00 00
MOAM:
// subss xmm0,xmm1
// comiss xmm1,xmm0
db f3 0f 5c c1 0f 2f c8
GDMS:
// mov edi,[esi+00000708]
db 8b be 08 07 00 00
MBUN:
// mov edx,[edi+00000704]
db 8b 97 04 07 00 00
GDM2:
// mov [esi+00000708],ecx
db 89 8e 08 07 00 00
GDM3:
// mov [ecx+00000708],eax
db 89 81 08 07 00 00
GDM4:
// fstp dword ptr [esi+00000B0C]
db d9 9e 0c 0b 00 00
GDMD:
// push ebp
// mov ebp,esp
// push ebx
// push esi
db 55 8b ec 53 56
GDM1:
// push ebp
// mov ebp,esp
// sub esp,5C
db 55 8b ec 83 ec 5c
//---------------------------
CHKP:
// mov ecx,[ebp+10]
// mov edi,[ebp+08]
db 8b 4d 10 8b 7d 08
CHKQ:
// mov ecx,[ebp+10]
// mov edi,[ebp+08]
db 8b 4d 10 8b 7d 08
CHKR:
// push ebp
// mov ebp,[esp+10]
db 55 8b 6c 24 10
CHKS:
// push ebp
// mov ebp,[esp+10]
db 55 8b 6c 24 10
CHKU:
// push ebp
// mov ebp,[esp+10]
db 55 8b 6c 24 10
CHKV:
// push edi
// mov edi,[esp+14]
db 57 8b 7c 24 14
CHKX:
// push edi
// mov edi,[esp+14]
db 57 8b 7c 24 14
CHKY:
// push edi
// mov edi,[esp+14]
db 57 8b 7c 24 14
//=========================================
// Unregistering Symbols
unregistersymbol(MyCode)
unregistersymbol(pMoney)
unregistersymbol(pPlayer)
unregistersymbol(pCommander)
unregistersymbol(pProvince)
unregistersymbol(pTroop)
unregistersymbol(pCommon)
unregistersymbol(iPlayerID)
unregistersymbol(iEnableMMM)
unregistersymbol(iEnableMAP)
unregistersymbol(iEnableMTS)
unregistersymbol(iEnableMBU)
unregistersymbol(iEnableMIA)
unregistersymbol(iEnableMPP)
unregistersymbol(iEnableMMA)
unregistersymbol(iEnableMAA)
unregistersymbol(iEnableMAR)
unregistersymbol(iEnableMTA)
unregistersymbol(iEnableMPG)
unregistersymbol(iEnablePPS)
unregistersymbol(iEnableGMD)
unregistersymbol(iEnableMAM)
unregistersymbol(iEnableMRP)
unregistersymbol(iEnableMCP)
unregistersymbol(iEnableCRC)
unregistersymbol(iMinMoney)
unregistersymbol(iMinAttrib)
unregistersymbol(iMinPO)
unregistersymbol(iMinSP)
unregistersymbol(iMaxAge)
unregistersymbol(iCounter)
unregistersymbol(iCounterQ)
unregistersymbol(iCounterR)
unregistersymbol(iCounterS)
unregistersymbol(iCounterU)
unregistersymbol(iCounterV)
unregistersymbol(iCounterX)
unregistersymbol(iCounterY)
unregistersymbol(iCounterZ)
unregistersymbol(iDate)
//=========================================
dealloc(MyCode)
//============= Scripts End ===============
// ****************************************
// NOTES
// ****************************************
{
}
16
"Enable/Disable Minimum Money ================>"
0:Disabled
1:Enabled
008000
4 Bytes
iEnableMMM
Set Value
17
36
1
0
Set Value
17
35
0
1
19
"Minimum Money Value ==>"
0080FF
4 Bytes
iMinMoney
24
"Enable/Disable Free Action Points ==============>"
0:Disabled
1:Enabled
008000
4 Bytes
iEnableMAP
Set Value
17
36
1
0
Set Value
17
35
0
1
25
"Enable/Disable Recover Troop Size ============>"
0:Disabled
1:Enabled
008000
4 Bytes
iEnableMTS
Set Value
17
36
1
0
Set Value
17
35
0
1
31
"Enable/Disable Blessed Units =================>"
0:Disabled
1:Enabled
008000
4 Bytes
iEnableMBU
Set Value
17
33
1
0
Set Value
17
34
0
1
108
"Minimum Attribute Value ==>"
0080FF
4 Bytes
iMinAttrib
93
"Enable/Disable Maximum Age =================>"
0:Disabled
1:Enabled
008000
4 Bytes
iEnableMIA
99
"Maximum Age Value ==>"
0080FF
4 Bytes
iMaxAge
38
"Enable/Disable Minimum Public Order ===========>"
0:Disabled
1:Enabled
008000
4 Bytes
iEnableMPP
Set Value
17
36
1
0
Set Value
17
35
0
1
109
"Miniimum Public Order ==>"
0080FF
4 Bytes
iMinPO
40
"Enable/Disable Mercenaries Available ===========>"
0:Disabled
1:Enabled
008000
4 Bytes
iEnableMMA
Set Value
17
36
1
0
Set Value
17
35
0
1
41
"Enable/Disable Agent Can Act Again ============>"
0:Disabled
1:Enabled
008000
4 Bytes
iEnableMAA
Set Value
17
36
1
0
Set Value
17
35
0
1
44
"Enable/Disable Army Reinforcement in 1 Turn =====>"
0:Disabled
1:Enabled
008000
4 Bytes
iEnableMAR
Set Value
17
36
1
0
Set Value
17
35
0
1
48
"Enable/Disable Protection From Attrition ==========>"
0:Disabled
1:Enabled
008000
4 Bytes
iEnableMTA
Set Value
17
36
1
0
Set Value
17
35
0
1
51
"Enable/Disable Province Growth in 1 Turn ========>"
0:Disabled
1:Enabled
008000
4 Bytes
iEnableMPG
Set Value
17
33
1
0
Set Value
17
34
0
1
52
"Enable/Disable Minimum Province Pop Surplus ====>"
0:Disabled
1:Enabled
008000
4 Bytes
iEnablePPS
Set Value
17
33
1
0
Set Value
17
34
0
1
63
"Enable/Disable God Mode ====================>"
0:Disabled
1:Enabled
008000
4 Bytes
iEnableGMD
Set Value
17
97
1
0
Set Value
17
96
0
1
79
"Enable/Disable Unlimited Ammo ================>"
0:Disabled
1:Enabled
008000
4 Bytes
iEnableMAM
Set Value
17
97
1
0
Set Value
17
96
0
1
94
"Enable/Disable Research in 1 Turn =============>"
0:Disabled
1:Enabled
008000
4 Bytes
iEnableMRP
Set Value
17
36
1
0
Set Value
17
35
0
1
98
"Enable/Disable Construction in 1 Turn ===========>"
0:Disabled
1:Enabled
008000
4 Bytes
iEnableMCP
Set Value
17
36
1
0
Set Value
17
35
0
1
114
"============ SCRIPT FACTION ID ==============>"
FF00FF
4 Bytes
iPlayerID
115
"=========== GAME FACTION NAME =============>"
FF00FF
String
10
0
1
pPlayer
4
6F0
100
"================= Army Info =================="
1
000080
4 Bytes
pCommander
101
"Selected Army Current XP ==>"
0000FF
4 Bytes
pCommander
D0
0
1E0
102
"Selected Army Tradition Points ==>"
0000FF
4 Bytes
pCommander
C4
0
1E0
103
"============= General/Agent Info =============="
1
000080
4 Bytes
pCommander
104
"Selected Commander Skill Points XP ==>"
0000FF
4 Bytes
pCommander
458
105
"Selected Commander Current XP ==>"
0000FF
4 Bytes
pCommander
464
106
"Selected Commander Ambition ==>"
0000FF
4 Bytes
pCommander
530
107
"Selected Commander Gravitas ==>"
0000FF
4 Bytes
pCommander
534
110
"Selected Commander Base Cunning ==>"
0000FF
4 Bytes
pCommander
34C
111
"Selected Commander Base Zeal ==>"
0000FF
4 Bytes
pCommander
350
112
"Selected Commander Base Authority ==>"
0000FF
4 Bytes
pCommander
354
===========================================
Game Title : Rome II Total War - Emperor Edition
Game Version : 2.0.0 (14116)
Game Sponsor : fennix102
Proces Name : Rome2.exe
Script Version: 1.1
CE Version : 6.4
Release date : 02-Oct-2014
Author : Recifense
History:
16-Sep-14: First Release (13903)
02-Oct-14: Release for version 2.0.0 (14116) Steam (+fix GM)
Features:
TBS ===>
- Minimum Money [1]
- Unlimited Action Points [2]
- Agent
- Troop
- Army Commander
- Recover Troop Size on Move [3]
- Blessed Units: [4]
- Cunning (10)
- Zeal (10)
- Authority (10)
- Ambition (10)
- Gravitas (10)
- Max. Age (40) (NEW)
- Province Minimum PO (10) [5]
- Restore Mercenaries Available [6]
- Unit Can Act again: [7]
- Agent
- Army Commander
- Army Reinforcement in 1 Turn [8] *Changed Approach
- Province Growth in 1 turn [9]
- Province Minimum PS (10) [A]
RTS ===>
- God Mode: [B]
- Ground Battle
- Sea Battle
- Unlimited Ammo [C]
- Research in 1 Turn [D]
- Const/Improv in 1 Turn (NEW) [E]
- pointers [F]
===========================================
[1] The minimum money value is 64000 by default (when money value is changed);
[2] Army/Agents can move freely;
[3] Size of each troop will be set to maximum (when moving);
[4] It will affect the selected agent/commander; **
[5] It will work during turn changing;
[6] You can hire as many as you want;
[7] Agents can act freely;
[8] That's it;
[9] Player's Provinces will advance one level every turn;
[A] The selected province population surplus will be set to minimum;
[B] For troops and ships;
[C] For troops;
[D] That's it;
[E] It also includes improvement;
[F] Used on the table;
(**) You need to open the agent/general details window.
===========================================
[USAGE - RTS/TBS]
1) Run CE;
2) Run Game;
3) ALT-TAB back to CE and select the process ROME2.EXE;
4) Ativate the first script;
5) Now activate the second script;
-------------
[USAGE - TBS] => For Campaign:
6) Start or load a game;
7) Now enable the TBS cheats that you want to use by using the HOTKEYS or going to CE and changing each value to "Enabled" by double-clicking on its value;
8) Now play on!
------------
[USAGE - RTS] => For Local Skirmish Battles:
6) Start a skirmish battle;
7) Now enable the RTS cheats (Ammo and GM) by using the HOTKEYS or going to CE and changing each value to "Enabled" by double-clicking on its value;
8) Now Battle on!
===========================================
HOTKEYS:
CTRL+Home = Enable all cheats (but Blessed/Growth/Surplus/RTS)
CTRL+End = Disable all cheats (but Blessed/Growth/Surplus/RTS)
-------------
CTRL+PageUp = Enable Blassed/Growth/Surplus cheats;
CTRL+PageDown = Disable Blassed/Growth/Surplus cheats;
-------------
CTRL+Insert = Enable Maximum Age cheat;
CTRL+Delete = Disable Maximum Age cheat;
-------------
CTRL+NUM1 = Enable GM/Ammo cheats;
CTRL+NUM0 = Disable GM/Ammo cheats;
-------------
[NOTE] Go to Menu before using the HOTKEYS;
[NOTE] You can modify all Hotkeys;
===========================================
[IMPORTANT]
Save the game before unsing the table, so you can always go back if you did not like the result.
===========================================
[New Improvement on my Script Template]
- You can now change the default values easily. Just look for a block like the following one, and change the constant values to the ones you prefer.
//=========================================
// Constants used in the script (that can be changed by the user)
define(ctMMON,#64000) // Minimum Money
define(ctMATT,#10) // Minimum Attributes
define(ctMAGE,#40) // Maximum Age
define(ctPMPO,#10) // Province minimum Public Order
define(ctPMSP,#10) // Province minimum Surplus
===========================================
[ADVICE]
When you can,save the game before starting using table/cheat. So you can always come back in case you don't like the result.
===========================================
[INFO]
Tested on Win 7 64bits
===========================================
Happy gaming!