Показать сообщение отдельно
Непрочитано 16.01.2016, 18:52   #3
Аватар для Exile03
Пользователь

Автор темы (Топик Стартер) Re: BATTLE_END Error Player SLOT

Код:
ublic class SM_BATTLE_END extends ServerPacket {

	protected final Logger log = LoggerFactory.getLogger(getClass());
	
	private final Player player;
	private final Room room;

	public SM_BATTLE_END(Player player, Room room) {
		super(0xD08);
		this.player = player;
		this.room = room;
	}


	
	@Override
	public void writeImpl() {

		//TODO переделать
		LevelUpInfo levelUpInfo = LevelUpDaoService.getInstance().getLevelInfoForRank((byte) (player.getRank() + 1));
		RoomSlot slotByPlayer = room.getRoomSlotByPlayer(player);
		
		player.setExp(player.getExp() + slotByPlayer.getAllExp());
		player.setGp(player.getGp() + slotByPlayer.getAllGp());

		if (player.getRank() <= 52) {
			if (levelUpInfo.getAllExp() < player.getExp()) {
				player.setRank((short) (player.getRank() + 1));
				player.setGp(player.getGp() + levelUpInfo.getRewardGp());
			}
		}

		if (room.getBlueKills() > room.getRedKills())
		{
		
		}
		else if (room.getBlueKills() < room.getRedKills())
		{

		
		
		writeH(383); // &#209;‡&#209;‚&#208;&#190; &#209;�&#209;‚&#208;&#190;???
		writeH(266); // &#209;‡&#209;‚&#208;&#190; &#209;�&#209;‚&#208;&#190;???

		// &#208;ž&#208;&#191;&#209;‹&#209;‚
		for (int i = 0; i < 16; i++) {
			RoomSlot slot = room.getRoomSlot(i);
			writeH(slot.getAllExp());
		}
		// &#208;ž&#209;‡&#208;&#186;&#208;&#184;
		for (int i = 0; i < 16; i++) {
			RoomSlot slot = room.getRoomSlot(i);
			writeH(slot.getAllGp());
		}
		//&#208;ž&#209;‡&#208;&#186;&#208;&#184; &#208;·&#208;° &#208;±&#208;&#190;&#209;‚&#208;&#190;&#208;&#178;
		for (int i = 0; i < 16; i++) {
			if (room.getSpecial() == 6) {
				RoomSlot slot = room.getRoomSlot(i);
				int score = slot.getBotScore();
				writeH(score);
			} else writeH(0);
		}

		writeB(new byte[]{
				0x00, 0x00, 0x00, 0x00, 0x00, 0x00,//
				0x00, 0x00, 0x00, 0x00, 0x00, 0x00,//
				0x00, 0x00, 0x00, 0x00, 0x00, 0x00,//
				0x00, 0x00, 0x00, 0x00, 0x00, 0x00,//
				0x00, 0x00, 0x00, 0x00, 0x00, 0x00,//
				0x00, 0x00,//
				// &#208;&#184; &#209;‚&#209;ƒ&#209;‚ &#208;&#165;&#208;—
				0x00, 0x00, 0x00, 0x00, 0x00, 0x00,//
				0x00, 0x00, 0x00, 0x00, 0x00, 0x00,//
				0x00, 0x00, 0x00, 0x00
				//
		});

		writeS(player.getName(), Player.MAX_NAME_SIZE); // &#208;˜&#208;&#188;&#209;� &#208;&#191;&#208;µ&#209;€&#209;�&#208;°
		writeD(player.getExp()); // &#208;&#190;&#208;&#191;&#209;‹&#209;‚
		writeD(player.getRank()); // &#209;€&#208;°&#208;&#189;&#208;&#186; (0-54)
		writeD(player.getRank()); // &#208;Ÿ&#208;&#190;&#208;&#186;&#208;° &#208;&#189;&#208;µ &#208;&#191;&#208;&#190;&#208;&#189;&#209;�&#209;‚&#208;&#189;&#208;&#190; &#208;·&#208;° &#209;‡&#208;µ&#208;&#179;&#208;&#190; &#208;&#190;&#209;‚&#208;&#178;&#208;µ&#209;‡&#208;°&#209;Ž&#209;‚ &#208;&#191;&#209;ƒ&#209;�&#209;‚&#209;‹&#208;µ &#208;±&#208;°&#208;&#185;&#209;‚&#209;‹...
		writeD(player.getGp()); // &#208;“&#208;Ÿ
		writeD(con.getAccount().getMoney()); // &#208;-&#209;ƒ&#208;±&#208;»&#208;&#184;&#208;&#186;&#208;&#184;

		writeD(0); // ClanID
		writeD(0); // ClanNameColor
		writeD(0); // Unk
		writeD(0); // Unk
		
		writeH(player.getPcCafe());
		writeC(player.getColor()); // 0-9 Color name

		if (player.getClan() == null) {
			writeS("", 16);
			writeC(0);
			writeH(0);
			writeC(255);
			writeC(255);
			writeC(255);
			writeC(255);
			writeH(0);
		} else {
			writeS(player.getClan().getName(), 16);
			writeC(0); // unk - &#208;’&#208;&#184;&#208;&#180;&#208;&#184;&#208;&#188;&#208;&#190; &#209;€&#208;°&#208;·&#208;&#180;&#208;µ&#208;»&#208;&#184;&#209;‚&#208;µ&#208;»&#209;Œ
			writeH(player.getClan().getRank());
			writeC(player.getClan().getLogo1());
			writeC(player.getClan().getLogo2());
			writeC(player.getClan().getLogo3());
			writeC(player.getClan().getLogo4());
			writeH(player.getClan().getColor());
		}

	
		writeD(0); 
		writeD(0); 
		writeD(0); 

		writeD(player.getStats().getFights());
		writeD(player.getStats().getWins());
		writeD(player.getStats().getLosts());
		writeD(0); // unk
		writeD(player.getStats().getKills());
		writeD(player.getStats().getHeadSort());
		writeD(player.getStats().getDeaths());
		writeD(0); // unk
		writeD(player.getStats().getKills());
		writeD(player.getStats().getEscapes());
		writeD(player.getStats().getFights());
		writeD(player.getStats().getWins());
		writeD(player.getStats().getLosts());
		writeD(0); // unk
		writeD(player.getStats().getKills());
		writeD(player.getStats().getHeadSort());
		writeD(player.getStats().getDeaths());
		writeD(0); // unk
		writeD(player.getStats().getKills());
		writeD(player.getStats().getEscapes());

		writeB(new byte[53]);
	}
	
	
	
	
	
}
Exile03 вне форума Ответить с цитированием