FYI when i tried to add RenderModes to the WarCraft3 source i had (Using the newer SDK) i got linker errors... Perhaps this is some clue as to what changed in the SDK
serverplugin_warcraft.obj : error LNK2001: unresolved external symbol "class CSharedEdictChangeInfo * g_pSharedChangeInfo" (?g_pSharedChangeInfo@@3PAVCSharedEdictChangeInfo@@A)
serverplugin_warcraft.obj : error LNK2019: unresolved external symbol "public: class IChangeInfoAccessor * __thiscall CBaseEdict::GetChangeAccessor(void)" (?GetChangeAccessor@CBaseEdict@@QAEPAVIChangeInfoAccessor@@XZ) referenced in function "public: void __thiscall CBaseEdict::StateChanged(unsigned short)" (?StateChanged@CBaseEdict@@QAEXG@Z)
.\Release/serverplugin_warcraft.dll : fatal error LNK1120: 2 unresolved externals
Based on the name i would say it has something to do w/ basic entity properties (render, health, etc)
Maybe they changed the layout of cSharedEdictChangeInfo? (Possibly breaking render AND health?)
No Clue, i gotta go to work, i'll look into it more later, Just a random thought
If only we knew how mattie-events did his SetPlayerProps and GetPlayerProps we could do it that way.... Seems like it should be similar to sig-scanning, but how do you find a variable in memory since it's always different?
I guess you would have to find the signature for the pointer to the variable?
I did read the Sig Scanning articles you referenced in the source code (Thanks, Wish more people commenting their source code like that)... I'll read your article while i'm at work probably..
----------------------------------
btw when i crashed your version of the sethealth code, VS debugger took me into dissassembly... But
CRPG_Utils::s_engine()->PEntityOfEntIndex(player->index)->GetUnknown()->GetBaseEntity()->GetBaseEntity()->GetBaseEntity()->SetHealth(hb->health);
return;
causes Visual studio to report the crash as occuring in the function that called this (namely firegameevent --> player_spawn)
Does this mean it crashes while trying to return from the set health function or did i just make a different crash?

(brainstorming: Maybe SetHealth returns the users current health now? to prevent repeditive calls to GetHealth? Or maybe it returns true/false so you can tell if it works and render mode does also now?)