Changing values on an existing script (MGQ Paradox)

A

Almorra

What is cheating?
Joined
Apr 10, 2020
Messages
2
I have this script for MGQ Paradox but the value for the hp is set to 60 and I would like it to be set to a higher value (1000 for example).
Do you have any idea on what I should change to make it work?
Tanks for reading me.

Code:
Code:
<i>
</i>{ Game   : MonsterGirl Quest Paradox
  Version: 1.21.00
  Date   : 2017-01-27
  Author : Ahsan Iqbal (3xd_tango)

  This script Inf. health,mana & sp
}

[ENABLE]

aobscanmodule(INJECT,RGSS301.dll,89 2C 88 5D 59 C3 F7 06 00 20 00 00)
alloc(newmem,$1000)

label(code)
label(return)
label(one)
label(two)
label(three)
label(four)
label(five)
label(player)
globalalloc(playerbas,4)

newmem:
cmp [eax+04],#1
jne code
je one

code:
  mov [eax+ecx*4],ebp
  pop ebp
  pop ecx
  jmp return

player:
  mov [eax+ecx*4],ebp
  mov [eax+34],(int)121
  mov [eax+30],(int)61
  mov [eax+2C],(int)21
 // mov [playerbas],eax
  pop ebp
  pop ecx
  jmp return

one:
cmp [eax+24],#4
jne code
je two

two:
cmp [eax+18],#0
jne code
je three

three:
cmp [eax+1C],#1
jne code
je four

four:
cmp [eax+20],#0
jne code
je five

five:
cmp [eax+98],#1
jne code
je six

six:
cmp [eax+6C],#1
jne code
je player

INJECT:
  jmp newmem
return:
registersymbol(INJECT)

[DISABLE]

INJECT:
  db 89 2C 88 5D 59

unregistersymbol(INJECT)
dealloc(newmem)
 
notpikachu

notpikachu

Cheater
Fearless Donors
Joined
Apr 1, 2020
Messages
47
Judging by the RGSS301.dll, probably RPG Maker games. Version below MV usually have the formula of value*2+1.
Probably this line I guess "mov [eax+34],(int)121" into "mov [eax+34],(int)2001" if for 1000 value. I don't have the game, but
you probably need to figure out the max hp too + if the script work flawlessly.
 
M

miraikolus

Cheater
Joined
Jan 4, 2019
Messages
47
I do wonder what all those labels and jumps are for (you could rename "one" 3x to .. whatever "compares", remove label(two-five?) and (two-six:), remove "je two" - "je six" + "jne code" @ newmem and it would work just fine without bloats ... I mean "je two", next line: "two:" .... just add some "jmp short @f" + "@@:" somehwere).

Btt. What notpikachu said, but about max hp, you could uncomment line "// mov [playerbas],eax" (remove //), in CE click on "Add Address Manually" click on "Pointer", in bottom field enter "playerbas" and offset field (between < >) ... you need to experiment but you could start with 38, if it seems feasible for max hp, if not always add 4 offset (hex so 0/4/8/C)

EDIT: Forgot btw. where would be label(six), does this work as it is?

 
A

Almorra

What is cheating?
Joined
Apr 10, 2020
Messages
2
notpikachu said:
Judging by the RGSS301.dll, probably RPG Maker games. Version below MV usually have the formula of value*2+1.
Probably this line I guess "mov [eax+34],(int)121" into "mov [eax+34],(int)2001" if for 1000 value. I don't have the game, but
you probably need to figure out the max hp too + if the script work flawlessly.
Thanks, it worked! I don't know why but one of the character didn't get the change until he died once which is quite weird but in the end it's ok.
miraikolus said:
I do wonder what all those labels and jumps are for (you could rename "one" 3x to .. whatever "compares", remove label(two-five?) and (two-six:), remove "je two" - "je six" + "jne code" @ newmem and it would work just fine without bloats ... I mean "je two", next line: "two:" .... just add some "jmp short @f" + "@@:" somehwere).

Btt. What notpikachu said, but about max hp, you could uncomment line "// mov [playerbas],eax" (remove //), in CE click on "Add Address Manually" click on "Pointer", in bottom field enter "playerbas" and offset field (between < >) ... you need to experiment but you could start with 38, if it seems feasible for max hp, if not always add 4 offset (hex so 0/4/8/C)

EDIT: Forgot btw. where would be label(six), does this work as it is?

I'm not good enough with asm to know how all this works lol and I'm not really sure how to proceed but I'll still check it out, thanks ^^
 
Top