Ejemplo n.º 1
0
        public static string SetFakeNick(string str, Account player, Room room)
        {
            string name = str.Substring(11);

            if (name.Length > ConfigGS.maxNickSize || name.Length < ConfigGS.minNickSize)
            {
                return(Translation.GetLabel("FakeNickWrongLength"));
            }
            if (PlayerManager.isPlayerNameExist(name))
            {
                return(Translation.GetLabel("FakeNickAlreadyExist"));
            }
            if (!ComDiv.updateDB("accounts", "player_name", (object)name, "player_id", (object)player.player_id))
            {
                return(Translation.GetLabel("FakeNickFail"));
            }
            player.player_name = name;
            player.SendPacket((SendPacket) new AUTH_CHANGE_NICKNAME_PAK(name));
            if (room != null)
            {
                using (ROOM_GET_NICKNAME_PAK roomGetNicknamePak = new ROOM_GET_NICKNAME_PAK(player._slotId, player.player_name, player.name_color))
                    room.SendPacketToPlayers((SendPacket)roomGetNicknamePak);
            }
            if (player.clanId > 0)
            {
                using (CLAN_MEMBER_INFO_UPDATE_PAK memberInfoUpdatePak = new CLAN_MEMBER_INFO_UPDATE_PAK(player))
                    ClanManager.SendPacket((SendPacket)memberInfoUpdatePak, player.clanId, -1L, true, true);
            }
            AllUtils.syncPlayerToFriends(player, true);
            return(Translation.GetLabel("FakeNickSuccess", (object)name));
        }
Ejemplo n.º 2
0
        public void Close(int time, bool kicked = false)
        {
            if (!closed)
            {
                try
                {
                    closed = true;
                    GameManager.RemoveSocket(this);
                    Account p = _player;
                    if (player_id > 0 && p != null)
                    {
                        Channel ch    = p.getChannel();
                        Room    room  = p._room;
                        Match   match = p._match;
                        p.setOnlineStatus(false);
                        if (room != null)
                        {
                            room.RemovePlayer(p, false, kicked ? 1 : 0);
                        }
                        if (match != null)
                        {
                            match.RemovePlayer(p);
                        }
                        if (ch != null)
                        {
                            ch.RemovePlayer(p);
                        }
                        p._status.ResetData(player_id);

                        AllUtils.syncPlayerToFriends(p, false);
                        AllUtils.syncPlayerToClanMembers(p);

                        p.SimpleClear();
                        p.updateCacheInfo();
                        _player = null;
                    }
                    player_id = 0;
                }
                catch (Exception ex)
                {
                    SaveLog.fatal("Error by: " + player_id + "\n" + ex.ToString());
                    Printf.b_danger("[GameClient.Close] Erro fatal!");
                }
            }
            if (_client != null)
            {
                _client.Close(time);
            }
            Dispose();
        }
Ejemplo n.º 3
0
        public override void run()
        {
            try
            {
                if (_client == null)
                {
                    return;
                }
                Account player = _client._player;
                if (player == null)
                {
                    return;
                }
                player.LastLobbyEnter = DateTime.Now;
                if (player.channelId >= 0)
                {
                    Channel ch = player.getChannel();
                    if (ch != null)
                    {
                        ch.AddPlayer(player.Session);
                    }
                }
                Room room = player._room;
                if (room != null)
                {
                    if (player._slotId >= 0 && (int)room._state >= 2 && (int)room._slots[player._slotId].state >= 9)
                    {
                        goto JumpToPacket;
                    }
                    else
                    {
                        room.RemovePlayer(player, false);
                    }
                }
                AllUtils.syncPlayerToFriends(player, false);
                AllUtils.syncPlayerToClanMembers(player);
                AllUtils.GetXmasReward(player);
JumpToPacket:
                _client.SendPacket(new LOBBY_ENTER_PAK());
            }
            catch (Exception ex)
            {
                SaveLog.fatal(ex.ToString());
                Printf.b_danger("[LOBBY_ENTER_REC.run] Erro fatal!");
            }
        }
