2
0
Эх сурвалжийг харах

support for item id in teleport table, DP UPDATE REQUIRED!

janiii 15 жил өмнө
parent
commit
8445976a51

+ 3 - 0
L2_GameServer/java/com/l2jserver/gameserver/datatables/TeleportLocationTable.java

@@ -69,6 +69,7 @@ public class TeleportLocationTable
 				teleport.setLocZ(rset.getInt("loc_z"));
 				teleport.setLocZ(rset.getInt("loc_z"));
 				teleport.setPrice(rset.getInt("price"));
 				teleport.setPrice(rset.getInt("price"));
 				teleport.setIsForNoble(rset.getInt("fornoble") == 1);
 				teleport.setIsForNoble(rset.getInt("fornoble") == 1);
+				teleport.setItemId(rset.getInt("itemId"));
 				
 				
 				_teleports.put(teleport.getTeleId(), teleport);
 				_teleports.put(teleport.getTeleId(), teleport);
 			}
 			}
@@ -105,6 +106,8 @@ public class TeleportLocationTable
 					teleport.setLocZ(rset.getInt("loc_z"));
 					teleport.setLocZ(rset.getInt("loc_z"));
 					teleport.setPrice(rset.getInt("price"));
 					teleport.setPrice(rset.getInt("price"));
 					teleport.setIsForNoble(rset.getInt("fornoble") == 1);
 					teleport.setIsForNoble(rset.getInt("fornoble") == 1);
+					teleport.setItemId(rset.getInt("itemId"));
+					
 					_teleports.put(teleport.getTeleId(), teleport);
 					_teleports.put(teleport.getTeleId(), teleport);
 				}
 				}
 				rset.close();
 				rset.close();

+ 16 - 0
L2_GameServer/java/com/l2jserver/gameserver/model/L2TeleportLocation.java

@@ -27,6 +27,7 @@ public class L2TeleportLocation
 	private int _locZ;
 	private int _locZ;
 	private int _price;
 	private int _price;
 	private boolean _forNoble;
 	private boolean _forNoble;
+	private int _itemId;
 
 
 
 
 	/**
 	/**
@@ -77,6 +78,13 @@ public class L2TeleportLocation
 		_forNoble = val;
 		_forNoble = val;
 	}
 	}
 
 
+	/**
+	 * @param val
+	 */
+	public void setItemId(int val)
+	{
+		_itemId = val;
+	}
 
 
 	/**
 	/**
 	 * @return
 	 * @return
@@ -125,4 +133,12 @@ public class L2TeleportLocation
 	{
 	{
 		return _forNoble;
 		return _forNoble;
 	}
 	}
+
+	/**
+	 * @return
+	 */
+	public int getItemId()
+	{
+		return _itemId;
+	}
 }
 }

+ 1 - 1
L2_GameServer/java/com/l2jserver/gameserver/model/actor/instance/L2CastleChamberlainInstance.java

