Fux Bug Zen CGItemGetRequest for 97D
Hello to all of RZ, I would like someone to help me solve the zen bug of version 0.96.04 since Webzen usually did not add the maximum zen option so you have to add it to the source, the protocol that I'm trying to modify is the CGItemGetRequest, but I have a big problem is that when I grab anything from the floor I crashed the GS, I was testing what I did wrong and apparently it is the MapItem files, MapClass .. if someone has these files working in the 97D would be very helpful if I could share them, if someone is willing to help send me a message to the private, and explained in detail
Re: Fux Bug Zen CGItemGetRequest for 97D
Quote:
Originally Posted by
ProuseR15
Hello to all of RZ, I would like someone to help me solve the zen bug of version 0.96.04 since Webzen usually did not add the maximum zen option so you have to add it to the source, the protocol that I'm trying to modify is the CGItemGetRequest, but I have a big problem is that when I grab anything from the floor I crashed the GS, I was testing what I did wrong and apparently it is the MapItem files, MapClass .. if someone has these files working in the 97D would be very helpful if I could share them, if someone is willing to help send me a message to the private, and explained in detail
just hook the function and do a previous check, you can use the structs that have been published everywhere to make life easier for you.
Re: Fux Bug Zen CGItemGetRequest for 97D
Quote:
Originally Posted by
webmonkey
just hook the function and do a previous check, you can use the structs that have been published everywhere to make life easier for you.
friend, I already hook the function:
Quote:
Library.MakeHook((DWORD)&CGRequestRecv.CGItemGetRequest,0x00401479);
And also locate the offset:
Quote:
#define CGItemGetRequestRecv ((void(*)(PMSG_ITEMGETREQUEST * lpMsg, int aIndex)) 0x00418740)
I currently have the CGItemGetRequest.cpp in this way:
Quote:
void CRequestRecv::CGItemGetRequest(PMSG_ITEMGETREQUEST * lpMsg, int aIndex){ LPOBJ lpObj = &gObj[aIndex]; int item_num, map_num; CMapItem * lpItem; lpItem = &MapC[map_num].m_cItem[item_num]; item_num = MAKE_NUMBERW(lpMsg->NumberH, lpMsg->NumberL); map_num = lpObj->MapNumber; if ( lpItem->m_Type == ITEMGET(14,15) ) { LogAddTD("Si es zen 1"); } else if( MapC[map_num].ItemGive(aIndex, item_num, false) == TRUE ) { LogAddTD("Obtuvo un item 2 "); } if ( !gObjCheckMaxZen(aIndex, iAddZen)) { LogAddTD("Verifico el zen %d",iAddZen); } LogAddTD("No verifica nada"); CGItemGetRequestRecv(lpMsg,aIndex); return;}
And my problem is that I'm looking for is: &MapC[map_num].m_cItem[item_num]
Since reviewing other sources, especially the decompilation made by Deathway, GS 1.00.18, and the function makes a pointer to a class of MapClass and MapItem files, try to adapt all those files to this version but nothing that works for me, just I put this in the CGItemGetRequest:if (lpItem-> m_Type == ITEMGET (14,15)){LogAddTD ("If it's zen 1");}And the GameServer crashed