4819
"[X] <== Imperator: Rome v1.0.0 - Main Script"
FF0000
Auto Assembler Script
{
===========================================
Game Title : Imperator: Rome
Game Version : 1.0.0 (KKAD)
Proces Name : imperator.exe
Script Version: 1.0
CE Version : 6.8.1
Release date : 2019-04-26
Author : CompactDisc
History:
2019-04-26: Release for version 1.0.0 (Steam)
Features:
- Minimum Gold
- Upgrade in 2 Days
- Construction in 1 Day
- Movement in 1 Day
- God Mode
- Morale
- Damage (x16)
- Siege
- Super Ruler
- Diplomacy (base) >= 70
- Martial (base) >= 70
- Stewardship (base) >= 70
- Intrigue (base) >= 70
- Learning (base) >= 70
- Fertility = 1
- Health = 9.9
- Prestige >= 100
- Piety >= 100
- Revolt Risk
- Technology Level (user defined => max = 8)
- Decadence
- Upgrade in 1 Day for Player's Vassals
- Construction in 1 Day for Player's Vassals
- Change Culture of a County
- Change Religion of a County
- Ajust Pointer to Perk[X]
- Minimum Army Troop Size (86) (new v8.0)
- Minimum Holding Troop Size (166) (new v8.0)
- Some pointers
===========================================
}
//=========================================
// Checking CE version
//=========================================
{$lua}
if(getCEVersion() < 6.8) then
ShowMessage('Warning. CE version should be 6.8 or above')
end
{$asm}
//=========================================
// Checking Selected Process
//=========================================
{$lua}
if(process == nil) then
ShowMessage('No process was selected')
elseif (process ~= "imperator.exe") then
ShowMessage('Warning. Expected Process = imperator.exe')
end
{$asm}
define(GetPlayer, "imperator.exe"+B06F1C)
define(GetTreasury, "imperator.exe"+B7B7F0)
//=========================================
[ENABLE]
//=========================================
assert(GetPlayer, 44 8B 41 44 41 8B C0 25 FF FF FF 00 3B 42)
assert(GetTreasury, 48 8B 81 48 06 00 00 48 89 02 48 8B C2 C3)
//=========================================
alloc(InitTableScript, $1000, "imperator.exe"+B7B7F0)
//=========================================
label(GetiPlayerID)
label(Exit_iPlayerID)
label(Return_iPlayerID)
label(GetpPlayer)
label(Exit_GetpPlayer)
label(Return_GetpPlayer)
label(iPlayerID)
label(pPlayer)
registersymbol(iPlayerID)
registersymbol(pPlayer)
InitTableScript:
GetiPlayerID:
mov r8d,[rcx+44] // original script
mov eax,r8d
mov [iPlayerID],eax // save iPlayerID
jmp Return_iPlayerID
Exit_iPlayerID: // unused piece of code atm
mov r8d,[rcx+44] // original script
mov eax,r8d
jmp Return_iPlayerID
GetpPlayer:
push rsi // free up register
mov rsi,[rcx+18] // rcx should be pPlayer
cmp rsi, [iPlayerID] // compare player ID's
pop rsi
jne Exit_GetpPlayer
mov [pPlayer], rcx // save pPlayer
Exit_GetpPlayer:
mov rax,[rcx+00000648]
jmp Return_GetpPlayer
//=========================================
// Variables
//=========================================
iPlayerID:
db 00 00 00 00 00 00 00 00
pPlayer:
db 00 00 00 00 00 00 00 00
//=========================================
// Hack points
//=========================================
GetPlayer:
jmp GetiPlayerID
Return_iPlayerID:
GetTreasury:
jmp GetpPlayer
nop
nop
Return_GetpPlayer:
//=========================================
[DISABLE]
//=========================================
GetPlayer:
// mov ecx,00000008
db 44 8B 41 44 41 8B C0
GetTreasury:
// mov rax,[rcx+00000648]
db 48 8B 81 48 06 00 00
unregistersymbol(iPlayerID)
unregistersymbol(pPlayer)
dealloc(InitTableScript)
{
// ORIGINAL CODE - INJECTION POINT: "imperator.exe"+B7B7F0
"imperator.exe"+B7B7E4: 41 5F - pop r15
"imperator.exe"+B7B7E6: 41 5E - pop r14
"imperator.exe"+B7B7E8: 5F - pop rdi
"imperator.exe"+B7B7E9: 5E - pop rsi
"imperator.exe"+B7B7EA: 5D - pop rbp
"imperator.exe"+B7B7EB: C3 - ret
"imperator.exe"+B7B7EC: CC - int 3
"imperator.exe"+B7B7ED: CC - int 3
"imperator.exe"+B7B7EE: CC - int 3
"imperator.exe"+B7B7EF: CC - int 3
// ---------- INJECTING HERE ----------
"imperator.exe"+B7B7F0: 48 8B 81 48 06 00 00 - mov rax,[rcx+00000648]
// ---------- DONE INJECTING ----------
"imperator.exe"+B7B7F7: 48 89 02 - mov [rdx],rax
"imperator.exe"+B7B7FA: 48 8B C2 - mov rax,rdx
"imperator.exe"+B7B7FD: C3 - ret
"imperator.exe"+B7B7FE: CC - int 3
"imperator.exe"+B7B7FF: CC - int 3
"imperator.exe"+B7B800: 48 8B C1 - mov rax,rcx
"imperator.exe"+B7B803: 48 8B 89 38 06 00 00 - mov rcx,[rcx+00000638]
"imperator.exe"+B7B80A: 48 2B 88 40 06 00 00 - sub rcx,[rax+00000640]
"imperator.exe"+B7B811: 48 85 C9 - test rcx,rcx
"imperator.exe"+B7B814: 0F 9F C0 - setg al
}
4807
"[X] <== Instant Movement"
C08000
Auto Assembler Script
//=========================================
// Instant Movement Script
//=========================================
define(UnitMovement,"imperator.exe"+C99CB2)
//=========================================
[ENABLE]
//=========================================
assert(UnitMovement,48 01 87 90 01 00 00 49 8B 45 08 48 8B AF 60 01 00 00)
alloc(InstantMovementScript,$1000,"imperator.exe"+C99CB2)
label(instant_move)
label(exit_instant_move)
label(return_instant_move)
//=========================================
// Actual script
InstantMovementScript:
//=========================================
instant_move:
push rsi
mov rsi, [iPlayerID]
cmp [rdi+0000014C],esi
pop rsi
jne exit_instant_move
add [rdi+00000190],ebx
jmp return_instant_move
exit_instant_move:
add [rdi+00000190],rax // original code
jmp return_instant_move
//=========================================
// Hack Points
//=========================================
UnitMovement:
jmp InstantMovementScript
nop
nop
return_instant_move:
//=========================================
[DISABLE]
//=========================================
UnitMovement:
// cmp byte ptr [rsi+imperator.dtor_list_head+79],00
// add [rdi+00000190],rax
db 48 01 87 90 01 00 00
dealloc(InstantMovementScript)
4814
"[X] <== Godmode"
C08000
Auto Assembler Script
//=========================================
// God Mode Script
//=========================================
define(ApplyDamage, "imperator.exe"+C908DA)
define(PerformAssault,"imperator.exe"+CADEB8)
//=========================================
[ENABLE]
//=========================================
assert(ApplyDamage, 48 8B 83 A8 01 00 00 48 29 43 20 48 8B 83 B0 01 00 00)
assert(PerformAssault, 49 89 49 20 49 8B 41 28 48 2B C5 48 0F 48 C2 49 89 41)
alloc(GodModeScript,$1000,"imperator.exe"+C908DA)
label(prevent_damage)
label(exit_prevent_damage)
label(return_prevent_damage)
label(siege_assault)
label(exit_siege_assault)
label(return_siege_assault)
//=========================================
// Actual script
GodModeScript:
//=========================================
prevent_damage:
push rsi
mov rsi, [iPlayerID]
cmp [rbx+000001A0],esi
pop rsi
jne exit_prevent_damage
mov [rbx+000001A8],00000000
mov [rbx+000001B0],00000000
exit_prevent_damage:
mov rax,[rbx+000001A8] // original code
jmp return_prevent_damage
siege_assault:
push rsi
mov rsi,[iPlayerID]
cmp [r9+000001A0],esi
pop rsi
jne exit_siege_assault
mov rcx, #1000
xor rbp, rbp
exit_siege_assault:
mov [r9+20],rcx
mov rax,[r9+28]
jmp return_siege_assault
//=========================================
// Hack Points
//=========================================
ApplyDamage:
jmp prevent_damage
nop
nop
return_prevent_damage:
PerformAssault:
jmp siege_assault
nop
nop
nop
return_siege_assault:
//=========================================
[DISABLE]
//=========================================
ApplyDamage:
// mov rax,[rbx+000001A8]
db 48 8B 83 A8 01 00 00
PerformAssault:
// mov [r9+20],rcx
// mov rax,[r9+28]
db 49 89 49 20 49 8B 41 28
dealloc(GodModeScript)
4504
"[X] <== Pointers ======================="
404080
1
4505
"[X] <== Main Resources (top of screen) ======"
008000
1
1
"Cash ==> (x1000)"
FF00FF
4 Bytes
pPlayer
648
4802
"Manpower ==>"
FF00FF
4 Bytes
pPlayer
7f0
4771
"Military Power ==>"
FF00FF
4 Bytes
pPlayer
860
4781
"Civic Power ==>"
FF00FF
4 Bytes
pPlayer
864
4783
"Oratory Power ==>"
FF00FF
4 Bytes
pPlayer
868
4782
"Religious Power ==>"
FF00FF
4 Bytes
pPlayer
86C
4784
"Stability ==> (x1000)"
FF00FF
4 Bytes
pPlayer
788
4804
"Aggressive Expansion ==> (x1000)"
FF00FF
4 Bytes
pPlayer
658
4806
"Tyranny ==> (x1000)"
FF00FF
4 Bytes
pPlayer
878
4831
"[X] <== Technology ==================="
008000
1
4845
"If you freeze these on a high value, you'll research tech daily."
0080FF
1
4841
"Martial Advances ==> (x1000)"
FF00FF
4 Bytes
pPlayer
0
38
990
4842
"Civic Advances ==> (x1000)"
FF00FF
4 Bytes
pPlayer
8
38
990
4843
"Oratory Advances ==> (x1000)"
FF00FF
4 Bytes
pPlayer
10
38
990
4844
"Religious Advances ==> (x1000)"
FF00FF
4 Bytes
pPlayer
18
38
990
iEnableMFW
09B10684
randomvalue
00650000
p_gamedb
54B503D0
HP3
00ECDA5E
MSD
00983DA1
iMinRP
0EF304D7
iEnableMC
0132050C
iEnableInstNI
08430034
iEnableMinPP
0930003C
ctMPP
09300040
pArmy
084F0948
pReligion
084F094C
pCulture
084F0950
iEnableMMD
084F08E0
iEnableFMP
084F08E4
iEnableMMP
084F08E8
iEnableANM
084F08F0
iEnableANT
084F08F4
iEnableMER
084F08F8
iEnableLEG
084F08FC
iEnableMRR
084F0900
iEnableRPC
084F0908
iEnableBSP
084F0910
iEnableQOS
084F0914
iEnableNNE
084F091C
iEnableCHR
084F0924
iEnableCHC
084F0928
iEnableMMS
084F092C
iEnableMPD
084F0930
iEnableMNP
084F0934
iEnableQEN
084F0938
iMinNP
084F095C
iCurDate
084F0960
iAge
084F0964
iBornDate
084F0968
aLast
084F0970
_base1
0105A532
_base3
00F8FC11
Console
011BFBCB
_base2
00F85727
pGame
0105A532
pConsole
011BFBCB
iEnableMAM
08E405B4
CHP
01AAE597
pProvince
00380CA4
iEnableMG
00380C20
iEnableMU
00380C24
iEnableMB
00380C2C
iEnableMM
00380C34
iEnableGM
00380C40
iEnableMMo
00380C44
iEnableMD
00380C48
iEnableMDe
00380C5C
iEnableMS
00380C4C
iEnableSR
00380C50
iEnableRR
00380C54
iEnableMTL
00380C58
iEnableMUV
00380C28
iEnableMBV
00380C30
iEnableMCC
00380C60
iEnableMCR
00380C64
iEnableCRV
00380C68
iEnableMTS
00380C38
iEnableMDS
00380C3C
iEnableSRA
00380C6C
iMinTech
00380C74
iPerkID
00380C90
iPerkIndex
00380C78
iPPerkIndex
00380C7C
iSPerkIndex
00380C80
imPerkIndex
00380C84
imPPerkIndex
00380C88
imSPerkIndex
00380C8C
pUnit
00380C94
pOwner
00380C9C
pCapital
00380CA0
pSelPlayer
00380CA8
pSelOwner
00380CAC
pSelCounty
00380CB8
pPerk
00380CBC
pPlrPerk
00380CC0
pSelPerk
00380CC4
pPPerkID
00380CC8
pSPerkID
00380CCC
iEnablePNP
08E405B0
iEnableMMM
08E405BC
iEnableMPI
08E405C4
iEnableMWF
08E405C8
pPlayer1
08E405D4
pPlayer2
08E405D8
pArmyFleet
08E405DC
pRegion
08E405E0
pDiplo
00810964
aob_xp
7FF6FB116A83
aob_arr
1408ABB64
aob_foc
1408AC13C
aob_com
1408B3A11
aob_easy
14086EFEF
aob_rune
140391119
aob_miss
14082C683
aob_god
14080D4CA
aob_uruk
140148BC3
CHP4
008BB36D
iMinGold
055F0C0E
_MonUTest
009F03FB
genderchange
02A40000
Recifense
20171218
===========================================
Game Title : Crusader Kings II
Game Version : 2.8.1.1 (ISRM)
Game Sponsor : saucefar (gift) + Myself (DLCs) + Megatek (DLC) + darkedone02 (DLC) + Patrons (DLC)
Proces Name : CK2game.exe
Script Version: 8.7
CE Version : 6.7
Release date : 18-Dec-2017
Author : Recifense
History:
18-Oct-2014: Release for version 2.2.0 (Steam)
19-Nov-2014: Release for version 2.2.1-DPOO (Steam)(s5.1)
17-Dec-2014: Release for version 2.3.0-BTOF (Steam)
18-Dec-2014: Fixed a bug related to UPGRADE cheat (s5.2)
19-Dec-2014: Added Change Culture and Religion (s6.0)
21-Dec-2014: Fix in changing Culture/Religion of Vassal's counties (s6.1)
23-Dec-2014: Added pointer to indexed PERK (s7.0)
28-Dec-2014: New approach for perks (s7.1)
15-Jan-2015: Release for version 2.3.2-MMUR (Steam)
09-Mar-2015: Release for version 2.3.3-DAQH (Steam)
15-Apr-2015: Release for version 2.3.4-FMNO (Steam)
10-Jun-2015: Release for version 2.3.5-AKIG (Steam)
13-Jun-2015: Release for version 2.3.6-JWMQ (Steam)
20-Jul-2015: Release for version 2.4.1-ZXPB (Steam) + New features
21-Jul-2015: Release for version 2.4.2-AJJW (Steam)
02-Aug-2015: New approach for Tech Level/Rebels GM Issue (s8.1)
13-Aug-2015: Release for version 2.4.3-WIUP (Steam)
22-Aug-2015: Release for version 2.4.4-FUYZ (Steam)
16-Oct-2015: Release for version 2.4.5-NFUF (Steam)
03-Feb-2016: Release for version 2.5.1-OBWK (Steam)
05-Feb-2016: Release for version 2.5.1.1-XKJY (Steam)
04-Mar-2016: Release for version 2.5.2-YZAZ (Steam)
30-May-2016: Release for version 2.5.2.1-FHON (Steam)
05-Jun-2016: Release for version 2.5.2.2-OTSX (Steam)
27-Aug-2016: Release for version 2.6.1-UUYR (Steam)
30-Aug-2016: Release for version 2.6.1.1-SKBW (Steam)
07-Sep-2016: Included Hospitals in Construction/Upgrade (by BringChaos) (s8.2)
13-Oct-2016: Release for version 2.6.2-TPOW (Steam)(CE6.6)
24-Nov-2016: Release for version 2.6.3-VNFM (Steam)(CE6.6)
11-Mar-2017: Release for version 2.7-WHGQ (Steam)(CE6.6)
12-Mar-2017: Fix for MBLD, AGE (s8.4)
12-Mar-2017: Fix for when the player is a vassal (s8.5)
12-Mar-2017: Special Units
16-Mar-2017: Release for version 2.7.0.1-OAWR (Steam)(CE6.6)
22-Mar-2017: Release for version 2.7.0.2-WHCB (Steam)(CE6.5)
24-Apr-2017: Release for version 2.7.1-BPAH
07-Jul-2017: Release for version 2.7.2-KMAG (beta)
16-Aug-2017: Release for version 2.7.2-GMTV (official)
17-Nov-2017: Release for version 2.8.0-PLQA
05-Dec-2017: Release for version 2.8.1-WTTG (+fix for Vassal's Construction)
18-Dec-2017: Release for version 2.8.1.1-ISRM
Features:
- Minimum Gold [1]
- Upgrade in 1 Day [2]
- Construction in 1 Day [2]
- Movement in 1 Day [2]
- God Mode [3]
- Morale [3]
- Damage (x16) [3]
- Siege [4]
- Super Ruler [1](*)
- Diplomacy (base) >= 70
- Martial (base) >= 70
- Stewardship (base) >= 70
- Intrigue (base) >= 70
- Learning (base) >= 70
- Fertility = 1
- Health = 9.9
- Prestige >= 100
- Piety >= 100
- Revolt Risk [5]
- Technology Level (user defined => max = 8) [7] (**)
- Decadence [8]
- Upgrade in 1 Day for Player's Vassals
- Construction in 1 Day for Player's Vassals
- Change Culture of a County [9]
- Change Religion of a County [A]
- Ajust Pointer to Perk[X] [B]
- Minimum Army Troop Size (86) (new v8.0)
- Minimum Holding Troop Size (166) (new v8.0)
- Pointers
===========================================
[1] Activated when in main screen (Minimum value = 67000);
[2] Activated between turns;
[3] Activated during Normal Battle or Assault
[4] Activated as soon as you select a province during a siege (by you)
[5] Activated when looking at a province's capital
[7] Activated on the Technology Screen; (demesne: only the current province is affected/ Realm: all player's provinces are affected)
[8] Decadence will not increase;
[9] Activated when selecting a County of the human player;
[A] Activated when selecting a County of the human player;
[B] Activated when selecting a Character and also for human player;
(*) Once activated there is no more coming back. Turn it ON, check the ruler. And then turn it OFF to avoid problem when the ruler changes age.;
(**) Change the value to 1, then 2, and so on (in this way you will see what tech is available for each level)
===========================================
[NOTE] If you don't want to use the Super Ruler cheat, now you can change the values yourselves.
===========================================
[Changing the Age of a Character]
- One year = 365 days * 24 hours => 8760 hours
- Suppose Current is 15-Sep-1066 => 53144328
- For 50 years = 50 * 8760 => 438000 hours
- Born date = Cur. date - 438080 => 52706328
===========================================
Cheers!
"CK2game.exe"+61650F
1