瀏覽代碼

some packets update.

JIV 15 年之前
父節點
當前提交
78696db446

+ 1 - 1
L2_GameServer/java/com/l2jserver/gameserver/model/L2Party.java

@@ -292,7 +292,7 @@ public class L2Party {
 		msg = new SystemMessage(SystemMessageId.C1_JOINED_PARTY);
 		msg = new SystemMessage(SystemMessageId.C1_JOINED_PARTY);
 		msg.addString(player.getName());
 		msg.addString(player.getName());
 		broadcastToPartyMembers(msg);
 		broadcastToPartyMembers(msg);
-		broadcastToPartyMembers(new PartySmallWindowAdd(player));
+		broadcastToPartyMembers(new PartySmallWindowAdd(player, this));
 		// send the position of all party members to the new party member
 		// send the position of all party members to the new party member
 		player.sendPacket(new PartyMemberPosition(player));
 		player.sendPacket(new PartyMemberPosition(player));
 		// send the position of the new party member to all party members (except the new one - he knows his own position)
 		// send the position of the new party member to all party members (except the new one - he knows his own position)

+ 84 - 76
L2_GameServer/java/com/l2jserver/gameserver/network/serverpackets/ExShowFortressSiegeInfo.java

@@ -14,23 +14,25 @@
  */
  */
 package com.l2jserver.gameserver.network.serverpackets;
 package com.l2jserver.gameserver.network.serverpackets;
 
 
+import javolution.util.FastList;
+
 import com.l2jserver.gameserver.instancemanager.FortSiegeManager;
 import com.l2jserver.gameserver.instancemanager.FortSiegeManager;
 import com.l2jserver.gameserver.instancemanager.FortSiegeManager.SiegeSpawn;
 import com.l2jserver.gameserver.instancemanager.FortSiegeManager.SiegeSpawn;
+import com.l2jserver.gameserver.model.L2Spawn;
 import com.l2jserver.gameserver.model.entity.Fort;
 import com.l2jserver.gameserver.model.entity.Fort;
 
 
-import javolution.util.FastList;
-
 /**
 /**
  *
  *
  * @author  KenM
  * @author  KenM
  */
  */
 public class ExShowFortressSiegeInfo extends L2GameServerPacket
 public class ExShowFortressSiegeInfo extends L2GameServerPacket
 {
 {
-
-    private int _fortId;
+	private int _fortId;
 	private int _size;
 	private int _size;
 	private Fort _fort;
 	private Fort _fort;
-
+	private int _csize;
+	private int _csize2;
+	
 	/**
 	/**
 	 * @param fortId
 	 * @param fortId
 	 */
 	 */
@@ -39,77 +41,83 @@ public class ExShowFortressSiegeInfo extends L2GameServerPacket
 		_fort = fort;
 		_fort = fort;
 		_fortId = fort.getFortId();
 		_fortId = fort.getFortId();
 		_size = fort.getFortSize();
 		_size = fort.getFortSize();
+		FastList<SiegeSpawn> commanders = FortSiegeManager.getInstance().getCommanderSpawnList(_fortId);
+		if (commanders != null)
+			_csize = commanders.size();
+		FastList<L2Spawn> list = _fort.getSiege().getCommanders().get(_fortId);
+		if (list != null)
+			_csize2 = list.size();
 	}
 	}
-
+	
 	/**
 	/**
-     * @see com.l2jserver.gameserver.network.serverpackets.L2GameServerPacket#getType()
-     */
-    @Override
-    public String getType()
-    {
-        return "[S] FE:17 ExShowFortressSiegeInfo";
-    }
-
-    /**
-     * @see com.l2jserver.gameserver.network.serverpackets.L2GameServerPacket#writeImpl()
-     */
-    @Override
-    protected void writeImpl()
-    {
-        writeC(0xfe);
-        writeH(0x17);
-        
-        writeD(_fortId); // Fortress Id
-        writeD(_size); // Total Barracks Count
-        FastList<SiegeSpawn> commanders = FortSiegeManager.getInstance().getCommanderSpawnList(_fortId);
-        if (commanders != null && commanders.size() != 0)
-        {
-        	switch (commanders.size())
-        	{
-        		case 3:
-        			switch (_fort.getSiege().getCommanders().get(_fortId).size())
-        			{
-        				case 0:
-        					writeD(0x03);
-        					break;
-        				case 1:
-        					writeD(0x02);
-        					break;
-        				case 2:
-        					writeD(0x01);
-        					break;
-        				case 3:
-        					writeD(0x00);
-        					break;
-        			}
-        			break;
-        		case 4: // TODO: change 4 to 5 once control room supported
-        			switch (_fort.getSiege().getCommanders().get(_fortId).size()) // TODO: once control room supported, update writeD(0x0x) to support 5th room
-        			{
-        				case 0:
-        					writeD(0x05);
-        					break;
-        				case 1:
-        					writeD(0x04);
-        					break;
-        				case 2:
-        					writeD(0x03);
-        					break;
-        				case 3:
-        					writeD(0x02);
-        					break;
-        				case 4:
-        					writeD(0x01);
-        					break;
-        			}
-        			break;
-        	}
-        }
-        else
-        {
-        	for(int i=0;i<_size;i++)
-        		writeD(0x00);
-        }
-    }
-    
+	 * @see com.l2jserver.gameserver.network.serverpackets.L2GameServerPacket#getType()
+	 */
+	@Override
+	public String getType()
+	{
+		return "[S] FE:17 ExShowFortressSiegeInfo";
+	}
+	
+	/**
+	 * @see com.l2jserver.gameserver.network.serverpackets.L2GameServerPacket#writeImpl()
+	 */
+	@Override
+	protected void writeImpl()
+	{
+		writeC(0xfe);
+		writeH(0x17);
+		
+		writeD(_fortId); // Fortress Id
+		writeD(_size); // Total Barracks Count
+		if (_csize > 0)
+		{
+			switch (_csize)
+			{
+				case 3:
+					switch (_csize2)
+					{
+						case 0:
+							writeD(0x03);
+							break;
+						case 1:
+							writeD(0x02);
+							break;
+						case 2:
+							writeD(0x01);
+							break;
+						case 3:
+							writeD(0x00);
+							break;
+					}
+					break;
+				case 4: // TODO: change 4 to 5 once control room supported
+					switch (_csize2)
+					// TODO: once control room supported, update writeD(0x0x) to support 5th room
+					{
+						case 0:
+							writeD(0x05);
+							break;
+						case 1:
+							writeD(0x04);
+							break;
+						case 2:
+							writeD(0x03);
+							break;
+						case 3:
+							writeD(0x02);
+							break;
+						case 4:
+							writeD(0x01);
+							break;
+					}
+					break;
+			}
+		}
+		else
+		{
+			for (int i = 0; i < _size; i++)
+				writeD(0x00);
+		}
+	}
+	
 }
 }

