Пример #1
0
 public override void run()
 {
     try
     {
         Account player = this._client._player;
         Room    room   = player == null ? (Room)null : player._room;
         if (room == null || room._state != RoomState.Battle || player._slotId == this.slotIdx)
         {
             return;
         }
         SLOT slot = room.getSlot(player._slotId);
         if (slot == null || slot.state != SLOT_STATE.BATTLE || room._slots[this.slotIdx].state != SLOT_STATE.BATTLE)
         {
             return;
         }
         int RedPlayers;
         int BluePlayers;
         room.getPlayingPlayers(true,out RedPlayers,out BluePlayers);
         if (player._rank < ConfigGS.minRankVote && !player.HaveGMLevel())
         {
             this.erro = 2147487972U;
         }
         else if (room.vote.Timer != null)
         {
             this.erro = 2147487968U;
         }
         else if (slot.NextVoteDate > DateTime.Now)
         {
             this.erro = 2147487969U;
         }
         this._client.SendPacket((SendPacket) new VOTEKICK_CHECK_PAK(this.erro));
         if (this.erro > 0U)
         {
             return;
         }
         slot.NextVoteDate = DateTime.Now.AddMinutes(1.0);
         room.votekick     = new VoteKick(slot._id, this.slotIdx)
         {
             motive = this.motive
         };
         this.ChargeVoteKickArray(room);
         using (VOTEKICK_START_PAK votekickStartPak = new VOTEKICK_START_PAK(room.votekick))
             room.SendPacketToPlayers((SendPacket)votekickStartPak, SLOT_STATE.BATTLE, 0, player._slotId, this.slotIdx);
         AllUtils.LogVotekickStart(room, player, slot);
         room.StartVote();
     }
     catch (Exception ex)
     {
         Logger.info("VOTEKICK_START_REC: " + ex.ToString());
     }
 }