Page 1 of 1

This Grand Life 2

Posted: Sat Jun 29, 2024 10:43 am
by Tahtawy
A quick table for This Grand Life 2 Early Access v.0.44.19:


Options
- Income Multiplier (Default is x100)
- Full Needs (Needs will remain maxed as soon as they decrease) (will raise happiness quickly)
- Time Pointer (Elapsed time in hours in a month) (reset to zero to go back to 728 hours remaining)

Re: This Grand Life 2

Posted: Sun Jun 30, 2024 12:02 am
by LegendZero88
Hello and thank you for the table.
Could I know how to search value for this game?
I tried searching for preference point and don't find a single value.
I also searched stock market share price but nada de nada.

What I do wrong?

Re: This Grand Life 2

Posted: Sun Jun 30, 2024 12:58 am
by Tahtawy
If you'd like to get more preference points at the start of the game, I recommend editing the game xml files.

Go to "data/misc/defaultData.xml" within the game folder and search for

Code: Select all

preferencePointOffset="0"
change it to any number you want to get extra preference points at character creation.

Have not figured out how to change stock market price share but it does not matter, I can just earn a lot of money with the multiplier and purchase the %20 shares as I'd like. However, if you'd like to adjust the amount of dividends you get from your stocks each year you can go to "data/misc/tagStocks.xml" in the game folder and edit the "dividendRatio" of each industry

Re: This Grand Life 2

Posted: Sun Jun 30, 2024 7:52 am
by LegendZero88
Thank you mate! buit i was curious on how to search for those values in cheat engine just for understand! thanks you

Re: This Grand Life 2

Posted: Sun Jul 21, 2024 5:28 am
by Zoratoune
How do you repair the full need script ?
In a new version of the game it says



Ok so I compared the before and after and fixed the aob value and this seems to work I'm proud of myself I was never able to update this kind of thing before !
Patch note :
Fixed the full needs script by putting in the correct aob
F3 0F 11 00 FF 75 08 E8 0C -> F3 0F 11 00 FF 75 08 E8 02

This is the updated version of the script

Code: Select all

{ Game   : TGL2.exe
  Version: 
  Date   : 2024-06-28
  Author : Tahtawy

  This script does blah blah blah
}

[ENABLE]

aobscanmodule(Ndds,TGL2.exe,F3 0F 11 00 FF 75 08 E8 02) // should be unique
alloc(newmem,$1000)

label(code)
label(return)

newmem:
  movss [eax],xmm0
  mov [eax],(float)2000.00
  push [ebp+08]
  jmp return

code:
  movss [eax],xmm0
  push [ebp+08]
  jmp return

Ndds:
  jmp newmem
  nop 2
return:
registersymbol(Ndds)

[DISABLE]

Ndds:
  db F3 0F 11 00 FF 75 08

unregistersymbol(Ndds)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: TGL2.boost::archive::detail::iserializer<boost::archive::text_iarchive,Pathfinder>::load_object_data+508

