L2JMobius
Public Development => Solved/Invalid Bug Reports => Topic started by: kinghanker on April 24, 2022, 05:41:34 AM
-
after the end of the territory war, the ward remained in the player's hand. Even after re-login the ward remained
(https://i.imgur.com/aUQ8f3p.jpg)
-
Check player deleteMe
// 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);
}
-
the code is the same!
(https://i.imgur.com/cCuH3TP.png)
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
--- 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)
{