Prechádzať zdrojové kódy

UserInfo update. Thx brutus.
TvT reward method update. Thx BiggBoss.

JIV 15 rokov pred
rodič
commit
acfce75fab

+ 4 - 71
L2_GameServer/java/com/l2jserver/gameserver/model/entity/TvTEvent.java

@@ -284,8 +284,8 @@ public class TvTEvent
 			sysMsgToAllParticipants("TvT Event: Event has ended, both teams have tied.");
 			sysMsgToAllParticipants("TvT Event: Event has ended, both teams have tied.");
 			if (Config.TVT_REWARD_TEAM_TIE)
 			if (Config.TVT_REWARD_TEAM_TIE)
 			{
 			{
-				rewardTeamOne();
-				rewardTeamTwo();
+				rewardTeam(_teams[0]);
+				rewardTeam(_teams[1]);
 				return "TvT Event: Event has ended with both teams tying.";
 				return "TvT Event: Event has ended with both teams tying.";
 			}
 			}
 			else
 			else
@@ -297,79 +297,12 @@ public class TvTEvent
 		
 		
 		// Get team which has more points
 		// Get team which has more points
 		TvTEventTeam team = _teams[_teams[0].getPoints() > _teams[1].getPoints() ? 0 : 1];
 		TvTEventTeam team = _teams[_teams[0].getPoints() > _teams[1].getPoints() ? 0 : 1];
-		
-		if (team == _teams[0])
-			rewardTeamOne();
-		else
-			rewardTeamTwo();
-		
+		rewardTeam(team);
 		return "TvT Event: Event finish. Team " + team.getName() + " won with " + team.getPoints() + " kills.";
 		return "TvT Event: Event finish. Team " + team.getName() + " won with " + team.getPoints() + " kills.";
 	}
 	}
 	
 	
