Noticias:

Debes de estar registrado para poder ver el contenido indicado. Registrate o Conectate

Menú Principal

Olimpiadas con grado A o inferior

Iniciado por Swarlog, Sep 01, 2022, 12:44 AM

Tema anterior - Siguiente tema

Swarlog

Index: I:/workspace/L2_GameServer/java/com/l2jstep/gameserver/network/clientpackets/UseItem.java
===================================================================
--- I:/workspace/L2_GameServer/java/com/l2jstep/gameserver/network/clientpackets/UseItem.java   (revision 4167)
+++ I:/workspace/L2_GameServer/java/com/l2jstep/gameserver/network/clientpackets/UseItem.java   (working copy)
@@ -97,6 +97,14 @@

   if (activeChar.getActiveTradeList() != null)
  activeChar.cancelActiveTrade();
+
+   int weaponGrade = activeChar.getActiveWeaponItem().getCrystalType();
+   int armorGrade = activeChar.getActiveChestArmorItem().getCrystalType();
+   if (activeChar.isInOlympiadMode() && (weaponGrade == L2Item.CRYSTAL_S || armorGrade == L2Item.CRYSTAL_S))
+   {
+ activeChar.sendMessage("You cannot use S grade equipment at the Grand Olympiad games.");
+ return;
+   }

   // NOTE: disabled due to deadlocks
   // synchronized (activeChar.getInventory())
Index: I:/workspace/L2_GameServer/java/com/l2jstep/gameserver/model/olympiad/Olympiad.java
===================================================================
--- I:/workspace/L2_GameServer/java/com/l2jstep/gameserver/model/olympiad/Olympiad.java   (revision 4167)
+++ I:/workspace/L2_GameServer/java/com/l2jstep/gameserver/model/olympiad/Olympiad.java   (working copy)
@@ -50,6 +50,7 @@
import com.l2jserver.gameserver.network.serverpackets.NpcHtmlMessage;
import com.l2jserver.gameserver.network.serverpackets.SystemMessage;
import com.l2jserver.gameserver.templates.StatsSet;
+import com.l2jserver.gameserver.templates.L2Item;
import com.l2jserver.util.L2FastList;

import javolution.util.FastMap;
@@ -482,6 +483,14 @@
    * return false; }
    */

+   int weaponGrade = noble.getActiveWeaponItem().getCrystalType();
+   int armorGrade = noble.getActiveChestArmorItem().getCrystalType();
+   if (weaponGrade == L2Item.CRYSTAL_S || armorGrade == L2Item.CRYSTAL_S)
+   {
+ noble.sendMessage("You cannot join the grand olympiad games using S grade equipment.");
+ return false;
+   }
+
   if (!_inCompPeriod)
   {
  sm = new SystemMessage(SystemMessageId.THE_OLYMPIAD_GAME_IS_NOT_CURRENTLY_IN_PROGRESS);
     

By @ThelwHelpRePaidia

Index: java/net/sf/l2j/gameserver/model/item/kind/Item.java
===================================================================
--- java/net/sf/l2j/gameserver/model/item/kind/Item.java (revision 2)
+++ java/net/sf/l2j/gameserver/model/item/kind/Item.java (working copy)
@@ -477,7 +477,7 @@
  public boolean checkCondition(L2Character activeChar, L2Object target, boolean sendMessage)
  {
  // Don't allow hero equipment and restricted items during Olympiad
- if ((isOlyRestrictedItem() || isHeroItem()) && ((activeChar instanceof L2PcInstance) && activeChar.getActingPlayer().isInOlympiadMode()))
+ if ((isOlyRestrictedItem() || isOlyRestrictedItemByGrade() || isHeroItem()) && ((activeChar instanceof L2PcInstance) && activeChar.getActingPlayer().isInOlympiadMode()))
  {
  if (isEquipable())
  activeChar.getActingPlayer().sendPacket(SystemMessageId.THIS_ITEM_CANT_BE_EQUIPPED_FOR_THE_OLYMPIAD_EVENT);
@@ -550,6 +550,11 @@
  return _isOlyRestricted;
  }
 
+ public boolean isOlyRestrictedItemByGrade()
+ {
+ return (getCrystalType() == CrystalType.S);
+ }
+
  public boolean isPetItem()
  {
  return (getItemType() == ArmorType.PET || getItemType() == WeaponType.PET);

Up by @Trance