Example #1
0
        public override void run()
        {
            Account player = this._client._player;

            if (player == null)
            {
                return;
            }
            PlayerConfig config = player._config;

            if (config == null)
            {
                return;
            }
            if ((this.type & 1) == 1)
            {
                PlayerManager.updateConfigs(this.query, config);
            }
            if ((this.type & 2) == 2)
            {
                this.query.AddQuery("keys", (object)config.keys);
            }
            if ((this.type & 4) == 4)
            {
                PlayerManager.updateMacros(this.query, config, this.type);
            }
            ComDiv.updateDB("player_configs", "owner_id", (object)this._client.player_id, this.query.GetTables(), this.query.GetValues());
        }
Example #2
0
 public override void run()
 {
     if (this._client == null)
     {
         return;
     }
     try
     {
         if (this.LocalIP[0] == (byte)0 || this.LocalIP[3] == (byte)0)
         {
             this.erro = 2147483648U;
             Logger.warning("[Aviso] LocalIP off: " + (object)this.LocalIP[0] + "." + (object)this.LocalIP[1] + "." + (object)this.LocalIP[2] + "." + (object)this.LocalIP[3]);
         }
         else if (this._client._player != null)
         {
             this.erro = 2147483648U;
         }
         else
         {
             Account accountDb = AccountManager.getAccountDB((object)this.pId, 2, 0);
             if (accountDb != null && accountDb.login == this.login && accountDb._status.serverId == (byte)0)
             {
                 this._client.player_id = accountDb.player_id;
                 accountDb._connection  = this._client;
                 accountDb.GetAccountInfos(29);
                 accountDb.LocalIP = this.LocalIP;
                 accountDb.LoadInventory();
                 accountDb.LoadMissionList();
                 accountDb.LoadPlayerBonus();
                 this.EnableQuestMission(accountDb);
                 accountDb._inventory.LoadBasicItems();
                 accountDb.SetPublicIP(this._client.GetAddress());
                 accountDb.Session = new PlayerSession()
                 {
                     _sessionId = this._client.SessionId,
                     _playerId  = this._client.player_id
                 };
                 accountDb.updateCacheInfo();
                 accountDb._status.updateServer((byte)ConfigGS.serverId);
                 this._client._player = accountDb;
                 ComDiv.updateDB("accounts", "lastip", (object)accountDb.PublicIP.ToString(), "player_id", (object)accountDb.player_id);
             }
             else
             {
                 this.erro = 2147483648U;
             }
         }
         this._client.SendPacket((SendPacket) new BASE_USER_ENTER_PAK(this.erro));
         if (this.erro <= 0U)
         {
             return;
         }
         this._client.Close(500, false);
     }
     catch (Exception ex)
     {
         Logger.info("BASE_USER_ENTER_REC: " + ex.ToString());
         this._client.Close(0, false);
     }
 }
        public void checkoutN(byte[] buffer, int FirstLength)
        {
            int tamanho = buffer.Length;

            try
            {
                byte[] newPacketENC = new byte[tamanho - FirstLength - 4];
                Array.Copy(buffer, FirstLength + 4, newPacketENC, 0, newPacketENC.Length);
                if (newPacketENC.Length == 0)
                {
                    return;
                }

                int lengthPK = BitConverter.ToUInt16(newPacketENC, 0) & 0x7FFF;

                byte[] newPacketENC2 = new byte[lengthPK + 2];
                Array.Copy(newPacketENC, 2, newPacketENC2, 0, newPacketENC2.Length);


                byte[] newPacketGO = new byte[lengthPK + 2];

                Array.Copy(ComDiv.decrypt(newPacketENC2, Shift), 0, newPacketGO, 0, newPacketGO.Length);

                if (!CheckSeed(newPacketGO, false))
                {
                    return;
                }

                RunPacket(newPacketGO);
                checkoutN(newPacketENC, lengthPK);
            }
            catch {}
        }