-	private static void rewardTeamOne()
-	{
-		TvTEventTeam team = _teams[0];
-		// Iterate over all participated player instances of the winning team
-		for (L2PcInstance playerInstance : team.getParticipatedPlayers().values())
-		{
-			// Check for nullpointer
-			if (playerInstance == null)
-			{
-				continue;
-			}
-			
-			SystemMessage systemMessage = null;
-			
-			// Iterate over all tvt event rewards
-			for (int[] reward : Config.TVT_EVENT_REWARDS)
-			{
-				PcInventory inv = playerInstance.getInventory();
-				
-				// Check for stackable item, non stackabe items need to be added one by one
-				if (ItemTable.getInstance().createDummyItem(reward[0]).isStackable())
-				{
-					inv.addItem("TvT Event", reward[0], reward[1], playerInstance, playerInstance);
-					
-					if (reward[1] > 1)
-					{
-						systemMessage = new SystemMessage(SystemMessageId.EARNED_S2_S1_S);
-						systemMessage.addItemName(reward[0]);
-						systemMessage.addItemNumber(reward[1]);
-					}
-					else
-					{
-						systemMessage = new SystemMessage(SystemMessageId.EARNED_ITEM);
-						systemMessage.addItemName(reward[0]);
-					}
-					
-					playerInstance.sendPacket(systemMessage);
-				}
-				else
-				{
-					for (int i = 0; i < reward[1]; ++i)
-					{
-						inv.addItem("TvT Event", reward[0], 1, playerInstance, playerInstance);
-						systemMessage = new SystemMessage(SystemMessageId.EARNED_ITEM);
-						systemMessage.addItemName(reward[0]);
-						playerInstance.sendPacket(systemMessage);
-					}
-				}
-			}
-			
-			StatusUpdate statusUpdate = new StatusUpdate(playerInstance.getObjectId());
-			NpcHtmlMessage npcHtmlMessage = new NpcHtmlMessage(0);
-			
-			statusUpdate.addAttribute(StatusUpdate.CUR_LOAD, playerInstance.getCurrentLoad());
-			npcHtmlMessage.setHtml(HtmCache.getInstance().getHtm(playerInstance.getHtmlPrefix(), htmlPath+"Reward.htm"));
-			playerInstance.sendPacket(statusUpdate);
-			playerInstance.sendPacket(npcHtmlMessage);
-		}
-	}
-	
-	private static void rewardTeamTwo()
+	private static void rewardTeam(TvTEventTeam team)
 	{
 	{
-		TvTEventTeam team = _teams[1];
-		
 		// Iterate over all participated player instances of the winning team
 		// Iterate over all participated player instances of the winning team
 		for (L2PcInstance playerInstance : team.getParticipatedPlayers().values())
 		for (L2PcInstance playerInstance : team.getParticipatedPlayers().values())
 		{
 		{

+ 318 - 318
L2_GameServer/java/com/l2jserver/gameserver/network/serverpackets/UserInfo.java

@@ -67,327 +67,327 @@ import com.l2jserver.gameserver.templates.chars.L2NpcTemplate;
  */
  */
 public final class UserInfo extends L2GameServerPacket
 public final class UserInfo extends L2GameServerPacket
 {
 {
-    private static final String _S__04_USERINFO = "[S] 32 UserInfo";
-    private L2PcInstance _activeChar;
-    
-    /**
-     * Run speed, swimming run speed and flying run speed
-     */
-    private int _runSpd;
-    /**
-     * Walking speed, swimming walking speed and flying walking speed
-     */
-    private int _walkSpd;
-    private int _relation;
-    private float _moveMultiplier;
-    private int _territoryId;
-    private boolean _isDisguised;
-    private int _vehicleObjectId;
-
-    /**
-     * @param _characters
-     */
-    public UserInfo(L2PcInstance character)
-    {
-        _activeChar = character;
-
-        _moveMultiplier = _activeChar.getMovementSpeedMultiplier();
-        _runSpd = (int) (_activeChar.getRunSpeed() / _moveMultiplier);
-        _walkSpd = (int) (_activeChar.getWalkSpeed() / _moveMultiplier);
-        _territoryId = TerritoryWarManager.getInstance().getRegisteredTerritoryId(character);
-        _relation = _activeChar.isClanLeader() ? 0x40 : 0;
-        if (_activeChar.getSiegeState() == 1)
-        {
-        	if (_territoryId == 0)
-        		_relation |= 0x180;
-        	else
-        		_relation |= 0x1000;
-        }
-        if (_activeChar.getSiegeState() == 2) _relation |= 0x80;
-        _isDisguised = TerritoryWarManager.getInstance().isDisguised(character.getObjectId());
-        if (_activeChar.isInBoat())
-        	_vehicleObjectId = _activeChar.getBoat().getObjectId();
-        else if (_activeChar.isInAirShip())
-        	_vehicleObjectId = _activeChar.getAirShip().getObjectId();
-        else
-        	_vehicleObjectId = 0;
-        	
-    }
-
-    @Override
+	private static final String _S__04_USERINFO = "[S] 32 UserInfo";
+	private L2PcInstance _activeChar;
+	
+	/**
+	 * Run speed, swimming run speed and flying run speed
+	 */
+	private int _runSpd;
+	/**
+	 * Walking speed, swimming walking speed and flying walking speed
+	 */
+	private int _walkSpd;
+	private int _relation;
+	private float _moveMultiplier;
+	private int _territoryId;
+	private boolean _isDisguised;
+	private int _vehicleObjectId;
+	
+	/**
+	 * @param _characters
+	 */
+	public UserInfo(L2PcInstance character)
+	{
+		_activeChar = character;
+		
+		_moveMultiplier = _activeChar.getMovementSpeedMultiplier();
+		_runSpd = (int) (_activeChar.getRunSpeed() / _moveMultiplier);
+		_walkSpd = (int) (_activeChar.getWalkSpeed() / _moveMultiplier);
+		_territoryId = TerritoryWarManager.getInstance().getRegisteredTerritoryId(character);
+		_relation = _activeChar.isClanLeader() ? 0x40 : 0;
+		if (_activeChar.getSiegeState() == 1)
+		{
+			if (_territoryId == 0)
+				_relation |= 0x180;
+			else
+				_relation |= 0x1000;
+		}
+		if (_activeChar.getSiegeState() == 2) _relation |= 0x80;
+		_isDisguised = TerritoryWarManager.getInstance().isDisguised(character.getObjectId());
+		if (_activeChar.isInBoat())
+			_vehicleObjectId = _activeChar.getBoat().getObjectId();
+		else if (_activeChar.isInAirShip())
+			_vehicleObjectId = _activeChar.getAirShip().getObjectId();
+		else
+			_vehicleObjectId = 0;
+		
+	}
+	
+	@Override
 	protected final void writeImpl()
 	protected final void writeImpl()
-    {
-        writeC(0x32);
-
-        writeD(_activeChar.getX());
-        writeD(_activeChar.getY());
-        writeD(_activeChar.getZ());
-        writeD(_vehicleObjectId); // heading from CT2.3 no longer used inside userinfo, here is now vehicle id (boat,airship)
-        writeD(_activeChar.getObjectId());
-        writeS(_activeChar.getName());
-        writeD(_activeChar.getRace().ordinal());
-        writeD(_activeChar.getAppearance().getSex()? 1 : 0);
-
-        if (_activeChar.getClassIndex() == 0) writeD(_activeChar.getClassId().getId());
-        else writeD(_activeChar.getBaseClass());
-
-        writeD(_activeChar.getLevel());
-        writeQ(_activeChar.getExp());
-        writeD(_activeChar.getSTR());
-        writeD(_activeChar.getDEX());
-        writeD(_activeChar.getCON());
-        writeD(_activeChar.getINT());
-        writeD(_activeChar.getWIT());
-        writeD(_activeChar.getMEN());
-        writeD(_activeChar.getMaxHp());
-        writeD((int) _activeChar.getCurrentHp());
-        writeD(_activeChar.getMaxMp());
-        writeD((int) _activeChar.getCurrentMp());
-        writeD(_activeChar.getSp());
-        writeD(_activeChar.getCurrentLoad());
-        writeD(_activeChar.getMaxLoad());
-
-        writeD(_activeChar.getActiveWeaponItem() != null ? 40 : 20); // 20 no weapon, 40 weapon equipped
-        
-        writeD(_activeChar.getInventory().getPaperdollObjectId(Inventory.PAPERDOLL_UNDER));
-        writeD(_activeChar.getInventory().getPaperdollObjectId(Inventory.PAPERDOLL_REAR));
-        writeD(_activeChar.getInventory().getPaperdollObjectId(Inventory.PAPERDOLL_LEAR));
-        writeD(_activeChar.getInventory().getPaperdollObjectId(Inventory.PAPERDOLL_NECK));
-        writeD(_activeChar.getInventory().getPaperdollObjectId(Inventory.PAPERDOLL_RFINGER));
-        writeD(_activeChar.getInventory().getPaperdollObjectId(Inventory.PAPERDOLL_LFINGER));
-        writeD(_activeChar.getInventory().getPaperdollObjectId(Inventory.PAPERDOLL_HEAD));
-        writeD(_activeChar.getInventory().getPaperdollObjectId(Inventory.PAPERDOLL_RHAND));
-        writeD(_activeChar.getInventory().getPaperdollObjectId(Inventory.PAPERDOLL_LHAND));
-        writeD(_activeChar.getInventory().getPaperdollObjectId(Inventory.PAPERDOLL_GLOVES));
-        writeD(_activeChar.getInventory().getPaperdollObjectId(Inventory.PAPERDOLL_CHEST));
-        writeD(_activeChar.getInventory().getPaperdollObjectId(Inventory.PAPERDOLL_LEGS));
-        writeD(_activeChar.getInventory().getPaperdollObjectId(Inventory.PAPERDOLL_FEET));
-        writeD(_activeChar.getInventory().getPaperdollObjectId(Inventory.PAPERDOLL_BACK));
-        writeD(_activeChar.getInventory().getPaperdollObjectId(Inventory.PAPERDOLL_LRHAND));
-        writeD(_activeChar.getInventory().getPaperdollObjectId(Inventory.PAPERDOLL_HAIR));
-        writeD(_activeChar.getInventory().getPaperdollObjectId(Inventory.PAPERDOLL_HAIR2));
-        writeD(_activeChar.getInventory().getPaperdollObjectId(Inventory.PAPERDOLL_RBRACELET));
-        writeD(_activeChar.getInventory().getPaperdollObjectId(Inventory.PAPERDOLL_LBRACELET));
-        writeD(_activeChar.getInventory().getPaperdollObjectId(Inventory.PAPERDOLL_DECO1));
-        writeD(_activeChar.getInventory().getPaperdollObjectId(Inventory.PAPERDOLL_DECO2));
-        writeD(_activeChar.getInventory().getPaperdollObjectId(Inventory.PAPERDOLL_DECO3));
-        writeD(_activeChar.getInventory().getPaperdollObjectId(Inventory.PAPERDOLL_DECO4));
-        writeD(_activeChar.getInventory().getPaperdollObjectId(Inventory.PAPERDOLL_DECO5));
-        writeD(_activeChar.getInventory().getPaperdollObjectId(Inventory.PAPERDOLL_DECO6));
-        writeD(_activeChar.getInventory().getPaperdollObjectId(Inventory.PAPERDOLL_BELT)); // CT2.3
-        writeD(_activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_UNDER));
-        writeD(_activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_REAR));
-        writeD(_activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_LEAR));
-        writeD(_activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_NECK));
-        writeD(_activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_RFINGER));
-        writeD(_activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_LFINGER));
-        writeD(_activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_HEAD));
-        writeD(_activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_RHAND));
-        writeD(_activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_LHAND));
-        writeD(_activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_GLOVES));
-        writeD(_activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_CHEST));
-        writeD(_activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_LEGS));
-        writeD(_activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_FEET));
-        writeD(_activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_BACK));
-        writeD(_activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_LRHAND));
-        writeD(_activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_HAIR));
-        writeD(_activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_HAIR2));
-        writeD(_activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_RBRACELET));
-        writeD(_activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_LBRACELET));
-        writeD(_activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_DECO1));
-        writeD(_activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_DECO2));
-        writeD(_activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_DECO3));
-        writeD(_activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_DECO4));
-        writeD(_activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_DECO5));
-        writeD(_activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_DECO6));
-        writeD(_activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_BELT)); // CT2.3
-        writeD(_activeChar.getInventory().getPaperdollAugmentationId(Inventory.PAPERDOLL_UNDER));
-        writeD(_activeChar.getInventory().getPaperdollAugmentationId(Inventory.PAPERDOLL_REAR));
-        writeD(_activeChar.getInventory().getPaperdollAugmentationId(Inventory.PAPERDOLL_LEAR));
-        writeD(_activeChar.getInventory().getPaperdollAugmentationId(Inventory.PAPERDOLL_NECK));
-        writeD(_activeChar.getInventory().getPaperdollAugmentationId(Inventory.PAPERDOLL_RFINGER));
-        writeD(_activeChar.getInventory().getPaperdollAugmentationId(Inventory.PAPERDOLL_LFINGER));
-        writeD(_activeChar.getInventory().getPaperdollAugmentationId(Inventory.PAPERDOLL_HEAD));
-        writeD(_activeChar.getInventory().getPaperdollAugmentationId(Inventory.PAPERDOLL_RHAND));
-        writeD(_activeChar.getInventory().getPaperdollAugmentationId(Inventory.PAPERDOLL_LHAND));
-        writeD(_activeChar.getInventory().getPaperdollAugmentationId(Inventory.PAPERDOLL_GLOVES));
-        writeD(_activeChar.getInventory().getPaperdollAugmentationId(Inventory.PAPERDOLL_CHEST));
-        writeD(_activeChar.getInventory().getPaperdollAugmentationId(Inventory.PAPERDOLL_LEGS));
-        writeD(_activeChar.getInventory().getPaperdollAugmentationId(Inventory.PAPERDOLL_FEET));
-        writeD(_activeChar.getInventory().getPaperdollAugmentationId(Inventory.PAPERDOLL_BACK));
-        writeD(_activeChar.getInventory().getPaperdollAugmentationId(Inventory.PAPERDOLL_LRHAND));
-        writeD(_activeChar.getInventory().getPaperdollAugmentationId(Inventory.PAPERDOLL_HAIR));
-        writeD(_activeChar.getInventory().getPaperdollAugmentationId(Inventory.PAPERDOLL_HAIR2));
-        writeD(_activeChar.getInventory().getPaperdollAugmentationId(Inventory.PAPERDOLL_RBRACELET));
-        writeD(_activeChar.getInventory().getPaperdollAugmentationId(Inventory.PAPERDOLL_LBRACELET));
-        writeD(_activeChar.getInventory().getPaperdollAugmentationId(Inventory.PAPERDOLL_DECO1));
-        writeD(_activeChar.getInventory().getPaperdollAugmentationId(Inventory.PAPERDOLL_DECO2));
-        writeD(_activeChar.getInventory().getPaperdollAugmentationId(Inventory.PAPERDOLL_DECO3));
-        writeD(_activeChar.getInventory().getPaperdollAugmentationId(Inventory.PAPERDOLL_DECO4));
-        writeD(_activeChar.getInventory().getPaperdollAugmentationId(Inventory.PAPERDOLL_DECO5));
-        writeD(_activeChar.getInventory().getPaperdollAugmentationId(Inventory.PAPERDOLL_DECO6));
-        writeD(_activeChar.getInventory().getPaperdollAugmentationId(Inventory.PAPERDOLL_BELT)); // CT2.3
-        writeD(_activeChar.getInventory().getMaxTalismanCount()); // CT2.3
-        writeD(_activeChar.getInventory().getCloakStatus()); // CT2.3
-        writeD(_activeChar.getPAtk(null));
-        writeD(_activeChar.getPAtkSpd());
-        writeD(_activeChar.getPDef(null));
-        writeD(_activeChar.getEvasionRate(null));
-        writeD(_activeChar.getAccuracy());
-        writeD(_activeChar.getCriticalHit(null, null));
-        writeD(_activeChar.getMAtk(null, null));
-
-        writeD(_activeChar.getMAtkSpd());
-        writeD(_activeChar.getPAtkSpd());
-
-        writeD(_activeChar.getMDef(null, null));
-
-        writeD(_activeChar.getPvpFlag()); // 0-non-pvp  1-pvp = violett name
-        writeD(_activeChar.getKarma());
-
-        writeD(_runSpd);
-        writeD(_walkSpd);
-        writeD(_runSpd); // swim run speed
-        writeD(_walkSpd); // swim walk speed
-        writeD(0);
-        writeD(0);
-        writeD(_activeChar.isFlying() ? _runSpd : 0); // fly speed
-        writeD(_activeChar.isFlying() ? _walkSpd : 0); // fly speed
-        writeF(_moveMultiplier);
-        writeF(_activeChar.getAttackSpeedMultiplier());
-
-        L2Summon pet = _activeChar.getPet();
-        L2Transformation trans;
-        if (_activeChar.getMountType() != 0 && pet != null)
-        {
-            writeF(pet.getTemplate().fCollisionRadius);
-            writeF(pet.getTemplate().fCollisionHeight);
-        }
-        else if ((trans = _activeChar.getTransformation()) != null)
-        {
-            writeF(trans.getCollisionRadius());
-            writeF(trans.getCollisionHeight());
-        }
-        else
-        {
-            writeF(_activeChar.getCollisionRadius());
-            writeF(_activeChar.getCollisionHeight());
-        }
-
-        writeD(_activeChar.getAppearance().getHairStyle());
-        writeD(_activeChar.getAppearance().getHairColor());
-        writeD(_activeChar.getAppearance().getFace());
-        writeD(_activeChar.isGM() ? 1 : 0); // builder level
-
-        String title = _activeChar.getTitle();
-     	if (_activeChar.getAppearance().getInvisible() && _activeChar.isGM()) title = "Invisible";
-        if (_activeChar.getPoly().isMorphed())
-        {
-        	L2NpcTemplate polyObj = NpcTable.getInstance().getTemplate(_activeChar.getPoly().getPolyId());
-        	if(polyObj != null)
-        		title += " - " + polyObj.name;
-        }
-        writeS(title);
-
-        writeD(_activeChar.getClanId());
-        writeD(_activeChar.getClanCrestId());
-        writeD(_activeChar.getAllyId());
-        writeD(_activeChar.getAllyCrestId()); // ally crest id
-        // 0x40 leader rights
-        // siege flags: attacker - 0x180 sword over name, defender - 0x80 shield, 0xC0 crown (|leader), 0x1C0 flag (|leader)
-        writeD(_relation);
-        writeC(_activeChar.getMountType()); // mount type
-        writeC(_activeChar.getPrivateStoreType());
-        writeC(_activeChar.hasDwarvenCraft() ? 1 : 0);
-        writeD(_activeChar.getPkKills());
-        writeD(_activeChar.getPvpKills());
-
-        writeH(_activeChar.getCubics().size());
-        for (int id : _activeChar.getCubics().keySet())
-            writeH(id);
-
-        writeC(_activeChar.isInPartyMatchRoom() ? 1 : 0);
-
-        if (_activeChar.getAppearance().getInvisible() && _activeChar.isGM())
-        	writeD(_activeChar.getAbnormalEffect() | AbnormalEffect.STEALTH.getMask());
-        else
-        	writeD(_activeChar.getAbnormalEffect());
-        writeC(_activeChar.isFlyingMounted() ? 2 : 0);
-
-        writeD(_activeChar.getClanPrivileges());
-
-        writeH(_activeChar.getRecomLeft()); //c2  recommendations remaining
-        writeH(_activeChar.getRecomHave()); //c2  recommendations received
-        writeD(_activeChar.getMountNpcId() > 0 ? _activeChar.getMountNpcId() + 1000000 : 0);
-        writeH(_activeChar.getInventoryLimit());
-
-        writeD(_activeChar.getClassId().getId());
-        writeD(0x00); // special effects? circles around player...
-        writeD(_activeChar.getMaxCp());
-        writeD((int) _activeChar.getCurrentCp());
-        writeC(_activeChar.isMounted() ? 0 : _activeChar.getEnchantEffect());
-
-        if(_activeChar.getTeam()==1)
-        	writeC(0x01); //team circle around feet 1= Blue, 2 = red
-        else if(_activeChar.getTeam()==2)
-        	writeC(0x02); //team circle around feet 1= Blue, 2 = red
-        else
-        	writeC(0x00); //team circle around feet 1= Blue, 2 = red
-
-        writeD(_activeChar.getClanCrestLargeId());
-        writeC(_activeChar.isNoble() ? 1 : 0); //0x01: symbol on char menu ctrl+I
-        writeC(_activeChar.isHero() || (_activeChar.isGM() && Config.GM_HERO_AURA) ? 1 : 0); //0x01: Hero Aura
-
-        writeC(_activeChar.isFishing() ? 1 : 0); //Fishing Mode
-        writeD(_activeChar.getFishx()); //fishing x
-        writeD(_activeChar.getFishy()); //fishing y
-        writeD(_activeChar.getFishz()); //fishing z
-        writeD(_activeChar.getAppearance().getNameColor());
-
+	{
+		writeC(0x32);
+		
+		writeD(_activeChar.getX());
+		writeD(_activeChar.getY());
+		writeD(_activeChar.getZ());
+		writeD(_vehicleObjectId); // heading from CT2.3 no longer used inside userinfo, here is now vehicle id (boat,airship)
+		writeD(_activeChar.getObjectId());
+		writeS(_activeChar.getName());
+		writeD(_activeChar.getRace().ordinal());
+		writeD(_activeChar.getAppearance().getSex()? 1 : 0);
+		
+		if (_activeChar.getClassIndex() == 0) writeD(_activeChar.getClassId().getId());
+		else writeD(_activeChar.getBaseClass());
+		
+		writeD(_activeChar.getLevel());
+		writeQ(_activeChar.getExp());
+		writeD(_activeChar.getSTR());
+		writeD(_activeChar.getDEX());
+		writeD(_activeChar.getCON());
+		writeD(_activeChar.getINT());
+		writeD(_activeChar.getWIT());
+		writeD(_activeChar.getMEN());
+		writeD(_activeChar.getMaxHp());
+		writeD((int) _activeChar.getCurrentHp());
+		writeD(_activeChar.getMaxMp());
+		writeD((int) _activeChar.getCurrentMp());
+		writeD(_activeChar.getSp());
+		writeD(_activeChar.getCurrentLoad());
+		writeD(_activeChar.getMaxLoad());
+		
+		writeD(_activeChar.getActiveWeaponItem() != null ? 0x40 : 0x20); // 0x20(32) no weapon, 0x40(64) weapon equippe
+		
+		writeD(_activeChar.getInventory().getPaperdollObjectId(Inventory.PAPERDOLL_UNDER));
+		writeD(_activeChar.getInventory().getPaperdollObjectId(Inventory.PAPERDOLL_REAR));
+		writeD(_activeChar.getInventory().getPaperdollObjectId(Inventory.PAPERDOLL_LEAR));
+		writeD(_activeChar.getInventory().getPaperdollObjectId(Inventory.PAPERDOLL_NECK));
+		writeD(_activeChar.getInventory().getPaperdollObjectId(Inventory.PAPERDOLL_RFINGER));
+		writeD(_activeChar.getInventory().getPaperdollObjectId(Inventory.PAPERDOLL_LFINGER));
+		writeD(_activeChar.getInventory().getPaperdollObjectId(Inventory.PAPERDOLL_HEAD));
+		writeD(_activeChar.getInventory().getPaperdollObjectId(Inventory.PAPERDOLL_RHAND));
+		writeD(_activeChar.getInventory().getPaperdollObjectId(Inventory.PAPERDOLL_LHAND));
+		writeD(_activeChar.getInventory().getPaperdollObjectId(Inventory.PAPERDOLL_GLOVES));
+		writeD(_activeChar.getInventory().getPaperdollObjectId(Inventory.PAPERDOLL_CHEST));
+		writeD(_activeChar.getInventory().getPaperdollObjectId(Inventory.PAPERDOLL_LEGS));
+		writeD(_activeChar.getInventory().getPaperdollObjectId(Inventory.PAPERDOLL_FEET));
+		writeD(_activeChar.getInventory().getPaperdollObjectId(Inventory.PAPERDOLL_BACK));
+		writeD(_activeChar.getInventory().getPaperdollObjectId(Inventory.PAPERDOLL_LRHAND));
+		writeD(_activeChar.getInventory().getPaperdollObjectId(Inventory.PAPERDOLL_HAIR));
+		writeD(_activeChar.getInventory().getPaperdollObjectId(Inventory.PAPERDOLL_HAIR2));
+		writeD(_activeChar.getInventory().getPaperdollObjectId(Inventory.PAPERDOLL_RBRACELET));
+		writeD(_activeChar.getInventory().getPaperdollObjectId(Inventory.PAPERDOLL_LBRACELET));
+		writeD(_activeChar.getInventory().getPaperdollObjectId(Inventory.PAPERDOLL_DECO1));
+		writeD(_activeChar.getInventory().getPaperdollObjectId(Inventory.PAPERDOLL_DECO2));
+		writeD(_activeChar.getInventory().getPaperdollObjectId(Inventory.PAPERDOLL_DECO3));
+		writeD(_activeChar.getInventory().getPaperdollObjectId(Inventory.PAPERDOLL_DECO4));
+		writeD(_activeChar.getInventory().getPaperdollObjectId(Inventory.PAPERDOLL_DECO5));
+		writeD(_activeChar.getInventory().getPaperdollObjectId(Inventory.PAPERDOLL_DECO6));
+		writeD(_activeChar.getInventory().getPaperdollObjectId(Inventory.PAPERDOLL_BELT)); // CT2.3
+		writeD(_activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_UNDER));
+		writeD(_activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_REAR));
+		writeD(_activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_LEAR));
+		writeD(_activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_NECK));
+		writeD(_activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_RFINGER));
+		writeD(_activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_LFINGER));
+		writeD(_activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_HEAD));
+		writeD(_activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_RHAND));
+		writeD(_activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_LHAND));
+		writeD(_activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_GLOVES));
+		writeD(_activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_CHEST));
+		writeD(_activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_LEGS));
+		writeD(_activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_FEET));
+		writeD(_activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_BACK));
+		writeD(_activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_LRHAND));
+		writeD(_activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_HAIR));
+		writeD(_activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_HAIR2));
+		writeD(_activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_RBRACELET));
+		writeD(_activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_LBRACELET));
+		writeD(_activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_DECO1));
+		writeD(_activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_DECO2));
+		writeD(_activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_DECO3));
+		writeD(_activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_DECO4));
+		writeD(_activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_DECO5));
+		writeD(_activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_DECO6));
+		writeD(_activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_BELT)); // CT2.3
+		writeD(_activeChar.getInventory().getPaperdollAugmentationId(Inventory.PAPERDOLL_UNDER));
+		writeD(_activeChar.getInventory().getPaperdollAugmentationId(Inventory.PAPERDOLL_REAR));
+		writeD(_activeChar.getInventory().getPaperdollAugmentationId(Inventory.PAPERDOLL_LEAR));
+		writeD(_activeChar.getInventory().getPaperdollAugmentationId(Inventory.PAPERDOLL_NECK));
+		writeD(_activeChar.getInventory().getPaperdollAugmentationId(Inventory.PAPERDOLL_RFINGER));
+		writeD(_activeChar.getInventory().getPaperdollAugmentationId(Inventory.PAPERDOLL_LFINGER));
+		writeD(_activeChar.getInventory().getPaperdollAugmentationId(Inventory.PAPERDOLL_HEAD));
+		writeD(_activeChar.getInventory().getPaperdollAugmentationId(Inventory.PAPERDOLL_RHAND));
+		writeD(_activeChar.getInventory().getPaperdollAugmentationId(Inventory.PAPERDOLL_LHAND));
+		writeD(_activeChar.getInventory().getPaperdollAugmentationId(Inventory.PAPERDOLL_GLOVES));
+		writeD(_activeChar.getInventory().getPaperdollAugmentationId(Inventory.PAPERDOLL_CHEST));
+		writeD(_activeChar.getInventory().getPaperdollAugmentationId(Inventory.PAPERDOLL_LEGS));
+		writeD(_activeChar.getInventory().getPaperdollAugmentationId(Inventory.PAPERDOLL_FEET));
+		writeD(_activeChar.getInventory().getPaperdollAugmentationId(Inventory.PAPERDOLL_BACK));
+		writeD(_activeChar.getInventory().getPaperdollAugmentationId(Inventory.PAPERDOLL_LRHAND));
+		writeD(_activeChar.getInventory().getPaperdollAugmentationId(Inventory.PAPERDOLL_HAIR));
+		writeD(_activeChar.getInventory().getPaperdollAugmentationId(Inventory.PAPERDOLL_HAIR2));
+		writeD(_activeChar.getInventory().getPaperdollAugmentationId(Inventory.PAPERDOLL_RBRACELET));
+		writeD(_activeChar.getInventory().getPaperdollAugmentationId(Inventory.PAPERDOLL_LBRACELET));
+		writeD(_activeChar.getInventory().getPaperdollAugmentationId(Inventory.PAPERDOLL_DECO1));
+		writeD(_activeChar.getInventory().getPaperdollAugmentationId(Inventory.PAPERDOLL_DECO2));
+		writeD(_activeChar.getInventory().getPaperdollAugmentationId(Inventory.PAPERDOLL_DECO3));
+		writeD(_activeChar.getInventory().getPaperdollAugmentationId(Inventory.PAPERDOLL_DECO4));
+		writeD(_activeChar.getInventory().getPaperdollAugmentationId(Inventory.PAPERDOLL_DECO5));
+		writeD(_activeChar.getInventory().getPaperdollAugmentationId(Inventory.PAPERDOLL_DECO6));
+		writeD(_activeChar.getInventory().getPaperdollAugmentationId(Inventory.PAPERDOLL_BELT)); // CT2.3
+		writeD(_activeChar.getInventory().getMaxTalismanCount()); // CT2.3
+		writeD(_activeChar.getInventory().getCloakStatus()); // CT2.3
+		writeD(_activeChar.getPAtk(null));
+		writeD(_activeChar.getPAtkSpd());
+		writeD(_activeChar.getPDef(null));
+		writeD(_activeChar.getEvasionRate(null));
+		writeD(_activeChar.getAccuracy());
+		writeD(_activeChar.getCriticalHit(null, null));
+		writeD(_activeChar.getMAtk(null, null));
+		
+		writeD(_activeChar.getMAtkSpd());
+		writeD(_activeChar.getPAtkSpd());
+		
+		writeD(_activeChar.getMDef(null, null));
+		
+		writeD(_activeChar.getPvpFlag()); // 0-non-pvp  1-pvp = violett name
+		writeD(_activeChar.getKarma());
+		
+		writeD(_runSpd);
+		writeD(_walkSpd);
+		writeD(_runSpd); // swim run speed
+		writeD(_walkSpd); // swim walk speed
+		writeD(0);
+		writeD(0);
+		writeD(_activeChar.isFlying() ? _runSpd : 0); // fly speed
+		writeD(_activeChar.isFlying() ? _walkSpd : 0); // fly speed
+		writeF(_moveMultiplier);
+		writeF(_activeChar.getAttackSpeedMultiplier());
+		
+		L2Summon pet = _activeChar.getPet();
+		L2Transformation trans;
+		if (_activeChar.getMountType() != 0 && pet != null)
+		{
+			writeF(pet.getTemplate().fCollisionRadius);
+			writeF(pet.getTemplate().fCollisionHeight);
+		}
+		else if ((trans = _activeChar.getTransformation()) != null)
+		{
+			writeF(trans.getCollisionRadius());
+			writeF(trans.getCollisionHeight());
+		}
+		else
+		{
+			writeF(_activeChar.getCollisionRadius());
+			writeF(_activeChar.getCollisionHeight());
+		}
+		
+		writeD(_activeChar.getAppearance().getHairStyle());
+		writeD(_activeChar.getAppearance().getHairColor());
+		writeD(_activeChar.getAppearance().getFace());
+		writeD(_activeChar.isGM() ? 1 : 0); // builder level
+		
+		String title = _activeChar.getTitle();
+		if (_activeChar.getAppearance().getInvisible() && _activeChar.isGM()) title = "Invisible";
+		if (_activeChar.getPoly().isMorphed())
+		{
+			L2NpcTemplate polyObj = NpcTable.getInstance().getTemplate(_activeChar.getPoly().getPolyId());
+			if(polyObj != null)
+				title += " - " + polyObj.name;
+		}
+		writeS(title);
+		
+		writeD(_activeChar.getClanId());
+		writeD(_activeChar.getClanCrestId());
+		writeD(_activeChar.getAllyId());
+		writeD(_activeChar.getAllyCrestId()); // ally crest id
+		// 0x40 leader rights
+		// siege flags: attacker - 0x180 sword over name, defender - 0x80 shield, 0xC0 crown (|leader), 0x1C0 flag (|leader)
+		writeD(_relation);
+		writeC(_activeChar.getMountType()); // mount type
+		writeC(_activeChar.getPrivateStoreType());
+		writeC(_activeChar.hasDwarvenCraft() ? 1 : 0);
+		writeD(_activeChar.getPkKills());
+		writeD(_activeChar.getPvpKills());
+		
+		writeH(_activeChar.getCubics().size());
+		for (int id : _activeChar.getCubics().keySet())
+			writeH(id);
+		
+		writeC(_activeChar.isInPartyMatchRoom() ? 1 : 0);
+		
+		if (_activeChar.getAppearance().getInvisible() && _activeChar.isGM())
+			writeD(_activeChar.getAbnormalEffect() | AbnormalEffect.STEALTH.getMask());
+		else
+			writeD(_activeChar.getAbnormalEffect());
+		writeC(_activeChar.isFlyingMounted() ? 2 : 0);
+		
+		writeD(_activeChar.getClanPrivileges());
+		
+		writeH(_activeChar.getRecomLeft()); //c2  recommendations remaining
+		writeH(_activeChar.getRecomHave()); //c2  recommendations received
+		writeD(_activeChar.getMountNpcId() > 0 ? _activeChar.getMountNpcId() + 1000000 : 0);
+		writeH(_activeChar.getInventoryLimit());
+		
+		writeD(_activeChar.getClassId().getId());
+		writeD(0x00); // special effects? circles around player...
+		writeD(_activeChar.getMaxCp());
+		writeD((int) _activeChar.getCurrentCp());
+		writeC(_activeChar.isMounted() ? 0 : _activeChar.getEnchantEffect());
+		
+		if(_activeChar.getTeam()==1)
+			writeC(0x01); //team circle around feet 1= Blue, 2 = red
+		else if(_activeChar.getTeam()==2)
+			writeC(0x02); //team circle around feet 1= Blue, 2 = red
+		else
+			writeC(0x00); //team circle around feet 1= Blue, 2 = red
+		
+		writeD(_activeChar.getClanCrestLargeId());
+		writeC(_activeChar.isNoble() ? 1 : 0); //0x01: symbol on char menu ctrl+I
+		writeC(_activeChar.isHero() || (_activeChar.isGM() && Config.GM_HERO_AURA) ? 1 : 0); //0x01: Hero Aura
+		
+		writeC(_activeChar.isFishing() ? 1 : 0); //Fishing Mode
+		writeD(_activeChar.getFishx()); //fishing x
+		writeD(_activeChar.getFishy()); //fishing y
+		writeD(_activeChar.getFishz()); //fishing z
+		writeD(_activeChar.getAppearance().getNameColor());
+		
 		//new c5
 		//new c5