Ejemplo n.º 4
0
        public override void run()
        {
            try
            {
                if (this._client == null)
                {
                    return;
                }
                Account player = this._client._player;
                if (player == null)
                {
                    return;
                }
                player.LastLobbyEnter = DateTime.Now;
                if (player.channelId >= 0)
                {
                    player.getChannel().AddPlayer(player.Session);
                }
                Room room = player._room;
                if (room != null)
                {
                    if (player._slotId < 0 || room._state < RoomState.Loading || room._slots[player._slotId].state < SLOT_STATE.LOAD)
                    {
                        room.RemovePlayer(player, false, 0);
                    }
                    else
                    {
                        goto label_9;
                    }
                }
                AllUtils.syncPlayerToFriends(player, false);
                AllUtils.syncPlayerToClanMembers(player);
                AllUtils.GetXmasReward(player);
label_9:
                this._client.SendPacket((SendPacket) new LOBBY_ENTER_PAK());
            }
            catch (Exception ex)
            {
                Logger.warning("[LOBBY_ENTER_REC] " + ex.ToString());
            }
        }
Ejemplo n.º 5
0
 public override void run()
 {
     try
     {
         if (_client == null || _client._player == null)
         {
             return;
         }
         Account player  = _client._player;
         Channel channel = player.getChannel();
         if (player._room != null || player._match != null)
         {
             return;
         }
         if (channel == null || player.Session == null || !channel.RemovePlayer(player))
         {
             erro = 0x80000000;
         }
         _client.SendPacket(new LOBBY_LEAVE_PAK(erro));
         if (erro == 0)
         {
             player.ResetPages();
             player._status.updateChannel(255);
             AllUtils.syncPlayerToFriends(player, false);
             AllUtils.syncPlayerToClanMembers(player);
         }
         else
         {
             _client.Close(1000);
         }
     }
     catch (Exception ex)
     {
         SaveLog.fatal(ex.ToString());
         Printf.b_danger("[LOBBY_LEAVE_REC.AddItems] Erro fatal!");
         _client.SendPacket(new LOBBY_LEAVE_PAK(0x80000000));
         _client.Close(1000);
     }
 }
Ejemplo n.º 6
0
 public override void run()
 {
     try
     {
         if (this._client == null || this._client._player == null)
         {
             return;
         }
         Account player  = this._client._player;
         Channel channel = player.getChannel();
         if (player._room != null || player._match != null)
         {
             return;
         }
         if (channel == null || player.Session == null || !channel.RemovePlayer(player))
         {
             this.erro = 2147483648U;
         }
         this._client.SendPacket((SendPacket) new LOBBY_LEAVE_PAK(this.erro));
         if (this.erro == 0U)
         {
             player.ResetPages();
             player._status.updateChannel(byte.MaxValue);
             AllUtils.syncPlayerToFriends(player, false);
             AllUtils.syncPlayerToClanMembers(player);
         }
         else
         {
             this._client.Close(1000, false);
         }
     }
     catch (Exception ex)
     {
         Logger.info("LOBBY_LEAVE_REC: " + ex.ToString());
         this._client.SendPacket((SendPacket) new LOBBY_LEAVE_PAK(2147483648U));
         this._client.Close(1000, false);
     }
 }