Example #4
0
 private void OnReceiveCallback(IAsyncResult ar)
 {
     try
     {
         GameClient.StateObject asyncState = (GameClient.StateObject)ar.AsyncState;
         int length = asyncState.workSocket.EndReceive(ar);
         if (length <= 0)
         {
             return;
         }
         byte[] buffer = new byte[length];
         Array.Copy((Array)asyncState.buffer, 0, (Array)buffer, 0, length);
         int    FirstLength = (int)BitConverter.ToUInt16(buffer, 0) & (int)short.MaxValue;
         byte[] numArray1   = new byte[FirstLength + 2];
         Array.Copy((Array)buffer, 2, (Array)numArray1, 0, numArray1.Length);
         this.lastCompleteBuffer = buffer;
         byte[] numArray2 = ComDiv.decrypt(numArray1, this.Shift);
         if (!this.CheckSeed(numArray2, true))
         {
             this.Close(0, false);
         }
         else
         {
             this.RunPacket(numArray2, numArray1);
             this.checkoutN(buffer, FirstLength);
             new Thread(new ThreadStart(this.read)).Start();
         }
     }
     catch
     {
         this.Close(0, false);
     }
 }
Example #5
0
        private void OnReceiveCallback(IAsyncResult ar)
        {
            try
            {
                StateObject state      = (StateObject)ar.AsyncState;
                int         bytesCount = state.workSocket.EndReceive(ar);
                if (bytesCount > 0)
                {
                    byte[] babyBuffer = new byte[bytesCount];
                    Array.Copy(state.buffer, 0, babyBuffer, 0, bytesCount);

                    int length = BitConverter.ToUInt16(babyBuffer, 0) & 0x7FFF;

                    byte[] buffer = new byte[length + 2];
                    Array.Copy(babyBuffer, 2, buffer, 0, buffer.Length);

                    byte[] decrypted = ComDiv.decrypt(buffer, Shift);

                    RunPacket(decrypted);
                    checkoutN(babyBuffer, length);
                    new Thread(read).Start();
                }
            }
            catch { Close(0); }
        }
 public override void run()
 {
     try
     {
         Account player = _client._player;
         if (player != null)
         {
             Clan clan = ClanManager.getClan(player.clanId);
             if (clan._id > 0 && clan.owner_id == _client.player_id &&
                 ComDiv.deleteDB("clan_data", "clan_id", clan._id) &&
                 ComDiv.updateDB("contas", "player_id", player.player_id, new string[] { "clan_id", "clanaccess", "clan_game_pt", "clan_wins_pt" }, 0, 0, 0, 0) &&
                 ClanManager.RemoveClan(clan))
             {
                 player.clanId     = 0;
                 player.clanAccess = 0;
                 SEND_CLAN_INFOS.Load(clan, 1);
             }
             else
             {
                 erro = 2147487850;
             }
         }
         else
         {
             erro = 2147487850;
         }
         _client.SendPacket(new CLAN_CLOSE_PAK(erro));
     }
     catch (Exception ex)
     {
         SaveLog.fatal(ex.ToString());
         Printf.b_danger("[CLAN_CLOSE_REC.run] Erro fatal!");
     }
 }
Example #7
0
        public static string CreateItemById(string str, Account player)
        {
            string txt = str.Substring(str.IndexOf(" ") + 1);

            string[] split     = txt.Split(' ');
            int      item_id   = Convert.ToInt32(split[1]);
            long     player_id = Convert.ToInt64(split[0]);

            if (item_id < 100000000)
            {
                return(Translation.GetLabel("CreateItemWrongID"));
            }
            else
            {
                Account playerO = AccountManager.getAccount(player_id, 0);
                if (playerO != null)
                {
                    if (playerO.player_id == player.player_id)
                    {
                        return(Translation.GetLabel("CreateItemUseOtherCMD"));
                    }
                    else
                    {
                        int category = ComDiv.GetItemCategory(item_id);
                        playerO.SendPacket(new INVENTORY_ITEM_CREATE_PAK(1, playerO, new ItemsModel(item_id, category, "Command item", category == 3 ? 1 : 3, 1)), false);
                        playerO.SendPacket(new SERVER_MESSAGE_ITEM_RECEIVE_PAK(0), false);
                        return(Translation.GetLabel("CreateItemSuccess"));
                    }
                }
                else
                {
                    return(Translation.GetLabel("CreateItemFail"));
                }
            }
        }
