Kazeno Posted February 20, 2009 Share Posted February 20, 2009 As you may have noticed, this bug works in almost every pack and the only way to avoid it is to add this code in your server's source. I've seen characters having 100.000 HP using this bug, because they can do it over and over again. Index: /java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java =================================================================== --- /java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java (revision 1434) +++ /java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java (working copy) @@ -9680,6 +9680,90 @@ public boolean setActiveClass(int classIndex) { + L2ItemInstance rhand = getInventory().getPaperdollItem(Inventory.PAPERDOLL_RHAND); + if (rhand != null) + { + + L2ItemInstance[] unequipped = getInventory().unEquipItemInBodySlotAndRecord(rhand.getItem().getBodyPart()); + InventoryUpdate iu = new InventoryUpdate(); + for (L2ItemInstance element : unequipped) + iu.addModifiedItem(element); + sendPacket(iu); + + } + + L2ItemInstance lhand = getInventory().getPaperdollItem(Inventory.PAPERDOLL_LHAND); + if (lhand != null) + { + + L2ItemInstance[] unequipped = getInventory().unEquipItemInBodySlotAndRecord(lhand.getItem().getBodyPart()); + InventoryUpdate iu = new InventoryUpdate(); + for (L2ItemInstance element : unequipped) + iu.addModifiedItem(element); + sendPacket(iu); + + } /* * 1. Call store() before modifying _classIndex to avoid skill effects rollover. * 2. Register the correct _classId against applied 'classIndex'. */ store(); After you add this code, compile your pack and the bug will be fixed. Once this code is added in your source, a character's weapon or shield is automatically unequipped while changing or canceling a sub-class, before the passive ability is stacked. Credits To: Kazeno Link to comment Share on other sites More sharing options...
MadDealer Posted February 20, 2009 Share Posted February 20, 2009 man i want to ask something cause i don't know many things about compile or java everytime that i use a code i have to compile my pack again? i am asking cause u saying: After you add this code, compile your pack and the bug will be fixed. Link to comment Share on other sites More sharing options...
FiX Posted February 20, 2009 Share Posted February 20, 2009 THX FOR THE SHARE REAL THX!!! Keep It Up Link to comment Share on other sites More sharing options...
jossoo Posted February 20, 2009 Share Posted February 20, 2009 tnx kazeno..i will try it now :) tnx again Link to comment Share on other sites More sharing options...
GoDofAdeN Posted February 20, 2009 Share Posted February 20, 2009 Better => http://www.maxcheaters.com/forum/index.php?topic=41734.0 Or Even Better > Index: /java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java =================================================================== --- /java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java (revision 2789) +++ /java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java (working copy) @@ -9680,6 +9680,90 @@ */ public boolean setActiveClass(int classIndex) { + L2ItemInstance chest = getInventory().getPaperdollItem(Inventory.PAPERDOLL_CHEST); + if (chest != null) + { + + L2ItemInstance[] unequipped = getInventory().unEquipItemInBodySlotAndRecord(chest.getItem().getBodyPart()); + InventoryUpdate iu = new InventoryUpdate(); + for (L2ItemInstance element : unequipped) + iu.addModifiedItem(element); + sendPacket(iu); + + } + + L2ItemInstance head = getInventory().getPaperdollItem(Inventory.PAPERDOLL_HEAD); + if (head != null) + { + + L2ItemInstance[] unequipped = getInventory().unEquipItemInBodySlotAndRecord(head.getItem().getBodyPart()); + InventoryUpdate iu = new InventoryUpdate(); + for (L2ItemInstance element : unequipped) + iu.addModifiedItem(element); + sendPacket(iu); + + } + + L2ItemInstance gloves = getInventory().getPaperdollItem(Inventory.PAPERDOLL_GLOVES); + if (gloves != null) + { + + L2ItemInstance[] unequipped = getInventory().unEquipItemInBodySlotAndRecord(gloves.getItem().getBodyPart()); + InventoryUpdate iu = new InventoryUpdate(); + for (L2ItemInstance element : unequipped) + iu.addModifiedItem(element); + sendPacket(iu); + + } + + L2ItemInstance feet = getInventory().getPaperdollItem(Inventory.PAPERDOLL_FEET); + if (feet != null) + { + + L2ItemInstance[] unequipped = getInventory().unEquipItemInBodySlotAndRecord(feet.getItem().getBodyPart()); + InventoryUpdate iu = new InventoryUpdate(); + for (L2ItemInstance element : unequipped) + iu.addModifiedItem(element); + sendPacket(iu); + + } + + L2ItemInstance legs = getInventory().getPaperdollItem(Inventory.PAPERDOLL_LEGS); + if (legs != null) + { + + L2ItemInstance[] unequipped = getInventory().unEquipItemInBodySlotAndRecord(legs.getItem().getBodyPart()); + InventoryUpdate iu = new InventoryUpdate(); + for (L2ItemInstance element : unequipped) + iu.addModifiedItem(element); + sendPacket(iu); + + } + + L2ItemInstance rhand = getInventory().getPaperdollItem(Inventory.PAPERDOLL_RHAND); + if (rhand != null) + { + + L2ItemInstance[] unequipped = getInventory().unEquipItemInBodySlotAndRecord(rhand.getItem().getBodyPart()); + InventoryUpdate iu = new InventoryUpdate(); + for (L2ItemInstance element : unequipped) + iu.addModifiedItem(element); + sendPacket(iu); + + } + + L2ItemInstance lhand = getInventory().getPaperdollItem(Inventory.PAPERDOLL_LHAND); + if (lhand != null) + { + + L2ItemInstance[] unequipped = getInventory().unEquipItemInBodySlotAndRecord(lhand.getItem().getBodyPart()); + InventoryUpdate iu = new InventoryUpdate(); + for (L2ItemInstance element : unequipped) + iu.addModifiedItem(element); + sendPacket(iu); + + } + // Cannot switch or change subclasses while transformed if (isTransformed()) return false; :) Link to comment Share on other sites More sharing options...
TuzmaBoy Posted March 23, 2009 Share Posted March 23, 2009 thx. GJ Link to comment Share on other sites More sharing options...
Kràtos Posted March 23, 2009 Share Posted March 23, 2009 Already Shared http://www.maxcheaters.com/forum/index.php?topic=41734.0 -Topic Locked! Link to comment Share on other sites More sharing options...
Versus Posted March 24, 2009 Share Posted March 24, 2009 lol Cobra it's not the same! Unlocked! Link to comment Share on other sites More sharing options...
Kràtos Posted March 24, 2009 Share Posted March 24, 2009 Is not the same? O.O Kazeno Code; Index: /java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java =================================================================== --- /java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java (revision 1434) +++ /java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java (working copy) @@ -9680,6 +9680,90 @@ public boolean setActiveClass(int classIndex) { + L2ItemInstance rhand = getInventory().getPaperdollItem(Inventory.PAPERDOLL_RHAND); + if (rhand != null) + { + + L2ItemInstance[] unequipped = getInventory().unEquipItemInBodySlotAndRecord(rhand.getItem().getBodyPart()); + InventoryUpdate iu = new InventoryUpdate(); + for (L2ItemInstance element : unequipped) + iu.addModifiedItem(element); + sendPacket(iu); + + } + + L2ItemInstance lhand = getInventory().getPaperdollItem(Inventory.PAPERDOLL_LHAND); + if (lhand != null) + { + + L2ItemInstance[] unequipped = getInventory().unEquipItemInBodySlotAndRecord(lhand.getItem().getBodyPart()); + InventoryUpdate iu = new InventoryUpdate(); + for (L2ItemInstance element : unequipped) + iu.addModifiedItem(element); + sendPacket(iu); + + } /* * 1. Call store() before modifying _classIndex to avoid skill effects rollover. * 2. Register the correct _classId against applied 'classIndex'. */ store(); RizeL Code; /** * Changes the character's class based on the given class index. * <BR><BR> * An index of zero specifies the character's original (base) class, * while indexes 1-3 specifies the character's sub-classes respectively. * * @param classIndex */ public boolean setActiveClass(int classIndex) { + L2ItemInstance chest = getInventory().getPaperdollItem(Inventory.PAPERDOLL_CHEST); + if (chest != null) + { + + L2ItemInstance[] unequipped = +getInventory().unEquipItemInBodySlotAndRecord(chest.getItem().getBodyPart()); + InventoryUpdate iu = new InventoryUpdate(); + for (L2ItemInstance element : unequipped) + iu.addModifiedItem(element); + sendPacket(iu); + + } + + L2ItemInstance head = getInventory().getPaperdollItem(Inventory.PAPERDOLL_HEAD); + if (head != null) + { + + L2ItemInstance[] unequipped = +getInventory().unEquipItemInBodySlotAndRecord(head.getItem().getBodyPart()); + InventoryUpdate iu = new InventoryUpdate(); + for (L2ItemInstance element : unequipped) + iu.addModifiedItem(element); + sendPacket(iu); + + } + + L2ItemInstance gloves = getInventory().getPaperdollItem(Inventory.PAPERDOLL_GLOVES); + if (gloves != null) + { + + L2ItemInstance[] unequipped = +getInventory().unEquipItemInBodySlotAndRecord(gloves.getItem().getBodyPart()); + InventoryUpdate iu = new InventoryUpdate(); + for (L2ItemInstance element : unequipped) + iu.addModifiedItem(element); + sendPacket(iu); + + } + + L2ItemInstance feet = getInventory().getPaperdollItem(Inventory.PAPERDOLL_FEET); + if (feet != null) + { + + L2ItemInstance[] unequipped = +getInventory().unEquipItemInBodySlotAndRecord(feet.getItem().getBodyPart()); + InventoryUpdate iu = new InventoryUpdate(); + for (L2ItemInstance element : unequipped) + iu.addModifiedItem(element); + sendPacket(iu); + + } + + L2ItemInstance legs = getInventory().getPaperdollItem(Inventory.PAPERDOLL_LEGS); + if (legs != null) + { + + L2ItemInstance[] unequipped = +getInventory().unEquipItemInBodySlotAndRecord(legs.getItem().getBodyPart()); + InventoryUpdate iu = new InventoryUpdate(); + for (L2ItemInstance element : unequipped) + iu.addModifiedItem(element); + sendPacket(iu); + + } + + L2ItemInstance rhand = getInventory().getPaperdollItem(Inventory.PAPERDOLL_RHAND); + if (rhand != null) + { + + L2ItemInstance[] unequipped = +getInventory().unEquipItemInBodySlotAndRecord(rhand.getItem().getBodyPart()); + InventoryUpdate iu = new InventoryUpdate(); + for (L2ItemInstance element : unequipped) + iu.addModifiedItem(element); + sendPacket(iu); + + } + + L2ItemInstance lhand = getInventory().getPaperdollItem(Inventory.PAPERDOLL_LHAND); + if (lhand != null) + { + + L2ItemInstance[] unequipped = +getInventory().unEquipItemInBodySlotAndRecord(lhand.getItem().getBodyPart()); + InventoryUpdate iu = new InventoryUpdate(); + for (L2ItemInstance element : unequipped) + iu.addModifiedItem(element); + sendPacket(iu); + + } + L2ItemInstance lear = getInventory().getPaperdollItem(Inventory.PAPERDOLL_LEAR); + if (lhand != null) + { + + L2ItemInstance[] unequipped = +getInventory().unEquipItemInBodySlotAndRecord(lear.getItem().getBodyPart()); + InventoryUpdate iu = new InventoryUpdate(); + for (L2ItemInstance element : unequipped) + iu.addModifiedItem(element); + sendPacket(iu); + + } + L2ItemInstance rear = getInventory().getPaperdollItem(Inventory.PAPERDOLL_REAR); + if (lhand != null) + { + + L2ItemInstance[] unequipped = +getInventory().unEquipItemInBodySlotAndRecord(rear.getItem().getBodyPart()); + InventoryUpdate iu = new InventoryUpdate(); + for (L2ItemInstance element : unequipped) + iu.addModifiedItem(element); + sendPacket(iu); + + } + L2ItemInstance neck = getInventory().getPaperdollItem(Inventory.PAPERDOLL_NECK); + if (lhand != null) + { + + L2ItemInstance[] unequipped = +getInventory().unEquipItemInBodySlotAndRecord(neck.getItem().getBodyPart()); + InventoryUpdate iu = new InventoryUpdate(); + for (L2ItemInstance element : unequipped) + iu.addModifiedItem(element); + sendPacket(iu); + + } + L2ItemInstance lfinger = getInventory().getPaperdollItem(Inventory.PAPERDOLL_LFINGER); + if (lhand != null) + { + + L2ItemInstance[] unequipped = +getInventory().unEquipItemInBodySlotAndRecord(lfinger.getItem().getBodyPart()); + InventoryUpdate iu = new InventoryUpdate(); + for (L2ItemInstance element : unequipped) + iu.addModifiedItem(element); + sendPacket(iu); + + } + L2ItemInstance rfinger = getInventory().getPaperdollItem(Inventory.PAPERDOLL_RFINGER); + if (lhand != null) + { + + L2ItemInstance[] unequipped = +getInventory().unEquipItemInBodySlotAndRecord(rfinger.getItem().getBodyPart()); + InventoryUpdate iu = new InventoryUpdate(); + for (L2ItemInstance element : unequipped) + iu.addModifiedItem(element); + sendPacket(iu); + + } + L2ItemInstance under = getInventory().getPaperdollItem(Inventory.PAPERDOLL_UNDER); + if (lhand != null) + { + + L2ItemInstance[] unequipped = +getInventory().unEquipItemInBodySlotAndRecord(under.getItem().getBodyPart()); + InventoryUpdate iu = new InventoryUpdate(); + for (L2ItemInstance element : unequipped) + iu.addModifiedItem(element); + sendPacket(iu); + + } Rizel code is more complete at Kazeno only The weapon And Shield Remove wen the character Change subclass... ! Link to comment Share on other sites More sharing options...
Versus Posted March 24, 2009 Share Posted March 24, 2009 Title of Rizel's Share: Forbid to equip some kind of items That's what his code doing! Kazeno's is unequiping weapon before changing sub. Link to comment Share on other sites More sharing options...
Kràtos Posted March 24, 2009 Share Posted March 24, 2009 Title of Rizel's Share: Forbid to equip some kind of items That's what his code doing! Kazeno's is unequiping weapon before changing sub. Are you telling me what code of kazeno and rizel are? rofl! Inside of post of rizel if you watch the code carefully you will see from where the code start; Kazeno Code; [code]Index: /java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java =================================================================== --- /java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java (revision 1434) +++ /java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java (working copy) @@ -9680,6 +9680,90 @@ public boolean setActiveClass(int classIndex) { Rizel Code /** * Changes the character's class based on the given class index. * <BR><BR> * An index of zero specifies the character's original (base) class, * while indexes 1-3 specifies the character's sub-classes respectively. * * @param classIndex */ public boolean setActiveClass(int classIndex) { If those line are not the same maybe my eyes lie me! //end lmao! [/code] Link to comment Share on other sites More sharing options...
kissmeordie Posted March 24, 2009 Share Posted March 24, 2009 yea that he used again Link to comment Share on other sites More sharing options...
Intrepid Posted March 27, 2009 Share Posted March 27, 2009 Thats a reshare with another description...first Rizel share it as a fix for his item restriction share to dont cheat with the armors weapons Kazeno only take a part of the code and post it with another description as a "bug fix to subclass SA stuck bug" so credits to kazeno?...i dont think so...credits goes to Leeching...Fakoykas that share and rizels share is the same Kazeno take a part of rizels code and he share it nothing more Rizels share solve this SA stuck bug too so i dont see any reason why credits to Kazeno he only c/p a part from Rizels code... Link to comment Share on other sites More sharing options...
Devon Posted March 27, 2009 Share Posted March 27, 2009 Topic locked after Kazeno's request... Link to comment Share on other sites More sharing options...
Recommended Posts