Ejemplo n.º 7
0
 public void Close(int time, bool kicked = false)
 {
     if (!this.closed)
     {
         try
         {
             this.closed = true;
             GameManager.RemoveSocket(this);
             Account player = this._player;
             if (this.player_id > 0L && player != null)
             {
                 Channel channel = player.getChannel();
                 Room    room    = player._room;
                 Match   match   = player._match;
                 player.setOnlineStatus(false);
                 room.RemovePlayer(player, false, kicked ? 1 : 0);
                 match.RemovePlayer(player);
                 channel.RemovePlayer(player);
                 player._status.ResetData(this.player_id);
                 AllUtils.syncPlayerToFriends(player, false);
                 AllUtils.syncPlayerToClanMembers(player);
                 player.SimpleClear();
                 player.updateCacheInfo();
                 this._player = (Account)null;
             }
             this.player_id = 0L;
         }
         catch (Exception ex)
         {
             Logger.warning("Error by: " + (object)this.player_id + "\n" + ex.ToString());
         }
     }
     if (this._client != null)
     {
         this._client.Close(time);
     }
     this.Dispose();
 }
        /// <summary>
        /// Gera efeitos dos cupons na Database.
        /// </summary>
        /// <param name="cuponId">Id do cupom</param>
        /// <param name="cuponDays">Dias do cupom</param>
        /// <param name="p">Jogador</param>
        private void CreateCuponEffects(int cupomId, uint cuponDays, Account p)
        {
            switch (cupomId)
            {
            case 1201051000:
                if (string.IsNullOrEmpty(txt) || txt.Length > 16)
                {
                    erro = 0x80001076;
                }
                else
                {
                    Clan cln = ClanManager.getClan(p.clanId);
                    if (cln._id > 0 && cln.owner_id == _client.player_id)
                    {
                        if (!ClanManager.isClanNameExist(txt) && ComDiv.updateDB("clan_data", "clan_name", txt, "clan_id", p.clanId))
                        {
                            cln._name = txt;
                            using (CLAN_CHANGE_NAME_PAK packet = new CLAN_CHANGE_NAME_PAK(txt))
                                ClanManager.SendPacket(packet, p.clanId, -1, true, true);
                        }
                        else
                        {
                            erro = 0x80001076;
                        }
                    }
                    else
                    {
                        erro = 0x80001076;
                    }
                }
                break;

            case 1201052000:
                Clan clan = ClanManager.getClan(p.clanId);
                if (clan._id > 0 && clan.owner_id == _client.player_id && !ClanManager.isClanLogoExist((uint)objetivo) &&
                    PlayerManager.updateClanLogo(p.clanId, (uint)objetivo))
                {
                    clan._logo = (uint)objetivo;
                    using (CLAN_CHANGE_LOGO_PAK packet = new CLAN_CHANGE_LOGO_PAK((uint)objetivo))
                        ClanManager.SendPacket(packet, p.clanId, -1, true, true);
                }
                else
                {
                    erro = 0x80000000;
                }
                break;

            case 1201047000:
                if (string.IsNullOrEmpty(txt) || txt.Length < ConfigGS.minNickSize || txt.Length > ConfigGS.maxNickSize ||
                    p._inventory.getItem(1200010000) != null)
                {
                    erro = 0x80000000;
                }
                else if (!PlayerManager.isPlayerNameExist(txt))
                {
                    if (ComDiv.updateDB("contas", "player_name", txt, "player_id", p.player_id))
                    {
                        AllUtils.AddNickHistory(p.player_id, p.player_name, txt);
                        p.player_name = txt;
                        if (p._room != null)
                        {
                            using (ROOM_GET_NICKNAME_PAK packet = new ROOM_GET_NICKNAME_PAK(p._slotId, p.player_name, p.name_color))
                                p._room.SendPacketToPlayers(packet);
                        }
                        _client.SendPacket(new AUTH_CHANGE_NICKNAME_PAK(p.player_name));
                        if (p.clanId > 0)
                        {
                            using (CLAN_MEMBER_INFO_UPDATE_PAK packet = new CLAN_MEMBER_INFO_UPDATE_PAK(p))
                                ClanManager.SendPacket(packet, p.clanId, -1, true, true);
                        }
                        AllUtils.syncPlayerToFriends(p, true);
                    }
                    else
                    {
                        erro = 0x80000000;
                    }
                }
                else
                {
                    erro = 2147483923;
                }
                break;

            case 1200006000:
                if (ComDiv.updateDB("contas", "name_color", (int)objetivo, "player_id", p.player_id))
                {
                    p.name_color = (int)objetivo;
                    _client.SendPacket(new INVENTORY_ITEM_CREATE_PAK(1, p, new ItemsModel(cupomId, 3, "NameColor [Active]", 2, cuponDays, 0)));
                    _client.SendPacket(new BASE_2612_PAK(p));
                    if (p._room != null)
                    {
                        using (ROOM_GET_NICKNAME_PAK packet = new ROOM_GET_NICKNAME_PAK(p._slotId, p.player_name, p.name_color))
                            p._room.SendPacketToPlayers(packet);
                    }
                }
                else
                {
                    erro = 0x80000000;
                }
                break;

            case 1200009000:
                if ((int)objetivo >= 51 || (int)objetivo < p._rank - 10 || (int)objetivo > p._rank + 10)
                {
                    erro = 0x80000000;
                }
                else if (ComDiv.updateDB("player_bonus", "fakerank", (int)objetivo, "player_id", p.player_id))
                {
                    p._bonus.fakeRank = (int)objetivo;
                    _client.SendPacket(new BASE_USER_EFFECTS_PAK(info.Length, p._bonus));
                    _client.SendPacket(new INVENTORY_ITEM_CREATE_PAK(1, p, new ItemsModel(cupomId, 3, "Patente falsa [Active]", 2, cuponDays, 0)));
                    if (p._room != null)
                    {
                        p._room.updateSlotsInfo();
                    }
                }
                else
                {
                    erro = 0x80000000;
                }
                break;

            case 1200010000:
                if (string.IsNullOrEmpty(txt) || txt.Length < ConfigGS.minNickSize || txt.Length > ConfigGS.maxNickSize)
                {
                    erro = 0x80000000;
                }
                else if (ComDiv.updateDB("player_bonus", "fakenick", p.player_name, "player_id", p.player_id) &&
                         ComDiv.updateDB("contas", "player_name", txt, "player_id", p.player_id))
                {
                    p._bonus.fakeNick = p.player_name;
                    p.player_name     = txt;
                    _client.SendPacket(new BASE_USER_EFFECTS_PAK(info.Length, p._bonus));
                    _client.SendPacket(new AUTH_CHANGE_NICKNAME_PAK(p.player_name));
                    _client.SendPacket(new INVENTORY_ITEM_CREATE_PAK(1, p, new ItemsModel(cupomId, 3, "FakeNick [Active]", 2, cuponDays, 0)));
                    if (p._room != null)
                    {
                        p._room.updateSlotsInfo();
                    }
                }
                else
                {
                    erro = 0x80000000;
                }
                break;

            case 1200014000:
                if (ComDiv.updateDB("player_bonus", "sightcolor", (int)objetivo, "player_id", p.player_id))
                {
                    p._bonus.sightColor = (int)objetivo;
                    _client.SendPacket(new BASE_USER_EFFECTS_PAK(info.Length, p._bonus));
                    _client.SendPacket(new INVENTORY_ITEM_CREATE_PAK(1, p, new ItemsModel(cupomId, 3, "Cor da mira [Active]", 2, cuponDays, 0)));
                }
                else
                {
                    erro = 0x80000000;
                }
                break;

            case 1200005000:
                Clan c = ClanManager.getClan(p.clanId);
                if (c._id > 0 && c.owner_id == _client.player_id && ComDiv.updateDB("clan_data", "color", (int)objetivo, "clan_id", c._id))
                {
                    c._name_color = (int)objetivo;
                    _client.SendPacket(new CLAN_CHANGE_NAME_COLOR_PAK((byte)c._name_color));
                }
                else
                {
                    erro = 0x80000000;
                }
                break;

            case 1201085000:
                if (p._room != null)
                {
                    Account pR = p._room.getPlayerBySlot((int)objetivo);
                    if (pR != null)
                    {
                        _client.SendPacket(new ROOM_INSPECTPLAYER_PAK(pR));
                    }
                    else
                    {
                        erro = 0x80000000;
                    }
                }
                else
                {
                    erro = 0x80000000;
                }
                break;

            default:
                SaveLog.error("[ITEM_EFFECT] Efeito do cupom não encontrado! Id: " + cupomId);
                erro = 0x80000000;
                break;
            }
        }