+ 9 - 7
L2_GameServer/java/com/l2jserver/gameserver/network/serverpackets/PartySmallWindowAdd.java

@@ -14,6 +14,7 @@
  */
  */
 package com.l2jserver.gameserver.network.serverpackets;
 package com.l2jserver.gameserver.network.serverpackets;
 
 
+import com.l2jserver.gameserver.model.L2Party;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 
 
 /**
 /**
@@ -25,26 +26,27 @@ public final class PartySmallWindowAdd extends L2GameServerPacket
 {
 {
 	private static final String _S__64_PARTYSMALLWINDOWADD = "[S] 4f PartySmallWindowAdd";
 	private static final String _S__64_PARTYSMALLWINDOWADD = "[S] 4f PartySmallWindowAdd";
 
 
-	private L2PcInstance _member;
+	private final L2PcInstance _member;
+	private final int _leaderId;
+	private final int _distribution;
 
 
-	public PartySmallWindowAdd(L2PcInstance member)
+	public PartySmallWindowAdd(L2PcInstance member, L2Party party)
 	{
 	{
 		_member = member;
 		_member = member;
+		_leaderId = party.getPartyLeaderOID();
+		_distribution = party.getLootDistribution();
 	}
 	}
 
 
 	@Override
 	@Override
 	protected final void writeImpl()
 	protected final void writeImpl()
 	{
 	{
 		writeC(0x4f);
 		writeC(0x4f);
-		L2PcInstance player =  getClient().getActiveChar();
-		writeD(player.getObjectId()); // c3
-		writeD(0);//writeD(0x04); ?? //c3
+		writeD(_leaderId); // c3
+		writeD(_distribution);//writeD(0x04); ?? //c3
 		writeD(_member.getObjectId());
 		writeD(_member.getObjectId());
 		writeS(_member.getName());
 		writeS(_member.getName());
-
 		writeD((int) _member.getCurrentCp()); //c4
 		writeD((int) _member.getCurrentCp()); //c4
 		writeD(_member.getMaxCp()); //c4
 		writeD(_member.getMaxCp()); //c4
-
 		writeD((int) _member.getCurrentHp());
 		writeD((int) _member.getCurrentHp());
 		writeD(_member.getMaxHp());
 		writeD(_member.getMaxHp());
 		writeD((int) _member.getCurrentMp());
 		writeD((int) _member.getCurrentMp());