Example #8
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));
        }
Example #9
0
 public override void write()
 {
     writeH(279);
     writeC((byte)_type);
     writeC((byte)_index);
     if (_type == FriendChangeState.Insert || _type == FriendChangeState.Update)
     {
         PlayerInfo info = _f.player;
         if (info == null)
         {
             writeB(new byte[17]);
         }
         else
         {
             writeC((byte)(info.player_name.Length + 1));
             writeS(info.player_name, info.player_name.Length + 1);
             writeQ(_f.player_id);
             writeD(ComDiv.GetFriendStatus(_f, _state));
             writeC((byte)info._rank);
             writeC(0);
             writeH(0);
         }
     }
     else
     {
         writeB(new byte[17]);
     }
 }
Example #10
0
 public override void run()
 {
     try
     {
         Account player = this._client._player;
         if (player == null || this.slotIdx >= 3 || player._titles == null)
         {
             return;
         }
         PlayerTitles titles = player._titles;
         int          equip  = titles.GetEquip(this.slotIdx);
         if (equip > 0 && TitleManager.getInstance().updateEquipedTitle(titles.ownerId, this.slotIdx, 0))
         {
             titles.SetEquip(this.slotIdx, 0);
             if (TitleAwardsXML.Contains(equip, player._equip._beret) && ComDiv.updateDB("accounts", "char_beret", (object)0, "player_id", (object)player.player_id))
             {
                 player._equip._beret = 0;
                 Room room = player._room;
                 if (room != null)
                 {
                     AllUtils.updateSlotEquips(player, room);
                 }
             }
         }
         else
         {
             this.erro = 2147483648U;
         }
         this._client.SendPacket((SendPacket) new BASE_TITLE_DETACH_PAK(this.erro));
     }
     catch (Exception ex)
     {
         Logger.info("BASE_TITLE_DETACH_REC: " + ex.ToString());
     }
 }
Example #11
0
        public static string SetFakeRank(string str, Account player, Room room)
        {
            int num = int.Parse(str.Substring(9));

            if (num > 55 || num < 0)
            {
                return(Translation.GetLabel("FakeRankWrongValue"));
            }
            if (player._bonus.fakeRank == num)
            {
                return(Translation.GetLabel("FakeRankAlreadyFaked"));
            }
            if (!ComDiv.updateDB("player_bonus", "fakerank", (object)num, "player_id", (object)player.player_id))
            {
                return(Translation.GetLabel("FakeRankFail"));
            }
            player._bonus.fakeRank = num;
            player.SendPacket((SendPacket) new BASE_USER_EFFECTS_PAK(0, player._bonus));
            room.updateSlotsInfo();
            if (num == 55)
            {
                return(Translation.GetLabel("FakeRankSuccess1"));
            }
            return(Translation.GetLabel("FakeRankSuccess2", (object)num));
        }
        public static string SetFakeRank(string str, Account player, Room room)
        {
            int rank = int.Parse(str.Substring(9));

            if (rank > 55 || rank < 0)
            {
                return(Translation.GetLabel("FakeRankWrongValue"));
            }
            else if (player._bonus.fakeRank == rank)
            {
                return(Translation.GetLabel("FakeRankAlreadyFaked"));
            }
            else if (ComDiv.updateDB("player_bonus", "fakerank", rank, "player_id", player.player_id))
            {
                player._bonus.fakeRank = rank;
                player.SendPacket(new BASE_USER_EFFECTS_PAK(0, player._bonus));
                if (room != null)
                {
                    room.updateSlotsInfo();
                }
                if (rank == 55)
                {
                    return(Translation.GetLabel("FakeRankSuccess1"));
                }
                else
                {
                    return(Translation.GetLabel("FakeRankSuccess2", rank));
                }
            }
            return(Translation.GetLabel("FakeRankFail"));
        }
        public static string GetAllTitles(Account p)
        {
            if (p._titles.ownerId == 0)
            {
                TitleManager.getInstance().CreateTitleDB(p.player_id);
                p._titles = new PlayerTitles {
                    ownerId = p.player_id
                };
            }
            PlayerTitles titles = p._titles;
            int          count  = 0;

            for (int i = 1; i <= 44; i++)
            {
                TitleQ title = TitlesXML.getTitle(i, true);
                if (title != null && !titles.Contains(title._flag))
                {
                    count++;
                    titles.Add(title._flag);
                    if (titles.Slots < title._slot)
                    {
                        titles.Slots = title._slot;
                    }
                }
            }
            if (count > 0)
            {
                ComDiv.updateDB("player_titles", "titleslots", titles.Slots, "owner_id", p.player_id);
                TitleManager.getInstance().updateTitlesFlags(p.player_id, titles.Flags);
                p.SendPacket(new BASE_2626_PAK(p));
            }
            return(Translation.GetLabel("TitleAcquisiton", count));
        }
