Jump to content

[Share] Forbid people from equipping a specific grade of item at Olympiad.


Recommended Posts

I saw a request here and i thought of doing this simple code.

The code is gonna check just for Weapon & Chest. You can do the rest if you wish, same way, i was just too lazy to do them.

 

v1 => http://pastebin.com/QSN88Y6N

 

v2

Index: D:/workspace/L2_GameServer/java/com/l2jserver/gameserver/network/clientpackets/UseItem.java
===================================================================
--- D:/workspace/L2_GameServer/java/com/l2jserver/gameserver/network/clientpackets/UseItem.java	(revision 4391)
+++ D:/workspace/L2_GameServer/java/com/l2jserver/gameserver/network/clientpackets/UseItem.java	(working copy)
@@ -239,7 +239,8 @@
				}

                // Don't allow hero equipment and restricted items during Olympiad
-                if (activeChar.isInOlympiadMode() && (item.isHeroItem() || item.isOlyRestrictedItem()))
+                if (activeChar.isInOlympiadMode() && (item.isHeroItem() || item.isOlyRestrictedItem() ||
+                		activeChar.getActiveWeaponItem().getCrystalType() == L2Item.CRYSTAL_S))
                {
                    activeChar.sendPacket(new SystemMessage(SystemMessageId.THIS_ITEM_CANT_BE_EQUIPPED_FOR_THE_OLYMPIAD_EVENT));
                    return;
Index: D:/workspace/L2_GameServer/java/com/l2jserver/gameserver/model/olympiad/OlympiadGame.java
===================================================================
--- D:/workspace/L2_GameServer/java/com/l2jserver/gameserver/model/olympiad/OlympiadGame.java	(revision 4391)
+++ D:/workspace/L2_GameServer/java/com/l2jserver/gameserver/model/olympiad/OlympiadGame.java	(working copy)
@@ -48,6 +48,7 @@
import com.l2jserver.gameserver.network.serverpackets.SystemMessage;
import com.l2jserver.gameserver.templates.StatsSet;
import com.l2jserver.gameserver.templates.chars.L2NpcTemplate;
+import com.l2jserver.gameserver.templates.item.L2Item;
import com.l2jserver.util.L2FastList;


@@ -269,6 +270,38 @@
				}

				player.checkItemRestriction();
+				
+				int weaponGrade = player.getActiveWeaponItem().getCrystalType();
+				if (weaponGrade == L2Item.CRYSTAL_S)
+				{
+		        	L2ItemInstance[] unequipped = player.getInventory().unEquipItemInBodySlotAndRecord(weaponGrade);
+		            InventoryUpdate iu = new InventoryUpdate();
+		            for (L2ItemInstance element : unequipped)
+						iu.addModifiedItem(element);
+		            player.sendPacket(iu);
+		            player.abortAttack();
+		            player.broadcastUserInfo();
+		            
+		            // this can be 0 if the user pressed the right mousebutton twice very fast
+		            if (unequipped.length > 0)
+		            {
+		                if (unequipped[0].isWear())
+		                    return;
+		                SystemMessage sm = null;
+		                if (unequipped[0].getEnchantLevel() > 0)
+		                {
+		                    sm = new SystemMessage(SystemMessageId.EQUIPMENT_S1_S2_REMOVED);
+		                    sm.addNumber(unequipped[0].getEnchantLevel());
+		                    sm.addItemName(unequipped[0]);
+		                }
+		                else
+		                {
+		                    sm = new SystemMessage(SystemMessageId.S1_DISARMED);
+		                    sm.addItemName(unequipped[0]);
+		                }
+		                player.sendPacket(sm);
+		            }
+		        }

				// Remove shot automation
				player.disableAutoShotsAll();

 

Good luck.

Link to comment
Share on other sites

If You put these strings in UseItem You can not wear items even You are not in olympiad. This was first thing, second is a question. Karma for strings ?

 

Edit: ah my wrong, activeChar.isInOlympiadMode()

Link to comment
Share on other sites

If You put these strings in UseItem You can not wear items even You are not in olympiad. This was first thing, second is a question. Karma for strings ?

 

Edit: ah my wrong, activeChar.isInOlympiadMode()

Huh, you think i would be that dumb?

 

I've just noticed something :P.You have added only restrictions for s grade and not for s80-s84

Isnt it for epilogue?

import com.l2jserver

Well yeah.. just replace the CRYSTAL_S with CRYSTAL_S80 or CRYSTAL_S84. The title says a specific grade, you can change it if you wish.

 

Yet again, thank you for good words :)

Link to comment
Share on other sites

I've just noticed something :P.You have added only restrictions for s grade and not for s80-s84

Isnt it for epilogue?

import com.l2jserver

 

CHRONICLE DOESN'T MATTER. Just change import and done, wow.

Link to comment
Share on other sites

CHRONICLE DOESN'T MATTER. Just change import and done, wow.

yes but for newbies is not so helpful :)

Huh, you think i would be that dumb?

Well yeah.. just replace the CRYSTAL_S with CRYSTAL_S80 or CRYSTAL_S84. The title says a specific grade, you can change it if you wish.

 

Yet again, thank you for good words :)

Yes you're right

GJ :).

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