Minimum Credits/Liceneses(_MG): Anno5.exe+0F6222 8B 8B 84 00 00 00 0F AC C8 0A
Minimum Ship Cargo(_MC): Anno5.exe+65E160 8B 41 08 C3 CC
Minimum Resources(_MWH): Anno5.exe+470396 8B 50 10 89 55 FC
Minimum Select(_MS): Anno5.exe+67479F 89 BB F4 02 00 00
Minimum Resources(_MWH2(NHP)): Anno5.exe+4702B2 8B 55 08 39 51 10
God Mode(_GM): Anno5.exe+52A679 01 46 08 B8 10 27 00 00
Unlimited Fuel(_MF): Anno5.exe+50C966 8B 46 0C 3B C3
//========================================= //========================================= assert(LUDO+000F6222,8b 8b 84 00 00 00 0f ac c8 0a) //_MG //========================================= //========================================= //========================================= mov [pGold],ebx cmp dword ptr [iEnableMG],0 mov ecx,[ebx+00000084] // Original code mov ecx,#63488000 // 62000 * 1024 mov [ebx+00000080],ecx _MonG0: mov ecx,[ebx+00000088] mov ecx,#634880 // 620 * 1024 mov [ebx+00000088],ecx _ExitMG: //========================================= 200 mov [pCargo],ecx cmp dword ptr [iEnableMC],0 mov eax,[ecx+04] // Cargo ID mov eax,#20 // Minimum Load mov [ecx+08],eax _ExitMC: //========================================= 200 mov edx,[esi+04] //ppIsland mov [pIsland],esi cmp dword ptr [iEnableMW],0 mov edx,[esi+0000039c] //**318 mov [eax+10],edx // Minimum = Max - 20 _MonW0: mov [eax+10],edx // Maximum = Max - 5 _ExitMW: //========================================= 200 push esi mov [pSel],edi test edi,edi cmp dword ptr [edi+48],0 mov esi,[edi+58] // ppIsland mov esi,[esi+00005f70] //**5880 // pIsland _ExitMS: mov [ebx+000002F4],edi // Original code //========================================= 200 cmp dword ptr [iEnableMW],0 mov edx,[esi+04] mov edx,[esi+0000039c] //**318 mov [ecx+10],edx // Minimum = Max - 20 _MonW02: mov [ecx+10],edx // Maximum = Max - 5 _ExitMW2: //========================================= 200 push ecx mov ecx,[esi+04] cmp dword ptr [ecx+48],0 cmp dword ptr [iEnableGM],0 xor eax,eax mov [esi+08],ecx _ExitGM: add [esi+08],eax // Original code //========================================= ??? test edi,edi cmp dword ptr [edi+48],0 cmp dword ptr [iEnableMF],0 xor ebx,ebx // value2decease = 0 _ExitMF: //========================================= //========================================= LUDO+0065E160: LUDO+00470396: LUDO+0067479F: /* LUDO+0052A679: LUDO+0050C966: //========================================= LUDO+0065E160: LUDO+00470396: LUDO+0067479F: /* LUDO+0052A679: LUDO+0050C966: //========================================= //========================================= // **************************************** struct ppSHIP_CARGO: struct p_SHIP_CARGO: struct SHIP_CARGO: struct ITEM_WAREHOUSE: struct ISLAND: struct ppISLAND: struct BUILDING: struct HP: struct FUEL: Item Type IDs:{
===========================================
Game Title : Anno 2070 - The Deep Ocean (sea)
Game Version : 2.00.7792 - Steam
Process Name : Anno5.exe
Script Version: 2.0
CE Version : 6.2
Release date : 21-Mar-2021
Author : Recifense
History:
04-Dec-2011: First Release (version 1.01.6234)
26-Oct-2012: Adapted to version 2.00.7780
21-Mar-2021: Adapted to version 2.00.7792 (b10nutz)
Features:
- Wealth (62000)
- License (620)
- Ship Cargo
- Warehouse Items (max/min)
- God Mode
- Unlimited Fuel
- Useful Pointers
===========================================
}
// Definitions
define(LUDO,"Anno5.exe")
[ENABLE]
//=========================================
// Check if script is compatible to this game version
// If false the script will not be loaded
assert(LUDO+0065E160,8b 41 08 c3 cc) //_MC
assert(LUDO+00470396,8b 50 10 89 55 fc) //_MWH
assert(LUDO+0067479F,89 bb f4 02 00 00) //_MS
//assert(LUDO+004702B2,8b 55 08 39 51 10) //_MWH2 (NHP)
assert(LUDO+0052A679,01 46 08 b8 10 27 00 00) //_GM
assert(LUDO+0050C966,8b 46 0c 3b c3) //_MF
alloc(MyCode,4048,LUDO)
//=========================================
// Declaration section
label(_MonGold)
label(_MonG0)
label(_BackMG)
label(_ExitMG)
label(_MonCargo)
label(_BackMC)
label(_ExitMC)
label(_MonWH)
label(_MonW0)
label(_BackMW)
label(_ExitMW)
label(_MonSel)
label(_BackMS)
label(_ExitMS)
/*
label(_MonWH2)
label(_MonW02)
label(_BackMW2)
label(_ExitMW2)
*/
label(_GodMode)
label(_BackGM)
label(_ExitGM)
label(_MonFuel)
label(_BackMF)
label(_ExitMF)
label(pGold)
label(pCargo)
label(pSel)
label(pResInfo)
label(pIsland)
label(iEnableMG)
label(iEnableML)
label(iEnableMC)
label(iEnableMW)
label(iEnableGM)
label(iEnableMF)
label(aLast)
// Registering Symbols
registersymbol(MyCode)
registersymbol(pGold)
registersymbol(pCargo)
registersymbol(pSel)
registersymbol(pResInfo)
registersymbol(pIsland)
registersymbol(iEnableMG)
registersymbol(iEnableML)
registersymbol(iEnableMC)
registersymbol(iEnableMW)
registersymbol(iEnableGM)
registersymbol(iEnableMF)
registersymbol(aLast)
MyCode:
//========================================= 200
// Activated on the strategic screen
_MonGold:
mov dword ptr [aLast],'MonG'
je _MonG0 // Jump if feature is disabled
test ecx,ecx
jnz _MonG0
cmp ecx,[ebx+00000080]
jle _MonG0
cmp dword ptr [iEnableML],0
je _ExitMG // Jump if feature is disabled
test ecx,ecx
jz _ExitMG
cmp ecx,[ebx+00000088]
jle _ExitMG
mov ecx,[ebx+00000084] // Original code
jmp _BackMG // Back to main code
// Activated when a ship is selected
_MonCargo:
mov dword ptr [aLast],'MonC'
je _ExitMC // Jump if feature is disabled
cmp eax,#76
jge _ExitMC
cmp eax,[ecx+08]
jle _ExitMC
mov eax,[ecx+08] // Original code
ret
jmp _BackMC // Back to main code (just the template)
// Activated when the WH is visible or selected
_MonWH:
mov dword ptr [aLast],'MWH1'
cmp esi,[edx+00005f70] //5880
jne _ExitMW
je _ExitMW // Jump if feature is disabled
lea edx,[edx-00004e20] //20000
cmp edx,[eax+10]
jle _MonW0
jmp _ExitMW
mov edx,[esi+0000039c] //**318
lea edx,[edx-0000176f] // 5999
cmp edx,[eax+10]
jge _ExitMW
mov edx,[eax+10] // Original code
mov [ebp-04],edx // Original code
jmp _BackMW // Back to main code
// Activated when a building is selected
_MonSel:
mov dword ptr [aLast],'MSel'
jz _ExitMS
jne _ExitMS
test esi,esi
jz _ExitMS
mov [pResInfo],esi
pop esi
jmp _BackMS // Back to main code
// Activated when an Item in WH is modified
// ESI = pIsland
/*
_MonWH2:
mov dword ptr [aLast],'MWH2'
je _ExitMW2 // Jump if feature is disabled
cmp esi,[edx+00005f70] //**5880 // pIsland
jne _ExitMW2
lea edx,[edx-00004e20]
cmp edx,[ecx+10]
jle _MonW02
jmp _ExitMW2
mov edx,[esi+0000039c] //**318
lea edx,[ecx-0000176f]
cmp edx,[ecx+10]
jge _ExitMW2
mov edx,[ebp+08] // Original code (get max value)
cmp [ecx+10],edx // Original code
jmp _BackMW2 // Back to main code
*/
// Activated during combat
_GodMode:
mov dword ptr [aLast],'GMod'
test ecx,ecx
jz _ExitGM
jne _ExitGM
je _ExitGM // Jump if feature is disabled
mov ecx,#40960000 // 100%
mov [esi+0c],eax
mov edx,eax
pop ecx
mov eax,00002710 // Original code
jmp _BackGM // Back to main code
// Activated when an aircraft is on the air
_MonFuel:
mov dword ptr [aLast],'MFue'
jz _ExitMF
jne _ExitMF
je _ExitMF // Jump if feature is disabled
mov eax,[esi+0C] // Original code
cmp eax,ebx // Original code
jmp _BackMF // Back to main code
db '======================================>'
db 'CE6.2 Script by Recifense 102612'
//=========================================
// Variables
iEnableMG:
dd 0
iEnableML:
dd 0
iEnableMC:
dd 0
iEnableMW:
dd 0
iEnableGM:
dd 0
iEnableMF:
dd 0
pGold:
dd 0
pCargo:
dd 0
pIsland:
dd 0
pSel:
dd 0
pResInfo:
dd MyCode
aLast:
db 'CE62'
// Hacking Points
LUDO+000F6222:
jmp _MonGold
nop
_BackMG:
jmp _MonCargo
_BackMC:
jmp _MonWH
nop
_BackMW:
jmp _MonSel
nop
_BackMS:
LUDO+004702B2:
jmp _MonWH2
nop
_BackMW2:
*/
jmp _GodMode
nop
nop
nop
_BackGM:
jmp _MonFuel
_BackMF:
// Script for Restoring Original Codes
[DISABLE]
LUDO+000F6222:
// mov ecx,[ebx+00000084]
db 8b 8b 84 00 00 00
// mov eax,[ecx+08]
// ret
// int 3
db 8b 41 08 c3 cc
// mov edx,[eax+10]
// mov [ebp-04],edx
db 8b 50 10 89 55 fc
// mov [ebx+000002F4],edi
db 89 bb f4 02 00 00
LUDO+004702B2:
// mov edx,[ebp+08]
// cmp [ecx+10],edx
db 8b 55 08 39 51 10
*/
// add [esi+08],eax
// mov eax,00002710
db 01 46 08 b8 10 27 00 00
// mov eax,[esi+0C]
// cmp eax,ebx
db 8b 46 0c 3b c3
// Unregistering Symbols
unregistersymbol(MyCode)
unregistersymbol(pGold)
unregistersymbol(pCargo)
unregistersymbol(pSel)
unregistersymbol(pResInfo)
unregistersymbol(pIsland)
unregistersymbol(iEnableMG)
unregistersymbol(iEnableML)
unregistersymbol(iEnableMC)
unregistersymbol(iEnableMW)
unregistersymbol(iEnableGM)
unregistersymbol(iEnableMF)
unregistersymbol(aLast)
dealloc(MyCode)
//============= Scripts End ===============
// NOTES
// ****************************************
{
struct PLAYER:
0080 = liWealth (integer of 8 bytes) (Display * 1024 => 1 = 1024)
0088 = liLicense (integer of 8 bytes) (Display * 1024 => 1 = 1024)
000c = i#Slots
0010 = iMaxValue
0014 = pp1stCargo
0018 = i#Slots
0000 = pNextCargo
0004 = pPreviousCargo
000c = pCargo
0004 = iType
0008 = iQuantity (1 = 1)
0000 = pPreviousItem
0004 = pNextItem
0008 = pNextItem
000c = iType
0010 = iQuantity (display * 1000 => 1 = 1000)
0004 = ppIsland
0318 = iMaximum per item slot
034c = p1stItemInWarehouse
5880 = pIsland
000c = iType
0010 = b01
0048 = iPlayerID (=0)
004c = pType
0050 = pType
0058 = ppIsland
0004 = pBuilding/pShip
0008 = i%HP (100% = 4K*10000)
000c = iFuel (10T = 10000)
01 = Building Module 02 = Tools 03 = Wood 04 = Glass 05 = Concrete
06 = Steel 07 = Carbon 08 = Fish 09 = Pasta Dish 10 = Health Food
11 = Convenience Food 12 = Luxury Meal 13 = Functional Food 14 = Tea 15 = Bio Drink
16 = Liquor 17 = Champagne 18 = Functional Drink 19 = Plastics 20 = Jewelery
21 = Pharmaceuticals 22 = Communicator 23 = 3D Projector 24 = Service Bots 25 = Coal
26 = Granules 27 = Iron Ore 28 = Iron 29 = Copper 30 = Limestone
31 = Sand 32 = Crude Oil 33 = Oil 34 = Microchips 35 = Sugar
36 = Manganese Nodules 37 = Rare-earth Element 38 = Diamonds 39 = Uranium 40 = Meat
41 = Super Flavor 42 = Explosives 43 = Lobster 44 = Truffle 45 = Grapes
46 = Gold Nuggets 47 = Gold 48 = Omega Acids 49 = Secret Ingredients 50 = Rice
51 = Vegetables 52 = Fruits 53 = Milk 54 = Durum Wheat 55 = Pasta
56 = Corn 57 = Biopolymers 58 = Caffeine 59 = Algae 60 = Fuel Rods
61 = Kerosene 62 = Weapons 63 = Heavy Weapons 64 = High-tech Weapons 65 = Immunity Drugs
66 = Lab Instruments 67 = Neuroimplants 68 = Bionic Suits 69 = Enzymes 70 = Platinum
71 = Sponges 72 = Lithium 73 = Electrolyte Cells 74 = Exoskeletons 75 = Coral
}
*Part of Minimum Resources code is comment out because it causes CTD and I'm unable to fix it, but the option will not work as intended!
NB: Before activating the script you should build something and let some resources to be consumed.