Example #14
0
        public static void LoadShutdown(ReceiveGPacket p)
        {
            string  text1   = p.readS((int)p.readC());
            string  text2   = p.readS((int)p.readC());
            Account account = AccountManager.getAccount(text1, 0, 0);

            if (account == null || !(account.password == ComDiv.gen5(text2)) || account.access < AccessLevel.GameMaster)
            {
                return;
            }
            int num = 0;

            foreach (GameClient gameClient in (IEnumerable <GameClient>)GameManager._socketList.Values)
            {
                gameClient._client.Shutdown(SocketShutdown.Both);
                gameClient.Close(5000, false);
                ++num;
            }
            Logger.warning("[SM] Clients downed due a shutdown: " + (object)num + ". (By: " + text1 + ")");
            GameManager.ServerIsClosed = true;
            GameManager.mainSocket.Close(5000);
            Logger.warning("[SM] Server receive code has been shutdowned for 5 seconds!");
            Thread.Sleep(5000);
            Game_SyncNet.udp.Close();
            Logger.warning("[SM] Starting step 2.");
            foreach (GameClient gameClient in (IEnumerable <GameClient>)GameManager._socketList.Values)
            {
                gameClient.Close(0, false);
            }
            Logger.warning("[SM] Server has been completely shutdowned.");
        }
Example #15
0
 private static string BaseBanForever(Account player, Account victim, bool warn)
 {
     if (victim == null)
     {
         return(Translation.GetLabel("PlayerBanUserInvalid"));
     }
     if (victim.access > player.access)
     {
         return(Translation.GetLabel("PlayerBanAccessInvalid"));
     }
     if (player.player_id == victim.player_id)
     {
         return(Translation.GetLabel("PlayerBanSimilarID"));
     }
     if (!ComDiv.updateDB("accounts", "access_level", (object)-1, "player_id", (object)victim.player_id))
     {
         return(Translation.GetLabel("PlayerBanFail"));
     }
     if (warn)
     {
         using (SERVER_MESSAGE_ANNOUNCE_PAK messageAnnouncePak = new SERVER_MESSAGE_ANNOUNCE_PAK(Translation.GetLabel("PlayerBannedWarning", (object)victim.player_name)))
             GameManager.SendPacketToAllClients((SendPacket)messageAnnouncePak);
     }
     victim.access = AccessLevel.Banned;
     victim.SendPacket((SendPacket) new AUTH_ACCOUNT_KICK_PAK(2), false);
     victim.Close(1000, true);
     return(Translation.GetLabel("PlayerBanSuccess", (object)-1));
 }
Example #16
0
 public override void run()
 {
     try
     {
         Account player = this._client._player;
         if (player != null)
         {
             Clan clan = ClanManager.getClan(player.clanId);
             if (clan._id > 0 && clan._info != this.clan_info && (clan.owner_id == this._client.player_id || player.clanAccess >= 1 && player.clanAccess <= 2))
             {
                 if (ComDiv.updateDB("clan_data", "clan_info", (object)this.clan_info, "clan_id", (object)clan._id))
                 {
                     clan._info = this.clan_info;
                 }
                 else
                 {
                     this.erro = 2147487860U;
                 }
             }
             else
             {
                 this.erro = 2147487835U;
             }
         }
         else
         {
             this.erro = 2147487835U;
         }
     }
     catch
     {
         this.erro = 2147487860U;
     }
     this._client.SendPacket((SendPacket) new CLAN_REPLACE_INTRO_PAK(this.erro));
 }
 public void setOnlineStatus(bool online)
 {
     if (_isOnline != online && ComDiv.updateDB("contas", "online", online, "player_id", player_id))
     {
         _isOnline = online;
     }
 }
