Jump to content

Recommended Posts

  • 2 months later...
  • 3 weeks later...
  • 2 months later...
  • 3 weeks later...
Posted

Those who want to fix this exploit themselves in their own extenders:

 

1) Hook incomming packets.

   # IncommingPackets(CSocket *pSocket, CSPacket *pPacket, INT16 nPacketLen, BYTE nPacketID)

 

2) Check for opcode 0x8C( GetItemFromPet ) and 0x8B ( GiveItemToPet ) Depends on what chronicle you use.

 

3) Make a check for trade at 0x0080F840.

 

bool User::IsNowTrade()
{
typedef bool (*ISNOWTRADE)(User *pUser);
ISNOWTRADE xIsNowTrade = (ISNOWTRADE)(0x0080F840L);
return xIsNowTrade(this);
}

 

4) Do the check when server receive packet 0x8B or 0x8C.

 

User *pUser = pSocket->user

if (pUser->IsNowTrade())
{
pUser->TradeCancel();
return false;
}

 

Now if you give a item to your pet or if you take a item from the pet and if you have your trade open it will close trade and this packet will be ignored.

 

                             --> 0x8C

[Receive opCode ]                  --> Run Check Function    ---> TradeOpen?    ---> Close Trade + Ignore packet.

                             --> 0x8B

 

Simple right?

 

Cheers.

  • 5 months later...
Posted

Well probably most "devs" dont know how to make this work! Cose basicly Amped dosent run it!

 

You need to download CFF explorer

http://download.cnet.com/CFF-Explorer/3000-2383_4-10431156.html

 

After open L2server.exe with CFF explorer( make an backup )

 

After go to Import Adder choose L2interlude.dll

 

1st Import by name. 2nd Import by Order

 

Rebuild Import Table

 

After go to Import Directory and move L2interlude.dll above L2server64x-dll.dll

 

And pet dupe wont work anymore!

 

 

 

 

nice mini guide man .. :D .. you helped me . its so easy but most of us dont know it.. :D

  • 6 months later...
Guest
This topic is now closed to further replies.


×
×
  • Create New...