-       	writeC(_activeChar.isRunning() ? 0x01 : 0x00); //changes the Speed display on Status Window
-
-        writeD(_activeChar.getPledgeClass()); //changes the text above CP on Status Window
-        writeD(_activeChar.getPledgeType());
-
-        writeD(_activeChar.getAppearance().getTitleColor());
-
-        if (_activeChar.isCursedWeaponEquipped())
-        	writeD(CursedWeaponsManager.getInstance().getLevel(_activeChar.getCursedWeaponEquippedId()));
-        else
-        	writeD(0x00);
-        
-        // T1 Starts
-        writeD(_activeChar.getTransformationId());
-        
-        byte attackAttribute = _activeChar.getAttackElement();
+		writeC(_activeChar.isRunning() ? 0x01 : 0x00); //changes the Speed display on Status Window
+		
+		writeD(_activeChar.getPledgeClass()); //changes the text above CP on Status Window
+		writeD(_activeChar.getPledgeType());
+		
+		writeD(_activeChar.getAppearance().getTitleColor());
+		
+		if (_activeChar.isCursedWeaponEquipped())
+			writeD(CursedWeaponsManager.getInstance().getLevel(_activeChar.getCursedWeaponEquippedId()));
+		else
+			writeD(0x00);
+		
+		// T1 Starts
+		writeD(_activeChar.getTransformationId());
+		
+		byte attackAttribute = _activeChar.getAttackElement();
 		writeH(attackAttribute);
 		writeH(attackAttribute);
 		writeH(_activeChar.getAttackElementValue(attackAttribute));
 		writeH(_activeChar.getAttackElementValue(attackAttribute));
