public override void run() { try { Account player = _client._player; Room room = player == null ? null : player._room; if (teamIdx < 2 && room != null && (player.LastSlotChange == new DateTime() || (DateTime.Now - player.LastSlotChange).TotalSeconds >= 1.5) && !room.changingSlots) { SLOT slot = room.getSlot(player._slotId); if (slot != null && teamIdx != slot._team && slot.state == SLOT_STATE.NORMAL) { player.LastSlotChange = DateTime.Now; Monitor.Enter(room._slots); room.changingSlots = true; List <SLOT_CHANGE> changeList = new List <SLOT_CHANGE>(); room.SwitchNewSlot(changeList,player,slot,teamIdx); if (changeList.Count > 0) { using (ROOM_CHANGE_SLOTS_PAK packet = new ROOM_CHANGE_SLOTS_PAK(changeList,room._leader,0)) room.SendPacketToPlayers(packet); } room.changingSlots = false; Monitor.Exit(room._slots); } } } catch (Exception ex) { SaveLog.fatal(ex.ToString()); Printf.b_danger("[ROOM_CHANGE_SLOT_REC.run] Erro fatal!"); } }
public override void run() { try { Account player = this._client._player; Room room = player == null ? (Room)null : player._room; if (this.teamIdx >= 2 || room == null || !(player.LastSlotChange == new DateTime()) && (DateTime.Now - player.LastSlotChange).TotalSeconds < 1.5 || room.changingSlots) { return; } SLOT slot = room.getSlot(player._slotId); if (slot == null || this.teamIdx == slot._team || slot.state != SLOT_STATE.NORMAL) { return; } player.LastSlotChange = DateTime.Now; Monitor.Enter((object)room._slots); room.changingSlots = true; List <SLOT_CHANGE> slots = new List <SLOT_CHANGE>(); room.SwitchNewSlot(slots,player,slot,this.teamIdx); if (slots.Count > 0) { using (ROOM_CHANGE_SLOTS_PAK roomChangeSlotsPak = new ROOM_CHANGE_SLOTS_PAK(slots,room._leader,0)) room.SendPacketToPlayers((SendPacket)roomChangeSlotsPak); } room.changingSlots = false; Monitor.Exit((object)room._slots); } catch (Exception ex) { Logger.warning("[ROOM_CHANGE_SLOT_REC] " + ex.ToString()); } }
public override void run() { try { Account player = this._client._player; Room room = player == null ? (Room)null : player._room; if (room == null || room._leader != player._slotId || (room._state != RoomState.Ready || room.changingSlots)) { return; } Monitor.Enter((object)room._slots); room.changingSlots = true; foreach (int oldSlotId in room.RED_TEAM) { int newSlotId = oldSlotId + 1; if (oldSlotId == room._leader) { room._leader = newSlotId; } else if (newSlotId == room._leader) { room._leader = oldSlotId; } room.SwitchSlots(this.changeList, newSlotId, oldSlotId, true); } if (this.changeList.Count > 0) { using (ROOM_CHANGE_SLOTS_PAK roomChangeSlotsPak = new ROOM_CHANGE_SLOTS_PAK(this.changeList, room._leader, 2)) { byte[] completeBytes = roomChangeSlotsPak.GetCompleteBytes("ROOM_CHANGE_TEAM_REC"); foreach (Account allPlayer in room.getAllPlayers()) { allPlayer._slotId = AllUtils.getNewSlotId(allPlayer._slotId); Logger.LogProblems("[ROOM_CHANGE_TEAM_REC] Jogador '" + (object)allPlayer.player_id + "' '" + allPlayer.player_name + "'; NewSlot: " + (object)allPlayer._slotId, "errorC"); allPlayer.SendCompletePacket(completeBytes); } } } room.changingSlots = false; Monitor.Exit((object)room._slots); } catch (Exception ex) { Logger.info("ROOM_CHANGE_TEAM_REC: " + ex.ToString()); } }
public override void run() { try { Account p = _client._player; Room r = p == null ? null : p._room; if (r != null && r._leader == p._slotId && r._state == RoomState.Ready && !r.changingSlots) { Monitor.Enter(r._slots); r.changingSlots = true; foreach (int slotIdx in r.RED_TEAM) { int NewId = (slotIdx + 1); if (slotIdx == r._leader) { r._leader = NewId; } else if (NewId == r._leader) { r._leader = slotIdx; } r.SwitchSlots(changeList, NewId, slotIdx, true); } if (changeList.Count > 0) { using (ROOM_CHANGE_SLOTS_PAK packet = new ROOM_CHANGE_SLOTS_PAK(changeList, r._leader, 2)) { byte[] data = packet.GetCompleteBytes(); foreach (Account ac in r.getAllPlayers()) { ac._slotId = AllUtils.getNewSlotId(ac._slotId); //Logger.LogProblems("[ROOM_CHANGE_TEAM_REC] Jogador '" + ac.player_id + "' '" + ac.player_name + "'; NewSlot: " + ac._slotId, "errorC"); ac.SendCompletePacket(data); } } } r.changingSlots = false; Monitor.Exit(r._slots); } } catch (Exception ex) { SaveLog.fatal(ex.ToString()); Printf.b_danger("[ROOM_CHANGE_TEAM_REC.run] Erro fatal!"); } }