229
"[X] <== Imperator Rome v1.1.0 Steam Script v1.4 AOB"
FF0000
Auto Assembler Script
{
===========================================
Game Title : Imperator Rome
Game Version : 1.1.0
Game Sponsor : MB
Process Name : imperator.exe
Relevant Info : 64bits/RTS
Script Version: 1.4 (AOB)
CE Version : 6.7
Release date : 27-Jun-2019
Author : Recifense
History:
28-Apr-2019: Preliminary Release (s1.0)
29-Apr-2019: Preliminary Release (s1.1)
30-Apr-2019: Final Release (gv1.0.0)(s1.2-AOB)
02-May-2019: Release for version 1.0.1 (s1.3)
27-Jun-2019: Release for version 1.1.0 (s1.4)
Features:
- Minimum Treasury
- Minimum Powers
- Movement in 1 day
- Troop Production in 1 Day
- Construction in 1 Day
- God Mode (added more scenarios)(s1.1)
- No unrest (on selecting city) (s1.1)
- Characters minimum Loyalty (80)(s1.1)
- Characters full Health (s1.1)
- Troop minimum morale (sel army)(s1.1)
- Recover Troop Size (sel army) (s1.1)
- God Mode for Garrison (Cities) (s1.1)
- Quick Siege Phase (x5) (s1.1)
- Maximum War Exhaustion (1.0) (s1.2)
- Max Aggressive Expansion (1.0) (s1.2)
- Some Pointers
===========================================
}
//=========================================
// Checking CE version
{$lua}
if(getCEVersion() < 6.7) then
ShowMessage('Warning. CE version should be 6.7 or above')
end
{$asm}
//=========================================
// Checking Selected Process
{$lua}
if(process == nil) then
ShowMessage('No process was selected')
elseif (string.upper(process) ~= string.upper("imperator.exe")) then
ShowMessage('Warning. Expected Process = imperator.exe')
end
{$asm}
//=========================================
// Definitions
define(LUDO,"imperator.exe")
{
define(MOHP,imperator.exe+00302b51) //##
define(MOAM,imperator.exe+00dca1b2) //=#
define(MOTP,imperator.exe+00d87d2f) //#=
define(MOCP,imperator.exe+00d87c1e) //#=
define(GDMD,imperator.exe+00dc5786) //## 2 1
define(GMD2,imperator.exe+00d70c24) //#X
define(MOSC,imperator.exe+00d0d2da) //=#
define(MOSA,imperator.exe+00dbc8d7) //##
define(MSCY,imperator.exe+00eb73ad) //##
define(MOCL,imperator.exe+00d01705) //#X
define(MOTM,imperator.exe+00ce051a) //##
define(GMD3,imperator.exe+00d8d98c) //##
define(MOSP,imperator.exe+00d71bc6) //=#
define(GMD4,imperator.exe+00ce05e5) //#X
define(MOWE,imperator.exe+00ca603f) //##
}
//=========================================
// Constants used in the script (that can be changed)
define(ctCE67,(float)6.7)
define(ctMMON,#670000000) // Minimum Treasure
define(ctMMPW,#6700) // Minimum Power
//=========================================
[ENABLE]
//=========================================
//LuaCall(CheckVersion())
//=========================================
// Check if script is compatible to this game version
// If false the script will not be loaded
AOBScanModule(MOHP,$process,48 8b 88 88 05 00 00 48 03 cb 48 8b 5c 24 30 0f 98 c0 48 83 c4 20)
AOBScanModule(MOAM,$process,48 01 87 98 01 00 00 49 8b 45 08 48 8b af 68 01 00 00 8b 50 20 4c)
AOBScanModule(MOTP,$process,48 8b 47 10 48 39 47 08 0f 9d c0 84 c0 ?? ?? 48 8b 07 48 8b cf ff 50 48 3c 01 0f 85 ?? ?? ?? ?? 48 8d)
AOBScanModule(MOCP,$process,48 8b 47 10 48 39 47 08 0f 9d c0 84 c0 ?? ?? 48 8b 07 48 8b cf ff 50 48 3c 01 0f 85 ?? ?? ?? ?? 48 8b)
AOBScanModule(GDMD,$process,49 8b 57 20 48 2b d7 49 8b cf e8 ?? ?? ?? ?? 8b 7d 7f e9 ?? ?? ?? ?? ba)
AOBScanModule(GMD2,$process,48 2b d0 48 8b ce e8 ?? ?? ?? ?? 48 8b 46 28 41 b9 00 00 00 00 8b)
AOBScanModule(MOSC,$process,49 8b 96 90 02 00 00 48 8d 4d 70 e8 ?? ?? ?? ?? 90 4c 8b c0 b2 59)
AOBScanModule(MOSA,$process,41 3b 84 24 14 04 00 00 0f 8c ?? ?? ?? ?? 4c 8b 6d 7f 41 80 bc 24 48 01)
AOBScanModule(MSCY,$process,4c 8b 80 28 04 00 00 4c 89 02 4c 03 81 90 00 00 00 4c 89 02 48 8b 15)
AOBScanModule(MOCL,$process,44 8b 81 88 00 00 00 41 8b c0 25 ff ff ff 00 3b 42 20 ?? ?? 8b c8)
AOBScanModule(MOTM,$process,48 8b 59 28 48 8b fa 48 8d 54 24 30 e8 ?? ?? ?? ?? 48 8b 4c 24 30)
AOBScanModule(GMD3,$process,48 89 86 20 04 00 00 48 8b 5c 24 30 48 8b 6c 24 40 48 8b 74 24 48)
AOBScanModule(MOSP,$process,ff 46 38 33 d2 4c 89 a4 24 90 00 00 00 48 8b ce 4c 89 ac 24 88 00)
AOBScanModule(GMD4,$process,48 8b 51 20 48 8b d9 48 39 91 c8 01 00 00 ?? ?? 48 89 91 c8 01 00 00)
AOBScanModule(MOWE,$process,48 01 91 a0 05 00 00 48 8b d9 48 83 b9 a0 05 00 00 00 ?? ?? 48 c7 81)
//=========================================
alloc(MyCode,4096,$process)
//=========================================
// Declaration section
label(_MonHumanPlayer)
label(_BackMHP)
label(_MonArmyMP)
label(_BackMAM)
label(_MonTroopProd)
label(_BackMTP)
label(_MonConstProg)
label(_BackMCP)
label(_GodMode)
label(_BackGMD)
label(_GodMode2)
label(_BackGM2)
label(_MonSelChar)
label(_BackMSC)
label(_MonSelArmy)
label(_BackMSA)
label(_MonSelCity)
label(_BackSCY)
label(_MonCharLoyalty)
label(_BackMCL)
label(_MonTroopMorale)
label(_BackMTM)
label(_GodMode3)
label(_BackGM3)
label(_MonSiegeProg)
label(_BackMSP)
label(_GodMode4)
label(_BackGM4)
label(_MonWarExhaustion)
label(_BackMWE)
label(iEnableMPT)
label(iEnableMPP)
label(iEnableMAM)
label(iEnableMTP)
label(iEnableMCP)
label(iEnableGMD)
label(iEnableMCU)
label(iEnableMCL)
label(iEnableMCH)
label(iEnableMTM)
label(iEnableMTS)
label(iEnableMSP)
label(iEnableMWE)
label(iEnableMAE)
label(iPlayerID)
label(pPlayer)
label(pImperator)
label(pChar)
label(pArmy)
label(pCity)
label(pSiege)
label(iCount)
label(iCount1)
//=========================================
// Registering Symbols
registersymbol(MyCode)
registersymbol(iEnableMPT)
registersymbol(iEnableMPP)
registersymbol(iEnableMAM)
registersymbol(iEnableMTP)
registersymbol(iEnableMCP)
registersymbol(iEnableGMD)
registersymbol(iEnableMCU)
registersymbol(iEnableMCL)
registersymbol(iEnableMCH)
registersymbol(iEnableMTM)
registersymbol(iEnableMTS)
registersymbol(iEnableMSP)
registersymbol(iEnableMWE)
registersymbol(iEnableMAE)
registersymbol(iPlayerID)
registersymbol(pPlayer)
registersymbol(pImperator)
registersymbol(pChar)
registersymbol(pArmy)
registersymbol(pCity)
registersymbol(pSiege)
registersymbol(MOHP)
registersymbol(MOAM)
registersymbol(MOTP)
registersymbol(MOCP)
registersymbol(GDMD)
registersymbol(GMD2)
registersymbol(MOSC)
registersymbol(MOSA)
registersymbol(MSCY)
registersymbol(MOCL)
registersymbol(MOTM)
registersymbol(GMD3)
registersymbol(MOSP)
registersymbol(GMD4)
registersymbol(MOWE)
registersymbol(iCount)
registersymbol(iCount1)
//=========================================
MyCode:
//========================================= v110 *
// All the time
// RDI is free
_MonHumanPlayer:
cmp [pPlayer],rax
je _MonHP0I
mov [pPlayer],rax
inc dword ptr [iCount1]
_MonHP0I:
mov ecx,[rax+18]
cmp [iPlayerID],ecx
je _MonHP0Z
mov [iPlayerID],ecx
inc dword ptr [iCount]
_MonHP0Z:
cmp dword ptr [iEnableMPT],0 // Treasure
je _MonHP00 // Jump if feature is disabled
mov rcx,ctMMON
cmp [rax+00000588],rcx
jns _MonHP00
mov [rax+00000588],rcx
_MonHP00:
cmp dword ptr [iEnableMWE],0 // War Exhaustion
je _MonHP01 // Jump if feature is disabled
mov rcx,#10000
cmp [rax+000005a0],rcx
js _MonHP01
mov [rax+000005a0],rcx
_MonHP01:
cmp dword ptr [iEnableMAE],0 // Aggressive Expansion
je _MonHP02 // Jump if feature is disabled
mov rcx,#10000
cmp [rax+000005a8],rcx
js _MonHP02
mov [rax+000005a8],rcx
_MonHP02:
cmp dword ptr [iEnableMPP],0 // Powers
je _ExitMHP // Jump if feature is disabled
mov ecx,ctMMPW
mov edi,[rax+00000570]
cmp edi,ecx
cmovs edi,ecx
mov [rax+00000570],edi
mov edi,[rax+00000574]
cmp edi,ecx
cmovs edi,ecx
mov [rax+00000574],edi
mov edi,[rax+00000578]
cmp edi,ecx
cmovs edi,ecx
mov [rax+00000578],edi
mov edi,[rax+0000057c]
cmp edi,ecx
cmovs edi,ecx
mov [rax+0000057c],edi
_ExitMHP:
mov rcx,[rax+00000588] // Original code (get T)
jmp _BackMHP // Back to main code
//========================================= v110 *
// When an army/fleet is moving
// RBX = Needed Val
_MonArmyMP:
mov [pRCX],rcx
cmp dword ptr [iEnableMAM],0 // Movement
je _ExitMAM // Jump if feature is disabled
mov ecx,[rdi+00000154]
cmp ecx,[iPlayerID]
jne _ExitMAM
cmp [rdi+00000198],rbx
jns _ExitMAM
mov [rdi+00000198],rbx
_ExitMAM:
mov rcx,[pRCX]
add [rdi+00000198],rax // Original code (upd prog)
jmp _BackMAM // Back to main code
//========================================= v101 *
// When producing troops
_MonTroopProd:
cmp dword ptr [iEnableMTP],0 // Prod Prog
je _ExitMTP // Jump if feature is disabled
mov eax,[rdi+20]
cmp eax,[iPlayerID]
jne _ExitMTP
mov rax,[rdi+10]
cmp [rdi+08],rax
jns _ExitMTP
mov [rdi+08],rax
_ExitMTP:
mov rax,[rdi+10] // Original code
cmp [rdi+08],rax // Original code (chk prog)
jmp _BackMTP // Back to main code
//========================================= v101 # ok
// When constructing in cities
// RBX = City
_MonConstProg:
cmp dword ptr [iEnableMCP],0 // Prod Prog
je _ExitMCP // Jump if feature is disabled
mov eax,[rbx+000001c8]
cmp eax,[iPlayerID]
jne _ExitMCP
mov rax,[rdi+10]
cmp [rdi+08],rax
jns _ExitMCP
mov [rdi+08],rax
_ExitMCP:
mov rax,[rdi+10] // Original code
cmp [rdi+08],rax // Original code (chk prog)
jmp _BackMCP // Back to main code
//========================================= v110 *
// When decreasing troop size
_GodMode:
cmp dword ptr [iEnableGMD],0 // Prod Prog
je _ExitGMD // Jump if feature is disabled
mov edx,[r15+000001c0]
cmp edx,[iPlayerID]
jne _ExitGMD
mov rdx,#100000
mov [r15+20],rdx
xor rdi,rdi
_ExitGMD:
mov rdx,[r15+20] // Original code (get size)
sub rdx,rdi // Original code
jmp _BackGMD // Back to main code
//========================================= v110 X
// When decreasing troop size (siege assault)
_GodMode2:
cmp dword ptr [iEnableGMD],0 // Prod Prog
je _ExitGM2 // Jump if feature is disabled
mov ecx,[rsi+000001c0]
cmp ecx,[iPlayerID]
jne _ExitGM2
mov rdx,#100000
xor rax,rax
mov rbp,rax
_ExitGM2:
sub rdx,rax // Original code (upd size)
mov rcx,rsi // Original code
jmp _BackGM2 // Back to main code
//========================================= v110 *
// When looking at a character detail
_MonSelChar:
mov [pChar],r14
_ExitMSC:
mov rdx,[r14+00000290] // Original code (get W)
jmp _BackMSC // Back to main code
//========================================= v110 *
// When an army is selected
_MonSelArmy:
mov [pArmy],r12
_ExitMSA:
cmp eax,[r12+00000414] // Original code (get #T)
jmp _BackMSA // Back to main code
//========================================= v110 *
// When a city is selected
_MonSelCity:
mov [pCity],rax
mov [pCity1],rcx
cmp dword ptr [iEnableMCU],0 // City Unrest
je _ExitSCY // Jump if feature is disabled
mov r8d,[rax+000001c8]
cmp r8d,[iPlayerID]
jne _ExitSCY
xor r8,r8
mov [rax+00000428],r8
mov [rcx+00000090],r8
_ExitSCY:
mov r8,[rax+00000428] // Original code (get U)
jmp _BackSCY // Back to main code
//========================================= v110 *
// All the time (Minimum Loyalty = 80)
// RAX is free
_MonCharLoyalty:
mov eax,[rcx+00000088]
cmp eax,[iPlayerID]
jne _ExitMCL
cmp dword ptr [iEnableMCL],0 // Char Loyalty
je _MonCL01 // Jump if feature is disabled
mov rax,#8000000
cmp [rcx+00000268],rax
jns _MonCL01
mov [rcx+00000268],rax
_MonCL01:
cmp dword ptr [iEnableMCH],0 // Char Health
je _ExitMCL // Jump if feature is disabled
mov rax,#10000000
mov [rcx+00000288],rax
_ExitMCL:
mov r8d,[rcx+00000088] // Original code (get oi)
jmp _BackMCL // Back to main code
//========================================= v110 #
// When an army is selected
_MonTroopMorale:
mov ebx,[rcx+000001c0]
cmp ebx,[iPlayerID]
jne _ExitMTM
cmp dword ptr [iEnableMTM],0 // Prod Prog
je _MonTM00 // Jump if feature is disabled
mov rbx,#300000
cmp [rcx+28],rbx
jns _MonTM00
mov [rcx+28],rbx
_MonTM00:
cmp dword ptr [iEnableMTS],0 // Prod Prog
je _ExitMTM // Jump if feature is disabled
mov rbx,#100000
cmp [rcx+20],rbx
jns _ExitMTM
mov [rcx+20],rbx
_ExitMTM:
mov rbx,[rcx+28] // Original code (get morale)
mov rdi,rdx // Original code
jmp _BackMTM // Back to main code
//========================================= v110 *
// When decreasing Garrison (City under siege)
// RBX is free
_GodMode3:
cmp dword ptr [iEnableGMD],0 // Prod Prog
je _ExitGM3 // Jump if feature is disabled
mov ebx,[rsi+000001c8]
cmp ebx,[iPlayerID]
jne _ExitGM3
cmp rax,[rsi+00000420]
jns _ExitGM3
mov rax,[rsi+00000420]
_ExitGM3:
mov [rsi+00000420],rax // Original code (upd size)
jmp _BackGM3 // Back to main code
//========================================= v110 *
// When a siege is ongoing (Phase Prog) (x5)
_MonSiegeProg:
cmp dword ptr [iEnableMSP],0 // Phase Prog
je _ExitMSP // Jump if feature is disabled
mov edx,[rsi+58]
cmp edx,ffffffff
jne _MonSP00
mov rdx,[rsi+00000088]
test rdx,rdx
jz _ExitMSP
cmp rdx,[rsi+00000090]
je _ExitMSP
mov edx,[rdx]
_MonSP00:
cmp edx,[iPlayerID]
jne _ExitMSP
inc [rsi+38]
inc [rsi+38]
inc [rsi+38]
inc [rsi+38]
mov [pSiege],rsi
_ExitMSP:
inc [rsi+38] // Original code (upd prog)
xor edx,edx // Original code
jmp _BackMSP // Back to main code
//========================================= v110 X
// During armies battle
_GodMode4:
cmp dword ptr [iEnableGMD],0 // Prod Prog
je _ExitGM4 // Jump if feature is disabled
mov edx,[rcx+000001c0]
cmp edx,[iPlayerID]
jne _ExitGM4
mov rdx,#100000
mov [rcx+20],rdx
xor rdx,rdx
mov [rcx+000001C8],rdx
mov [rcx+000001D0],rdx
_ExitGM4:
mov rdx,[rcx+20] // Original code (get cHP)
mov rbx,rcx // Original code
jmp _BackGM4 // Back to main code
//========================================= v110 *
// When war exhaustion is updated
_MonWarExhaustion:
add [rcx+000005A0],rdx // Original code
cmp dword ptr [iEnableMWE],0 // War Exaustion
je _ExitMWE // Jump if feature is disabled
cmp rcx,[pPlayer]
jne _ExitMWE
mov rax,#100000
cmp [rcx+000005A0],rax
js _ExitMWE
mov [rcx+000005A0],rax
_ExitMWE:
jmp _BackMWE // Back to main code
//=========================================
align 10,'='
//=========================================
db '===============================>'
db 'CE6.7 Script by Recifense 190627'
//=========================================
// Variables
iEnableMPT:
dd 0
iEnableMPP:
dd 0
iEnableMAM:
dd 0
iEnableMTP:
dd 0
iEnableMCP:
dd 0
iEnableGMD:
dd 0
iEnableMCU:
dd 0
iEnableMCL:
dd 0
iEnableMCH:
dd 0
iEnableMTM:
dd 0
iEnableMTS:
dd 0
iEnableMSP:
dd 0
iEnableMWE:
dd 0
iEnableMAE:
dd 0
dd 0
iPlayerID:
dd #9999
pPlayer:
dq 0
pImperator:
dq 0
pChar:
dq 0
pArmy:
dq 0
pCity:
dq 0
pCity1:
dq 0
pSiege:
dq 0
pRCX:
dq 0
iCount:
dd 0
iCount1:
dd 0
//=========================================
// Hacking Points
MOHP:
jmp _MonHumanPlayer
nop
nop
_BackMHP:
MOAM:
jmp _MonArmyMP
nop
nop
_BackMAM:
MOTP:
jmp _MonTroopProd
nop
nop
nop
_BackMTP:
MOCP:
jmp _MonConstProg
nop
nop
nop
_BackMCP:
GDMD:
jmp _GodMode
nop
nop
_BackGMD:
GMD2:
jmp _GodMode2
nop
_BackGM2:
MOSC:
jmp _MonSelChar
nop
nop
_BackMSC:
MOSA:
jmp _MonSelArmy
nop
nop
nop
_BackMSA:
MSCY:
jmp _MonSelCity
nop
nop
_BackSCY:
MOCL:
jmp _MonCharLoyalty
nop
nop
_BackMCL:
MOTM:
jmp _MonTroopMorale
nop
nop
_BackMTM:
GMD3:
jmp _GodMode3
nop
nop
_BackGM3:
MOSP:
jmp _MonSiegeProg
_BackMSP:
GMD4:
jmp _GodMode4
nop
nop
_BackGM4:
MOWE:
jmp _MonWarExhaustion
nop
nop
_BackMWE:
//=========================================
// Script for Restoring Original Codes
[DISABLE]
MOHP:
// mov rcx,[rax+00000588]
db 48 8b 88 88 05 00 00
MOAM:
// add [rdi+00000198],rax
db 48 01 87 98 01 00 00
MOTP:
// mov rax,[rdi+10]
// cmp [rdi+08],rax
db 48 8b 47 10 48 39 47 08
MOCP:
// mov rax,[rdi+10]
// cmp [rdi+08],rax
db 48 8b 47 10 48 39 47 08
GDMD:
// mov rdx,[r15+20]
// sub rdx,rdi
db 49 8b 57 20 48 2b d7
GMD2:
// sub rdx,rax
// mov rcx,rsi
db 48 2b d0 48 8b ce
MOSC:
// mov rdx,[r14+00000290]
db 49 8b 96 90 02 00 00
MOSA:
// cmp eax,[r12+00000414]
db 41 3b 84 24 14 04 00 00
MSCY:
// mov r8,[rax+00000428]
db 4c 8b 80 28 04 00 00
MOCL:
// mov r8d,[rcx+00000088]
db 44 8b 81 88 00 00 00
MOTM:
// mov rbx,[rcx+28]
// mov rdi,rdx
db 48 8b 59 28 48 8b fa
GMD3:
// mov [rsi+00000420],rax
db 48 89 86 20 04 00 00
MOSP:
// inc [rsi+38]
// xor edx,edx
db ff 46 38 33 d2
GMD4:
// mov rdx,[rcx+20]
// mov rbx,rcx
db 48 8b 51 20 48 8b d9
MOWE:
// add [rcx+000005A0],rdx
db 48 01 91 a0 05 00 00
//=========================================
// Unregistering Symbols
unregistersymbol(MyCode)
unregistersymbol(iEnableMPT)
unregistersymbol(iEnableMPP)
unregistersymbol(iEnableMAM)
unregistersymbol(iEnableMTP)
unregistersymbol(iEnableMCP)
unregistersymbol(iEnableGMD)
unregistersymbol(iEnableMCU)
unregistersymbol(iEnableMCL)
unregistersymbol(iEnableMCH)
unregistersymbol(iEnableMTM)
unregistersymbol(iEnableMTS)
unregistersymbol(iEnableMSP)
unregistersymbol(iEnableMWE)
unregistersymbol(iEnableMAE)
unregistersymbol(iPlayerID)
unregistersymbol(pPlayer)
unregistersymbol(pImperator)
unregistersymbol(pChar)
unregistersymbol(pArmy)
unregistersymbol(pCity)
unregistersymbol(pSiege)
unregistersymbol(MOHP)
unregistersymbol(MOAM)
unregistersymbol(MOTP)
unregistersymbol(MOCP)
unregistersymbol(GDMD)
unregistersymbol(GMD2)
unregistersymbol(MOSC)
unregistersymbol(MOSA)
unregistersymbol(MSCY)
unregistersymbol(MOCL)
unregistersymbol(MOTM)
unregistersymbol(GMD3)
unregistersymbol(MOSP)
unregistersymbol(GMD4)
unregistersymbol(MOWE)
unregistersymbol(iCount)
unregistersymbol(iCount1)
//=========================================
dealloc(MyCode)
//============= Scripts End ===============
// ****************************************
// NOTES
// ****************************************
{
}
230
"[X] <== Minimum Treasury"
C08000
Auto Assembler Script
[enable]
{$LUA}
writeInteger("iEnableMPT",1)
memrec.Color=0x0004000
{$ASM}
[disable]
{$LUA}
writeInteger("iEnableMPT",0)
memrec.Color=0x0c08000
{$ASM}
231
"[X] <== Minimum Powers"
C08000
Auto Assembler Script
[enable]
{$LUA}
writeInteger("iEnableMPP",1)
memrec.Color=0x0004000
{$ASM}
[disable]
{$LUA}
writeInteger("iEnableMPP",0)
memrec.Color=0x0c08000
{$ASM}
232
"[X] <== Movement in 1 Day"
C08000
Auto Assembler Script
[enable]
{$LUA}
writeInteger("iEnableMAM",1)
memrec.Color=0x0004000
{$ASM}
[disable]
{$LUA}
writeInteger("iEnableMAM",0)
memrec.Color=0x0c08000
{$ASM}
233
"[X] <== Recruitment in 1 Day"
C08000
Auto Assembler Script
[enable]
{$LUA}
writeInteger("iEnableMTP",1)
memrec.Color=0x0004000
{$ASM}
[disable]
{$LUA}
writeInteger("iEnableMTP",0)
memrec.Color=0x0c08000
{$ASM}
234
"[X] <== Construction in 1 Day"
C08000
Auto Assembler Script
[enable]
{$LUA}
writeInteger("iEnableMCP",1)
memrec.Color=0x0004000
{$ASM}
[disable]
{$LUA}
writeInteger("iEnableMCP",0)
memrec.Color=0x0c08000
{$ASM}
235
"[X] <== God Mode"
C08000
Auto Assembler Script
[enable]
{$LUA}
writeInteger("iEnableGMD",1)
memrec.Color=0x0004000
{$ASM}
[disable]
{$LUA}
writeInteger("iEnableGMD",0)
memrec.Color=0x0c08000
{$ASM}
45
"[X] <== Quick Siege/Occupation Progress"
C08000
Auto Assembler Script
[enable]
{$LUA}
writeInteger("iEnableMSP",1)
memrec.Color=0x0008000
{$ASM}
[disable]
{$LUA}
writeInteger("iEnableMSP",0)
memrec.Color=0x0c08000
{$ASM}
53
"[X] <== Troop Minimum Morale (On Selected Army)"
C08000
Auto Assembler Script
[enable]
{$LUA}
writeInteger("iEnableMTM",1)
memrec.Color=0x0008000
{$ASM}
[disable]
{$LUA}
writeInteger("iEnableMTM",0)
memrec.Color=0x0c08000
{$ASM}
46
"[X] <== Recover Troop Size (On Selected Army)"
C08000
Auto Assembler Script
[enable]
{$LUA}
writeInteger("iEnableMTS",1)
memrec.Color=0x0008000
{$ASM}
[disable]
{$LUA}
writeInteger("iEnableMTS",0)
memrec.Color=0x0c08000
{$ASM}
41
"[X] <== No unrest (for selected city)"
C08000
Auto Assembler Script
[enable]
{$LUA}
writeInteger("iEnableMCU",1)
memrec.Color=0x0008000
{$ASM}
[disable]
{$LUA}
writeInteger("iEnableMCU",0)
memrec.Color=0x0c08000
{$ASM}
42
"[X] <== Characters minimum Loyalty (all the time)"
C08000
Auto Assembler Script
[enable]
{$LUA}
writeInteger("iEnableMCL",1)
memrec.Color=0x0008000
{$ASM}
[disable]
{$LUA}
writeInteger("iEnableMCL",0)
memrec.Color=0x0c08000
{$ASM}
43
"[X] <== Characters Full Health (all the time)"
C08000
Auto Assembler Script
[enable]
{$LUA}
writeInteger("iEnableMCH",1)
memrec.Color=0x0008000
{$ASM}
[disable]
{$LUA}
writeInteger("iEnableMCH",0)
memrec.Color=0x0c08000
{$ASM}
56
"[X] <== Maximum War Exhaustion"
C08000
Auto Assembler Script
[enable]
{$LUA}
writeInteger("iEnableMWE",1)
memrec.Color=0x0008000
{$ASM}
[disable]
{$LUA}
writeInteger("iEnableMWE",0)
memrec.Color=0x0c08000
{$ASM}
58
"[X] <== Maximum Aggressive Expansion"
C08000
Auto Assembler Script
[enable]
{$LUA}
writeInteger("iEnableMAE",1)
memrec.Color=0x0008000
{$ASM}
[disable]
{$LUA}
writeInteger("iEnableMAE",0)
memrec.Color=0x0c08000
{$ASM}
17
"[X] <== Some pointers for the Player "
FF00FF
1
18
"Current Treasury (x100000) ==>"
0000FF
8 Bytes
pPlayer
588
19
"Current Military Power (x1) ==>"
0000FF
4 Bytes
pPlayer
570
20
"Current Civic Power (x1) ==>"
0000FF
4 Bytes
pPlayer
574
21
"Current Oratory Power (x1) ==>"
0000FF
4 Bytes
pPlayer
578
22
"Current Religious Power (x1) ==>"
0000FF
4 Bytes
pPlayer
57c
265
"Current Manpower (x100) ==>"
0000FF
8 Bytes
pPlayer
580
23
"Current Score (x100000) ==>"
0000FF
8 Bytes
pPlayer
218
243
"Current Pop Happiness (x100000) ==>"
0000FF
8 Bytes
pPlayer
220
244
"Current Stability (x100000) ==>"
0000FF
8 Bytes
pPlayer
590
57
"Current War Exhaustion (x100000) ==>"
0000FF
8 Bytes
pPlayer
5a0
59
"Current Aggressive Expansion (x1000) ==>"
0000FF
8 Bytes
pPlayer
5a8
24
"[X] <== Some pointers for last detailed Character (game pause) "
FF00FF
1
26
"Full Name (DONNOT CHANGE IT)"
4080FF
String
32
0
0
1
pChar
0
478
25
"Current Prominence (x100000) ==>"
0000FF
8 Bytes
pChar
30
27
"Current Loyalty (x100000) ==>"
0000FF
8 Bytes
pChar
268
28
"Current Popularity (x100000) ==>"
0000FF
8 Bytes
pChar
270
29
"Current Health (x100000) ==>"
0000FF
8 Bytes
pChar
288
30
"Current Wealth (x100000) ==>"
0000FF
8 Bytes
pChar
290
31
"[X] <== Attributes"
FF00FF
1
32
"Military Base Value (x1) ==>"
0000FF
4 Bytes
pChar
c8
33
"Civic Base Value (x1) ==>"
0000FF
4 Bytes
pChar
cc
34
"Oratory Base Value (x1) ==>"
0000FF
4 Bytes
pChar
d0
35
"Religious Base Value (x1) ==>"
0000FF
4 Bytes
pChar
d4
245
"[X] <== Traits"
FF00FF
1
246
"Number of Traits (DONNOT CHANGE IT)"
4080FF
4 Bytes
pChar
144
247
"Trait 01 ==> (could be copied from a char to another one)"
1
0000FF
8 Bytes
pChar
0
138
250
"Trait 01 Name (DONNOT CHANGE IT)"
4080FF
String
16
0
0
1
pChar
10
0
138
251
"Trait 02 ==>(could be copied from a char to another one)"
1
0000FF
8 Bytes
pChar
8
138
252
"Trait 02 Name (DONNOT CHANGE IT)"
4080FF
String
16
0
0
1
pChar
10
8
138
253
"Trait 03 ==>(could be copied from a char to another one)"
1
0000FF
8 Bytes
pChar
10
138
254
"Trait 03 Name (DONNOT CHANGE IT)"
4080FF
String
16
0
0
1
pChar
10
10
138
228
"[X] <== Table/Script Information"
0000FF
Auto Assembler Script
[enable]
define(test,LUDO)
{$LUA}
getMainForm().CommentButton.doClick()
{$ASM}
[disable]
Recifense
20190627
===========================================
Game Title : Imperator Rome
Game Version : 1.1.0
Game Sponsor : MB
Process Name : imperator.exe
Relevant Info : 64bits/RTS
Script Version: 1.4 (AOB)
CE Version : 6.7
Release date : 27-Jun-2019
Author : Recifense
History:
28-Apr-2019: Preliminary Release (s1.0)
29-Apr-2019: Preliminary Release (s1.1)
30-Apr-2019: Final Release (gv1.0.0)(s1.2-AOB)
02-May-2019: Release for version 1.0.1 (s1.3)
27-Jun-2019: Release for version 1.1.0 (s1.4)
Features:
- Minimum Treasury [1]
- Minimum Powers [2]
- Movement in 1 day [3]
- Troop Production in 1 Day [4]
- Construction in 1 Day [5]
- God Mode [6] (added more scenarios)(s1.1)
- No unrest (on selecting city) [7] (s1.1)
- Characters minimum Loyalty (80)[8] (s1.1)
- Characters full Health [9] (s1.1)
- Troop minimum morale (sel army)[A] (s1.1)
- Recover Troop Size (sel army) [B] (s1.1)
- God Mode for Garrison (Cities) [C] (s1.1)
- Quick Siege Phase (x5) [D] (s1.1)
- Maximum War Exhaustion (1.0) [E] (s1.2)
- Max Aggressive Expansion (1.0) [F] (s1.2)
- Some Pointers [G]
===========================================
[1] For Human Player Only (67000);
[2] For Human Player Only (6700);
[3] Human player's armies/fleet will move to adjacent city in 1 day;
[4] For Human Player Only;
[5] For Human Player Only;
[6] For Human Player's troops Only (Siege/Battle);
[7] Unrest will be 0 for selected human player's city;
[8] Human Player's Characters will not have loyalty under minimum (80);
[9] Human Player's Characters will have full health;
[A] Human player's troops' morale will be at least 3;
[B] Human player's troops' Size will be 1000;
[C] Human player's garrison will not decrease;
[D] Human player's siege phase/occupation will advance 5 days a day;
[E] For Human Player Only;
[F] For Human Player Only;
[G] Used at the table;
===========================================
[USAGE]
1) Run CE67;
2) Run Game;
3) Load the game process "imperator.exe" in CE;
4) Load this table and activate the main script;
5) Now Activate the script of each cheat you want to use;
6) Game On;
===========================================
[HOTKEYS]
- Not defined
===========================================
[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 10 64bits
===========================================
[INFO]
- Many thanks to MB for providing the game.
===========================================
Cheers!