TGL2.boost::archive::detail::iserializer<boost::archive::text_iarchive,Pathfinder>::load_object_data+4E4: E8 C7 20 D8 FF  - call TGL2.cocos2d::__Double::clone+4AA0
TGL2.boost::archive::detail::iserializer<boost::archive::text_iarchive,Pathfinder>::load_object_data+4E9: 8B CE           - mov ecx,esi
TGL2.boost::archive::detail::iserializer<boost::archive::text_iarchive,Pathfinder>::load_object_data+4EB: F3 0F 10 00     - movss xmm0,[eax]
TGL2.boost::archive::detail::iserializer<boost::archive::text_iarchive,Pathfinder>::load_object_data+4EF: 8D 45 08        - lea eax,[ebp+08]
TGL2.boost::archive::detail::iserializer<boost::archive::text_iarchive,Pathfinder>::load_object_data+4F2: 50              - push eax
TGL2.boost::archive::detail::iserializer<boost::archive::text_iarchive,Pathfinder>::load_object_data+4F3: F3 0F 11 45 E4  - movss [ebp-1C],xmm0
TGL2.boost::archive::detail::iserializer<boost::archive::text_iarchive,Pathfinder>::load_object_data+4F8: E8 B3 20 D8 FF  - call TGL2.cocos2d::__Double::clone+4AA0
TGL2.boost::archive::detail::iserializer<boost::archive::text_iarchive,Pathfinder>::load_object_data+4FD: 8B CF           - mov ecx,edi
TGL2.boost::archive::detail::iserializer<boost::archive::text_iarchive,Pathfinder>::load_object_data+4FF: F3 0F 10 00     - movss xmm0,[eax]
TGL2.boost::archive::detail::iserializer<boost::archive::text_iarchive,Pathfinder>::load_object_data+503: F3 0F 58 45 10  - addss xmm0,[ebp+10]
// ---------- INJECTING HERE ----------
TGL2.boost::archive::detail::iserializer<boost::archive::text_iarchive,Pathfinder>::load_object_data+508: F3 0F 11 00     - movss [eax],xmm0
// ---------- DONE INJECTING  ----------
TGL2.boost::archive::detail::iserializer<boost::archive::text_iarchive,Pathfinder>::load_object_data+50C: FF 75 08        - push [ebp+08]
TGL2.boost::archive::detail::iserializer<boost::archive::text_iarchive,Pathfinder>::load_object_data+50F: E8 0C 03 00 00  - call "TGL2.boost::archive::detail::iserializer<boost::archive::text_iarchive,Pathfinder>::load_object_data"+820
TGL2.boost::archive::detail::iserializer<boost::archive::text_iarchive,Pathfinder>::load_object_data+514: F3 0F 2C C0     - cvttss2si eax,xmm0
TGL2.boost::archive::detail::iserializer<boost::archive::text_iarchive,Pathfinder>::load_object_data+518: 0F 57 D2        - xorps xmm2,xmm2
TGL2.boost::archive::detail::iserializer<boost::archive::text_iarchive,Pathfinder>::load_object_data+51B: 89 45 10        - mov [ebp+10],eax
TGL2.boost::archive::detail::iserializer<boost::archive::text_iarchive,Pathfinder>::load_object_data+51E: 66 0F 6E C0     - movd xmm0,eax
TGL2.boost::archive::detail::iserializer<boost::archive::text_iarchive,Pathfinder>::load_object_data+522: 0F 5B C0        - cvtdq2ps xmm0,xmm0
TGL2.boost::archive::detail::iserializer<boost::archive::text_iarchive,Pathfinder>::load_object_data+525: 0F 2F D0        - comiss xmm2,xmm0
TGL2.boost::archive::detail::iserializer<boost::archive::text_iarchive,Pathfinder>::load_object_data+528: 72 34           - jb "TGL2.boost::archive::detail::iserializer<boost::archive::text_iarchive,Pathfinder>::load_object_data"+55E
TGL2.boost::archive::detail::iserializer<boost::archive::text_iarchive,Pathfinder>::load_object_data+52A: 83 EC 18        - sub esp,18
}
To compare this is the old :

Code: Select all

{ Game   : TGL2.exe
  Version: 
  Date   : 2024-06-28
  Author : Tahtawy

  This script does blah blah blah
}

[ENABLE]

aobscanmodule(Ndds,TGL2.exe,F3 0F 11 00 FF 75 08 E8 0C) // should be unique
alloc(newmem,$1000)

label(code)
label(return)

newmem:
  movss [eax],xmm0
  mov [eax],(float)2000.00
  push [ebp+08]
  jmp return

code:
  movss [eax],xmm0
  push [ebp+08]
  jmp return

Ndds:
  jmp newmem
  nop 2
return:
registersymbol(Ndds)

[DISABLE]

Ndds:
  db F3 0F 11 00 FF 75 08

unregistersymbol(Ndds)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: TGL2.boost::archive::detail::iserializer<boost::archive::text_iarchive,Pathfinder>::load_object_data+508

