Hi, I came across this script in Cheat Engine Forum and try it. It work on campaign.
Below is the script written by Recifense. This script is not written by me.
To use it you need to copy the script and paste it in your Cheat Engine Auto Script. Enable it in Cheat Engine when you play Solstorm.
// Warhammer 40k - DoW - Soulstorm
// Version: DOW Engine 1.0.9409, DOW: Soulstorm 1.0 Build 9409
// Script Version: 1.1
// CE Version : 5.4
// GodMode and Infinite Resources
// Adapted on 09-Apr-08
// 29-May-2009: Changes on Monitor and God Mode (2 bugs)
[ENABLE]
alloc(MyCode,1024)
//=========================================
// Declaration section
label(Monitor)
label(GodMode)
label(Resource)
label(Res1)
label(BackM)
label(BackG)
label(BackR)
label(ExitG)
label(ExitR)
label(pPlayerStr)
registersymbol(MyCode)
//=========================================
// Hacking Points
WXPMod.dll+29A7E1:
jmp Monitor
nop
BackM:
WXPMod.dll+120B7F:
jmp GodMode
BackG:
WXPMod.dll+D5EC2:
jmp Resource
nop
BackR:
MyCode:
//===========================================
// This piece of code copies to a known place
// the Player Structure Address
Monitor:
push eax
mov eax,[edi+000001b8] // Get structure address (29-May-2009)
mov [pPlayerStr],eax // Save it for further use
pop eax
// Original Code
cmp eax,[edi+000001b8] // Original code (29-May-2009)
jmp BackM // Back to main code
//===========================================
// This piece of code checks if the current unit
// belongs to player. If so, %HP = 1.00
GodMode:
fst [esi+14] // Original code
fld1 // Original code
push eax
cmp ebp,[pPlayerStr] // Player´s unit? (29-May-2009)
jne ExitG // Jump if false
mov eax,3f800000 // 1.00
mov [esi+14],eax // Make HP = 100%
ExitG:
pop eax
jmp BackG // Back to main code
//===========================================
// This one checks if the current resource belongs
// to the player. If so, it does not let it go under
// 5000.
Resource:
fstp dword ptr [eax+04] // Original code
fld dword ptr [ecx+08] // Original code
push ebx
cmp esi,[pPlayerStr] // Player´s resource?
jne ExitR // Jump if false
mov ebx,459c4000 // 5000.0
cmp ebx,[eax+04] // Current power value >= 5000.0 ?
jl Res1 // Jump if true
mov [eax+04],ebx // Update power value
Res1:
cmp ebx,[eax] // Current requisition value >= 5000.0 ?
jl ExitR
mov [eax],ebx // Update requisition value
ExitR:
pop ebx
jmp BackR // Back to main code
//===========================================
// Data Area
pPlayerStr:
dd 0
//===========================================
// Original codes
[DISABLE]
WXPMod.dll+29A7E1:
cmp eax,[ecx+000001b8]
WXPMod.dll+120B7F:
fst [esi+14]
fld1
WXPMod.dll+D5EC2:
fstp dword ptr [eax+04]
fld dword ptr [ecx+08]
dealloc(MyCode,1024)
unregistersymbol(MyCode)
没有评论:
发表评论