Przeglądaj źródła

BETA: Misc Fixes:
* Fixing lethal bug in L2GrandBossInstance.
* Reported by: St3eT
* Patch by: St3eT
* Fixing bug in Anti Feed Feature.
* Reported by: Lupu1, vampir
* Patch by: vampir
* L2DoorInstance:
* Fixing typo in broadcastInfo (If there's a GM in knownlist of the door other players may see the door targetable)
* Fixing reduceCurrentHp (Wall restriction will not work for instances)
* OnEventTrigger:
* Capitalization of static variable.
* PcStat:
* More from [5681]

Rumen Nikiforov 12 lat temu
rodzic
commit
87bd00500b

+ 4 - 1
L2J_Server_BETA/java/com/l2jserver/gameserver/instancemanager/AntiFeedManager.java

@@ -75,7 +75,10 @@ public class AntiFeedManager
 		
 		if ((Config.L2JMOD_ANTIFEED_INTERVAL > 0) && _lastDeathTimes.containsKey(targetPlayer.getObjectId()))
 		{
-			return (System.currentTimeMillis() - _lastDeathTimes.get(targetPlayer.getObjectId())) > Config.L2JMOD_ANTIFEED_INTERVAL;
+			if ((System.currentTimeMillis() - _lastDeathTimes.get(targetPlayer.getObjectId())) < Config.L2JMOD_ANTIFEED_INTERVAL)
+			{
+				return false;
+			}
 		}
 		
 		if (Config.L2JMOD_ANTIFEED_DUALBOX && (attacker != null))

+ 12 - 15
L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/instance/L2DoorInstance.java

@@ -338,6 +338,7 @@ public class L2DoorInstance extends L2Character
 		return dmg;
 	}
 	
+	// TODO: Replace index with the castle id itself.
 	public final Castle getCastle()
 	{
 		if (_castleIndex < 0)
@@ -351,6 +352,7 @@ public class L2DoorInstance extends L2Character
 		return CastleManager.getInstance().getCastles().get(_castleIndex);
 	}
 	
+	// TODO: Replace index with the fort id itself.
 	public final Fort getFort()
 	{
 		if (_fortIndex < 0)
@@ -413,11 +415,12 @@ public class L2DoorInstance extends L2Character
 		
 		if (getClanHall() != null)
 		{
-			if (!getClanHall().isSiegableHall())
+			SiegableHall hall = (SiegableHall) getClanHall();
+			if (!hall.isSiegableHall())
 			{
 				return false;
 			}
-			return ((SiegableHall) getClanHall()).isInSiege() && ((SiegableHall) getClanHall()).getSiege().doorIsAutoAttackable() && ((SiegableHall) getClanHall()).getSiege().checkIsAttacker(actingPlayer.getClan());
+			return hall.isInSiege() && hall.getSiege().doorIsAutoAttackable() && hall.getSiege().checkIsAttacker(actingPlayer.getClan());
 		}
 		// Attackable only during siege by everyone (not owner)
 		boolean isCastle = ((getCastle() != null) && (getCastle().getCastleId() > 0) && getCastle().getZone().isActive());
@@ -426,11 +429,7 @@ public class L2DoorInstance extends L2Character
 		
 		if (TerritoryWarManager.getInstance().isTWInProgress())
 		{
-			if (TerritoryWarManager.getInstance().isAllyField(actingPlayer, activeSiegeId))
-			{
-				return false;
-			}
-			return true;
+			return !TerritoryWarManager.getInstance().isAllyField(actingPlayer, activeSiegeId);
 		}
 		else if (isFort)
 		{
@@ -498,6 +497,7 @@ public class L2DoorInstance extends L2Character
 		}
 		
 		StaticObject su = new StaticObject(this, false);
+		StaticObject targetableSu = new StaticObject(this, true);
 		DoorStatusUpdate dsu = new DoorStatusUpdate(this);
 		OnEventTrigger oe = null;
 		if (getEmitter() > 0)
@@ -512,17 +512,15 @@ public class L2DoorInstance extends L2Character
 				continue;
 			}
 			
-			if (player.isGM())
+			if (player.isGM() || (((getCastle() != null) && (getCastle().getCastleId() > 0)) || ((getFort() != null) && (getFort().getFortId() > 0))))
 			{
-				su = new StaticObject(this, true);
+				player.sendPacket(targetableSu);
 			}
-			
-			if (((getCastle() != null) && (getCastle().getCastleId() > 0)) || ((getFort() != null) && (getFort().getFortId() > 0)))
+			else
 			{
-				su = new StaticObject(this, true);
+				player.sendPacket(su);
 			}
 			
-			player.sendPacket(su);
 			player.sendPacket(dsu);
 			if (oe != null)
 			{
@@ -687,7 +685,7 @@ public class L2DoorInstance extends L2Character
 	@Override
 	public void reduceCurrentHp(double damage, L2Character attacker, boolean awake, boolean isDOT, L2Skill skill)
 	{
-		if (isWall() && !(attacker instanceof L2SiegeSummonInstance))
+		if (isWall() && !(attacker instanceof L2SiegeSummonInstance) && (getInstanceId() == 0))
 		{
 			return;
 		}
@@ -811,7 +809,6 @@ public class L2DoorInstance extends L2Character
 				openMe();
 			}
 			
-			// _log.info("Door "+L2DoorInstance.this+ " switched state "+open);
 			int delay = open ? getTemplate().getCloseTime() : getTemplate().getOpenTime();
 			if (getTemplate().getRandomTime() > 0)
 			{

+ 1 - 0
L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/instance/L2GrandBossInstance.java

@@ -42,6 +42,7 @@ public final class L2GrandBossInstance extends L2MonsterInstance
 		super(objectId, template);
 		setInstanceType(InstanceType.L2GrandBossInstance);
 		setIsRaid(true);
+		setLethalable(false);
 	}
 	
 	@Override

+ 1 - 1
L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/stat/PcStat.java

@@ -817,7 +817,7 @@ public class PcStat extends PlayableStat
 		{
 			bonus += (hunting - 1);
 		}
-		if (bonusSp > 1.0)
+		if (bonusSp > 1)
 		{
 			bonus += (bonusSp - 1);
 		}

+ 2 - 2
L2J_Server_BETA/java/com/l2jserver/gameserver/network/serverpackets/OnEventTrigger.java

@@ -25,7 +25,7 @@ public class OnEventTrigger extends L2GameServerPacket
 	private final int _emitterId;
 	private final boolean _opened;
 	
-	private static final int[] _reverse_doors =
+	private static final int[] REVERSE_DOORS =
 	{
 		16200023,
 		16200024,
@@ -36,7 +36,7 @@ public class OnEventTrigger extends L2GameServerPacket
 	{
 		_emitterId = door.getEmitter();
 		// XXX: Check this out!
-		if (Util.contains(_reverse_doors, door.getDoorId()))
+		if (Util.contains(REVERSE_DOORS, door.getDoorId()))
 		{
 			_opened = !opened;
 		}