Jump to content

Recommended Posts

Posted

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

Posted

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.

 

Posted

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;

 

:)

  • 1 month later...
Posted

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... !

Posted

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.

 

Posted

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]

Posted

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...

Guest
This topic is now closed to further replies.


  • Posts

    • 📜 • Mass PVP – Craft – Progressive Server (ITEMS, ARMOR, WEAPONS, ETC) 🕹️ • Chronicles: Lineage 2 - Interlude (C6) 🛠️ • Retail status 🕒 • Server Time: GMT -3 🏙️ • Main Town: Giran ✨ • Teleportation for all Towns, Gk Global 🛡️ • NPC BUFFER - GMSHOP B-GRADE - DONATION SHOP - AUCTION MANAGER 🐉 • Epic Bosses: Chaotic Zones 🔁 • Protection respawn: 15 seconds ⏰ • Restart Server: 05:00 AM Today 💸 • RTM allowed between players (ask Staff if in doubt) 📊 SERVER RATES: • EXP: x8 • SP: x10 • Adena: x3 • Seal Stone: x3 • Drop: x3 • Spoil: x5 • Raid EXP/SP/Drop: x3 • Premium Rates: x2 🌐 Website: https://www.l2roosters.com 💬 Discord: https://discord.gg/cUyYXrfy 🔥 Join us now and forge your legacy at Roosters Gaming!
    • Hello, lovely people, how are you? I just finished compiling the L2jFrozen project Rev: 1132 (very old). I don't mind it being too old, since the project is for me and my children. (LAN/Offline) it's not meant to be put online. I want to learn and give my children more comfort when playing. And for my part, I also experiment with the game. My problem is that I don't know much about the subject. I was able to make some basic configurations to my liking and that of my children, but it never compiles or anything like that... I would really need help from you, the community... I simply want to remove all subclass restrictions, remove the restriction on "Overlord, Warsmith, and Dark Elf subclasses with White Elves and vice versa." Thank you very much in advance! Greetings, community.
    • Warriors, prepare for a new era! We are pleased to announce that on July 12, with the morning restart, Airin will be updated to Chronicle 4: Scions of Destiny. - Open Beta Testing (OBT) will begin on July 9. Everyone will be able to test the update in advance, including class mechanics, quests, and new content. - The Clan Hall Auction will take place on July 13. We’ve also prepared a traditional bonus start - details will be shared in the coming days. The full list of changes is available in the official patch notes. Thank you for your support and participation in the project. See you in Chronicle 4! The game client download will be available soon.
    • We are taking new orders. Kindly DM us on Telegram!
  • Topics

×
×
  • Create New...

AdBlock Extension Detected!

Our website is made possible by displaying online advertisements to our members.

Please disable AdBlock browser extension first, to be able to use our community.

I've Disabled AdBlock