373
"[X] <== Stellaris v2.2.5-aab4 Steam/Paradox/GOG Base Script v10.5 AOB"
FF0000
Auto Assembler Script
[ENABLE]
AOBScanModule(MIM3,$process,80 3d ?? ?? ?? ?? 00 53 56 57 8b f1 ?? ?? 33 c0 8b 4d f4 64 89 0d 00)
registersymbol(MIM3)
[DISABLE]
49
"[X] <== Stellaris v2.2.5-aab4 MAIN SCRIPT"
FF8080
Auto Assembler Script
{
===========================================
Game Title : Stellaris - Megacorp
Game Version : 2.2.5 (aab4)
Game Sponsor : Ubykh + WalletGifts + darkedone02 + hbpateiv + PF
Process Name : stellaris.exe
Relevant Info : 32bits/Space RTS with Pause
Script Version: 10.5 (AOB)
CE Version : 6.7
Release date : 07-Feb-2019
Author : Recifense
History:
14-Mar-16: First Release
15-Mar-16: Add one more feature and Fixed GM (s2.0)
18-Mar-16: Release for version 1.0.3.
20-Mar-16: Added more features (Warp Wind-down/Troop Morale/GM/Research).
23-Mar-16: Added more features (Planet Tile Info/Produced Resource Changing).
02-Jun-16: Release for version 1.1.0. (+improvement) (s4.1)
04-Jun-16: Added a new feature (max leaders) (s5.0)
27-Jun-16: Release for version 1.2.0.
01-Jul-16: Release for version 1.2.1.
05-Aug-16: Release for version 1.2.3. (+Renamed Fleets by TranscendPerfection)
12-Aug-16: Release for version 1.2.4. (+Wormhole+Terraforming)
16-Aug-16: Release for version 1.2.5. (+Hyperlane) (v6.5)
30-Oct-16: Release for version 1.3.1. (v6.6)
31-Oct-16: Finished the troop related scripts(v6.7)
10-Nov-16: Release for version 1.3.2. (v6.8)
13-Nov-16: Finished implementation of "Pretty Quick Move" (by TranscendPerfection) (v6.9)
05-Dec-16: Release for version 1.4.0. (v6.92)
09-Dec-16: Release for version 1.4.1.
09-Apr-17: Release for version 1.5.0. (+Unity)(v6.95)
10-Apr-17: Added quick mega construc and some adjustment (s7.0)
11-Apr-17: Change HP for player identification (v7.1)
11-Apr-17: Fixes for crashing. Added Anomaly Cheat (by TranscendPerfection). (v7.2)
11-Apr-17: Release for version 1.5.1. (BETA)
12-Apr-17: Release for version 1.5.1. (official Release)(+new feature)(v7.3)
13-Apr-17: Added one more option (Anomaly related)
10-May-17: Release for version 1.6.0 + Quick Level Up. (v7.5)
12-May-17: Release for version 1.6.1 (beta)
13-May-17: Fix for minimum Resources (v7.6)
17-Jun-17: Release for version 1.6.2.
22-Jul-17: Release for version 1.7.4 (beta)
22-Sep-17: Release for version 1.8.0 (s7.7)
23-Sep-17: Fixed Anomaly Risk (s7.8)
04-Oct-17: Added Machine in Quick Population (s7.9)
04-Oct-17: Release for version 1.8.1 (Beta)
11-Oct-17: Release for version 1.8.2.
25-Oct-17: Release for version 1.8.3.
01-Nov-17: Fix for construction of Megastructures (s7.a)
07-Dec-17: Release for version 1.9.0.
14-Dec-17: Release for version 1.9.1.
24-Feb-18: Release for version 2.0.0. (S8.0) Preliminary
25-Feb-18: Release for version 2.0.0. (S8.0) Final
27-Feb-18: Release for version 2.0.1. + Colossus Quick Action (S8.1)
03-Mar-18: Release for version 2.0.2. (Beta)
06-Mar-18: Release for version 2.0.2. (5781) (Beta)
11-Mar-18: Release for version 2.0.2. (5b9d) (Beta)
15-Mar-18: Release for version 2.0.2. (9b47) (Beta)
26-Mar-18: Release for version 2.0.2. (d07e) (Beta)
29-Mar-18: Release for version 2.0.2. (5e21) (Final)
18-Apr-18: Release for version 2.0.3. (6da2)
20-Apr-18: Release for version 2.0.4. (1368) (beta) (0040)
25-Apr-18: Release for version 2.0.4. (1368) (beta) (20180425) (0040)
15-May-18: Release for version 2.0.5. (6d3e)
23-May-18: Release for version 2.1.0. (01a9) (s8.2)
15-Jun-18: Release for version 2.1.1. (d173) (s8.3)(CE68)
07-Aug-18: Release for version 2.1.2. (170f) (s8.3)(back to CE67)
16-Aug-18: Release for version 2.1.2. (5bcb) (s8.3)(back to CE67)
06-Sep-18: Release for version 2.1.3. (42f6)
04-Oct-18: Splitting "Minimum Resources" for Paul Davis (s8.4)
21-Oct-18: Release for version 2.1.4. (Beta)
28-Nov-18: Release for version 2.1.4. (GOG) (s8.5)
28-Nov-18: Release for version 2.1.4. (AOB) (s9.0)
09-Dec-18: Release for version 2.2.1. (AOB) (s10.0)
10-Dec-18: Added Machine prodution in Quick Pop Growth (s10.1)
20-Dec-18: Release for version 2.2.2. (AOB) (s10.2)
21-Dec-18: Fix in selecting megastructure (s10.3)
19-Jan-19: Release for version 2.2.4. (AOB) (s10.4)
07-Feb-19: Release for version 2.2.5. (AOB) (s10.5)
Features:
- Minimum Resources:
- Energy
- Minerals
- Food
- Goods
- Alloys
- Influence
- Unity (can be included or not)
- Minimum Special Resources: (new)(v10.0)
- Volatile Motes
- Exotic Gases
- Rare Crystals
- Living Metals
- Zro
- Dark Matter
- Nanites
- Quick Research
- Only Special Projects (original by transcendperfection) (v6.92)
- Quick Task (for some ships):
- Survey
- Investigation
- Quick Production
- Ship Construction
- Troop Recruitment
- Quick Colonization
- Phase 1 by ship
- Phase 2 by the Player him/her/self
- Quick Population Growth (s10.0)
- Beings
- Machines (s10.1)
- Quick Buiding
- By Planet
- All kind of Districts
- Buildings
- Clearing Blockers
- By Constructor Ship:
- Stations
- Quick Contruction of Megastructures
- Phase 1 by ship
- Phases 2/3 by the player him/her/self
- God Mode:
- ships (Hull/Shield/Armor)
- Stations (Hull/Shield/Armor)
- Troops
- Troop Morale
- Pretty Quick Fleet Move (original by transcendperfection) (v6.8/6.9)
- Player's Characters quick level-up to max (v7.5)
- Colossus Quick Actions (2 days) new (v8.1)
- Minimum Stability (new)(v10.0)
- Some Pointers
===========================================
}
//=========================================
// Checking CE version
{$lua}
if(getCEVersion() < 6.7) then
ShowMessage('Warning. 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 ~= "stellaris.exe") then
ShowMessage('Error. Expected Process = stellaris.exe')
end
{$asm}
//=========================================
// Definitions
define(LUDO,"stellaris.exe")
//=========================================
// Constants used in the script (that can be changed)
define(ctCE67,(float)6.7)
//=========================================
[ENABLE]
//=========================================
// Check if script is compatible to this game version
// If false the script will not be loaded
AOBScanModule(MOHP,$process,8b 8e 44 09 00 00 8b 01 8d 55 c0 52 ff 50 48 8d 45 c0 89 75 dc 89 45)
AOBScanModule(MOSC,$process,8b b1 a4 00 00 00 85 f6 ?? ?? 8b c6 5e 5f c3 81 c1 98 00 00 00 e8 ??)
AOBScanModule(MOSS,$process,8b 83 a4 00 00 00 3b 45 f0 0f 8d ?? ?? ?? ?? 8b 43 28 d1 e8 a8 01 ??)
AOBScanModule(MOSF,$process,8b b1 90 07 00 00 8b c6 57 8b b9 94 07 00 00 0b c7 ?? ?? 8d 44 24 08)
AOBScanModule(MOSP,$process,8b 46 20 8b 80 ec 00 00 00 83 f8 ff 0f 85 ?? ?? ?? ?? 8b 15 ?? ?? ??)
AOBScanModule(MSTP,$process,8b 4b 28 89 0a 8d 8d c4 fe ff ff e8 ?? ?? ?? ?? 50 68 ?? ?? ?? ?? ba)
//---
AOBScanModule(MORP,$process,8b 70 04 8b 01 8b 40 1c ff d0 84 c0 ?? ?? 8b 45 fc 8d 8b 80 02 00 00)
AOBScanModule(MOTP,$process,8b 00 39 47 1c 5f 5e 0f 9d c0 5b 5d c2 04 00 cc cc cc ?? ?? ?? ?? ??) //#
AOBScanModule(MOIP,$process,8b 00 39 46 1c 5e 0f 9d c0 5d c2 04 00 cc ?? ?? ?? ?? ?? ?? ?? ?? ??)
AOBScanModule(MOPP,$process,8b 43 48 39 43 44 0f 9d c0 84 c0 ?? ?? 8b 7f 0c 2b 7d 14 85 ff ?? ??) //X
AOBScanModule(MPP2,$process,8b 46 48 39 46 44 5f 0f 9d c0 5e c3 cc cc cc cc cc ?? ?? ?? ?? ?? ??) //N
AOBScanModule(MOPG,$process,01 bb 80 00 00 00 8b cb e8 ?? ?? ?? ?? 84 c0 ?? ?? a1 ?? ?? ?? ?? 89)
AOBScanModule(MOMP,$process,01 b3 a0 00 00 00 8b cb e8 ?? ?? ?? ?? 84 c0 ?? ?? a1 ?? ?? ?? ?? 89)
AOBScanModule(MOPS,$process,89 87 78 04 00 00 8d 44 24 18 50 e8 ?? ?? ?? ?? 80 7d 08 00 8b 00 89) //#
AOBScanModule(MOCP,$process,01 87 80 00 00 00 8b 87 80 00 00 00 3b 05 ?? ?? ?? ?? ?? ?? 80 3d ??)
AOBScanModule(MCP2,$process,81 43 34 e8 03 00 00 5e 5f 5b 8b e5 5d c2 04 00 8b 5d fc 8b 4b 04 8b)
AOBScanModule(MBP2,$process,8b 00 39 46 24 0f 9d c0 5e 5d c2 04 00 8b 00 39 46 24 5e 0f 9d c0 5d)
AOBScanModule(MSHL,$process,29 b7 8c 00 00 00 8b 0d ?? ?? ?? ?? be 18 fc ff ff 81 c1 9c 00 00 00)
AOBScanModule(MSSD,$process,89 8f 90 00 00 00 33 c9 8b 87 94 00 00 00 2b 45 bc 85 c0 0f 4f c8 89)
AOBScanModule(MSAR,$process,89 8f 94 00 00 00 85 f6 ?? ?? e8 ?? ?? ?? ?? f6 40 20 01 ?? ?? 8a 1d)
AOBScanModule(MOTH,$process,8b 45 08 29 43 28 8b 43 28 8b 75 fc ?? ?? c7 43 28 00 00 00 00 ?? ??)
AOBScanModule(MOTM,$process,8b 46 5c 3b c8 ?? ?? 8b c8 8b 45 08 29 4e 5c 8b 4e 5c 89 08 5f 5e 8b)
AOBScanModule(MOCX,$process,8b 00 39 46 78 ?? ?? 51 8b ce e8 ?? ?? ?? ?? 8b 7e 7c 8b ce e8 ?? ??)
AOBScanModule(MBP4,$process,8b 00 39 46 4c 0f 9d c0 5e 5d c2 04 00 8b 00 39 46 4c 5e 0f 9d c0 5d)
AOBScanModule(MOIM,$process,80 3d ?? ?? ?? ?? 00 53 56 57 8b f9 89 7d ec ?? ?? 8b 55 08 8b 42 04)
AOBScanModule(MIM2,$process,80 3d ?? ?? ?? ?? 00 ?? ?? 83 bf 84 00 00 00 01 ?? ?? 8b 57 04 8d 77)
//assert(MIM3,80 3d ?? ?? ?? ?? 00 53 56 57 8b f1 ?? ?? 33 c0 8b 4d f4 64 89 0d 00)
AOBScanRegion(MIM4,MIM3+00000010,MIM3+00001000,80 3d ?? ?? ?? ?? 00 53 56 57 8b f1 ?? ?? 33 c0 8b 4d f4 64 89 0d 00)
AOBScanModule(MIM5,$process,80 3d ?? ?? ?? ?? 00 53 56 57 8b da 8b f9 89 5c 24 24 89 7c 24 14 ??)
registersymbol(MOIM)
AOBScanModule(MOSM,$process,8b 89 10 01 00 00 85 c9 ?? ?? 83 c9 ff ?? ?? 8b 47 28 3d 8c 6c e7 ff)
AOBScanModule(MOSO,$process,c6 46 04 01 50 8d 4f 04 e8 ?? ?? ?? ?? 8b 06 8b ce 57 ff 50 04 5f 5e)
AOBScanModule(MOCA,$process,8b 41 1c 39 41 18 0f 9d c0 c2 04 00 cc cc ?? ?? ?? ?? ?? ?? ?? ?? ??)
AOBScanModule(MOAS,$process,80 b8 49 36 00 00 00 8b 87 b0 0a 00 00 8b 44 d0 04 0f 84 ?? ?? ?? ?? 85)
//=========================================
alloc(MyCode,6144,$process)
//=========================================
alloc(sMOIM,16,$process)
registersymbol(sMOIM)
sMOIM:
readmem(MOIM,7)
//=========================================
// Declaration section
label(_MonHumanPlayer)
label(_BackMHP)
label(_MonSelChar)
label(_BackMSC)
label(_MonSelShip)
label(_BackMSS)
label(_MonSelFleet)
label(_BackMSF)
label(_MonSelPlanet)
label(_BackMSP)
label(_MonSelTroop)
label(_BackMST)
label(_MonResearchProg)
label(_BackMRP)
label(_MonTaskProg)
label(_BackMTP)
label(_MonInvestigationProg)
label(_BackMIP)
label(_MonProdProg)
label(_BackMPP)
label(_MonProdProg2)
label(_BackPP2)
label(_MonPopGrowth)
label(_BackMPG)
label(_MonMachineProd)
label(_BackMMP)
label(_MonPlanetStability)
label(_BackMPS)
label(_MonColProg)
label(_BackMCP)
label(_MonColProg2)
label(_BackCP2)
label(_MonBuildProg2)
label(_BackBP2)
label(_MonShipHull)
label(_BackMSH)
label(_MonShipShield)
label(_BackSSD)
label(_MonShipArmor)
label(_BackMSA)
label(_MonTroopHealth)
label(_BackMTH)
label(_MonTroopMorale)
label(_BackMTM)
label(_MonCharXP)
label(_BackMCX)
label(_MonBuildProg4)
label(_BackBP4)
label(_MonInstantMove)
label(_BackMIM)
label(_MonInstantMove2)
label(_BackIM2)
label(_MonInstantMove3)
label(_BackIM3)
label(_MonInstantMove4)
label(_BackIM4)
label(_MonInstantMove5)
label(_BackIM5)
label(_MonSelMega)
label(_BackMSM)
label(_MonSelObj)
label(_BackMSO)
label(_MonColossusAction)
label(_BackMCA)
label(_MonAddStorage)
label(_BackMAS)
label(iEnableMMR)
label(iEnableMSR)
label(iEnableMRP)
label(iEnableMTP)
label(iEnableMPP)
label(iEnableMCP)
label(iEnableMBP)
label(iEnableMPT)
label(iEnableGMD)
label(iEnableMTM)
label(iEnableQRP)
label(iEnableMML)
label(iEnableMTF)
label(iEnableQCP)
label(iEnableMIM)
label(iEnableSPO)
label(iEnableRIU)
label(iEnableMBM)
label(iEnableIPR)
label(iEnableMCX)
label(iEnableMPG)
label(iEnableMCA)
label(iEnableRIE)
label(iEnableRIM)
label(iEnableRIF)
label(iEnableRII)
label(iEnableRIG)
label(iEnableRIA)
label(iEnableMPS)
label(iOwnerID)
label(iStatusID)
label(iResIndex)
label(iResMax)
label(iMinUnity)
label(iAddStore)
label(pPlayer)
label(pRuler)
label(pChar)
label(pPlanet)
label(pShip)
label(pFleet)
label(pCommon)
label(pStatusInfo)
label(pProd)
label(pTile)
label(pResInfo)
label(pTroop)
label(pMega)
label(pObj)
label(pMOHP)
label(pMOSC)
label(pMOSS)
label(pMOSF)
label(pMOSP)
label(pMSTP)
label(pMORP)
label(pMOTP)
label(pMOIP)
label(pMOPP)
label(pMPP2)
label(pMOPG)
label(pMOMP)
label(pMOPS)
label(pMOCP)
label(pMCP2)
label(pMBP2)
label(pMSHL)
label(pMSSD)
label(pMSAR)
label(pMOTH)
label(pMOTM)
label(pMOCX)
label(pMBP4)
label(pMOIM)
label(pMIM2)
label(pMIM3)
label(pMIM4)
label(pMIM5)
label(pMOSM)
label(pMOSO)
label(pMOCA)
label(pMOAS)
//=========================================
// Registering Symbols
registersymbol(MyCode)
registersymbol(iEnableMMR)
registersymbol(iEnableMSR)
registersymbol(iEnableMRP)
registersymbol(iEnableMTP)
registersymbol(iEnableMPP)
registersymbol(iEnableMCP)
registersymbol(iEnableMBP)
registersymbol(iEnableMPT)
registersymbol(iEnableGMD)
registersymbol(iEnableMTM)
registersymbol(iEnableQRP)
registersymbol(iEnableMML)
registersymbol(iEnableMTF)
registersymbol(iEnableQCP)
registersymbol(iEnableMIM)
registersymbol(iEnableSPO)
registersymbol(iEnableRIU)
registersymbol(iEnableMBM)
registersymbol(iEnableIPR)
registersymbol(iEnableMCX)
registersymbol(iEnableMPG)
registersymbol(iEnableMCA)
registersymbol(iEnableRIE)
registersymbol(iEnableRIM)
registersymbol(iEnableRIF)
registersymbol(iEnableRII)
registersymbol(iEnableRIG)
registersymbol(iEnableRIA)
registersymbol(iEnableMPS)
registersymbol(iOwnerID)
registersymbol(iStatusID)
registersymbol(iResIndex)
registersymbol(iResMax)
registersymbol(iMinUnity)
registersymbol(iAddStore)
registersymbol(pPlayer)
registersymbol(pRuler)
registersymbol(pChar)
registersymbol(pPlanet)
registersymbol(pShip)
registersymbol(pFleet)
registersymbol(pCommon)
registersymbol(pStatusInfo)
registersymbol(pTile)
registersymbol(pResInfo)
registersymbol(pTroop)
registersymbol(pMega)
registersymbol(pObj)
registersymbol(pMOHP)
registersymbol(pMOSC)
registersymbol(pMOSS)
registersymbol(pMOSF)
registersymbol(pMOSP)
registersymbol(pMSTP)
registersymbol(pMORP)
registersymbol(pMOTP)
registersymbol(pMOIP)
registersymbol(pMOPP)
registersymbol(pMPP2)
registersymbol(pMOPG)
registersymbol(pMOMP)
registersymbol(pMOPS)
registersymbol(pMOCP)
registersymbol(pMCP2)
registersymbol(pMBP2)
registersymbol(pMSHL)
registersymbol(pMSSD)
registersymbol(pMSAR)
registersymbol(pMOTH)
registersymbol(pMOTM)
registersymbol(pMOCX)
registersymbol(pMBP4)
registersymbol(pMOIM)
registersymbol(pMIM2)
registersymbol(pMIM3)
registersymbol(pMIM4)
registersymbol(pMIM5)
registersymbol(pMOSM)
registersymbol(pMOSO)
registersymbol(pMOCA)
registersymbol(pMOAS)
//=========================================
MyCode:
//========================================= 224 * (S10.4)
// At main game screen
_MonHumanPlayer:
push eax
push ebx
push ecx
push edx
push edi
mov edi,esi
mov ecx,[edi+08]
test ecx,ecx
jnz _ExitMHP
mov [pPlayer],edi
and ecx,00ffffff
mov [iOwnerID],ecx
lea ecx,[edi+00000a88]
mov [pBaseStatus],ecx
mov ecx,[edi+00000260]
mov [pCommon],ecx
mov ecx,[edi+000000944]
test ecx,ecx
jz _ExitMHP
mov ebx,[ecx+20]
test ebx,ebx
jz _ExitMHP
cmp ebx,#30
jns _ExitMHP
mov edx,[ecx+18]
test edx,edx
jz _ExitMHP
cmp dword ptr [iEnableMMR],0
je _MonHPR0 // Jump if feature is disabled
mov ecx,[iAddStore]
shr ecx,1
add ecx,#6800000
cmp dword ptr [iEnableRIE],0
je _MonHP0M // Jump if feature is disabled
cmp [edx+04],ecx
jns _MonHP0M
mov [edx+04],ecx
_MonHP0M:
cmp dword ptr [iEnableRIM],0
je _MonHP0F // Jump if feature is disabled
cmp [edx+08],ecx
jns _MonHP0F
mov [edx+08],ecx
_MonHP0F:
cmp dword ptr [iEnableRIF],0
je _MonHP0G // Jump if feature is disabled
cmp [edx+0c],ecx
jns _MonHP0G
mov [edx+0c],ecx
_MonHP0G:
cmp dword ptr [iEnableRIG],0
je _MonHP0A // Jump if feature is disabled
cmp [edx+28],ecx
jns _MonHP0A
mov [edx+28],ecx
_MonHP0A:
cmp dword ptr [iEnableRIA],0
je _MonHP0I // Jump if feature is disabled
cmp [edx+24],ecx
jns _MonHP0I
mov [edx+24],ecx
_MonHP0I:
mov ecx,#680000
cmp dword ptr [iEnableRII],0
je _MonHP0U // Jump if feature is disabled
cmp [edx+1c],ecx
jns _MonHP0U
mov [edx+1c],ecx
_MonHP0U:
cmp dword ptr [iEnableRIU],0
je _MonHPR0 // Jump if feature is disabled
mov ecx,[iMinUnity]
imul ecx,ecx,#1000
cmp [edx+20],ecx
jns _MonHPR0
mov [edx+20],ecx
_MonHPR0:
cmp dword ptr [iEnableMSR],0
je _ExitMHP // Jump if feature is disabled
mov ebx,#68000
mov ecx,7
lea edx,[edx+2c]
xor eax,eax
_MonHPS0:
lea edi,[edx+ecx*4-04]
cmp [edi],eax
je _MonHPS1
cmp [edi],ebx
jns _MonHPS1
mov [edi],ebx
_MonHPS1:
loop _MonHPS0
_ExitMHP:
pop edi
pop edx
pop ecx
pop ebx
pop eax
mov ecx,[esi+00000944] // Original code (get pResourcesInfo)
jmp _BackMHP // Back to main code
//========================================= 210 OK
// Character Under Cursor (displaying age)
_MonSelChar:
mov [pChar],ecx
_ExitMSC:
mov esi,[ecx+000000a4] // Original code (get age)
jmp _BackMSC // Back to main code
//========================================= 224 *
// Last selected ship/station (UC on flee view)
_MonSelShip:
mov [pShip],ebx
_ExitMSS:
mov eax,[ebx+000000A4] // Original code (get cHull)
jmp _BackMSS // Back to main code
//========================================= 224 *
// Last selected fleet/station
_MonSelFleet:
mov [pFleet],ecx
_ExitMSF:
mov esi,[ecx+00000790] // Original code (get Total Hull)
jmp _BackMSF // Back to main code
//========================================= 221 X
// Last selected planet/sun/asteroid
_MonSelPlanet:
mov [pPlanet],esi
_ExitMSP:
mov eax,[esi+20] // Original code (get type)
mov eax,[eax+000000EC] // Original code
jmp _BackMSP // Back to main code
//========================================= 224 #
// Last Troop Under Cursor
_MonSelTroop:
mov [pTroop],ebx
_ExitMST:
mov ecx,[ebx+28] // Original code (get HP)
mov [edx],ecx // Original code
jmp _BackMST // Back to main code
//========================================= 224 #
// Every day
_MonResearchProg:
cmp dword ptr [iEnableMRP],0
je _ExitMRP // Jump if feature is disabled
cmp ebx,[pPlayer]
jne _ExitMRP
mov esi,[eax+04]
test esi,esi
jz _ExitMRP
cmp dword ptr [iEnableSPO],0
je _MonRP00 // Jump if feature is disabled
cmp dword ptr [ecx+24],3
jne _ExitMRP
_MonRP00:
mov esi,#680000000
cmp [eax+04],esi
jns _ExitMRP
mov [eax+04],esi
_ExitMRP:
mov esi,[eax+04] // Original code (get prog)
mov eax,[ecx] // Original code
jmp _BackMRP // Back to main code
//========================================= 225 X
// During updating (min = 90%) Science
_MonTaskProg:
push esi
push ecx
push edx
mov ecx,eax
cmp dword ptr [iEnableMTP],0
je _ExitMTP // Jump if feature is disabled
mov esi,[ebp+0c]
test esi,esi
jz _ExitMTP
cmp esi,[ebp-08]
jne _ExitMTP
mov eax,[esi+00000090]
cmp eax,[iOwnerID]
jne _ExitMTP
mov eax,[ecx]
imul eax,eax,#90
xor edx,edx
mov esi,#100
div esi
cmp [edi+1c],eax
jns _ExitMTP
mov [edi+1c],eax
_ExitMTP:
mov eax,ecx
pop edx
pop ecx
pop esi
mov eax,[eax] // Original code
cmp [edi+1C],eax // Original code (chk prog)
jmp _BackMTP // Back to main code
//========================================= 220 ok
// During updating (min = 98%)
_MonInvestigationProg:
push ebx
push ecx
push edx
push edi
mov ecx,eax
cmp dword ptr [iEnableMTP],0
je _ExitMIP // Jump if feature is disabled
mov ebx,[ebp+0c]
test ebx,ebx
jz _ExitMIP
mov ebx,[ebx+00000090]
and ebx,00ffffff
cmp ebx,[iOwnerID]
jne _ExitMIP
mov eax,[ecx]
imul eax,eax,#98
xor edx,edx
mov edi,#100
div edi
cmp [esi+1c],eax
jns _ExitMIP
mov [esi+1c],eax
_ExitMIP:
mov eax,ecx
pop edi
pop edx
pop ecx
pop ebx
mov eax,[eax] // Original code
cmp [esi+1C],eax // Original code (chk prog)
jmp _BackMIP // Back to main code
//========================================= 225 X
// Right After updating producing/upgrading/recruiting prog
_MonProdProg:
cmp dword ptr [iEnableMPP],0
je _ExitMPP // Jump if feature is disabled
mov eax,[iOwnerID]
cmp eax,[ebx+04]
jne _ExitMPP
mov eax,[ebx+48]
lea eax,[eax-000007d0]
test eax,eax
js _ExitMPP
cmp [ebx+44],eax
jns _ExitMPP
mov [ebx+44],eax
_ExitMPP:
mov eax,[ebx+48] // Original code
cmp [ebx+44],eax // Original code (chk prog)
jmp _BackMPP // Back to main code
//========================================= 225 N
// When building at planet
_MonProdProg2:
cmp dword ptr [iEnableMPP],0
je _ExitPP2 // Jump if feature is disabled
mov eax,[esi+44]
test eax,eax
jz _ExitPP2
mov eax,[iOwnerID]
cmp eax,[esi+04]
jne _ExitPP2
mov eax,[esi+48]
lea eax,[eax-000007d0]
test eax,eax
js _ExitPP2
cmp [esi+44],eax
jns _ExitPP2
mov [esi+44],eax
_ExitPP2:
mov eax,[esi+48] // Original code
cmp [esi+44],eax // Original code (chk prog)
jmp _BackPP2 // Back to main code
//========================================= 225 # Adjusted
// When increasing population growth prog
_MonPopGrowth:
cmp dword ptr [iEnableMPG],0
je _ExitMPG // Jump if feature is disabled
mov ecx,[ebx+0000017c]
and ecx,00ffffff
cmp ecx,[iOwnerID]
jne _ExitMPG
mov ecx,#99500
cmp [ebx+00000080],ecx
jns _ExitMPG
mov [ebx+00000080],ecx
_ExitMPG:
add [ebx+00000080],edi // Original code (upd prog)
jmp _BackMPG // Back to main code
//========================================= 224 * (s10.1)
// When producing machines (a month)
_MonMachineProd:
cmp dword ptr [iEnableMPG],0
je _ExitMMP // Jump if feature is disabled
mov ecx,[ebx+0000017c]
and ecx,00ffffff
cmp ecx,[iOwnerID]
jne _ExitMMP
mov ecx,#100000
cmp [ebx+000000a0],ecx
jns _ExitMMP
mov [ebx+000000a0],ecx
_ExitMMP:
add [ebx+000000a0],esi // Original code (upd prog)
jmp _BackMMP // Back to main code
//========================================= 225 #
// When updating stability
_MonPlanetStability:
mov [edi+00000478],eax // Original code (upd stab)
cmp dword ptr [iEnableMPS],0
je _ExitMPS // Jump if feature is disabled
mov eax,[edi+0000017c]
and eax,00ffffff
cmp eax,[iOwnerID]
jne _ExitMPS
mov eax,#90000
cmp [edi+00000478],eax
jns _ExitMPS
mov [edi+00000478],eax
_ExitMPS:
jmp _BackMPS // Back to main code
//========================================= 224 #
// When updating (colonization by pop) (phase 2)
_MonColProg:
push ecx
cmp dword ptr [iEnableMCP],0
je _ExitMCP // Jump if feature is disabled
mov ecx,[edi+0000017c]
and ecx,00ffffff
cmp ecx,[iOwnerID]
jne _ExitMCP
mov eax,#110000
_ExitMCP:
pop ecx
add [edi+00000080],eax // Original code (upd prog)
jmp _BackMCP // Back to main code
//========================================= 220 X
// When updating (colonization by ship) 90% (x100)
_MonColProg2:
add [ebx+34],000003E8 // Original code (upd prog)
cmp dword ptr [iEnableQCP],0
je _ExitCP2 // Jump if feature is disabled
test edi,edi
jz _ExitCP2
mov esi,[edi+00000090]
and esi,00ffffff
cmp esi,[iOwnerID]
jne _ExitCP2
mov esi,#9000
cmp [ebx+34],esi
jns _ExitCP2
mov [ebx+34],esi
_ExitCP2:
jmp _BackCP2 // Back to main code
//========================================= 210 ok
// When constructing by constructor ship (ex.: outpost)(%)
// EDI = pFleet
_MonBuildProg2:
push ecx
cmp dword ptr [iEnableMBP],0
je _ExitBP2 // Jump if feature is disabled
mov ecx,[ebp+0c]
test ecx,ecx
jz _ExitBP2
mov ecx,[ecx+00000090]
cmp ecx,[iOwnerID]
jne _ExitBP2
mov ecx,#97000
cmp [esi+24],ecx
jns _ExitBP2
mov [esi+24],ecx
_ExitBP2:
pop ecx
mov eax,[eax] // Original code
cmp [esi+24],eax // Original code (chk % prog)
jmp _BackBP2 // Back to main code
//========================================= 214 beta #
// During Battle (ship/stations)
_MonShipHull:
cmp dword ptr [iEnableGMD],0
je _ExitMSH // Jump if feature is disabled
mov eax,[edi+38]
call _ChkPlayerFleet
jne _ExitMSH
xor esi,esi
_ExitMSH:
sub [edi+0000008C],esi // Original code (dec cHull)
jmp _BackMSH // Back to main code
//========================================= 202 5b9d *
// During Battle (ship/stations)
_MonShipShield:
cmp dword ptr [iEnableGMD],0
je _ExitSSD // Jump if feature is disabled
mov eax,[edi+38]
call _ChkPlayerFleet
jne _ExitSSD
cmp ecx,[edi+00000090]
jns _ExitSSD
mov ecx,[edi+00000090]
_ExitSSD:
mov [edi+00000090],ecx // Original code (upd Shield)
jmp _BackSSD // Back to main code
//========================================= 202 5b9d *
// During Battle (ship/stations)
_MonShipArmor:
cmp dword ptr [iEnableGMD],0
je _ExitMSA // Jump if feature is disabled
mov eax,[edi+38]
call _ChkPlayerFleet
jne _ExitMSA
cmp ecx,[edi+00000094]
jns _ExitMSA
mov ecx,[edi+00000094]
_ExitMSA:
mov [edi+00000094],ecx // Original code (upd Shield)
jmp _BackMSA // Back to main code
//========================================= 220 ok
// During Battle (Troops)
_MonTroopHealth:
cmp dword ptr [iEnableGMD],0
je _ExitMTH // Jump if feature is disabled
mov eax,[ebx+08]
call _ChkPlayerTroop
jne _ExitMTH
xor eax,eax
mov [ebp+08],eax
_ExitMTH:
mov eax,[ebp+08] // Original code
sub [ebx+28],eax // Original code (dec cHealth)
jmp _BackMTH // Back to main code
//========================================= 220 X
// During Battle (Troops)(defender/attacker)
_MonTroopMorale:
cmp dword ptr [iEnableMTM],0
je _ExitMTM // Jump if feature is disabled
mov eax,[esi+08]
call _ChkPlayerTroop
jne _ExitMTM
xor ecx,ecx
_ExitMTM:
mov eax,[esi+5c] // Original code (get morale)
cmp ecx,eax // Original code
jmp _BackMTM // Back to main code
//========================================= 210 *
// Character will level up to max when getting any XP
_MonCharXP:
push ecx
mov ecx,eax
cmp dword ptr [esi+0000007c],5
jns _ExitMCX
cmp dword ptr [iEnableMCX],0
je _ExitMCX // Jump if feature is disabled
mov eax,[esi+08]
call _ChkPlayerChars
jnz _ExitMCX
mov eax,[ecx]
cmp [esi+78],eax
jns _ExitMCX
mov [esi+78],eax
_ExitMCX:
mov eax,ecx
pop ecx
mov eax,[eax] // Original code
cmp [esi+78],eax // Original code
jmp _BackMCX // Back to main code
//========================================= 220 X
// When constructing by ship constructor (ex.: MEGA)
_MonBuildProg4:
push edi
cmp dword ptr [iEnableMBM],0
je _ExitBP4 // Jump if feature is disabled
mov edi,[ebp+0c]
test edi,edi
jz _ExitBP4
cmp edi,[ebp-04]
jne _ExitBP4
mov edi,[edi+00000090]
cmp edi,[iOwnerID]
jne _ExitBP4
mov edi,[eax]
cmp [esi+4C],edi
jns _ExitBP4
mov [esi+4C],edi
_ExitBP4:
pop edi
mov eax,[eax] // Original code
cmp [esi+4C],eax // Original code (chk prog)
jmp _BackBP4 // Back to main code
//========================================= 211 #
// When Moving Fleet (original by transcendperfection)
_MonInstantMove:
push eax
push esi
mov eax,[sMOIM+02]
movzx eax,byte ptr [eax]
cmp dword ptr [iEnableMIM],0
je _ExitMIM // Jump if feature is disabled
mov esi,[ecx+04]
test esi,esi
jz _ExitMIM
mov esi,[esi+00000090]
and esi,00ffffff
cmp esi,[iOwnerID]
jne _ExitMIM
inc eax
_ExitMIM:
test eax,eax
pop esi
pop eax
jmp _BackMIM // Back to main code
//========================================= 210 OK
// When Moving Fleet (original by transcendperfection)
_MonInstantMove2:
push eax
push esi
mov eax,[sMOIM+02]
movzx eax,byte ptr [eax]
cmp dword ptr [iEnableMIM],0
je _ExitIM2 // Jump if feature is disabled
mov esi,[edi+04]
test esi,esi
jz _ExitIM2
mov esi,[esi+00000090]
cmp esi,[iOwnerID]
jne _ExitIM2
inc eax
_ExitIM2:
test eax,eax
pop esi
pop eax
jmp _BackIM2 // Back to main code
//========================================= 210 ok
// When Moving Fleet (original by transcendperfection)
_MonInstantMove3:
push eax
push esi
mov esi,[sMOIM+02]
movzx esi,byte ptr [esi]
cmp dword ptr [iEnableMIM],0
je _ExitIM3 // Jump if feature is disabled
mov eax,[ecx+20] // Get fleet ID
call _ChkPlayerFleet
jnz _ExitIM3
inc esi
_ExitIM3:
test esi,esi
pop esi
pop eax
jmp _BackIM3 // Back to main code
//========================================= 210 ok
// When Moving Fleet (original by transcendperfection)
_MonInstantMove4:
push eax
push esi
mov esi,[sMOIM+02]
movzx esi,byte ptr [esi]
cmp dword ptr [iEnableMIM],0
je _ExitIM4 // Jump if feature is disabled
mov eax,[ecx+20] // Get fleet ID
call _ChkPlayerFleet
jnz _ExitIM4
inc esi
_ExitIM4:
test esi,esi
pop esi
pop eax
jmp _BackIM4 // Back to main code
//========================================= 210 #
// When Moving Ship (original by transcendperfection)
_MonInstantMove5:
push eax
push esi
mov esi,[sMOIM+02]
movzx esi,byte ptr [esi]
cmp dword ptr [iEnableMIM],0
je _ExitIM5 // Jump if feature is disabled
mov eax,[ecx+50]
call _ChkPlayerFleet
jnz _ExitIM5
inc esi
_ExitIM5:
test esi,esi
pop esi
pop eax
jmp _BackIM5 // Back to main code
//========================================= 222 # (s10.3)
// Last selected megastructure during upgrade (game paused)
_MonSelMega:
mov [pMega],edi
_ExitMSM:
mov ecx,[ecx+00000110] // Original code
jmp _BackMSM // Back to main code
//========================================= 220 ok
// Last selected Object
_MonSelObj:
mov [pObj],esi
_ExitMSO:
mov byte ptr [esi+04],01 // Original code (set sel)
push eax // Original code
jmp _BackMSO // Back to main code
//========================================= 220 ok
// When colossus is preparing or cracking
_MonColossusAction:
cmp dword ptr [iEnableMCA],0
je _ExitMCA // Jump if feature is disabled
test edi,edi
jz _ExitMCA
mov eax,[edi+00000090]
cmp eax,[iOwnerID]
jne _ExitMCA
mov eax,[ecx+1C]
lea eax,[eax-000007d0]
cmp [ecx+18],eax
jns _ExitMCA
mov [ecx+18],eax
_ExitMCA:
mov eax,[ecx+1C] // Original code
cmp [ecx+18],eax // Original code (chk prog)
jmp _BackMCA // Back to main code
//========================================= 224 # new
// Find out the additional storage capacity
_MonAddStorage:
push eax
cmp edi,[pPlayer]
jne _ExitMAS
mov eax,[edi+00000AB0]
mov eax,[eax+edx*8+04]
test eax,eax
js _ExitMAS
mov [iAddStore],eax
_ExitMAS:
pop eax
cmp byte ptr [eax+00003649],00 // Original code
jmp _BackMAS // Back to main code
//=========================================
align 10,cc
//========================================= 224 #
// Check if it is a player's ship/Station (based on its fleet id)
// Input : EAX = FleetID
// Output: Z = found and NZ = Not Found
_ChkPlayerFleet:
push ebx
push ecx
mov ebx,[pPlayer]
mov ecx,[ebx+000007b0]
mov ebx,[ebx+000007ac]
test ebx,ebx
jz _ChkPF01
_ChkPF00:
cmp ecx,ebx
jle _ChkPF01
cmp eax,[ebx]
je _ChkPF02
lea ebx,[ebx+04]
jmp _ChkPF00
//==
_ChkPF01:
inc eax
test eax,eax
_ChkPF02:
pop ecx
pop ebx
ret
//=========================================
align 10,cc
//========================================= 224 #
// Check if it is a player's troop (based on its id)
// Input : EAX = TroopID
// Output: Z = found and NZ = Not Found
_ChkPlayerTroop:
push ebx
push ecx
mov ebx,[pPlayer]
mov ecx,[ebx+000007bc]
mov ebx,[ebx+000007b8]
test ebx,ebx
jz _ChkPT01
_ChkPT00:
cmp ecx,ebx
jle _ChkPF01
cmp eax,[ebx]
je _ChkPT02
lea ebx,[ebx+04]
jmp _ChkPT00
//--
_ChkPT01:
inc eax
test eax,eax
_ChkPT02:
pop ecx
pop ebx
ret
//=========================================
align 10,cc
//========================================= 224 #
// Check if it is a player's character (based on its id)
// Input : EAX = CharID
// Output: Z = found and NZ = Not Found
_ChkPlayerChars:
push ebx
push ecx
mov ebx,[pPlayer]
mov ecx,[ebx+000007a4]
mov ebx,[ebx+000007a0]
test ebx,ebx
jz _ChkPC01
_ChkPC00:
cmp ecx,ebx
jle _ChkPC01
cmp eax,[ebx]
je _ChkPC02
lea ebx,[ebx+04]
jmp _ChkPC00
//==
_ChkPC01:
inc eax
test eax,eax
_ChkPC02:
pop ecx
pop ebx
ret
//=========================================
align 10,'='
//=========================================
db '===============================>'
db 'CE6.7 Script by Recifense 190207'
//=========================================
// Variables
iEnableMMR:
dd 0
iEnableMSR:
dd 0
iEnableMRP:
dd 0
iEnableMTP:
dd 0
iEnableMPP:
dd 0
iEnableMCP:
dd 0
iEnableMBP:
dd 0
iEnableMPT:
dd 0
iEnableGMD:
dd 0
iEnableMTM:
dd 0
iEnableQRP:
dd 0
iEnableMML:
dd 0
iEnableMTF:
dd 0
iEnableQCP:
dd 0
iEnableMIM:
dd 0
iEnableSPO:
dd 0
iEnableRIU:
dd 0
iEnableMBM:
dd 0
iEnableIPR:
dd 0
iEnableMCX:
dd 0
iEnableMPG:
dd 0
iEnableMCA:
dd 0
iEnableRIE:
dd 1
iEnableRIM:
dd 1
iEnableRIF:
dd 1
iEnableRII:
dd 1
iEnableRIG:
dd 1
iEnableRIA:
dd 1
iEnableMPS:
dd 0
iOwnerID:
dd #999
iStatusID:
dd 0
iResIndex:
dd 2
iResMax:
dd 2
iMinUnity:
dd #1068
iAddStore:
dd 0
iTileID:
dd 55555555
pPlayer:
dd MyCode
pRuler:
dd 0
pChar:
dd 0
pPlanet:
dd 0
pShip:
dd 0
pFleet:
dd 0
pTile:
dd 0
pResInfo:
dd 0
pCommon:
dd MyCode
pStatusInfo:
dd 0
pProd:
dd MyCode
pTroop:
dd 0
pMega:
dd 0
pObj:
dd 0
pBaseStatus:
dd MyCode
sMOIN:
db 0,0,0,0,0,0,0
sMIM2:
db 0,0,0,0,0,0,0
sMIM3:
db 0,0,0,0,0,0,0
sMIM4:
db 0,0,0,0,0,0,0
sMIM5:
db 0,0,0,0,0,0,0
db 'CE67'
//=========================================
// Hacking Points
MOHP:
pMOHP:
jmp _MonHumanPlayer
nop
_BackMHP:
MOSC:
pMOSC:
jmp _MonSelChar
nop
_BackMSC:
MOSS:
pMOSS:
jmp _MonSelShip
nop
_BackMSS:
MOSF:
pMOSF:
jmp _MonSelFleet
nop
_BackMSF:
MOSP:
pMOSP:
jmp _MonSelPlanet
nop
nop
nop
nop
_BackMSP:
MSTP:
pMSTP:
jmp _MonSelTroop
_BackMST:
MORP:
pMORP:
jmp _MonResearchProg
_BackMRP:
MOTP:
pMOTP:
jmp _MonTaskProg
_BackMTP:
MOIP:
pMOIP:
jmp _MonInvestigationProg
_BackMIP:
MOPP:
pMOPP:
jmp _MonProdProg
nop
_BackMPP:
MPP2:
pMPP2:
jmp _MonProdProg2
nop
_BackPP2:
MOPG:
pMOPG:
jmp _MonPopGrowth
nop
_BackMPG:
MOMP:
pMOMP:
jmp _MonMachineProd
nop
_BackMMP:
MOPS:
pMOPS:
jmp _MonPlanetStability
nop
_BackMPS:
MOCP:
pMOCP:
jmp _MonColProg
nop
_BackMCP:
MCP2:
pMCP2:
jmp _MonColProg2
nop
nop
_BackCP2:
MBP2:
pMBP2:
jmp _MonBuildProg2
_BackBP2:
MSHL:
pMSHL:
jmp _MonShipHull
nop
_BackMSH:
MSSD:
pMSSD:
jmp _MonShipShield
nop
_BackSSD:
MSAR:
pMSAR:
jmp _MonShipArmor
nop
_BackMSA:
MOTH:
pMOTH:
jmp _MonTroopHealth
nop
_BackMTH:
MOTM:
pMOTM:
jmp _MonTroopMorale
_BackMTM:
MOCX:
pMOCX:
jmp _MonCharXP
_BackMCX:
MBP4:
pMBP4:
jmp _MonBuildProg4
_BackBP4:
MOIM:
pMOIM:
jmp _MonInstantMove
nop
nop
_BackMIM:
MIM2:
pMIM2:
jmp _MonInstantMove2
nop
nop
_BackIM2:
MIM3:
pMIM3:
jmp _MonInstantMove3
nop
nop
_BackIM3:
MIM4:
pMIM4:
jmp _MonInstantMove4
nop
nop
_BackIM4:
MIM5:
pMIM5:
jmp _MonInstantMove5
nop
nop
_BackIM5:
MOSM:
pMOSM:
jmp _MonSelMega
nop
_BackMSM:
MOSO:
pMOSO:
jmp _MonSelObj
_BackMSO:
MOCA:
pMOCA:
jmp _MonColossusAction
nop
_BackMCA:
MOAS:
pMOAS:
jmp _MonAddStorage
nop
nop
_BackMAS:
//=========================================
// Script for Restoring Original Codes
[DISABLE]
pMOHP:
// mov ecx,[esi+00000944]
db 8b 8e 44 09 00 00
pMOSC:
// mov esi,[ecx+000000A4]
db 8b b1 a4 00 00 00
pMOSS:
// mov eax,[ebx+000000A4]
db 8b 83 a4 00 00 00
pMOSF:
// mov esi,[ecx+00000790]
db 8b b1 90 07 00 00
pMOSP:
// mov eax,[esi+20]
// mov eax,[eax+000000EC]
db 8b 46 20 8b 80 ec 00 00 00
pMSTP:
// mov ecx,[ebx+28]
// mov [edx],ecx
db 8b 4b 28 89 0a
pMORP:
// mov esi,[eax+04]
// mov eax,[ecx]
db 8b 70 04 8b 01
pMOTP:
// mov eax,[eax]
// cmp [edi+1C],eax
db 8b 00 39 47 1c
pMOIP:
// mov eax,[eax]
// cmp [esi+1C],eax
db 8b 00 39 46 1c
pMOPP:
// mov eax,[ebx+48]
// cmp [ebx+44],eax
db 8b 43 48 39 43 44
pMPP2:
// mov eax,[esi+48]
// cmp [esi+44],eax
db 8b 46 48 39 46 44
pMOPG:
// add [ebx+00000080],edi
db 01 bb 80 00 00 00
pMOMP:
// add [ebx+000000A0],esi
db 01 b3 a0 00 00 00
pMOPS:
// mov [edi+00000478],eax
db 89 87 78 04 00 00
pMOCP:
// add [edi+00000080],eax
db 01 87 80 00 00 00
pMCP2:
// add [ebx+34],000003E8
db 81 43 34 e8 03 00 00
pMBP2:
// mov eax,[eax]
// cmp [esi+24],eax
db 8b 00 39 46 24
pMSHL:
// sub [edi+0000008C],esi
db 29 b7 8c 00 00 00
pMSSD:
// mov [edi+00000090],ecx
db 89 8f 90 00 00 00
pMSAR:
// mov [edi+00000094],ecx
db 89 8f 94 00 00 00
pMOTH:
// mov eax,[ebp+08]
// sub [ebx+28],eax
db 8b 45 08 29 43 28
pMOTM:
// mov eax,[esi+5C]
// cmp ecx,eax
db 8b 46 5c 3b c8
pMOCX:
// mov eax,[eax]
// cmp [esi+78],eax
db 8b 00 39 46 78
pMBP4:
// mov eax,[eax]
// cmp [esi+4C],eax
db 8b 00 39 46 4c
pMOIM:
readmem(sMOIM,7)
pMIM2:
readmem(sMOIM,7)
pMIM3:
readmem(sMOIM,7)
pMIM4:
readmem(sMOIM,7)
pMIM5:
readmem(sMOIM,7)
pMOSM:
// mov ecx,[ecx+00000110]
db 8b 89 10 01 00 00
pMOSO:
// mov byte ptr [esi+04],01
// push eax
db c6 46 04 01 50
pMOCA:
// mov eax,[ecx+1C]
// cmp [ecx+18],eax
db 8b 41 1c 39 41 18
pMOAS:
// cmp byte ptr [eax+00003649],00
db 80 b8 49 36 00 00 00
//=========================================
// Unregistering Symbols
unregistersymbol(MyCode)
unregistersymbol(iEnableMMR)
unregistersymbol(iEnableMSR)
unregistersymbol(iEnableMRP)
unregistersymbol(iEnableMTP)
unregistersymbol(iEnableMPP)
unregistersymbol(iEnableMCP)
unregistersymbol(iEnableMBP)
unregistersymbol(iEnableMPT)
unregistersymbol(iEnableGMD)
unregistersymbol(iEnableMTM)
unregistersymbol(iEnableQRP)
unregistersymbol(iEnableMML)
unregistersymbol(iEnableMTF)
unregistersymbol(iEnableQCP)
unregistersymbol(iEnableMIM)
unregistersymbol(iEnableSPO)
unregistersymbol(iEnableRIU)
unregistersymbol(iEnableMBM)
unregistersymbol(iEnableIPR)
unregistersymbol(iEnableMCX)
unregistersymbol(iEnableMPG)
unregistersymbol(iEnableMCA)
unregistersymbol(iEnableRIE)
unregistersymbol(iEnableRIM)
unregistersymbol(iEnableRIF)
unregistersymbol(iEnableRII)
unregistersymbol(iEnableRIG)
unregistersymbol(iEnableRIA)
unregistersymbol(iEnableMPS)
unregistersymbol(iOwnerID)
unregistersymbol(iStatusID)
unregistersymbol(iResIndex)
unregistersymbol(iResMax)
unregistersymbol(iMinUnity)
unregistersymbol(iAddStore)
unregistersymbol(pPlayer)
unregistersymbol(pRuler)
unregistersymbol(pChar)
unregistersymbol(pPlanet)
unregistersymbol(pShip)
unregistersymbol(pFleet)
unregistersymbol(pCommon)
unregistersymbol(pStatusInfo)
unregistersymbol(pTile)
unregistersymbol(pResInfo)
unregistersymbol(pTroop)
unregistersymbol(pMega)
unregistersymbol(pObj)
unregistersymbol(pMOHP)
unregistersymbol(pMOSC)
unregistersymbol(pMOSS)
unregistersymbol(pMOSF)
unregistersymbol(pMOSP)
unregistersymbol(pMSTP)
unregistersymbol(pMORP)
unregistersymbol(pMOTP)
unregistersymbol(pMOIP)
unregistersymbol(pMOPP)
unregistersymbol(pMPP2)
unregistersymbol(pMOPG)
unregistersymbol(pMOMP)
unregistersymbol(pMOPS)
unregistersymbol(pMOCP)
unregistersymbol(pMCP2)
unregistersymbol(pMBP2)
unregistersymbol(pMSHL)
unregistersymbol(pMSSD)
unregistersymbol(pMSAR)
unregistersymbol(pMOTH)
unregistersymbol(pMOTM)
unregistersymbol(pMOCX)
unregistersymbol(pMBP4)
unregistersymbol(pMOIM)
unregistersymbol(pMIM2)
unregistersymbol(pMIM3)
unregistersymbol(pMIM4)
unregistersymbol(pMIM5)
unregistersymbol(pMOSM)
unregistersymbol(pMCP3)
unregistersymbol(pMOSO)
unregistersymbol(pMOCA)
unregistersymbol(pMOAS)
unregistersymbol(sMOIM)
unregistersymbol(MOIM)
unregistersymbol(MIM3)
//=========================================
dealloc(MyCode)
dealloc(sMOIM)
//============= Scripts End ===============
// ****************************************
// NOTES
// ****************************************
{
}
96
"[X] <== Minimum Resources (main ones)"
C08000
Auto Assembler Script
[enable]
define(test,LUDO)
{$LUA}
writeInteger("iEnableMMR",1)
memrec.Color = 0x00008000
{$ASM}
[disable]
{$LUA}
writeInteger("iEnableMMR",0)
memrec.Color = 0x00c08000
{$ASM}
350
"[X] <== Include UNITY"
C08000
Auto Assembler Script
[enable]
define(test,LUDO)
{$LUA}
writeInteger("iEnableRIU",1)
memrec.Color = 0x00008000
{$ASM}
[disable]
{$LUA}
writeInteger("iEnableRIU",0)
memrec.Color = 0x00c08000
{$ASM}
357
"Minimum Value for UNITY ==> (x1)"
0080FF
4 Bytes
iMinUnity
229
"[X] <== Minimum Special Resources (For each, there should be at least one)"
C08000
Auto Assembler Script
[enable]
define(test,LUDO)
{$LUA}
writeInteger("iEnableMSR",1)
memrec.Color = 0x00004000
{$ASM}
[disable]
{$LUA}
writeInteger("iEnableMSR",0)
memrec.Color = 0x00c08000
{$ASM}
230
"[X] <== Quick Research (in a month or in a few days)"
C08000
Auto Assembler Script
[enable]
define(test,LUDO)
{$LUA}
writeInteger("iEnableMRP",1)
memrec.Color = 0x00008000
{$ASM}
[disable]
{$LUA}
writeInteger("iEnableMRP",0)
memrec.Color = 0x00c08000
{$ASM}
339
"[X] <== Special Projects Only (original by TranscendPerfection)"
C08000
Auto Assembler Script
[enable]
define(test,LUDO)
{$LUA}
writeInteger("iEnableSPO",1)
getAddressList().getMemoryRecordByID(339).Color = 0x00008000
{$ASM}
[disable]
{$LUA}
writeInteger("iEnableSPO",0)
getAddressList().getMemoryRecordByID(339).Color = 0x00c08000
{$ASM}
231
"[X] <== Quick Tasks (Survey, Investigation, etc)(in a few days)"
C08000
Auto Assembler Script
[enable]
define(test,LUDO)
{$LUA}
writeInteger("iEnableMTP",1)
memrec.Color = 0x00008000
{$ASM}
[disable]
{$LUA}
writeInteger("iEnableMTP",0)
memrec.Color = 0x00c08000
{$ASM}
232
"[X] <== Quick Production (ships/platforms/districts/buildings/troops)(in a few days)"
C08000
Auto Assembler Script
[enable]
define(test,LUDO)
{$LUA}
writeInteger("iEnableMPP",1)
memrec.Color = 0x00008000
{$ASM}
[disable]
{$LUA}
writeInteger("iEnableMPP",0)
memrec.Color = 0x00c08000
{$ASM}
331
"[X] <== Quick Colonization (ship task) Phase 1 (in a few days)"
C08000
Auto Assembler Script
[enable]
define(test,LUDO)
{$LUA}
writeInteger("iEnableQCP",1)
memrec.Color = 0x00008000
{$ASM}
[disable]
{$LUA}
writeInteger("iEnableQCP",0)
memrec.Color = 0x00c08000
{$ASM}
233
"[X] <== Quick Colonization Process - Phase 2 (in a month or a few days) "
C08000
Auto Assembler Script
[enable]
define(test,LUDO)
{$LUA}
writeInteger("iEnableMCP",1)
memrec.Color = 0x00008000
{$ASM}
[disable]
{$LUA}
writeInteger("iEnableMCP",0)
memrec.Color = 0x00c08000
{$ASM}
234
"[X] <== Quick Building (in a few days) (by Ship Constructor)"
C08000
Auto Assembler Script
[enable]
define(test,LUDO)
{$LUA}
writeInteger("iEnableMBP",1)
memrec.Color = 0x00008000
{$ASM}
[disable]
{$LUA}
writeInteger("iEnableMBP",0)
memrec.Color = 0x00c08000
{$ASM}
236
"[X] <== God Mode (Ships/Stations/Planets/Troops)"
C08000
Auto Assembler Script
[enable]
define(test,LUDO)
{$LUA}
writeInteger("iEnableGMD",1)
memrec.Color = 0x00008000
{$ASM}
[disable]
{$LUA}
writeInteger("iEnableGMD",0)
memrec.Color = 0x00c08000
{$ASM}
337
"[X] <== Pretty Quick Fleet Movement (original by TranscendPerfection)"
C08000
Auto Assembler Script
[enable]
define(test,LUDO)
{$LUA}
writeInteger("iEnableMIM",1)
memrec.Color = 0x00008000
{$ASM}
[disable]
{$LUA}
writeInteger("iEnableMIM",0)
memrec.Color = 0x00c08000
{$ASM}
371
"[X] <== Character Quick Level Up"
C08000
Auto Assembler Script
[enable]
define(test,LUDO)
{$LUA}
writeInteger("iEnableMCX",1)
memrec.Color = 0x00008000
{$ASM}
[disable]
{$LUA}
writeInteger("iEnableMCX",0)
memrec.Color = 0x00c08000
{$ASM}
352
"[X] <== Quick Population Growth (Colonies)(in a month or in a few days)"
C08000
Auto Assembler Script
[enable]
define(test,LUDO)
{$LUA}
writeInteger("iEnableMPG",1)
memrec.Color = 0x00004000
{$ASM}
[disable]
{$LUA}
writeInteger("iEnableMPG",0)
memrec.Color = 0x00c08000
{$ASM}
383
"[X] <== Minimum Stability"
C08000
Auto Assembler Script
[enable]
define(test,LUDO)
{$LUA}
writeInteger("iEnableMPS",1)
memrec.Color = 0x00004000
{$ASM}
[disable]
{$LUA}
writeInteger("iEnableMPS",0)
memrec.Color = 0x00c08000
{$ASM}
246
"[X] <== Static Troop Morale "
C08000
Auto Assembler Script
[enable]
define(test,LUDO)
{$LUA}
writeInteger("iEnableMTM",1)
memrec.Color = 0x00008000
{$ASM}
[disable]
{$LUA}
writeInteger("iEnableMTM",0)
memrec.Color = 0x00c08000
{$ASM}
351
"[X] <== Quick Building of Megastructures (in a few days)"
C08000
Auto Assembler Script
[enable]
define(test,LUDO)
{$LUA}
writeInteger("iEnableMBM",1)
memrec.Color = 0x00008000
{$ASM}
[disable]
{$LUA}
writeInteger("iEnableMBM",0)
memrec.Color = 0x00c08000
{$ASM}
372
"[X] <== Colossus Quick Action (Cracking Planets) (in a few days)"
C08000
Auto Assembler Script
[enable]
define(test,LUDO)
{$LUA}
writeInteger("iEnableMCA",1)
memrec.Color = 0x00004000
{$ASM}
[disable]
{$LUA}
writeInteger("iEnableMCA",0)
memrec.Color = 0x00c08000
{$ASM}
334
"[X] <=========== Selected Planet Info (Used for Terraforming)"
404080
1
336
"Name (< 16)"
1
0000FF
String
16
0
0
1
pPlanet
160
335
"Name (>16)"
1
0000FF
String
32
0
0
1
pPlanet
0
160
332
"Days already passed to Terraform ==>"
FF00FF
4 Bytes
pPlanet
8
388
333
"Days necessary to Terraform ==>"
FF00FF
4 Bytes
pPlanet
c
388
364
"[X] <======= Selected Megastructure Info (Used for Upgrading)"
404080
1
365
"Name (< 16)"
1
0000FF
String
16
0
0
1
pMega
8
24
366
"Name (>16)"
1
0000FF
String
32
0
0
1
pMega
0
8
24
367
"Days already passed to Upgrade ==>"
FF00FF
4 Bytes
pMega
28
368
"Days necessary to Upgrade ==>"
FF00FF
4 Bytes
pMega
110
24
228
"[X] <== Table/Script Information"
0000FF
Auto Assembler Script
[enable]
define(test,LUDO)
{$LUA}
getMainForm().CommentButton.doClick()
{$ASM}
[disable]
Recifense
20190207
===========================================
Game Title : Stellaris - Megacorp
Game Version : 2.2.5 (aab4)
Game Sponsor : Ubykh + WalletGifts + darkedone02 + hbpateiv + PF
Process Name : stellaris.exe
Relevant Info : 32bits/Space RTS with Pause
Script Version: 10.5 (AOB)
CE Version : 6.7
Release date : 07-Feb-2019
Author : Recifense
History:
14-Mar-16: First Release
15-Mar-16: Add one more feature and Fixed GM (s2.0)
18-Mar-16: Release for version 1.0.3.
20-Mar-16: Added more features (Warp Wind-down/Troop Morale/GM/Research).
23-Mar-16: Added more features (Planet Tile Info/Produced Resource Changing).
02-Jun-16: Release for version 1.1.0. (+improvement) (s4.1)
04-Jun-16: Added a new feature (max leaders) (s5.0)
27-Jun-16: Release for version 1.2.0.
01-Jul-16: Release for version 1.2.1.
05-Aug-16: Release for version 1.2.3. (+Renamed Fleets by TranscendPerfection)
12-Aug-16: Release for version 1.2.4. (+Wormhole+Terraforming)
16-Aug-16: Release for version 1.2.5. (+Hyperlane) (v6.5)
30-Oct-16: Release for version 1.3.1. (v6.6)
31-Oct-16: Finished the troop related scripts(v6.7)
10-Nov-16: Release for version 1.3.2. (v6.8)
13-Nov-16: Finished implementation of "Pretty Quick Move" (by TranscendPerfection) (v6.9)
05-Dec-16: Release for version 1.4.0. (v6.92)
09-Dec-16: Release for version 1.4.1.
09-Apr-17: Release for version 1.5.0. (+Unity)(v6.95)
10-Apr-17: Added quick mega construc and some adjustment (s7.0)
11-Apr-17: Change HP for player identification (v7.1)
11-Apr-17: Fixes for crashing. Added Anomaly Cheat (by TranscendPerfection). (v7.2)
11-Apr-17: Release for version 1.5.1. (BETA)
12-Apr-17: Release for version 1.5.1. (official Release)(+new feature)(v7.3)
13-Apr-17: Added one more option (Anomaly related)
10-May-17: Release for version 1.6.0 + Quick Level Up. (v7.5)
12-May-17: Release for version 1.6.1 (beta)
13-May-17: Fix for minimum Resources (v7.6)
17-Jun-17: Release for version 1.6.2.
22-Jul-17: Release for version 1.7.4 (beta)
22-Sep-17: Release for version 1.8.0 (s7.7)
23-Sep-17: Fixed Anomaly Risk (s7.8)
04-Oct-17: Added Machine in Quick Population (s7.9)
04-Oct-17: Release for version 1.8.1 (Beta)
11-Oct-17: Release for version 1.8.2.
25-Oct-17: Release for version 1.8.3.
01-Nov-17: Fix for construction of Megastructures (s7.a)
07-Dec-17: Release for version 1.9.0.
14-Dec-17: Release for version 1.9.1.
24-Feb-18: Release for version 2.0.0. (S8.0) Preliminary
25-Feb-18: Release for version 2.0.0. (S8.0) Final
27-Feb-18: Release for version 2.0.1. + Colossus Quick Action (S8.1)
03-Mar-18: Release for version 2.0.2. (Beta)
06-Mar-18: Release for version 2.0.2. (5781) (Beta)
11-Mar-18: Release for version 2.0.2. (5b9d) (Beta)
15-Mar-18: Release for version 2.0.2. (9b47) (Beta)
26-Mar-18: Release for version 2.0.2. (d07e) (Beta)
29-Mar-18: Release for version 2.0.2. (5e21) (Final)
18-Apr-18: Release for version 2.0.3. (6da2)
20-Apr-18: Release for version 2.0.4. (1368) (beta) (0040)
25-Apr-18: Release for version 2.0.4. (1368) (beta) (20180425) (0040)
15-May-18: Release for version 2.0.5. (6d3e)
23-May-18: Release for version 2.1.0. (01a9) (s8.2)
15-Jun-18: Release for version 2.1.1. (d173) (s8.3)(CE68)
07-Aug-18: Release for version 2.1.2. (170f) (s8.3)(back to CE67)
16-Aug-18: Release for version 2.1.2. (5bcb) (s8.3)(back to CE67)
06-Sep-18: Release for version 2.1.3. (42f6)
04-Oct-18: Splitting "Minimum Resources" for Paul Davis (s8.4)
21-Oct-18: Release for version 2.1.4. (Beta)
28-Nov-18: Release for version 2.1.4. (GOG) (s8.5)
28-Nov-18: Release for version 2.1.4. (AOB) (s9.0)
09-Dec-18: Release for version 2.2.1. (AOB) (s10.0)
10-Dec-18: Added Machine prodution in Quick Pop Growth (s10.1)
20-Dec-18: Release for version 2.2.2. (AOB) (s10.2)
21-Dec-18: Fix in selecting megastructure (s10.3)
19-Jan-19: Release for version 2.2.4. (AOB) (s10.4)
07-Feb-19: Release for version 2.2.5. (AOB) (s10.5)
Features:
- Minimum Resources: [1]
- Energy
- Minerals
- Food
- Goods (new)(v10.0)
- Alloys (new)(v10.0)
- Influence
- Unity (can be included or not)
- Minimum Special Resources: [2] (new)(v10.0)
- Volatile Motes
- Exotic Gases
- Rare Crystals
- Living Metals
- Zro
- Dark Matter
- Nanites
- Quick Research [3]
- Special Projects Only [31] (by TranscendPerfection)
- Quick Task (for some ships): [4]
- Survey
- Investigation
- Quick Production [5]
- Ship Construction
- Troop Recruitment
- Quick Colonization [6]
- Phase 1 by ship
- Phase 2 by the Player him/her/self
- Quick Population Growth [6] (new)(v10.0)
- Beings (a day)
- Machines (a month) (new)(s10.1)
- Quick Buiding [7]
- By Planet
- All kind of Districts (new)(v10.0)
- Buildings
- Clearing Blockers
- By Constructor Ship:
- Stations
- Quick Contruction of Megastructures [7]
- Phase 1 by ship
- Phases 2/3 by the player him/her/self
- God Mode: [8]
- ships (Hull/Shield/Armor)
- Stations (Hull/Shield/Armor)
- Troops
- Minimum Production per tile (new) [9]
- Troop Morale [B]
- Pretty Quick Fleet Move (original by transcendperfection) [C]
- Player's Characters quick level-up to max (v7.5) [D]
- Colossus Quick Actions (2 days) new (v8.1) [E]
- Minimum Stability [F]( new)(v10.0)
- Some Pointers [G]
===========================================
[1] It will not go under MAximum/2;
[2] It will not go under 68;
[3] It may take a few days or months (but always faster than normal);
[31] Only Special Projects will be affected;
[4] It may take a few days (but always faster than normal);
[5] It may take a few days (but always faster than normal);
[6] It may take a few days or months (but always faster than normal);
[7] It may take a few days (but always faster than normal);
[8] That's it;
[9] Minimum Resource = 20; (looking at the planet surface)
[B] Morale will not decrease during battle;
[C] Human Play's fleets will travel pretty quickly;
[D] Human Play's characters will level to max pretty quickly;
[E] Human Play's Colossus will act quickly (~2 days);
[G] Colony statibility will not go under 90;
[F] Used at the table;
===========================================
[USAGE]
1) Run CE68 or greater;
2) Run Game;
3) Load the game process "stellaris.exe" in CE;
4) Load this table and activate the main script;
5) Now Activate the script of each cheat you want to use;
6) Game On;
===========================================
[HOTKEYS]
- None defined
===========================================
[IMPORTANT]
Save your game before unsing the cheats.
===========================================
[INFO]
Tested on Win 10 64bits
===========================================
BIG THANKS to Ubykh for providing the game.
===========================================
Have fun!