Join our community of MMO enthusiasts and game developers! By registering, you'll gain access to discussions on the latest developments in MMO server files and collaborate with like-minded individuals. Join us today and unlock the potential of MMO server development!
just answering the "why should i free memory?" question.
simply because c/c++ doesn't have a garbage collector like other high-level programming languages like c# or java.
it's packed with Enigma 5.9 .. title should be "unpack it" and not "crack it".
also i don't see the challenge when you throw an exe into a packer and post it here to check whether anyone can "unpack" it or not.
it'll be more interesting posting an exe with self-made encryption/protection system...
you are using _FindItem @ 45D1E0 which is stdcall and not thiscall, you should be using FindItem @ 45D190.
change the address
from:
static int (__thiscall *CPlayer__FindItem)(void *thispointer, int a2, int a3) = (int (__thiscall*)(void *thispointerpointer, int a2, int a3))0x0045D1E0;
to...
a2 is item index, a3 is quantity.
how to know? check function calls in IDA.
CPlayer::FindItem(a1, 653, 1)
in this case it's so obvious that a2 is index and a3 is quantity.
Regards.
get monsters near player:
for (int i = Server::Unknown::sub_4935A0((LPVOID)*(DWORD *)(playerPtr + 320), playerPtr + 324, 2); i; i = Server::CBase::CBaseList__Pop((LPVOID)i) ){
int mobPtr = *(DWORD *) i ;
}
i'm scamming people ?
first of all you were sending me dll files "crypted" by others to unpack them, and you were begging me to do that.
and because i refused, you are acting like i scammed you.
anyway, i contributed enough things to kal dev community, but i realise now that you don't worth a...
good release :)
small modification
if(Server::CPlayer::CPlayer__GetInvenSize((void *)playerPtr) >= 60)
forward=true;
otherwise, player who got picker-item and got full inv won't see drops and won't get his items :)
also, for party you can use...