private bool addPlayerToTeam(Player player,int[] team) { foreach (int slotId in team) { SLOT slot = getRoomSlot(slotId); if (slot.getState() == SLOT_STATE.SLOT_STATE_EMPTY) { slot.setPlayer(player); slot.setState(SLOT_STATE.SLOT_STATE_NORMAL); players.Add(player.PlayerID,player); return(true); } } return(false); }
public SLOT changeTeam(Player player,int team) { SLOT slot = getRoomSlotByPlayer(player); foreach (int teamSlot in team == 0 ? RED_TEAM : BLUE_TEAM) { SLOT rslot = ROOM_SLOT[teamSlot]; if (player.Equals(rslot.getPlayer()) || rslot.getState() == SLOT_STATE.SLOT_STATE_EMPTY) { slot.setPlayer(null); slot.setState(SLOT_STATE.SLOT_STATE_EMPTY); rslot.setPlayer(player); rslot.setState(SLOT_STATE.SLOT_STATE_NORMAL); return(rslot); } } return(null); }
public void RoomTask(int channel,Room room) { int countPlayerPrestart = 0; foreach (Player player in room.getPlayers().Values) { SLOT slot = room.getRoomSlotByPlayer(player); if ((int)slot.getState() > 8 && (int)slot.getState() < 12) { countPlayerPrestart++; } } SLOT leader = room.getRoomSlotByPlayer(room.getLeader()); if ((int)leader.getState() < 13) { if (countPlayerPrestart == 0) { if ((int)leader.getState() < 13) { foreach (Player member in room.getPlayers().Values) { SLOT playerSlot = room.getRoomSlotByPlayer(member); if (playerSlot.getState() == SLOT_STATE.SLOT_STATE_BATTLE_READY) { playerSlot.setState(SLOT_STATE.SLOT_STATE_BATTLE); member.getClient().SendPacket(new PROTOCOL_BATTLE_STARTBATTLE_ACK(room,member)); foreach (Player toSend in room.getPlayers().Values) { if (!toSend.Equals(member)) { SLOT toSendplayerSlot = room.getRoomSlotByPlayer(toSend); if ((int)toSendplayerSlot.getState() > 11) { member.getClient().SendPacket(new PROTOCOL_BATTLE_STARTBATTLE_ACK(room,toSend)); } } } member.getClient().SendPacket(new opcode_3865_ACK()); member.getClient().SendPacket(new PROTOCOL_BATTLE_ROUND_START(room)); } } } } } else { foreach (Player player in room.getPlayers().Values) { SLOT playerSlot = room.getRoomSlotByPlayer(player); if ((int)playerSlot.getState() == 12) { player.getClient().SendPacket(new opcode_3890_ACK(room)); playerSlot.setState(SLOT_STATE.SLOT_STATE_BATTLE); player.getClient().SendPacket(new PROTOCOL_BATTLE_STARTBATTLE_ACK(room,player)); foreach (Player player1 in room.getPlayers().Values) { SLOT why = room.ROOM_SLOT[player1.getSlot()]; if ((int)why.getState() == 13 && !player.Equals(player1)) { player1.getClient().SendPacket(new PROTOCOL_BATTLE_STARTBATTLE_ACK(room,player)); player.getClient().SendPacket(new PROTOCOL_BATTLE_STARTBATTLE_ACK(room,player1)); } } player.getClient().SendPacket(new opcode_3865_ACK()); player.getClient().SendPacket(new PROTOCOL_BATTLE_ROUND_START(room)); } } } foreach (Player member in room.getPlayers().Values) { member.getClient().SendPacket(new PROTOCOL_ROOM_INFO_ACK(room)); } Logger.Info("{0}",leader.getState()); }