24
"[X] <== Dawn of War III v4.318.9101.16888 Steam Script v2.0"
FF0000
Auto Assembler Script
{
===========================================
Game Title : Warhammer 40000 - Dawn of War III
Game Version : 4.318.9101.16888
Game Sponsor : Anonymous
Process Name : RelicDoW3.exe
Relevant Info : 64bits/RTS
Script Version: 2.0
CE Version : 6.7
Release date : 27-Jun-2017
Author : Recifense
History:
30-Apr-2017: First Release
02-May-2017: Release for build 15392
09-May-2017: Release for build 15636
10-May-2017: Release for build 15673
03-Jun-2017: Release for build 16220
05-Jun-2017: Release for build 16278
07-Jun-2017: Modified Script for CE6.7 (Patron Release)
20-Jun-2017: Release for build 16667
27-Jun-2017: Release for build 16888
Features:
- Minimum Resources
- Requisition (6600)
- Energy (660)
- Elite Points (66)
- God Mode
- Soldiers
- Vehicles
- Buildings
- Some Pointers
===========================================
}
//=========================================
// Checking CE version
{$lua}
if(getCEVersion() < 6.7) then
ShowMessage('Sorry. CE version should be 6.7 or above')
end
{$asm}
//=========================================
// Checking Selected Process
{$lua}
if(process == nil) then
ShowMessage('No process was selected')
elseif (process ~= "RelicDoW3.exe") then
ShowMessage('Error. Expected Process = RelicDoW3.exe')
end
{$asm}
//=========================================
// Definitions
define(LUDO,"RelicDoW3.exe")
define(MOHP,RelicDoW3.exe+005d4a0b) //=======
define(MOPR,RelicDoW3.exe+015c28bf) //=======
define(GMDB,RelicDoW3.exe+0137cdc8) //=======
define(GDMD,RelicDoW3.exe+0137b4b7) //=======
define(GMDV,RelicDoW3.exe+014ed538) //=======
define(ROHP,RelicDoW3.exe+006046f2) //=======
define(ROPR,RelicDoW3.exe+01487ba9) //=======
//=========================================
// Constants used in the script (that can be changed)
define(ctCE67,(float)6.7)
//=========================================
[ENABLE]
//=========================================
//LuaCall(CheckVersion())
//=========================================
// Check if script is compatible to this game version
// If false the script will not be loaded
assert(MOHP,0f 10 00 0f 11 45 b0 0f 10 48 10 0f 11 4d c0)
assert(MOPR,F3 41 0F 10 04 01 F3 0F 58 00 F3 0F 11 00)
assert(GMDB,48 8B C4 53 48 83 EC 70 F3 0F 10 41 4C)
assert(GDMD,0F 2F C8 F3 0F 11 49 54 76 05 F3 0F 11 41 54)
assert(GMDV,0f 2f 49 18 48 8b d1 0f 28 d1 76 05 f3 0f 10 51 18)
//=========================================
alloc(MyCode,4096,$process)
//=========================================
// Declaration section
label(_MonHumanPlayer)
label(_BackMHP)
label(_ExitMHP)
label(_MonPlayerResources)
label(_BackMPR)
label(_ExitMPR)
label(_GodModeB)
label(_BackGMB)
label(_ExitGMB)
label(_GodMode)
label(_BackGMD)
label(_ExitGMD)
label(_GodModeV)
label(_BackGMV)
label(_ExitGMV)
label(iEnableMMR)
label(iEnableGMD)
label(iPlayerID)
label(pPlayer)
//=========================================
// Registering Symbols
registersymbol(MyCode)
registersymbol(iEnableMMR)
registersymbol(iEnableGMD)
registersymbol(iPlayerID)
registersymbol(pPlayer)
//=========================================
MyCode:
//=========================================
// All the time at a scenario
_MonHumanPlayer:
mov rcx,_BackMHP
mov [pBack+00],rcx
mov rcx,ROHP
cmp rcx,[ebp+08]
jne _ExitMHP
test r9,r9
jz _ExitMHP
mov ecx,[r9+08]
mov [iPlayerID],ecx
mov ecx,[r9+00000590]
mov [iID],ecx
_ExitMHP:
movups xmm0,[rax] // Original code
movups [rbp-50],xmm0 // Original code
movups xmm1,[rax+10] // Original code
movups [rbp-40],xmm1 // Original code
jmp [pBack+00] // Back to main code
//=========================================
align 10,cc
//=========================================
// When updating resources
_MonPlayerResources:
mov r8,_BackMPR
mov [pBack+08],r8
movss xmm0,[r9+rax] // Original code
addss xmm0,[rax] // Original code
movss [rax],xmm0 // Original code
mov r8,ROPR
cmp r8,[esp]
jne _ExitMPR
test rbx,rbx
jz _ExitMPR
mov r8d,[iPlayerID]
cmp r8d,[rbx+08]
jne _ExitMPR
mov [pPlayer],rbx
cmp dword ptr [iEnableMMR],0
je _ExitMPR // Jump if feature is disabled
cmp dword ptr [rbx+0000078c],00 // Requisition
je _MonPR00
mov r8d,(float)6600.0
cmp [rbx+0000078c],r8d
jns _MonPR00
mov [rbx+0000078c],r8d
_MonPR00:
cmp dword ptr [rbx+00000780],00 // Elite Points
je _MonPR01
mov r8d,(float)66.0
cmp [rbx+00000780],r8d
jns _MonPR01
mov [rbx+00000780],r8d
_MonPR01:
cmp dword ptr [rbx+00000788],00 // Energy
je _ExitMPR
mov r8d,(float)660.0
cmp [rbx+00000788],r8d
jns _ExitMPR
mov [rbx+00000788],r8d
_ExitMPR:
jmp [pBack+08] // Back to main code
//=========================================
align 10,cc
//=========================================
// When taking damage (Buildings)
_GodModeB:
mov rax,_BackGMB
mov [pBack+10],rax
test rbx,rbx
jz _ExitGMB
mov eax,[rbx+00000104]
cmp eax,[iID]
jne _ExitGMB
mov [pBuilding],rcx
_ExitGMB:
mov rax,rsp // Original code
push rbx // Original code
sub rsp,70 // Original code
movss xmm0,[rcx+4C] // Original code
jmp [pBack+10] // Back to main code
//=========================================
align 10,cc
//=========================================
// During Combat (HP)
_GodMode:
mov rax,_BackGMD
mov [pBack+18],rax
cmp dword ptr [iEnableGMD],0
je _ExitGMD // Jump if feature is disabled
cmp rcx,[pBuilding]
je _GodMD00
cmp rbx,rcx
je _ExitGMD
test rsi,rsi
jz _ExitGMD
mov eax,[rsi+00000104]
cmp eax,[iID]
jne _ExitGMD
_GodMD00:
movss xmm1,xmm0
_ExitGMD:
movsd [pBuilding],xmm0
comiss xmm1,xmm0 // Original code
movss [rcx+54],xmm1 // Original code
jna _GodMDZZ
movss [rcx+54],xmm0 // Original code
_GodMDZZ:
jmp [pBack+18] // Back to main code
//=========================================
align 10,cc
//=========================================
// When taking damage (Vehicles)
_GodModeV:
mov rdx,_BackGMV
mov [pBack+20],rdx
cmp dword ptr [iEnableGMD],0
je _ExitGMV // Jump if feature is disabled
test rsi,rsi
jz _ExitGMV
mov edx,[rsi+00000104]
cmp edx,[iID]
jne _ExitGMV
xorps xmm1,xmm1
mov edx,[rcx+1c]
cmp [rcx+18],edx
jns _ExitGMV
mov [rcx+18],edx
_ExitGMV:
comiss xmm1,[rcx+18] // Original code
mov rdx,rcx // Original code
movaps xmm2,xmm1 // Original code
jna _MonMVZZ // Original code
movss xmm2,[rcx+18] // Original code
_MonMVZZ:
jmp [pBack+20] // Back to main code
//=========================================
align 10,'='
//=========================================
db '===============================>'
db 'CE6.7 Script by Recifense 170627'
//=========================================
// Variables
iEnableMMR:
dd 0
iEnableGMD:
dd 0
iPlayerID:
dd #9999
iID:
dd 55555555
pPlayer:
dq MyCode
pUnit:
dq 0
pBuilding:
dq MyCode
pBack:
dq 0,0,0,0,0
//=========================================
// Hacking Points
MOHP:
mov rcx,_MonHumanPlayer
jmp rcx
nop
nop
nop
_BackMHP:
MOPR:
mov r8,_MonPlayerResources
jmp r8
nop
_BackMPR:
GMDB:
mov rax,_GodModeB
jmp rax
nop
_BackGMB:
GDMD:
mov rax,_GodMode
jmp rax
nop
nop
nop
_BackGMD:
GMDV:
mov rdx,_GodModeV
jmp rdx
nop
nop
nop
nop
nop
_BackGMV:
//=========================================
// Script for Restoring Original Codes
[DISABLE]
MOHP:
// movups xmm0,[rax]
// movups [rbp-50],xmm0
// movups xmm1,[rax+10]
db 0f 10 00 0f 11 45 b0 0f 10 48 10 0f 11 4d c0
MOPR:
// movss xmm0,[r9+rax]
// addss xmm0,[rax]
// movss [rax],xmm0
db F3 41 0F 10 04 01 F3 0F 58 00 F3 0F 11 00
GMDB:
// mov rax,rsp
// push rbx
// sub rsp,70
// movss xmm0,[rcx+4C]
db 48 8b c4 53 48 83 ec 70 f3 0f 10 41 4c
GDMD:
// comiss xmm1,xmm0
// movss [rcx+54],xmm1
// jna $+05
// movss [rcx+54],xmm0
db 0F 2F C8 F3 0F 11 49 54 76 05 F3 0F 11 41 54
GMDV:
// comiss xmm1,[rcx+18]
// mov rdx,rcx
// movaps xmm2,xmm1
// jna $+05
// movss xmm2,[rcx+18]
db 0f 2f 49 18 48 8b d1 0f 28 d1 76 05 f3 0f 10 51 18
//=========================================
// Unregistering Symbols
unregistersymbol(MyCode)
unregistersymbol(iEnableMMR)
unregistersymbol(iEnableGMD)
unregistersymbol(iPlayerID)
unregistersymbol(pPlayer)
//=========================================
dealloc(MyCode)
//============= Scripts End ===============
// ****************************************
// NOTES
// ****************************************
{
}
98
"[X] <== God Mode ----------------------------------> (HK: CTRL+Home / CTRL+End)"
C08000
Auto Assembler Script
[enable]
define(test,LUDO)
{$LUA}
writeInteger("iEnableGMD",1)
getAddressList().getMemoryRecordByID(98).Color=0x0008000
{$ASM}
[disable]
{$LUA}
writeInteger("iEnableGMD",0)
getAddressList().getMemoryRecordByID(98).Color=0x0c08000
{$ASM}
Activate
17
36
0
Deactivate
17
35
1
230
"[X] <== Minimum Resources -----------------------> (HK: CTRL+Page Up / CTRL+Page Down)"
C08000
Auto Assembler Script
[enable]
define(test,LUDO)
{$LUA}
writeInteger("iEnableMMR",1)
getAddressList().getMemoryRecordByID(230).Color=0x0008000
{$ASM}
[disable]
{$LUA}
writeInteger("iEnableMMR",0)
getAddressList().getMemoryRecordByID(230).Color=0x0c08000
{$ASM}
Activate
17
33
0
Deactivate
17
34
1
228
"[X] <== Table/Script Information"
0000FF
Auto Assembler Script
[enable]
define(test,LUDO)
{$LUA}
getMainForm().CommentButton.doClick()
{$ASM}
[disable]
Recifense
20170627
===========================================
Game Title : Warhammer 40000 - Dawn of War III
Game Version : 4.318.9101.16888
Game Sponsor : Anonymous
Process Name : RelicDoW3.exe
Relevant Info : 64bits/RTS
Script Version: 2.0
CE Version : 6.7
Release date : 27-Jun-2017
Author : Recifense
History:
30-Apr-2017: First Release
02-May-2017: Release for build 15392
09-May-2017: Release for build 15636
10-May-2017: Release for build 15673
03-Jun-2017: Release for build 16220
05-Jun-2017: Release for build 16278
07-Jun-2017: Modified Script for CE6.7 (Patron Release)
20-Jun-2017: Release for build 16667
27-Jun-2017: Release for build 16888
Features:
- Minimum Resources [1]
- Requisition (6600)
- Energy (660)
- Elite Points (66)
- God Mode [2]
- Soldiers
- Vehicles
- Buildings
- Some Pointers
===========================================
[1] Human Player Only. Only non-zero resources are affected;
[2] It works only for human controlled units
===========================================
[USAGE]
- Run CE 6.7 or greater;
- Run the GAME;
- Load game process "RelicDoW3.exe" via CE;
- Load this Table;
- Activate the maint script by clicking on its box [X];
- Now Activate the script of each cheat you want to use;
- Go back to the game and have fun.
===========================================
HOTKEYS:
- Look at each table entry.
===========================================
[WARNING]
- This table is meant to be used in single player games.
===========================================
[INFO]
Tested on Win10 64bits
===========================================
Cheers to you, Patron! Thank you for supporting my work!