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

    • Tell a Škoda 1.4 driver that a Škoda 1.8 is faster — and suddenly, you’re riding a mini race car. On the way, they might share random stories — gas prices, the perfect BBQ recipe, or how passengers once called them “just for a minute.” Maybe even how someone left a suitcase full of money in their car once.     The important part? You’ll get there on time, no delays.     Vibe SMS works just as fast — messages fly like that driver who just heard their 1.8 isn’t the fastest.     🌐 https://vibe-sms.net/ 📲 https://t.me/vibe_sms  
    • ⚔️ The Grand Opening Has Arrived! ⚔️ In just a few hours the gate to the eternal battlefield will be open and the war between Order and Chaos will be set once again ! Its time to claim your destiny 🔥 👉 Register now and join the fight today! 🌐 https://l2ovc.com register now : https://l2ovc.com The gates are open the war between Order and Chaos has officially started! 🔥 Join the battlefield NOW and claim your destiny in Order vs Chaos! 💥 Don’t fall behind your faction needs you. ➡️ https://l2ovc.com  
    • Don’t miss the new Telegram gifts with our Telegram Stars purchasing bot! A great opportunity to invest in a stable digital asset at an early stage while the market is still forming. Buy other existing gifts in the official store using Telegram Stars, pay for subscriptions, donate to games and projects, pay for Premium subscriptions, and react to messages in channels! Low prices, multiple payment options, and other cool unique features! ⚡ Try it today — SOCNET STARS BOT ⚡ Active links to SOCNET stores: Digital Goods Store (Website): Go Store Telegram Bot: Go – convenient access to the store via Telegram messenger. ⭐ Telegram Stars Purchase Bot: Go – fast and profitable way to buy stars in Telegram. SMM Panel: Go – promote your social media accounts. We present to you the current list of promotions and special offers for purchasing our products and services: 1️⃣ Promo code OCTOBER2025 (8% discount) for purchases in our store (Website, bot) in October! You can also use the promo code SOCNET (15% discount) for your first purchase. 2️⃣ Get $1 on your store balance or a 10–20% discount — just write your username after registration on our website using the template: "SEND ME BONUS, MY USERNAME IS..." — post it in our forum thread! 3️⃣ Get $1 for your first SMM Panel trial — simply open a ticket titled “Get Trial Bonus” on our website (Support). 4️⃣ Weekly ⭐ Telegram Stars giveaways in our Telegram channel and in our Telegram Stars bot! News: ➡ Telegram Channel: https://t.me/accsforyou_shop ➡ WhatsApp Channel: https://chat.whatsapp.com/K8rBy500nA73z27PxgaJUw?mode=ems_copy_t ➡ Discord Server: https://discord.gg/y9AStFFsrh Contacts and Support: ➡ Telegram: https://t.me/socnet_support ➡ WhatsApp: https://wa.me/79051904467 ➡ Discord: socnet_support ➡ ✉ Email: solomonbog@socnet.store
    • Don’t miss the new Telegram gifts with our Telegram Stars purchasing bot! A great opportunity to invest in a stable digital asset at an early stage while the market is still forming. Buy other existing gifts in the official store using Telegram Stars, pay for subscriptions, donate to games and projects, pay for Premium subscriptions, and react to messages in channels! Low prices, multiple payment options, and other cool unique features! ⚡ Try it today — SOCNET STARS BOT ⚡ Active links to SOCNET stores: Digital Goods Store (Website): Go Store Telegram Bot: Go – convenient access to the store via Telegram messenger. ⭐ Telegram Stars Purchase Bot: Go – fast and profitable way to buy stars in Telegram. SMM Panel: Go – promote your social media accounts. We present to you the current list of promotions and special offers for purchasing our products and services: 1️⃣ Promo code OCTOBER2025 (8% discount) for purchases in our store (Website, bot) in October! You can also use the promo code SOCNET (15% discount) for your first purchase. 2️⃣ Get $1 on your store balance or a 10–20% discount — just write your username after registration on our website using the template: "SEND ME BONUS, MY USERNAME IS..." — post it in our forum thread! 3️⃣ Get $1 for your first SMM Panel trial — simply open a ticket titled “Get Trial Bonus” on our website (Support). 4️⃣ Weekly ⭐ Telegram Stars giveaways in our Telegram channel and in our Telegram Stars bot! News: ➡ Telegram Channel: https://t.me/accsforyou_shop ➡ WhatsApp Channel: https://chat.whatsapp.com/K8rBy500nA73z27PxgaJUw?mode=ems_copy_t ➡ Discord Server: https://discord.gg/y9AStFFsrh Contacts and Support: ➡ Telegram: https://t.me/socnet_support ➡ WhatsApp: https://wa.me/79051904467 ➡ Discord: socnet_support ➡ ✉ Email: solomonbog@socnet.store
  • 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