Old Skeletons & DLL injection help...

Reppots

Dalayan Adventurer
Hello again,

I've been sitting on this for a while now, and not having the skill-set myself, it's simply gained dust. Here is the solution that P99 uses to get the old brown skeletons to show, as achieved by Secrets from EQEmu. If anyone is able to get this into a working solution, I'd love to see it. This would enable white, brown, and now many more colors of the old cackling skeletons to come back to life!

--------------
SOE hardcoded race 60 in the client to always be texture 0, the fix is removing that in the client.

I didn't actually have my work handy so I recreated it.

You can search for a constant variable of 60 in the exe and fill the instruction set that is in the 'signed int __thiscall EQPlayer::SwapNPCMaterials(int this)' function where it modifies the actor variable of texture with 0x90 (NOP). Filling 0x482762 -> 0x48276F in titanium with 0x90 (NOP) will achieve this effect.


You can binary patch it with a program such as 'OllyDBG' to achieve this effect, or use DLL injection and use this function to patch bytes into the application:



Quote:
void PatchBytes( void * lpAddress, const char * szBytes, int nLen )
{
// Needed by VirtualProtect.
DWORD dwBack = 0;
VirtualProtect( lpAddress, nLen, PAGE_READWRITE, &dwBack );

// Write Byte-After-Byte.
for( int i = 0; i < nLen; i++ )
*( BYTE * )( ( DWORD )lpAddress + i ) = szBytes[ i ];

// Restore old protection.
VirtualProtect( lpAddress, nLen, dwBack, &dwBack );
}

/*ex - 00482762 /PatchBytes((void*)0x00482762, "\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\ x90", 13);
Skeletons fix */
Hope that helps a bit.
 
Jeeze, being the n00b that I am in anything to do with code, this is gobbledygook to me. I was just thinking about this yesterday, as a matter of fact, wondering if we could potentially use Zaela's Texture Added to set the old Skeleton model back to having two textures. However, if hardcoding is the culprit here, I guess that idea is shot. I miss dem brown skeletons so much! :( They used to stand as a real stepping stone in the progression of Necromancers, serving as a stylish middleman between the plain Jane ivory Skeleton they're currently stuck with all the way into the late 50s, when the Specter model finally takes over.

Zaela? Taryth? Olive? Slaar? Someone is bound to be able to make something of this gibberish. I've yet to run into a person who prefers the Luclin Skeleton over the Classic one! I regularly "break" the relevant files myself when I have to do a repatch just so I can stay with the good old-fashioned Classic skelly.
 
Unlikely this will go into 2.0, but 2.5 already makes use of injection, so we could put that in.
 
From a technical standpoint this is an easy change and I was able to get the memory address for the Seeds client from Secrets, but brown skeletons would mean reverting back to old skeletons, wolves, and tigers which is a design choice, so that aspect isn't up to me.
 
I may be a little rusty, but doesn't SoD already use old skeletons with Luclin wolves? I know I have some screenshots of fighting them in Butcherblock. To my knowledge that's all a Global Load alteration.

Very happy to hear this will be possible!
 
Back
Top Bottom