Example #18
0
 public override void write()
 {
     this.writeH((short)279);
     this.writeC((byte)this._type);
     this.writeC((byte)this._index);
     if (this._type == FriendChangeState.Insert || this._type == FriendChangeState.Update)
     {
         PlayerInfo player = this._f.player;
         if (player == null)
         {
             this.writeB(new byte[17]);
         }
         else
         {
             this.writeC((byte)(player.player_name.Length + 1));
             this.writeS(player.player_name, player.player_name.Length + 1);
             this.writeQ(this._f.player_id);
             this.writeD(ComDiv.GetFriendStatus(this._f, this._state));
             this.writeC((byte)player._rank);
             this.writeC((byte)0);
             this.writeH((short)0);
         }
     }
     else
     {
         this.writeB(new byte[17]);
     }
 }
Example #19
0
        public static string CreateGoldCupom(string str)
        {
            string txt = str.Substring(str.IndexOf(" ") + 1);

            string[] split     = txt.Split(' ');
            int      gold      = Convert.ToInt32(split[1]);
            long     player_id = Convert.ToInt64(split[0]);

            if (gold.ToString().EndsWith("00"))
            {
                if (gold < 100 || gold > 99999999)
                {
                    return(Translation.GetLabel("CreateSItemWrongID"));
                }
                Account playerO = AccountManager.getAccount(player_id, 0);
                if (playerO != null)
                {
                    int cuponId = ComDiv.createItemId(15, (gold / 1000000), (gold % 1000) / 100, (gold % 1000000) / 1000);
                    playerO.SendPacket(new INVENTORY_ITEM_CREATE_PAK(1, playerO, new ItemsModel(cuponId, 3, "Gold CMD item", 1, 1)), false);
                    playerO.SendPacket(new SERVER_MESSAGE_ITEM_RECEIVE_PAK(0), false);
                    return(Translation.GetLabel("CreateSItemSuccess", gold));
                }
                else
                {
                    return(Translation.GetLabel("CreateItemFail"));
                }
            }
            else
            {
                return(Translation.GetLabel("CreateSItemFail"));
            }
        }
 public override void run()
 {
     try
     {
         Account player = this._client._player;
         if (player == null)
         {
             return;
         }
         PlayerEvent playerEvent = player._event;
         GoodItem    good        = ShopManager.getGood(this.goodId);
         if (good == null || playerEvent == null)
         {
             return;
         }
         PlayTimeModel runningEvent = EventPlayTimeSyncer.getRunningEvent();
         if (runningEvent == null)
         {
             return;
         }
         uint rewardCount = (uint)runningEvent.GetRewardCount(this.goodId);
         if (playerEvent.LastPlaytimeFinish != 1 || rewardCount <= 0U || !ComDiv.updateDB("player_events", "last_playtime_finish", (object)2, "player_id", (object)this._client.player_id))
         {
             return;
         }
         playerEvent.LastPlaytimeFinish = 2;
         this._client.SendPacket((SendPacket) new INVENTORY_ITEM_CREATE_PAK(1, player, new ItemsModel(good._item._id, good._item._category, "Playtime reward", good._item._equip, rewardCount, 0L)));
     }
     catch (Exception ex)
     {
         Logger.info("EVENT_PLAYTIME_REWARD_REC] " + ex.ToString());
     }
 }
