davethewave_83 Advanced Cheater
Reputation: 0
Joined: 03 May 2006 Posts: 65
|
Posted: Wed May 25, 2011 7:17 pm Post subject: how do I convert a cheat table for a new version? |
|
|
someone posted a cheat table for anno 1404 (original release version 1.00.1762) but I've updated the game to 1.01.2037 and now the cheat tables don't work.
I'd like to convert it with as much ease as possible, any tips on how to do this? I've tried searching for code mov edx,[eax+04] but that comes up with thousands of results, I'm really novice at this so if anyone experienced can give me info on how to convert that'd be great!
I currently have both versions of anno 1404 on the drive, I can swap back and forth between them (if that will help in converting the table? )
I want to play the new version only because it allows the user to make/play custom maps.
below is the script, if needed.
| Code: | // Anno 1404 Dawn Of Discovery
// Game Version : 1.00.1762
// Script Version: 1.0
// CE Version : 5.5
// GodMode, Treasure, Honour, WareHouse and Ship?s Cargo
// 02-Aug-2009
[ENABLE]
alloc(MyCode,1024)
// Declaration section
label(_MonCargo)
label(_BackMC)
label(_ExitMC)
label(_MonTreasure)
label(_BackMT)
label(_ExitMT)
label(_GodMode)
label(_BackGM)
label(_ExitGM)
label(_MonWareHouse)
label(_BackMW)
label(_ExitMW)
label(_MonT0)
label(pCargo)
label(pTreasure)
label(iEnableMC)
label(iEnableMT)
label(iEnableMH)
label(iEnableGM)
label(iEnableMW)
label(iMinTreasure)
label(iMinHonour)
registersymbol(MyCode)
registersymbol(pCargo)
registersymbol(pTreasure)
registersymbol(iEnableMC)
registersymbol(iEnableMT)
registersymbol(iEnableMH)
registersymbol(iEnableGM)
registersymbol(iEnableMW)
//=========================================
// Hacking Points
Anno4.exe+1eefd5:
jmp _MonCargo
_BackMC:
Anno4.exe+14758c:
jmp _MonTreasure
nop
_BackMT:
Anno4.exe+306997:
jmp _GodMode
_BackGM:
Anno4.exe+344715:
jmp _MonWareHouse
_BackMW:
MyCode:
//=========================================
_MonCargo:
mov edx,[eax+04] // Get ptr to ship?s Cargo (Original code)
mov ecx,[eax] // Get Cargo Type (Original code)
or ecx,ecx // Valid?
jz _ExitMC // Jump if false
mov [pCargo],eax // Save ptr to last valid cargo
cmp dword ptr [iEnableMC],0
je _ExitMC // Jump if feature is disabled
cmp ecx,#100 // Special cargo?
jge _ExitMC // Jump if true
cmp edx,#30 // Current Cargo >= 30?
jge _ExitMC // Jump if true
mov edx,#30
mov [eax+04],edx // Make cargo = 30
_ExitMC:
mov ecx,[eax] // Read cargo type (Original code)
jmp _BackMC // Back to main code
//=========================================
_MonTreasure:
mov [pTreasure],ebp // Save ptr for debugging
cmp dword ptr [iEnableMT],0
je _MonT0 // Jump if feature is disabled
mov eax,[iMinTreasure]
cmp eax,[ebp+000000a0]
jle _MonT0 // Jump if current treasure >= minimum
mov [ebp+000000a0],eax // Make treasure = minimum
_MonT0:
cmp dword ptr [iEnableMH],0
je _ExitMT // Jump if feature is disabled
cmp eax,[ebp+000000a8]
or eax,eax
jz _ExitMT // Jump if honour = 0
mov eax,[iMinHonour]
cmp eax,[ebp+000000a8]
jle _ExitMT // Jump if current honour >= minimum
mov [ebp+000000a8],eax // Make honour = minimum
_ExitMT:
mov eax,[ebp+000000a0] // Original code
jmp _BackMT // Back to main code
//=========================================
_GodMode:
call anno4.exe+9c9230 // Original code
pushfd
cmp dword ptr [iEnableGM],0
je _ExitGM // Jump if feature is disabled
mov ecx,[ebx+04] // Get ptr to unit
cmp dword ptr [ecx+000000c0],0 // Player?s unit?
jne _ExitGM // Jump if false
mov dword ptr [ebx+08],#40960000 // Make %HP = 100%
mov dword ptr [ebx+0c],00 // Make %HP = 100%
xor eax,eax
mov edx,eax // % to decrease = 0
_ExitGM:
popfd
jmp _BackGM // Back to main code
//=========================================
// ESI = pStoreHouse
// ECX = pStoreItem
_MonWareHouse:
push ebx
cmp dword ptr [iEnableMW],0
je _ExitMW // Jump if feature is disabled
or esi,esi
je _ExitMW // Jump if invalid pointer
or ecx,ecx
je _ExitMW // Jump if invalid pointer
cmp dword ptr [esi+00000324],0 // Player?s Warehouse?
jne _ExitMW // Jump if false
mov ebx,[esi+08] // Get default capacity
mov [ecx+14],ebx // Update item qtty.
_ExitMW:
pop ebx
cmp byte ptr [esp+14],00 // Original code
jmp _BackMW // Back to main code
//=========================================
// Variables
pCargo:
dd 0
pTreasure:
dd 0
iEnableMC:
dd 1
iEnableMT:
dd 1
iEnableMH:
dd 1
iEnableGM:
dd 1
iEnableMW:
dd 1
iMinTreasure:
dd #102400000
iMinHonour:
dd #512000
//=========================================
// Original Codes
[DISABLE]
Anno4.exe+1eefd5:
mov edx,[eax+04]
mov ecx,[eax]
Anno4.exe+14758c:
mov eax,[ebp+000000a0]
Anno4.exe+306997:
call anno4.exe+9c9230
Anno4.exe+344715:
cmp byte ptr [esp+14],00
dealloc(MyCode)
unregistersymbol(MyCode)
unregistersymbol(pCargo)
unregistersymbol(iEnableMC)
unregistersymbol(iEnableMT)
unregistersymbol(iEnableMH)
unregistersymbol(iEnableGM)
unregistersymbol(iEnableMW)
unregistersymbol(pTreasure) |
_________________
All hail our glorious leader!
The forum rules make our lives so much easier. We don't have to think anymore, all thanks to our leader!
Don't you agree, comrade ? |
|