L2JMobius

High Five flag remains after tw ends

kinghanker · 3 · 4028

Offline kinghanker

  • Knight
  • ***
    • Posts: 64
after the end of the territory war, the ward remained in the player's hand. Even after re-login the ward remained



Online Mobius

  • Distinguished King
  • *****
    • Posts: 16010
Check player deleteMe
Code: [Select]
// remove combat flag
try
{
if (_inventory.getItemByItemId(9819) != null)
{
final Fort fort = FortManager.getInstance().getFort(this);
if (fort != null)
{
FortSiegeManager.getInstance().dropCombatFlag(this, fort.getResidenceId());
}
else
{
final int slot = _inventory.getSlotFromItem(_inventory.getItemByItemId(9819));
_inventory.unEquipItemInBodySlot(slot);
destroyItem("CombatFlag", _inventory.getItemByItemId(9819), null, true);
}
}
else if (_combatFlagEquippedId)
{
TerritoryWarManager.getInstance().dropCombatFlag(this, false, false);
}
}
catch (Exception e)
{
LOGGER.log(Level.SEVERE, "deleteMe()", e);
}


Offline kinghanker

  • Knight
  • ***
    • Posts: 64
the code is the same!


I added an option to restrict the output of players with the ward of the siege area if they couldn't be attacked in a peaceful area, will that be a problem? this was the only change i made regarding sieges, but i don't see how it could have caused this bug

Code: [Select]
--- a/java/org/l2jmobius/gameserver/model/zone/type/SiegeZone.java
+++ b/java/org/l2jmobius/gameserver/model/zone/type/SiegeZone.java
@@ -23,6 +23,7 @@ import org.l2jmobius.gameserver.enums.TeleportWhereType;
 import org.l2jmobius.gameserver.instancemanager.CHSiegeManager;
 import org.l2jmobius.gameserver.instancemanager.FortManager;
 import org.l2jmobius.gameserver.instancemanager.FortSiegeManager;
+import org.l2jmobius.gameserver.instancemanager.TerritoryWarManager;
 import org.l2jmobius.gameserver.instancemanager.ZoneManager;
 import org.l2jmobius.gameserver.model.actor.Creature;
 import org.l2jmobius.gameserver.model.actor.Player;
@@ -245,6 +246,12 @@ public class SiegeZone extends ZoneType
  player.destroyItem("CombatFlag", player.getInventory().getItemByItemId(9819), null, true);
  }
 
+ // Se sair da zona de siege, ward volta pro castelo
+ if (!TerritoryWarManager.PLAYER_WITH_WARD_CAN_BE_KILLED_IN_PEACEZONE && player.isCombatFlagEquipped() && TerritoryWarManager.getInstance().isTWInProgress())
+ {
+ TerritoryWarManager.getInstance().dropCombatFlag(player, false, true);
+ }
+
  final Summon summon = player.getSummon();
  if (summon != null)
  {