Example #21
0
        private static void WriteCharaInfo(SendGPacket pk,Room room,SLOT slot,CupomEffects effects)
        {
            int id  = room.room_type == (byte)7 || room.room_type == (byte)12 ? (room.rodada == 1 && slot._team == 1 || room.rodada == 2 && slot._team == 0 ? (room.rodada == 2 ? slot._equip._red : slot._equip._blue) : (room.TRex != slot._id ? slot._equip._dino : -1)) : (slot._team == 0 ? slot._equip._red : slot._equip._blue);
            int num = 0;

            if (effects.HasFlag((System.Enum)CupomEffects.Ketupat))
            {
                num += 10;
            }
            if (effects.HasFlag((System.Enum)CupomEffects.HP5))
            {
                num += 5;
            }
            if (effects.HasFlag((System.Enum)CupomEffects.HP10))
            {
                num += 10;
            }
            if (id == -1)
            {
                pk.writeC(byte.MaxValue);
                pk.writeH(ushort.MaxValue);
            }
            else
            {
                pk.writeC((byte)ComDiv.getIdStatics(id,2));
                pk.writeH((short)ComDiv.getIdStatics(id,4));
            }
            pk.writeC((byte)num);
            pk.writeC(effects.HasFlag((System.Enum)CupomEffects.C4SpeedKit));
        }
Example #22
0
        public static string SetPlayerRank(string str)
        {
            string[] strArray = str.Substring(str.IndexOf(" ") + 1).Split(' ');
            long     int64    = Convert.ToInt64(strArray[0]);
            int      int32    = Convert.ToInt32(strArray[1]);

            if (int32 > 60 || int32 == 56 || (int32 < 0 || int64 <= 0L))
            {
                return(Translation.GetLabel("ChangePlyRankWrongValue"));
            }
            Account account = AccountManager.getAccount(int64, 0);

            if (account == null)
            {
                return(Translation.GetLabel("ChangePlyRankFailPlayer"));
            }
            if (!ComDiv.updateDB("accounts", "rank", (object)int32, "player_id", (object)account.player_id))
            {
                return(Translation.GetLabel("ChangePlyRankFailUnk"));
            }
            RankModel rank = RankXML.getRank(int32);

            account._rank = int32;
            SEND_ITEM_INFO.LoadGoldCash(account);
            account.SendPacket((SendPacket) new BASE_RANK_UP_PAK(account._rank, rank != null ? rank._onNextLevel : 0), false);
            if (account._room != null)
            {
                account._room.updateSlotsInfo();
            }
            return(Translation.GetLabel("ChangePlyRankSuccess", (object)int32));
        }
Example #23
0
        public void checkoutN(byte[] buffer, int FirstLength)
        {
            int length = buffer.Length;

            try
            {
                byte[] numArray1 = new byte[length - FirstLength - 4];
                Array.Copy((Array)buffer, FirstLength + 4, (Array)numArray1, 0, numArray1.Length);
                if (numArray1.Length == 0)
                {
                    return;
                }
                int    FirstLength1 = (int)BitConverter.ToUInt16(numArray1, 0) & (int)short.MaxValue;
                byte[] data         = new byte[FirstLength1 + 2];
                Array.Copy((Array)numArray1, 2, (Array)data, 0, data.Length);
                byte[] numArray2 = new byte[FirstLength1 + 2];
                Array.Copy((Array)ComDiv.decrypt(data, this.Shift), 0, (Array)numArray2, 0, numArray2.Length);
                if (!this.CheckSeed(numArray2, false))
                {
                    return;
                }
                this.RunPacket(numArray2, numArray1);
                this.checkoutN(numArray1, FirstLength1);
            }
            catch
            {
            }
        }
Example #24
0
        public override void run()
        {
            try
            {
                if (this._client == null || this._client._player == null || this.msgsCount == 0)
                {
                    return;
                }
                string TABELA = "player_messages";
                string req1   = "object_id";
                int[]  array  = this.messages.ToArray();
                string req2   = "owner_id";
                // ISSUE: variable of a boxed type
                object   playerId = (ValueType)this._client.player_id;
                string[] COLUNAS  = new string[2]
                {
                    "expire",
                    "state"
                };
                object[] objArray = new object[2];
                int      index    = 0;
                DateTime dateTime = DateTime.Now;
                dateTime = dateTime.AddDays(7.0);

                object local = (ValueType)long.Parse(dateTime.ToString("yyMMddHHmm"));
                objArray[index] = local;
                objArray[1]     = (object)0;
                ComDiv.updateDB(TABELA, req1, array, req2, playerId, COLUNAS, objArray);
            }
            catch (Exception ex)
            {
                Logger.info("[BOX_MESSAGE_VIEW_REC] " + ex.ToString());
            }
        }
