Jump to content
  • 0

How I can fixed the trade bug.


Stantons

Question

12 answers to this question

Recommended Posts

  • 0

Here is the code to fix this awful trade bug ;)

 

clientpackets.TradeRequest.java (about line 125)


+        if (partner.getAllowTrade() == false)
+       {
+        	player.sendMessage("Target is not allowed to receive more than one trade request at the same time.");
+        	return;
+        }
+        partner.setAllowTrade(false);
+        player.setAllowTrade(false);
	player.onTransactionRequest(partner);
	partner.sendPacket(new SendTradeRequest(player.getObjectId()));
	SystemMessage sm = new SystemMessage(SystemMessageId.REQUEST_S1_FOR_TRADE);
	sm.addString(partner.getName());
	player.sendPacket(sm);




-----------------------------------------------------------

clientpackets.AnswerTradeRequest.java (about line 69)


       L2PcInstance partner = player.getActiveRequester();
       if (partner == null || L2World.getInstance().findObject(partner.getObjectId()) == null)
       {
           // Trade partner not found, cancel trade
		player.sendPacket(new SendTradeDone(0));
           SystemMessage msg = new SystemMessage(SystemMessageId.TARGET_IS_NOT_FOUND_IN_THE_GAME);
           player.sendPacket(msg);
		player.setActiveRequester(null);
+			player.setAllowTrade(true);
+			partner.setAllowTrade(true);
		msg = null;
           return;
       }


-		if (_response == 1) player.startTrade(partner);



+		if (_response == 1)
+			{
+			player.startTrade(partner);
+			partner.setAllowTrade(true);
+			player.setAllowTrade(true);
+			}



	else
	{
		SystemMessage msg = new SystemMessage(SystemMessageId.S1_DENIED_TRADE_REQUEST);
		msg.addString(player.getName());
		partner.sendPacket(msg);
+			player.setAllowTrade(true);
		msg = null;
	}




------------------------------------------

L2PcInstance.java (about line 497)

   private int _apprentice = 0;
   private int _sponsor = 0;

+    public boolean _allowTrade = true;
   
private long _clanJoinExpiryTime;
private long _clanCreateExpiryTime;



L2PcInstance.java (about line 8121)


   public void setClanPrivileges(int n)
   {
       _clanPrivileges = n;
   }

+    public boolean getAllowTrade()
+    {
+    	return _allowTrade;
+    }
+    
+    public void setAllowTrade(boolean a)
+    {
+    	_allowTrade = a;
+    }

Link to comment
Share on other sites

  • 0

WoW. Thanks for reply very fast, the fixed is compatible with l2j server interlude?

 

Working everywhere,i mean in all l2j servers.

Link to comment
Share on other sites

  • 0

Thank`s,Thank`s!!!! One question, for the administrator of the server where i play and He fixed every fast. Than have to edit?

 

If you mean that he fixing every bug too fast and you want also,you must find the codes of these bugs too and apply them to your eclipse :)

Link to comment
Share on other sites

  • 0

there are a lot trade bug which one you mean because rizels fix is fix one of them but not the other one which shared here for 4-500 post

Link to comment
Share on other sites

  • 0

Here is the code to fix this awful trade bug ;)

 

clientpackets.TradeRequest.java (about line 125)


+        if (partner.getAllowTrade() == false)
+       {
+        	player.sendMessage("Target is not allowed to receive more than one trade request at the same time.");
+        	return;
+        }
+        partner.setAllowTrade(false);
+        player.setAllowTrade(false);
	player.onTransactionRequest(partner);
	partner.sendPacket(new SendTradeRequest(player.getObjectId()));
	SystemMessage sm = new SystemMessage(SystemMessageId.REQUEST_S1_FOR_TRADE);
	sm.addString(partner.getName());
	player.sendPacket(sm);




-----------------------------------------------------------

clientpackets.AnswerTradeRequest.java (about line 69)


       L2PcInstance partner = player.getActiveRequester();
       if (partner == null || L2World.getInstance().findObject(partner.getObjectId()) == null)
       {
           // Trade partner not found, cancel trade
		player.sendPacket(new SendTradeDone(0));
           SystemMessage msg = new SystemMessage(SystemMessageId.TARGET_IS_NOT_FOUND_IN_THE_GAME);
           player.sendPacket(msg);
		player.setActiveRequester(null);
+			player.setAllowTrade(true);
+			partner.setAllowTrade(true);
		msg = null;
           return;
       }


-		if (_response == 1) player.startTrade(partner);



+		if (_response == 1)
+			{
+			player.startTrade(partner);
+			partner.setAllowTrade(true);
+			player.setAllowTrade(true);
+			}



	else
	{
		SystemMessage msg = new SystemMessage(SystemMessageId.S1_DENIED_TRADE_REQUEST);
		msg.addString(player.getName());
		partner.sendPacket(msg);
+			player.setAllowTrade(true);
		msg = null;
	}




------------------------------------------

L2PcInstance.java (about line 497)

   private int _apprentice = 0;
   private int _sponsor = 0;

+    public boolean _allowTrade = true;
   
