Changing Point Buy points

Discussion in 'General Modification' started by Sitra Achara, Sep 12, 2009.

Remove all ads!
  1. Sitra Achara

    Sitra Achara Senior Member

    Joined:
    Sep 1, 2003
    Messages:
    3,613
    Likes Received:
    537
    My very first DLL hack! Woo! :)

    If you want to change the number of distributable points in PB mode, do the following:


    1. Open up temple.dll in a hex editor
    2. Alter the following addresses:
    3. 18B534, 18B576
    4. The unmodified value is 19 (that's the hexadecimal representation for 25). Change to whatever you like (within reason, of course), save, and play!

    For instance if you want 30 points, change it into 1E. You can use your windows calculator to convert from decimal to hexadecimal.

    The relevant section of code, from Ollydbg:

    Code:
    1018B529   B8 08000000      MOV EAX,8                                ; the initial amt of points
    1018B52E   C705 F453C410 19000000      MOV DWORD PTR DS:[10C453F4],19           ; the Point Buy number of distributable points
    1018B538   F3:AB                       REP STOS DWORD PTR ES:[EDI]
    1018B53A   E8 31000000                 CALL temple.1018B570
    1018B53F   6A 00                       PUSH 0
    1018B541   E8 2A07F9FF                 CALL temple.1011BC70
    1018B546   83C4 04                     ADD ESP,4
    1018B549   5F                          POP EDI
    1018B54A   C3                          RETN
    1018B54B   83C8 FF                     OR EAX,FFFFFFFF
    1018B54E   C705 F453C410 00000000      MOV DWORD PTR DS:[10C453F4],0
    1018B558   F3:AB                       REP STOS DWORD PTR ES:[EDI]
    1018B55A   E8 11000000                 CALL temple.1018B570
    1018B55F   6A 00                       PUSH 0
    1018B561   E8 0A07F9FF                 CALL temple.1011BC70
    1018B566   83C4 04                     ADD ESP,4
    1018B569   5F                          POP EDI
    1018B56A   C3                          RETN
    1018B56B   90                          NOP
    1018B56C   90                          NOP
    1018B56D   90                          NOP
    1018B56E   90                          NOP
    1018B56F   90                          NOP
    1018B570   A1 F453C410                 MOV EAX,DWORD PTR DS:[10C453F4]          ; Read # of PB points
    1018B575   6A 19                       PUSH 19                                  ; responsible for X in the "25 / X" in PB display; doesn't actually alter the number of available points, though
    


    From the short test I did there don't seem to be any problems. So, enjoy!

    (shall we integrate into TFE-X?)

    Edit: Oh, found a small bug. You can't detract points when your available points total in excess of 25 (but once you spend points so that you have less than 25, it's ok). Guess I'll have to dig around some more to perfect it. But hey, you're going to have to spend all the points anyway.

    Also, as pointed out in the debugger thing, the initial value of stats can be changed too (default is 8 on all stats).
     

    Attached Files:

    Last edited: Sep 12, 2009
  2. Ranth

    Ranth Established Member

    Joined:
    Jan 26, 2008
    Messages:
    829
    Likes Received:
    0
    Nice work sire.
     
  3. hellblazer

    hellblazer Established Member

    Joined:
    Feb 27, 2006
    Messages:
    227
    Likes Received:
    0
    For anyone who ever wanted more than 25 points per character but wanted to keep it uniform.
    [​IMG]
     
Our Host!