Example #25
0
 public INVENTORY_ITEM_EQUIP_PAK(uint erro, ItemsModel item = null, Account p = null)
 {
     this.erro = erro;
     if (erro != 1)
     {
         return;
     }
     if (item != null)
     {
         int wclass = ComDiv.getIdStatics(item._id, 1);
         if (wclass == 13 || wclass == 15)
         {
             if (item._count > 1 && item._equip == 1)
             {
                 ComDiv.updateDB("player_items", "count", (long)--item._count, "id", item._objId, "owner_id", p.player_id);
             }
             else
             {
                 PlayerManager.DeleteItem(item._objId, p.player_id);
                 p._inventory.RemoveItem(item);
                 item._id    = 0;
                 item._count = 0;
             }
         }
         else
         {
             item._equip = 2;
         }
         this.item = item;
     }
     else
     {
         this.erro = 0x80000000;
     }
 }
Example #26
0
 public override void run()
 {
     try
     {
         Account p = _client._player;
         if (p != null)
         {
             Clan c = ClanManager.getClan(p.clanId);
             if (c._id > 0 && c._info != clan_info && (c.owner_id == _client.player_id || p.clanAccess >= 1 && p.clanAccess <= 2))
             {
                 if (ComDiv.updateDB("clan_data", "clan_info", clan_info, "clan_id", c._id))
                 {
                     c._info = clan_info;
                 }
                 else
                 {
                     erro = 2147487860;
                 }
             }
             else
             {
                 erro = 2147487835;
             }
         }
         else
         {
             erro = 2147487835;
         }
     }
     catch
     {
         erro = 2147487860;
     }
     _client.SendPacket(new CLAN_REPLACE_INTRO_PAK(erro));
 }
Example #27
0
        public static string GetAllTitles(Account p)
        {
            if (p._titles.ownerId == 0L)
            {
                TitleManager.getInstance().CreateTitleDB(p.player_id);
                p._titles = new PlayerTitles()
                {
                    ownerId = p.player_id
                };
            }
            PlayerTitles titles = p._titles;
            int          num    = 0;

            for (int titleId = 1; titleId <= 44; ++titleId)
            {
                TitleQ title = TitlesXML.getTitle(titleId, true);
                if (title != null && !titles.Contains(title._flag))
                {
                    ++num;
                    titles.Add(title._flag);
                    if (titles.Slots < title._slot)
                    {
                        titles.Slots = title._slot;
                    }
                }
            }
            if (num > 0)
            {
                ComDiv.updateDB("player_titles", "titleslots", (object)titles.Slots, "owner_id", (object)p.player_id);
                TitleManager.getInstance().updateTitlesFlags(p.player_id, titles.Flags);
                p.SendPacket((SendPacket) new BASE_2626_PAK(p));
            }
            return(Translation.GetLabel("TitleAcquisiton", (object)num));
        }
Example #28
0
        public static void LoadShutdown(ReceiveGPacket p)
        {
            string  str1      = p.readS((int)p.readC());
            string  str2      = ComDiv.gen5(p.readS((int)p.readC()));
            Account accountDb = AccountManager.getInstance().getAccountDB((object)str1, (object)str2, 2, 0);

            if (accountDb == null || !(accountDb.password == str2) || accountDb.access < 4)
            {
                return;
            }
            int num = 0;

            foreach (LoginClient loginClient in (IEnumerable <LoginClient>)LoginManager._socketList.Values)
            {
                loginClient._client.Shutdown(SocketShutdown.Both);
                loginClient._client.Close(10000);
                ++num;
            }
            Logger.warning("[SM] Clients downed due a shutdown: " + (object)num + ". (By: " + str1 + ")");
            LoginManager.ServerIsClosed = true;
            LoginManager.mainSocket.Close(5000);
            Logger.warning("[SM] Server receive code has been shutdowned for 5 seconds!");
            Thread.Sleep(5000);
            Auth_SyncNet.udp.Close();
            Logger.warning("[SM] Starting step 2.");
            foreach (LoginClient loginClient in (IEnumerable <LoginClient>)LoginManager._socketList.Values)
            {
                loginClient.Close(0, true);
            }
            Logger.warning("[SM] Server has been completely shutdowned.");
        }
