38
"CP"
4 Bytes
mowas_2.exe+BB1AA8
43
"GlobalPlayerID"
Byte
mowas_2.exe+B0B9CC
44
"Inf ammo"
Auto Assembler Script
[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
alloc(ammo,2048)
label(returnhere)
label(originalcode)
label(exit)
ammo: //this is allocated memory, you have read,write,execute access
mov eax,[ebp+08]
pushfd
push ebx // player
push edx // compare
mov edx,[ecx+18]
test edx,edx
je originalcode
mov edx,[edx+24]
test edx,edx
je originalcode
mov bl,[mowas_2.exe+B0B9CC] // save player
mov dl,[edx+770]
cmp dl,bl
jne originalcode
mov eax,2
originalcode:
pop edx
pop ebx
popfd
mov [ecx+2C],eax
exit:
jmp returnhere
"mowas_2.exe"+3E8BC3:
jmp ammo
nop
returnhere:
[DISABLE]
//code from here till the end of the code will be used to disable the cheat
dealloc(ammo)
"mowas_2.exe"+3E8BC3:
mov eax,[ebp+08]
mov [ecx+2C],eax
//Alt: db 8B 45 08 89 41 2C
49
"Infantry godmode"
Auto Assembler Script
[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
alloc(infantrygm,2048)
label(returnhere)
label(originalcode)
label(exit)
infantrygm: //this is allocated memory, you have read,write,execute access
mov al,[mowas_2.exe+B0B9CC] // save player
cmp al,[edi+770]
jne originalcode
mov byte ptr [edi+66A],#5
originalcode:
mov eax,[edi+00000668]
exit:
jmp returnhere
//"mowas_2.exe"+4BDEEF:
"mowas_2.exe"+37CAC9:
jmp infantrygm
nop
returnhere:
[DISABLE]
//code from here till the end of the code will be used to disable the cheat
dealloc(infantrygm)
//"mowas_2.exe"+4BDEEF:
//mov eax,[ecx+00000668]
"mowas_2.exe"+37CAC9:
mov eax,[edi+00000668]
//Alt: db 8B 81 68 06 00 00
25
"Armour godmode"
Auto Assembler Script
[ENABLE]
alloc(armour,96)
alloc(iPaper,4)
alloc(iArmour,4)
label(returnhere)
label(originalcode)
label(hitkill)
label(exit)
define(p_id,ecx+770)
registersymbol(iPaper)
registersymbol(iArmour)
armour:
push ebx
mov bl,[mowas_2.exe+B0B9CC] // globalPlayerID
// compare playerID with global
cmp bl,[p_id]
mov byte ptr [ecx+66A],44
jne hitkill
//--> conditional
mov byte ptr [ecx+66A],45
hitkill:
// enabled?
cmp [iPaper],1
jne originalcode
//
// compare if its not one of our units (playerID)
cmp bl,[p_id] //eax+2F8
je originalcode
// armour penetration
// ecx+330
mov ebx,[ecx+330]
// test if pointer is valid
test ebx,ebx
jz originalcode
// armour value
mov eax,[iArmour]
mov [ebx],eax
originalcode:
pop ebx
mov eax,[ecx+00000668]
exit:
jmp returnhere
"mowas_2.exe"+44A366:
jmp armour
nop
returnhere:
iPaper:
dd 0
iArmour:
db CD CC CC 3D
[DISABLE]
//code from here till the end of the code will be used to disable the cheat
dealloc(armour)
dealloc(iPaper)
dealloc(iArmour)
unregistersymbol(iPaper)
unregistersymbol(iArmour)
"mowas_2.exe"+44A366:
mov eax,[ecx+00000668]
//Alt: db 8B 81 68 06 00 00
51
"Enemy armour : paper"
0:Disabled
1:Enabled
4 Bytes
iPaper
52
"Armour percentage (enemy)"
Float
iArmour
46
"No reinforcement costs"
Auto Assembler Script
[ENABLE]
mowas_2.exe+64A679:
mov eax,0
nop
mowas_2.exe+57B8C8:
mov eax,0
nop
mowas_2.exe+57B7F9:
db EB 09
[DISABLE]
// cost substraction
mowas_2.exe+64A679:
mov eax,[edi+0000009C]
// cost display
mowas_2.exe+57B8C8:
mov eax,[esi+0000009C]
// inf reinforcements
mowas_2.exe+57B7F9:
db 7E 09
enemy armour only
0084A366
mowas_2.exe
44A366
8B
F9
8B
4F
0C
8B
81
68
06
00
00
C1
E8
04
A8
01
dec ammo
00815418
mowas_2.exe
415418
2C
EB
02
33
C0
48
8B
CF
50
8B
07
iTest
17C70010
iTest2
17C70020
iPlayerID1
024F01C0
iPlayerID2
024F01D0
iPlayerID
00A90000
getCurrentUnit
0E400010
Special notes:
[Overall]
Godmode on armour and infantry are REAL godmodes. This means they will not be affected by anything, not even the ingame NUQ (Nuke) that would otherwise VANISH all units on the map.
[Infantry godmode]
When you disable the script, your units will still have godmode as for now. Choose wise to use it or not (or restart mission).
[Armour godmode]
Under armour godmode, there are two extra addresses you can make use off.
Enemy armour: paper is a code that makes the enemies armour paper thin, meaning you can destroy them with infantry guns such as a pistol.
The armour percentage is used to tweak it to your own likings. Standard value is 0.1 which makes tanks paper thin. I added it for people who don't like standard godmodes and easy/one hit kills and can be adjusted to your own likings. Rather want the opposing tanks to be a bit easier to kill, use a value between 0.5 - 1.0 or rather want them a bit harder? Use 1.0 - 1.5 values respectivly. Want a real trainer experience, don't adjust it and keep it at 0.1 (or -2000, whatever you like).
[Infinite ammo]
As for now, the infinite ammo quircks a little, where infantry might reload when you deselect them. I chose code compability over usability.
- regards, whitesnoop