Ejemplo n.º 9
0
        private void CreateCuponEffects(int cupomId, uint cuponDays, Account p)
        {
            switch (cupomId)
            {
            case 1200005000:
                Clan clan1 = ClanManager.getClan(p.clanId);
                if (clan1._id > 0 && clan1.owner_id == this._client.player_id && ComDiv.updateDB("clan_data", "color", (object)(int)this.objetivo, "clan_id", (object)clan1._id))
                {
                    clan1._name_color = (int)this.objetivo;
                    this._client.SendPacket((SendPacket) new CLAN_CHANGE_NAME_COLOR_PAK((byte)clan1._name_color));
                    break;
                }
                this.erro = 2147483648U;
                break;

            case 1200006000:
                if (ComDiv.updateDB("accounts", "name_color", (object)(int)this.objetivo, "player_id", (object)p.player_id))
                {
                    p.name_color = (int)this.objetivo;
                    this._client.SendPacket((SendPacket) new INVENTORY_ITEM_CREATE_PAK(1, p, new ItemsModel(cupomId, 3, "NameColor [Active]", 2, cuponDays, 0L)));
                    this._client.SendPacket((SendPacket) new BASE_2612_PAK(p));
                    if (p._room == null)
                    {
                        break;
                    }
                    using (ROOM_GET_NICKNAME_PAK roomGetNicknamePak = new ROOM_GET_NICKNAME_PAK(p._slotId, p.player_name, p.name_color))
                    {
                        p._room.SendPacketToPlayers((SendPacket)roomGetNicknamePak);
                        break;
                    }
                }
                else
                {
                    this.erro = 2147483648U;
                    break;
                }

            case 1200009000:
                if ((int)this.objetivo >= 51 || (int)this.objetivo < p._rank - 10 || (int)this.objetivo > p._rank + 10)
                {
                    this.erro = 2147483648U;
                    break;
                }
                if (ComDiv.updateDB("player_bonus", "fakerank", (object)(int)this.objetivo, "player_id", (object)p.player_id))
                {
                    p._bonus.fakeRank = (int)this.objetivo;
                    this._client.SendPacket((SendPacket) new BASE_USER_EFFECTS_PAK(this.info.Length, p._bonus));
                    this._client.SendPacket((SendPacket) new INVENTORY_ITEM_CREATE_PAK(1, p, new ItemsModel(cupomId, 3, "Patente falsa [Active]", 2, cuponDays, 0L)));
                    if (p._room == null)
                    {
                        break;
                    }
                    p._room.updateSlotsInfo();
                    break;
                }
                this.erro = 2147483648U;
                break;

            case 1200010000:
                if (string.IsNullOrEmpty(this.txt) || this.txt.Length < ConfigGS.minNickSize || this.txt.Length > ConfigGS.maxNickSize)
                {
                    this.erro = 2147483648U;
                    break;
                }
                if (ComDiv.updateDB("player_bonus", "fakenick", (object)p.player_name, "player_id", (object)p.player_id) && ComDiv.updateDB("accounts", "player_name", (object)this.txt, "player_id", (object)p.player_id))
                {
                    p._bonus.fakeNick = p.player_name;
                    p.player_name     = this.txt;
                    this._client.SendPacket((SendPacket) new BASE_USER_EFFECTS_PAK(this.info.Length, p._bonus));
                    this._client.SendPacket((SendPacket) new AUTH_CHANGE_NICKNAME_PAK(p.player_name));
                    this._client.SendPacket((SendPacket) new INVENTORY_ITEM_CREATE_PAK(1, p, new ItemsModel(cupomId, 3, "FakeNick [Active]", 2, cuponDays, 0L)));
                    if (p._room == null)
                    {
                        break;
                    }
                    p._room.updateSlotsInfo();
                    break;
                }
                this.erro = 2147483648U;
                break;

            case 1200014000:
                if (ComDiv.updateDB("player_bonus", "sightcolor", (object)(int)this.objetivo, "player_id", (object)p.player_id))
                {
                    p._bonus.sightColor = (int)this.objetivo;
                    this._client.SendPacket((SendPacket) new BASE_USER_EFFECTS_PAK(this.info.Length, p._bonus));
                    this._client.SendPacket((SendPacket) new INVENTORY_ITEM_CREATE_PAK(1, p, new ItemsModel(cupomId, 3, "Cor da mira [Active]", 2, cuponDays, 0L)));
                    break;
                }
                this.erro = 2147483648U;
                break;

            case 1201047000:
                if (string.IsNullOrEmpty(this.txt) || this.txt.Length < ConfigGS.minNickSize || (this.txt.Length > ConfigGS.maxNickSize || p._inventory.getItem(1200010000) != null))
                {
                    this.erro = 2147483648U;
                    break;
                }
                if (!PlayerManager.isPlayerNameExist(this.txt))
                {
                    if (ComDiv.updateDB("accounts", "player_name", (object)this.txt, "player_id", (object)p.player_id))
                    {
                        NickHistoryManager.CreateHistory(p.player_id, p.player_name, this.txt, "Change nick");
                        p.player_name = this.txt;
                        if (p._room != null)
                        {
                            using (ROOM_GET_NICKNAME_PAK roomGetNicknamePak = new ROOM_GET_NICKNAME_PAK(p._slotId, p.player_name, p.name_color))
                                p._room.SendPacketToPlayers((SendPacket)roomGetNicknamePak);
                        }
                        this._client.SendPacket((SendPacket) new AUTH_CHANGE_NICKNAME_PAK(p.player_name));
                        if (p.clanId > 0)
                        {
                            using (CLAN_MEMBER_INFO_UPDATE_PAK memberInfoUpdatePak = new CLAN_MEMBER_INFO_UPDATE_PAK(p))
                                ClanManager.SendPacket((SendPacket)memberInfoUpdatePak, p.clanId, -1L, true, true);
                        }
                        AllUtils.syncPlayerToFriends(p, true);
                        break;
                    }
                    this.erro = 2147483648U;
                    break;
                }
                this.erro = 2147483923U;
                break;

            case 1201051000:
                if (string.IsNullOrEmpty(this.txt) || this.txt.Length > 16)
                {
                    this.erro = 2147483648U;
                    break;
                }
                Clan clan2 = ClanManager.getClan(p.clanId);
                if (clan2._id > 0 && clan2.owner_id == this._client.player_id)
                {
                    if (!ClanManager.isClanNameExist(this.txt) && ComDiv.updateDB("clan_data", "clan_name", (object)this.txt, "clan_id", (object)p.clanId))
                    {
                        clan2._name = this.txt;
                        using (CLAN_CHANGE_NAME_PAK clanChangeNamePak = new CLAN_CHANGE_NAME_PAK(this.txt))
                        {
                            ClanManager.SendPacket((SendPacket)clanChangeNamePak, p.clanId, -1L, true, true);
                            break;
                        }
                    }
                    else
                    {
                        this.erro = 2147483648U;
                        break;
                    }
                }
                else
                {
                    this.erro = 2147483648U;
                    break;
                }

            case 1201052000:
                Clan clan3 = ClanManager.getClan(p.clanId);
                if (clan3._id > 0 && clan3.owner_id == this._client.player_id && (!ClanManager.isClanLogoExist(this.objetivo) && PlayerManager.updateClanLogo(p.clanId, this.objetivo)))
                {
                    clan3._logo = this.objetivo;
                    using (CLAN_CHANGE_LOGO_PAK clanChangeLogoPak = new CLAN_CHANGE_LOGO_PAK(this.objetivo))
                    {
                        ClanManager.SendPacket((SendPacket)clanChangeLogoPak, p.clanId, -1L, true, true);
                        break;
                    }
                }
                else
                {
                    this.erro = 2147483648U;
                    break;
                }

            case 1201085000:
                if (p._room != null)
                {
                    Account playerBySlot = p._room.getPlayerBySlot((int)this.objetivo);
                    if (playerBySlot != null)
                    {
                        this._client.SendPacket((SendPacket) new ROOM_INSPECTPLAYER_PAK(playerBySlot));
                        break;
                    }
                    this.erro = 2147483648U;
                    break;
                }
                this.erro = 2147483648U;
                break;

            default:
                Logger.error("[ITEM_EFFECT] Efeito do cupom não encontrado! Id: " + (object)cupomId);
                this.erro = 2147483648U;
                break;
            }
        }