-        writeH(_activeChar.getDefenseElementValue(Elementals.FIRE));
-        writeH(_activeChar.getDefenseElementValue(Elementals.WATER));
-        writeH(_activeChar.getDefenseElementValue(Elementals.WIND));
-        writeH(_activeChar.getDefenseElementValue(Elementals.EARTH));
-        writeH(_activeChar.getDefenseElementValue(Elementals.HOLY));
-        writeH(_activeChar.getDefenseElementValue(Elementals.DARK));
-        
-        writeD(_activeChar.getAgathionId());
-        
-        // T2 Starts
-        writeD(_activeChar.getFame());  // Fame
-        writeD(_activeChar.isMinimapAllowed() ? 1: 0); // Minimap on Hellbound
-        writeD(_activeChar.getVitalityPoints());  // Vitality Points
-        writeD(_activeChar.getSpecialEffect());
-        writeD(_territoryId); // CT2.3
-        writeD((_isDisguised ? 0x01: 0x00)); // CT2.3
-        writeD(_territoryId); // CT2.3
-    }
-
-    /* (non-Javadoc)
-     * @see com.l2jserver.gameserver.serverpackets.ServerBasePacket#getType()
-     */
-    @Override
+		writeH(_activeChar.getDefenseElementValue(Elementals.FIRE));
+		writeH(_activeChar.getDefenseElementValue(Elementals.WATER));
+		writeH(_activeChar.getDefenseElementValue(Elementals.WIND));
+		writeH(_activeChar.getDefenseElementValue(Elementals.EARTH));
+		writeH(_activeChar.getDefenseElementValue(Elementals.HOLY));
+		writeH(_activeChar.getDefenseElementValue(Elementals.DARK));
+		
+		writeD(_activeChar.getAgathionId());
+		
+		// T2 Starts
+		writeD(_activeChar.getFame());  // Fame
+		writeD(_activeChar.isMinimapAllowed() ? 1: 0); // Minimap on Hellbound
+		writeD(_activeChar.getVitalityPoints());  // Vitality Points
+		writeD(_activeChar.getSpecialEffect());
+		writeD(_territoryId); // CT2.3
+		writeD((_isDisguised ? 0x01: 0x00)); // CT2.3
+		writeD(_territoryId); // CT2.3
+	}
+	
+	/* (non-Javadoc)
+	 * @see com.l2jserver.gameserver.serverpackets.ServerBasePacket#getType()
+	 */
+	@Override
 	public String getType()
 	public String getType()
-    {
-        return _S__04_USERINFO;
-    }
+	{
+		return _S__04_USERINFO;
+	}
 }
 }