GM Rerolls + custom game dll help

Garret

Active member
Joined
Oct 4, 2023
Messages
37
Hey, im trying to expand the essentials project a bit with features removed on the latest version since they are uncompatible (For now) with the EP5 files used by the bowie project.

* The first problem comes with the custom game DLL issue.
Using the standard game.exe (Or any other EP6 game.exe) with the custom game dll, bugs the HP on attacks, an issue with deeper info here: https://github.com/kurtekat/shaiya-episode-6/issues/60

I first think it was a ps_game problem but soon if was discovered it's merely a client issue caused by the DLL.
The problem it's custom game dll offers a core mechanic of the episode: Disable wings and pets by commands.
By the moment the project do not use that dll to prevent issues, but im trying to solve the HP bug using the dll as usual. Cutting an essential and base feature for EP6 servers it is not the best scenario if the idea it's standardize the files ofc


* The second 'problem' comes with the gm reroll system:
With episode 6 PS_Game, several released gm rerolls scripts works just well, but this changes using a ps_game EP5 (Ofc)
Im currently trying to understand the attached script to make it work for the bowie files, but i have very little progress:

Editing the runes can lead to the following effects:
Item effects:
86: STR random
87: DEX random
88: INT random
89: WIS random
90: REC random
91: LUC random

I don't know how to setup HP/MP/SP runes or the perfect/removal variants because the script info it's a bit confusing for me. If anyone have used that script in the past or know how it works, it could be very helpful for adding the feature to the essentials project.
 

Attachments

  • GM_RR_Script.zip
    3.4 KB · Views: 8
By the moment the project do not use that dll to prevent issues, but im trying to solve the HP bug using the dll as usual. Cutting an essential and base feature for EP6 servers it is not the best scenario if the idea it's standardize the files ofc
so, you just need working pet/wing on/off commands and this will be solved?
 
so, you just need working pet/wing on/off commands and this will be solved?
Basically, yes. Or solve the HP bug using the custom game dll, the hardest option since the code it is not avaliable and shen1 files are at least questionable
 
CustomGame.dll writes mov instructions in the 0x505 handler. this is ironic, considering the discussion we had.

Code:
game.exe+1942D8 - 89 B0 58010000 - mov [eax+00000158],esi
game.exe+1942DE - 89 90 60010000 - mov [eax+00000160],edx
game.exe+1942E4 - 89 88 68010000 - mov [eax+00000168],ecx

you can put this in your dll to overwrite his code.

C++:
#include <array>
    
std::array<std::uint8_t, 1> a00{ 0x01 };
util::write_memory((void*)0x5942D8, &a00, 1);
util::write_memory((void*)0x5942DE, &a00, 1);
util::write_memory((void*)0x5942E4, &a00, 1);

this is what you should see.

Code:
game.exe+1942D8 - 01 B0 58010000 - add [eax+00000158],esi
game.exe+1942DE - 01 90 60010000 - add [eax+00000160],edx
game.exe+1942E4 - 01 88 68010000 - add [eax+00000168],ecx

edit: @Garret , here's a second option. i edited the bytes in the dll you uploaded to github.

Code:
// 0x89 (mov)

C7 45 B0 00 89 B0 58 C7 45 B4 01 00 00 89 C7 45 B8 90 60 01 00 C7 45 BC 00 89 88 68

// 0x01 (add)

C7 45 B0 00 01 B0 58 C7 45 B4 01 00 00 01 C7 45 B8 90 60 01 00 C7 45 BC 00 01 88 68
 
Back
Top