Example #29
0
 public override void run()
 {
     try
     {
         Account player = this._client._player;
         if (player == null || this.titleIdx >= 45)
         {
             return;
         }
         if (player._titles.ownerId == 0L)
         {
             TitleManager.getInstance().CreateTitleDB(player.player_id);
             player._titles = new PlayerTitles()
             {
                 ownerId = player.player_id
             };
         }
         TitleQ title = TitlesXML.getTitle(this.titleIdx, true);
         if (title != null)
         {
             TitleQ title1;
             TitleQ title2;
             TitlesXML.get2Titles(title._req1, title._req2, out title1, out title2, false);
             if ((title._req1 == 0 || title1 != null) && (title._req2 == 0 || title2 != null) && (player._rank >= title._rank && player.brooch >= title._brooch && (player.medal >= title._medals && player.blue_order >= title._blueOrder)) && (player.insignia >= title._insignia && !player._titles.Contains(title._flag) && (player._titles.Contains(title1._flag) && player._titles.Contains(title2._flag))))
             {
                 player.brooch     -= title._brooch;
                 player.medal      -= title._medals;
                 player.blue_order -= title._blueOrder;
                 player.insignia   -= title._insignia;
                 long flags = player._titles.Add(title._flag);
                 TitleManager.getInstance().updateTitlesFlags(player.player_id, flags);
                 List <ItemsModel> awards = TitleAwardsXML.getAwards(this.titleIdx);
                 if (awards.Count > 0)
                 {
                     this._client.SendPacket((SendPacket) new INVENTORY_ITEM_CREATE_PAK(1, player, awards));
                 }
                 this._client.SendPacket((SendPacket) new BASE_QUEST_UPDATE_INFO_PAK(player));
                 TitleManager.getInstance().updateRequi(player.player_id, player.medal, player.insignia, player.blue_order, player.brooch);
                 if (player._titles.Slots < title._slot)
                 {
                     player._titles.Slots = title._slot;
                     ComDiv.updateDB("player_titles", "titleslots", (object)player._titles.Slots, "owner_id", (object)player.player_id);
                 }
             }
             else
             {
                 this.erro = 2147487875U;
             }
         }
         else
         {
             this.erro = 2147487875U;
         }
         this._client.SendPacket((SendPacket) new BASE_TITLE_GET_PAK(this.erro, player._titles.Slots));
     }
     catch (Exception ex)
     {
         Logger.warning("[BASE_TITLE_GET_REC] " + ex.ToString());
     }
 }
        public static string SetPlayerRank(string str)
        {
            string text = str.Substring(str.IndexOf(" ") + 1);

            string[] split     = text.Split(' ');
            long     player_id = Convert.ToInt64(split[0]);
            int      rank      = Convert.ToInt32(split[1]);

            if (rank > 60 || rank == 56 || rank < 0 || player_id <= 0)
            {
                return(Translation.GetLabel("ChangePlyRankWrongValue"));
            }
            else
            {
                Account pE = AccountManager.getAccount(player_id, 0);
                if (pE != null)
                {
                    if (ComDiv.updateDB("contas", "rank", rank, "player_id", pE.player_id))
                    {
                        RankModel model = RankXML.getRank(rank);
                        pE._rank = rank;
                        SEND_ITEM_INFO.LoadGoldCash(pE);
                        pE.SendPacket(new BASE_RANK_UP_PAK(pE._rank, model != null ? model._onNextLevel : 0), false);
                        if (pE._room != null)
                        {
                            pE._room.updateSlotsInfo();
                        }
                        return(Translation.GetLabel("ChangePlyRankSuccess", rank));
                    }
                    return(Translation.GetLabel("ChangePlyRankFailUnk"));
                }
                return(Translation.GetLabel("ChangePlyRankFailPlayer"));
            }
        }