Changing values on an existing script (MGQ Paradox)

Memory scanning, code injection, debugger internals and other gamemodding related discussion
Post Reply
Almorra
What is cheating?
What is cheating?
Posts: 2
Joined: Fri Apr 10, 2020 4:07 pm
Reputation: 0

Changing values on an existing script (MGQ Paradox)

Post by Almorra »

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: Select all

{ 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)

User avatar
notpikachu
Table Makers
Table Makers
Posts: 311
Joined: Wed Apr 01, 2020 10:32 am
Reputation: 331

Re: Changing values on an existing script (MGQ Paradox)

Post by notpikachu »

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.

miraikolus
Expert Cheater
Expert Cheater
Posts: 59
Joined: Fri Jan 04, 2019 12:09 am
Reputation: 19

Re: Changing values on an existing script (MGQ Paradox)

Post by miraikolus »

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?

Image

Almorra
What is cheating?
What is cheating?
Posts: 2
Joined: Fri Apr 10, 2020 4:07 pm
Reputation: 0

Re: Changing values on an existing script (MGQ Paradox)

Post by Almorra »

notpikachu wrote:
Fri Apr 10, 2020 5:32 pm
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 wrote:
Fri Apr 10, 2020 8:50 pm
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?

Image
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 ^^

Post Reply

Who is online

Users browsing this forum: No registered users