do u know any way how i can do it , ( i need to know how the auto pet pick system work so i can work on it )
yes, as I said above there are several ways of accomplishing it.
You could filter the packet traffic (client side) and Execute PickupItem once your conditions are met.
You could rewrite (server side)
CInitMonster:
ropItem(CMonster *, BOOL, int, int, DWORD);
CInitMonster:
ropItemEx(...);
add some checks if conditions are met, insert item to player inventory instead of droping it on the ground.
You could come up with some sort of overkill logic to handle everything with your own code instead of hooking.
i suggest you make use of DropItem/DropItemEx
simply add some checks (equipped item or anything you want)
>> if something gets droped and player has pet equipped
>> check if the player is inside a party
>> if yes use the CParty functions and give the item to a random player
>> else insert to player inventory.
however clientside packettraffic check is the most simple method which doesn't required a whole lot of code and siutes your needs, i guess.