Jump to content

[Share]Symbol(dyes) Bug fix


Recommended Posts

hallo all.. i search for this fix in forum and i don't have see this..

 

Exploit:

[English]: http://maxcheaters.com/forum/index.php?topic=2826.0

[Greek]: http://maxcheaters.com/forum/index.php?topic=176746.0

 

The Fix Code:

Index: /trunk/Gameserver/java/net/sf/l2j/gameserver/clientpackets/RequestHennaEquip.java
===================================================================
--- /trunk/Gameserver/java/net/sf/l2j/gameserver/clientpackets/RequestHennaEquip.java (revision 14)
+++ /trunk/Gameserver/java/net/sf/l2j/gameserver/clientpackets/RequestHennaEquip.java (revision 18)
@@ -19,5 +19,7 @@
package net.sf.l2j.gameserver.clientpackets;

+import net.sf.l2j.Config;
import net.sf.l2j.gameserver.datatables.HennaTable;
+import net.sf.l2j.gameserver.datatables.HennaTreeTable;
import net.sf.l2j.gameserver.model.L2HennaInstance;
import net.sf.l2j.gameserver.model.L2ItemInstance;
@@ -27,4 +29,5 @@
import net.sf.l2j.gameserver.serverpackets.SystemMessage;
import net.sf.l2j.gameserver.templates.L2Henna;
+import net.sf.l2j.gameserver.util.Util;

/**
@@ -69,4 +72,22 @@
     	L2HennaInstance temp = new L2HennaInstance(template);
     	int _count = 0;
+    	
+		/**
+		 *  Prevents henna drawing exploit: 
+		 * 1) talk to L2SymbolMakerInstance 
+		 * 2) RequestHennaList
+		 * 3) Don't close the window and go to a GrandMaster and change your subclass
+		 * 4) Get SymbolMaker range again and press draw
+		 * You could draw any kind of henna just having the required subclass...
+		 */
+    	boolean cheater = true; 
+    	for (L2HennaInstance h : HennaTreeTable.getInstance().getAvailableHenna(activeChar.getClassId())) 
+    	{ 
+    		if (h.getSymbolId() == temp.getSymbolId())  
+    		{ 
+    			cheater = false; 
+    			break; 
+    		} 
+    	}       

		try{
@@ -75,5 +96,5 @@
		catch(Exception e){}

-		if ((_count >= temp.getAmountDyeRequire())&& (activeChar.getAdena()>= temp.getPrice()) && activeChar.addHenna(temp))
+		if (!cheater && (_count >= temp.getAmountDyeRequire())&& (activeChar.getAdena()>= temp.getPrice()) && activeChar.addHenna(temp))
		{
			SystemMessage sm = new SystemMessage(SystemMessageId.S1_DISAPPEARED);
@@ -98,4 +119,6 @@
         {
			activeChar.sendPacket(new SystemMessage(SystemMessageId.CANT_DRAW_SYMBOL));
+			if ((!activeChar.isGM()) && (cheater))
+				Util.handleIllegalPlayerAction(activeChar, "Exploit attempt: Character "+activeChar.getName()+" of account "+activeChar.getAccountName()+" tryed to add a forbidden henna.",Config.DEFAULT_PUNISH);
		}
	}

 

Credits: Fafoukas

 

Link to comment
Share on other sites

hallo all.. i search for this fix in forum and i don't have see this..

 

Exploit:

[English]: http://maxcheaters.com/forum/index.php?topic=2826.0

[Greek]: http://maxcheaters.com/forum/index.php?topic=176746.0

 

The Fix Code:

Index: /trunk/Gameserver/java/net/sf/l2j/gameserver/clientpackets/RequestHennaEquip.java
===================================================================
--- /trunk/Gameserver/java/net/sf/l2j/gameserver/clientpackets/RequestHennaEquip.java (revision 14)
+++ /trunk/Gameserver/java/net/sf/l2j/gameserver/clientpackets/RequestHennaEquip.java (revision 18)
@@ -19,5 +19,7 @@
package net.sf.l2j.gameserver.clientpackets;

+import net.sf.l2j.Config;
import net.sf.l2j.gameserver.datatables.HennaTable;
+import net.sf.l2j.gameserver.datatables.HennaTreeTable;
import net.sf.l2j.gameserver.model.L2HennaInstance;
import net.sf.l2j.gameserver.model.L2ItemInstance;
@@ -27,4 +29,5 @@
import net.sf.l2j.gameserver.serverpackets.SystemMessage;
import net.sf.l2j.gameserver.templates.L2Henna;
+import net.sf.l2j.gameserver.util.Util;

/**
@@ -69,4 +72,22 @@
     	L2HennaInstance temp = new L2HennaInstance(template);
     	int _count = 0;
+    	
+		/**
+		 *  Prevents henna drawing exploit: 
+		 * 1) talk to L2SymbolMakerInstance 
+		 * 2) RequestHennaList
+		 * 3) Don't close the window and go to a GrandMaster and change your subclass
+		 * 4) Get SymbolMaker range again and press draw
+		 * You could draw any kind of henna just having the required subclass...
+		 */
+    	boolean cheater = true; 
+    	for (L2HennaInstance h : HennaTreeTable.getInstance().getAvailableHenna(activeChar.getClassId())) 
+    	{ 
+    		if (h.getSymbolId() == temp.getSymbolId())  
+    		{ 
+    			cheater = false; 
+    			break; 
+    		} 
+    	}       

		try{
@@ -75,5 +96,5 @@
		catch(Exception e){}

-		if ((_count >= temp.getAmountDyeRequire())&& (activeChar.getAdena()>= temp.getPrice()) && activeChar.addHenna(temp))
+		if (!cheater && (_count >= temp.getAmountDyeRequire())&& (activeChar.getAdena()>= temp.getPrice()) && activeChar.addHenna(temp))
		{
			SystemMessage sm = new SystemMessage(SystemMessageId.S1_DISAPPEARED);
@@ -98,4 +119,6 @@
         {
			activeChar.sendPacket(new SystemMessage(SystemMessageId.CANT_DRAW_SYMBOL));
+			if ((!activeChar.isGM()) && (cheater))
+				Util.handleIllegalPlayerAction(activeChar, "Exploit attempt: Character "+activeChar.getName()+" of account "+activeChar.getAccountName()+" tryed to add a forbidden henna.",Config.DEFAULT_PUNISH);
		}
	}

 

Credits: Fafoukas

 

Link to comment
Share on other sites

Sure..Also I remember when you C/P from L2JServer oO

 

sure allso i remember you c/p from L2JFree oO

 

 

 

 

 

:D

 

 

Rofl? you remember that day?

 

p.s: i dont couse i was bussy with you moma. :)

shoe fetish?!?

 

http://www.zalando.de/boots-poncho-maya-mo312h003-701.html?cg=03&ch=03&wmc=AFF_7801&wt_cc1=148030

 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...