@@ -1480,7 +1480,7 @@ public class L2CastleChamberlainInstance extends L2MerchantInstance
 		L2TeleportLocation list = TeleportLocationTable.getInstance().getTemplate(val);
 		L2TeleportLocation list = TeleportLocationTable.getInstance().getTemplate(val);
 		if (list != null)
 		if (list != null)
 		{
 		{
-			if (player.reduceAdena("Teleport", list.getPrice(), this, true))
+			if (player.destroyItemByItemId("Teleport", list.getItemId(), list.getPrice(), this, true))
 			{
 			{
 				if (Config.DEBUG)
 				if (Config.DEBUG)
 					_log.warning("Teleporting player " + player.getName()
 					_log.warning("Teleporting player " + player.getName()

+ 1 - 1
L2_GameServer/java/com/l2jserver/gameserver/model/actor/instance/L2ClanHallManagerInstance.java

@@ -1395,7 +1395,7 @@ public class L2ClanHallManagerInstance extends L2MerchantInstance
         		player.sendMessage("You can't teleport with a Combat Flag or Territory Ward!");
         		player.sendMessage("You can't teleport with a Combat Flag or Territory Ward!");
         		return;
         		return;
         	}
         	}
-        	else if(player.reduceAdena("Teleport", list.getPrice(), this, true))
+        	else if (player.destroyItemByItemId("Teleport", list.getItemId(), list.getPrice(), this, true))
             {
             {
                 if (Config.DEBUG)
                 if (Config.DEBUG)
                  _log.warning("Teleporting player "+player.getName()+" for CH to new location: "+list.getLocX()+":"+list.getLocY()+":"+list.getLocZ());
                  _log.warning("Teleporting player "+player.getName()+" for CH to new location: "+list.getLocX()+":"+list.getLocY()+":"+list.getLocZ());

+ 2 - 4
L2_GameServer/java/com/l2jserver/gameserver/model/actor/instance/L2FortManagerInstance.java

@@ -954,12 +954,10 @@ public class L2FortManagerInstance extends L2MerchantInstance
 		L2TeleportLocation list = TeleportLocationTable.getInstance().getTemplate(val);
 		L2TeleportLocation list = TeleportLocationTable.getInstance().getTemplate(val);
 		if (list != null)
 		if (list != null)
 		{
 		{
-			if (player.reduceAdena("Teleport", list.getPrice(), this, true))
+			if (player.destroyItemByItemId("Teleport", list.getItemId(), list.getPrice(), this, true))
 			{
 			{
 				if (Config.DEBUG)
 				if (Config.DEBUG)
-					_log.warning("Teleporting player " + player.getName()
-							+ " for Fortress to new location: " + list.getLocX()
-							+ ":" + list.getLocY() + ":" + list.getLocZ());
+					_log.warning("Teleporting player " + player.getName() + " for Fortress to new location: " + list.getLocX() + ":" + list.getLocY() + ":" + list.getLocZ());
 				player.teleToLocation(list.getLocX(), list.getLocY(), list.getLocZ());
 				player.teleToLocation(list.getLocX(), list.getLocY(), list.getLocZ());
 			}
 			}
 		}
 		}

+ 3 - 0
L2_GameServer/java/com/l2jserver/gameserver/model/actor/instance/L2PcInstance.java

@@ -3813,6 +3813,9 @@ public final class L2PcInstance extends L2Playable
 	@Override
 	@Override
 	public boolean destroyItemByItemId(String process, int itemId, long count, L2Object reference, boolean sendMessage)
 	public boolean destroyItemByItemId(String process, int itemId, long count, L2Object reference, boolean sendMessage)
 	{
 	{
+		if (itemId == 57)
+			return reduceAdena(process, count, reference, sendMessage);
+		
         L2ItemInstance item = _inventory.getItemByItemId(itemId);
         L2ItemInstance item = _inventory.getItemByItemId(itemId);
 
 
         if (item == null || item.getCount() < count || _inventory.destroyItemByItemId(process, itemId, count, this, reference) == null)
         if (item == null || item.getCount() < count || _inventory.destroyItemByItemId(process, itemId, count, this, reference) == null)

+ 2 - 2
L2_GameServer/java/com/l2jserver/gameserver/model/actor/instance/L2TeleporterInstance.java

@@ -256,14 +256,14 @@ public final class L2TeleporterInstance extends L2Npc
 					price /= 2;
 					price /= 2;
 			}
 			}
 
 
-			if (!list.getIsForNoble() && (Config.ALT_GAME_FREE_TELEPORT || player.reduceAdena("Teleport", price, this, true)))
+			if (!list.getIsForNoble() && (Config.ALT_GAME_FREE_TELEPORT || player.destroyItemByItemId("Teleport", list.getItemId(), price, this, true)))
 			{
 			{
 				if (Config.DEBUG)
 				if (Config.DEBUG)
 					_log.fine("Teleporting player " + player.getName() + " to new location: " + list.getLocX() + ":" + list.getLocY() + ":" + list.getLocZ());
 					_log.fine("Teleporting player " + player.getName() + " to new location: " + list.getLocX() + ":" + list.getLocY() + ":" + list.getLocZ());
 				
 				
 				player.teleToLocation(list.getLocX(), list.getLocY(), list.getLocZ(), true);
 				player.teleToLocation(list.getLocX(), list.getLocY(), list.getLocZ(), true);
 			}
 			}
-			else if (list.getIsForNoble() && (Config.ALT_GAME_FREE_TELEPORT || player.destroyItemByItemId("Noble Teleport", 13722, list.getPrice(), this, true)))
+			else if (list.getIsForNoble() && (Config.ALT_GAME_FREE_TELEPORT || player.destroyItemByItemId("Noble Teleport", list.getItemId(), price, this, true)))
 			{
 			{
 				if (Config.DEBUG)
 				if (Config.DEBUG)
 					_log.fine("Teleporting player " + player.getName() + " to new location: " + list.getLocX() + ":" + list.getLocY() + ":" + list.getLocZ());
 					_log.fine("Teleporting player " + player.getName() + " to new location: " + list.getLocX() + ":" + list.getLocY() + ":" + list.getLocZ());

+ 8 - 13
L2_GameServer/java/com/l2jserver/gameserver/model/quest/QuestState.java

@@ -866,21 +866,16 @@ public final class QuestState
 			count = item.getCount();
 			count = item.getCount();
 
 
 		// Destroy the quantity of items wanted
 		// Destroy the quantity of items wanted
-		if (itemId == 57)
-			getPlayer().reduceAdena("Quest", count, getPlayer(), true);
-		else
+		if (item.isEquipped())
 		{
 		{
-			if (item.isEquipped())
-			{
-				L2ItemInstance[] unequiped = getPlayer().getInventory().unEquipItemInBodySlotAndRecord(item.getItem().getBodyPart());
-				InventoryUpdate iu = new InventoryUpdate();
-				for (L2ItemInstance itm: unequiped)
-					iu.addModifiedItem(itm);
-				getPlayer().sendPacket(iu);
-				getPlayer().broadcastUserInfo();
-			}
-			getPlayer().destroyItemByItemId("Quest", itemId, count, getPlayer(), true);
+			L2ItemInstance[] unequiped = getPlayer().getInventory().unEquipItemInBodySlotAndRecord(item.getItem().getBodyPart());
+			InventoryUpdate iu = new InventoryUpdate();
+			for (L2ItemInstance itm: unequiped)
+				iu.addModifiedItem(itm);
+			getPlayer().sendPacket(iu);
+			getPlayer().broadcastUserInfo();
 		}
 		}
+		getPlayer().destroyItemByItemId("Quest", itemId, count, getPlayer(), true);
 	}
 	}
 
 
 	/**
 	/**