TGL2.boost::archive::detail::iserializer<boost::archive::text_iarchive,Pathfinder>::load_object_data+4E4: E8 C7 20 D8 FF  - call TGL2.cocos2d::__Double::clone+4AA0
TGL2.boost::archive::detail::iserializer<boost::archive::text_iarchive,Pathfinder>::load_object_data+4E9: 8B CE           - mov ecx,esi
TGL2.boost::archive::detail::iserializer<boost::archive::text_iarchive,Pathfinder>::load_object_data+4EB: F3 0F 10 00     - movss xmm0,[eax]
TGL2.boost::archive::detail::iserializer<boost::archive::text_iarchive,Pathfinder>::load_object_data+4EF: 8D 45 08        - lea eax,[ebp+08]
TGL2.boost::archive::detail::iserializer<boost::archive::text_iarchive,Pathfinder>::load_object_data+4F2: 50              - push eax
TGL2.boost::archive::detail::iserializer<boost::archive::text_iarchive,Pathfinder>::load_object_data+4F3: F3 0F 11 45 E4  - movss [ebp-1C],xmm0
TGL2.boost::archive::detail::iserializer<boost::archive::text_iarchive,Pathfinder>::load_object_data+4F8: E8 B3 20 D8 FF  - call TGL2.cocos2d::__Double::clone+4AA0
TGL2.boost::archive::detail::iserializer<boost::archive::text_iarchive,Pathfinder>::load_object_data+4FD: 8B CF           - mov ecx,edi
TGL2.boost::archive::detail::iserializer<boost::archive::text_iarchive,Pathfinder>::load_object_data+4FF: F3 0F 10 00     - movss xmm0,[eax]
TGL2.boost::archive::detail::iserializer<boost::archive::text_iarchive,Pathfinder>::load_object_data+503: F3 0F 58 45 10  - addss xmm0,[ebp+10]
// ---------- INJECTING HERE ----------
TGL2.boost::archive::detail::iserializer<boost::archive::text_iarchive,Pathfinder>::load_object_data+508: F3 0F 11 00     - movss [eax],xmm0
// ---------- DONE INJECTING  ----------
TGL2.boost::archive::detail::iserializer<boost::archive::text_iarchive,Pathfinder>::load_object_data+50C: FF 75 08        - push [ebp+08]
TGL2.boost::archive::detail::iserializer<boost::archive::text_iarchive,Pathfinder>::load_object_data+50F: E8 0C 03 00 00  - call "TGL2.boost::archive::detail::iserializer<boost::archive::text_iarchive,Pathfinder>::load_object_data"+820
TGL2.boost::archive::detail::iserializer<boost::archive::text_iarchive,Pathfinder>::load_object_data+514: F3 0F 2C C0     - cvttss2si eax,xmm0
TGL2.boost::archive::detail::iserializer<boost::archive::text_iarchive,Pathfinder>::load_object_data+518: 0F 57 D2        - xorps xmm2,xmm2
TGL2.boost::archive::detail::iserializer<boost::archive::text_iarchive,Pathfinder>::load_object_data+51B: 89 45 10        - mov [ebp+10],eax
TGL2.boost::archive::detail::iserializer<boost::archive::text_iarchive,Pathfinder>::load_object_data+51E: 66 0F 6E C0     - movd xmm0,eax
TGL2.boost::archive::detail::iserializer<boost::archive::text_iarchive,Pathfinder>::load_object_data+522: 0F 5B C0        - cvtdq2ps xmm0,xmm0
TGL2.boost::archive::detail::iserializer<boost::archive::text_iarchive,Pathfinder>::load_object_data+525: 0F 2F D0        - comiss xmm2,xmm0
TGL2.boost::archive::detail::iserializer<boost::archive::text_iarchive,Pathfinder>::load_object_data+528: 72 34           - jb "TGL2.boost::archive::detail::iserializer<boost::archive::text_iarchive,Pathfinder>::load_object_data"+55E
TGL2.boost::archive::detail::iserializer<boost::archive::text_iarchive,Pathfinder>::load_object_data+52A: 83 EC 18        - sub esp,18
}

Re: This Grand Life 2

Posted: Thu Jul 25, 2024 11:33 am
by Zoratoune
I've managed to make work the experience gain and applied a multiplier which you can choose
It does it all from what I've tested, even though I was expecting for it to be only for work experience.

Re: This Grand Life 2

Posted: Sat Aug 03, 2024 11:16 am
by Zoratoune
Update: I've fixed the experience multiplier not working anymore

Re: This Grand Life 2

Posted: Thu Aug 15, 2024 11:03 pm
by sundrops
income multiplier is not working

Re: This Grand Life 2

Posted: Sun Feb 02, 2025 2:35 pm
by Zoratoune
I've fixed the experience multiplier and only that

Re: This Grand Life 2

Posted: Fri Feb 07, 2025 10:16 pm
by RuanitoLoks
Unfortunately it's not working. AOB scan error. Is there any way to fix it?

Re: This Grand Life 2

Posted: Thu May 01, 2025 4:39 pm
by Finnickz
Can u update for version 0.70.00? Only Multiply experience fixed with aob can work for new version。

Re: This Grand Life 2

Posted: Sun May 18, 2025 11:24 am
by Zoratoune
I've been trying to fix the time pointer script but I can't find a new aob that doesn't screw the whole game by either crashing it or skipping month every tick of time. I'm really too much of a noob in these kind of things.
You can search for this time elapsed value that start at 0 from 728 remaing hours. And searching for that 4 bytes value from there. Good luck to you !