private long _clanJoinExpiryTime;
private long _clanCreateExpiryTime;



L2PcInstance.java (about line 8121)


   public void setClanPrivileges(int n)
   {
       _clanPrivileges = n;
   }

+    public boolean getAllowTrade()
+    {
+    	return _allowTrade;
+    }
+    
+    public void setAllowTrade(boolean a)
+    {
+    	_allowTrade = a;
+    }

 

on my computer goes Eclipse put me one please?

 

L2JFree interlude, pls :(

 

Downlaod my l2j-gameserver-1.0.0

http://www.4shared.com/file/119775524/31c789f4/l2j-gameserver-100.html

 

 

or one developer.

Link to comment
Share on other sites

  • 0

I don't see why this is an issue since:

if (partner.isProcessingRequest() || partner.isProcessingTransaction())

 

should've handled it. Unless there's an issue with how either one of those handle things. then those should be fixed and not some work around like the method above.

 

Link to comment
Share on other sites

  • 0

I don't see why this is an issue since:

if (partner.isProcessingRequest() || partner.isProcessingTransaction())

 

should've handled it. Unless there's an issue with how either one of those handle things. then those should be fixed and not some work around like the method above.

 

 

the method above is a fix for an interlude trade bug they talk about the other one i think you know the other bug which shared here and corrected in lineage2 and he wanted that fix for shitlude by the way they dont know what timeline is and they dont know the magic search button too =]

Link to comment
Share on other sites

  • 0

the method above is a fix for an interlude trade bug they talk about the other one i think you know the other bug which shared here and corrected in lineage2 and he wanted that fix for shitlude by the way they dont know what timeline is and they dont know the magic search button too =]

 

Oh lol! I keep forgetting that there are people around who still use Interlude. hahahaha

Link to comment
Share on other sites

  • 0

Oh lol! I keep forgetting that there are people around who still use Interlude. hahahaha

 

whole mxc is based on shitlude and everybody think mxc is a support site for shitlude :D thats why topics like that exist but before somebody start to flame because i speak nothing but the trueth(which is interlude is the biggest shit that ever existed and everybody who in a huge love with interlude is nothing more than a newbie naab l2j high rate player :D )heres your answer

search the l2j core timeline for a commit from nBd for the fix of trade bug and thats all.

 

topic locked question answered

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.


  • Posts

    • Welcome to my store : https://topestore.mysellix.io/fr/ 2015-2022 Aged Discord Account 2015 Discord Account : 60.99 $ 2016 Discord Account : 10.50 $ 2017 Discord Account :4.99 $ 2018 Discord Account : 3.99 $ 2019 Discord Account : 2.99 $ 2020 Discord Account :1.99$ 2021 Discord Account :1.50$ 2022 Discord Account :0.99$ Warranty :Lifetime Payment Methods : Crypto/ PayPal Contact Me On Discord Or Telegram Discord : @ultrasstore11 Telegram : https://t.me/ultrastore11 Whatsapp ; +212614849119 Welcome to my store : https://topestore.mysellix.io/fr/ 2015-2022 Aged Discord Account 2015 Discord Account : 60.99 $ 2016 Discord Account : 10.50 $ 2017 Discord Account :4.99 $ 2018 Discord Account : 3.99 $ 2019 Discord Account : 2.99 $ 2020 Discord Account :1.99$ 2021 Discord Account :1.50$ 2022 Discord Account :0.99$ Warranty :Lifetime Payment Methods : Crypto/ PayPal Contact Me On Discord Or Telegram Discord : @ultrasstore11 Telegram : https://t.me/ultrastore11 Whatsapp ; +212614849119
    • The heavy lifting is done in the client, because while you can get away with small imperfections in the java, everything in the client must be impecable. So, if you haven't touched the client, I'd say pick the newest protocol version you can find the client editing tools and Interface.u (mandatory) / NWindow.dll (better to have it) / Engine.dll (optional) sources for. At the very least, you need the Interface.u to fix the Clan Window and enable skill enchanting on Classic/Essence versions, if you decide to use one of them instead of MAIN/LIVE.
    • Thanks for clarification. Do you think the newest clients offer solid advantages compared to the classic ones like Salvation? I'm also in the process of porting h5 to one of them just for the sake of it, so I was wondering if I should just attempt to go to the newest possible.
    • Upgrading to Salvation is exactly the same as upgrading to the newest client with the only difference being access to free-shared client editing tools and resources. I am speaking from experience. I have upgraded my HF source to one of the newest clients by myself (in terms of server side. got help with the client) and hit every single wall there was in the process. Now, I already have several multi-protocool server cores so I can easily compare different approaches to tackling the same issue, which also helped the learning process. Best way to learn would be to use this one (link below) to snoop around and figure out what has been changed in the server side (the packet structure will be different, for sure, but works for understanding/figuring the process out in general terms). https://github.com/iBezneR/L2J_SunriseProject_Purity The client side will always be the same, always the same files, only the DAT structure will be different. I personally wrote myself some parsers for the data of the DAT files from OLD -> NEW client.
  • Topics

×
×
  • Create New...