Browse Source

Recall minion fix by kerberos and little code cleaning. [2759] is by kerberos too ;)

DrHouse 16 năm trước cách đây
mục cha
commit
b64dbc2167

+ 3 - 3
L2_GameServer/java/config/fortsiege.properties

@@ -214,9 +214,9 @@ WesternCommander1=113481,-16058,-712,0,36240
 WesternCommander2=109872,-16624,-968,16384,36234
 WesternCommander3=112601,-13933,-960,49152,36237
 WesternCommander4=113929,-14801,-960,32768,36242
-WesternFlag1=11280,-14820,-839,9819
-WesternFlag2=11380,-14820,-839,9819
-WesternFlag3=11480,-14820,-839,9819
+WesternFlag1=111280,-14820,-839,9819
+WesternFlag2=111380,-14820,-839,9819
+WesternFlag3=111480,-14820,-839,9819
 
 #-------------------------------------------------------------
 # Hunters Fortress

+ 38 - 1
L2_GameServer/java/net/sf/l2j/gameserver/handler/admincommandhandlers/AdminTeleport.java

@@ -24,12 +24,16 @@ import net.sf.l2j.gameserver.ai.CtrlIntention;
 import net.sf.l2j.gameserver.datatables.NpcTable;
 import net.sf.l2j.gameserver.datatables.SpawnTable;
 import net.sf.l2j.gameserver.handler.IAdminCommandHandler;
+import net.sf.l2j.gameserver.instancemanager.RaidBossSpawnManager;
 import net.sf.l2j.gameserver.model.L2CharPosition;
 import net.sf.l2j.gameserver.model.L2Object;
 import net.sf.l2j.gameserver.model.L2Spawn;
 import net.sf.l2j.gameserver.model.L2World;
+import net.sf.l2j.gameserver.model.actor.instance.L2GrandBossInstance;
+import net.sf.l2j.gameserver.model.actor.instance.L2MinionInstance;
 import net.sf.l2j.gameserver.model.actor.instance.L2NpcInstance;
 import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
+import net.sf.l2j.gameserver.model.actor.instance.L2RaidBossInstance;
 import net.sf.l2j.gameserver.network.SystemMessageId;
 import net.sf.l2j.gameserver.network.serverpackets.NpcHtmlMessage;
 import net.sf.l2j.gameserver.network.serverpackets.SystemMessage;
@@ -407,7 +411,7 @@ public class AdminTeleport implements IAdminCommandHandler
 	private void recallNPC(L2PcInstance activeChar)
 	{
 		L2Object obj = activeChar.getTarget();
-		if (obj instanceof L2NpcInstance)
+		if (obj instanceof L2NpcInstance && !(obj instanceof L2MinionInstance) && !(obj instanceof L2RaidBossInstance) && !(obj instanceof L2GrandBossInstance))
 		{
 			L2NpcInstance target = (L2NpcInstance) obj;
 			
@@ -465,6 +469,39 @@ public class AdminTeleport implements IAdminCommandHandler
 			}
 			
 		}
+		else if (obj instanceof L2RaidBossInstance)
+		{
+			L2RaidBossInstance target = (L2RaidBossInstance) obj;
+			L2Spawn spawn = target.getSpawn();
+			double curHP = target.getCurrentHp();
+			double curMP = target.getCurrentMp();
+			if (spawn == null)
+			{
+				activeChar.sendMessage("Incorrect raid spawn.");
+				_log.warning("ERROR: NPC Id" + target.getNpcId() + " has a 'null' spawn.");
+				return;
+			}
+			RaidBossSpawnManager.getInstance().deleteSpawn(spawn, true);
+			try
+			{
+				L2NpcTemplate template = NpcTable.getInstance().getTemplate(target.getNpcId());
+				L2Spawn spawnDat = new L2Spawn(template);
+				
+				spawnDat.setLocx(activeChar.getX());
+				spawnDat.setLocy(activeChar.getY());
+				spawnDat.setLocz(activeChar.getZ());
+				spawnDat.setAmount(1);
+				spawnDat.setHeading(activeChar.getHeading());
+				spawnDat.setRespawnMinDelay(43200);
+				spawnDat.setRespawnMaxDelay(129600);
+				
+				RaidBossSpawnManager.getInstance().addNewSpawn(spawnDat, 0, curHP, curMP, true);
+			}
+			catch (Exception e)
+			{
+				activeChar.sendPacket(new SystemMessage(SystemMessageId.TARGET_CANT_FOUND));
+			}
+		}
 		else
 		{
 			activeChar.sendPacket(new SystemMessage(SystemMessageId.INCORRECT_TARGET));

+ 3 - 1
L2_GameServer/java/net/sf/l2j/gameserver/instancemanager/AuctionManager.java

@@ -142,9 +142,11 @@ public class AuctionManager
 		java.sql.Connection con = null;
 		int i = 0;
 		for (i = 0; i < ItemInitDataId.length; i++)
+		{
 			if (ItemInitDataId[i] == id)
 				break;
-		if (i >= ItemInitDataId.length)
+		}
+		if (i >= ItemInitDataId.length || i != id)
 		{
 			_log.warning("Clan Hall auction not found for Id :" + id);
 			return;

+ 2 - 0
L2_GameServer/java/net/sf/l2j/gameserver/instancemanager/ClanHallManager.java

@@ -236,8 +236,10 @@ public class ClanHallManager
     public final ClanHall getClanHallByOwner(L2Clan clan)
     {
     	for (Map.Entry<Integer, ClanHall> ch : _clanHall.entrySet())
+    	{
     		if (clan.getClanId() == ch.getValue().getOwnerId())
     			return ch.getValue();
+    	}
         return null;
     }
 }

+ 8 - 0
L2_GameServer/java/net/sf/l2j/gameserver/model/entity/ClanHall.java

@@ -427,10 +427,12 @@ public class ClanHall
 	public void openCloseDoor(L2DoorInstance door, boolean open)
 	{
 		if (door != null)
+		{
 			if (open)
 				door.openMe();
 			else
 				door.closeMe();
+		}
 	}
 	
 	public void openCloseDoors(L2PcInstance activeChar, boolean open)
@@ -444,10 +446,12 @@ public class ClanHall
 		for (L2DoorInstance door : getDoors())
 		{
 			if (door != null)
+			{
 				if (open)
 					door.openMe();
 				else
 					door.closeMe();
+			}
 		}
 	}
 	
@@ -529,8 +533,10 @@ public class ClanHall
 		if (Config.DEBUG)
 			_log.warning("Called ClanHall.updateFunctions(int type, int lvl, int lease, long rate, boolean addNew) Owner : " + getOwnerId());
 		if (lease > 0)
+		{
 			if (!player.destroyItemByItemId("Consume", 57, lease, null, true))
 				return false;
+		}
 		if (addNew)
 			_functions.put(type, new ClanHallFunction(type, lvl, lease, 0, rate, 0, false));
 		else
@@ -626,8 +632,10 @@ public class ClanHall
 				if (ClanTable.getInstance().getClan(getOwnerId()).getWarehouse().getAdena() >= getLease())
 				{
 					if (_paidUntil != 0)
+					{
 						while (_paidUntil < System.currentTimeMillis())
 							_paidUntil += _chRate;
+					}
 					else
 						_paidUntil = System.currentTimeMillis() + _chRate;
 					ClanTable.getInstance().getClan(getOwnerId()).getWarehouse().destroyItemByItemId("CH_rental_fee", 57, getLease(), null, null);