예제 #1
0
        public override void run()
        {
            try
            {
                Account player = this._client._player;
                if (player == null)
                {
                    return;
                }
                PlayerMissions mission = player._mission;
                bool           flag    = false;
                if (this.missionIdx >= 3 || this.missionIdx == 0 && mission.mission1 == 0 || (this.missionIdx == 1 && mission.mission2 == 0 || this.missionIdx == 2 && mission.mission3 == 0))
                {
                    flag = true;
                }
                if (!flag && PlayerManager.updateMissionId(player.player_id, 0, this.missionIdx))
                {
                    if (ComDiv.updateDB("player_missions", "owner_id", (object)player.player_id, new string[2]
                    {
                        "card" + (object)(this.missionIdx + 1),
                        "mission" + (object)(this.missionIdx + 1)
                    }, (object)0, (object)new byte[0]))
                    {
                        if (this.missionIdx == 0)
                        {
                            mission.mission1 = 0;
                            mission.card1    = 0;
                            mission.list1    = new byte[40];
                            goto label_12;
                        }
                        else if (this.missionIdx == 1)
                        {
                            mission.mission2 = 0;
                            mission.card2    = 0;
                            mission.list2    = new byte[40];
                            goto label_12;
                        }
                        else if (this.missionIdx == 2)
                        {
                            mission.mission3 = 0;
                            mission.card3    = 0;
                            mission.list3    = new byte[40];
                            goto label_12;
                        }
                        else
                        {
                            goto label_12;
                        }
                    }
                }
                this.erro = 2147487824U;
label_12:
                this._client.SendPacket((SendPacket) new BASE_QUEST_DELETE_CARD_SET_PAK(this.erro, player));
            }
            catch (Exception ex)
            {
                Logger.info("BASE_QUEST_DELETE_CARD_SET_REC: " + ex.ToString());
            }
        }
 public override void run()
 {
     try
     {
         Account p = _client._player;
         if (p == null)
         {
             return;
         }
         PlayerMissions missions = p._mission;
         bool           failed   = false;
         if (missionIdx >= 3 || missionIdx == 0 && missions.mission1 == 0 || missionIdx == 1 && missions.mission2 == 0 ||
             missionIdx == 2 && missions.mission3 == 0)
         {
             failed = true;
         }
         if (!failed && PlayerManager.updateMissionId(p.player_id, 0, missionIdx) &&
             ComDiv.updateDB("player_missions", "owner_id", p.player_id, new string[]
         {
             "card" + (missionIdx + 1),
             "mission" + (missionIdx + 1)
         }, 0, new byte[0]))
         {
             if (missionIdx == 0)
             {
                 missions.mission1 = 0;
                 missions.card1    = 0;
                 missions.list1    = new byte[40];
             }
             else if (missionIdx == 1)
             {
                 missions.mission2 = 0;
                 missions.card2    = 0;
                 missions.list2    = new byte[40];
             }
             else if (missionIdx == 2)
             {
                 missions.mission3 = 0;
                 missions.card3    = 0;
                 missions.list3    = new byte[40];
             }
         }
         else
         {
             erro = 0x80001050;
         }
         _client.SendPacket(new BASE_QUEST_DELETE_CARD_SET_PAK(erro, p));
     }
     catch (Exception ex)
     {
         SaveLog.fatal(ex.ToString());
         Printf.b_danger("[BASE_QUEST_DELETE_CARD_SET_REC.run] Erro fatal!");
     }
 }
예제 #3
0
        public PlayerMissions getMission(long pId, int mission1, int mission2, int mission3, int mission4)
        {
            if (pId == 0)
            {
                return(null);
            }
            PlayerMissions mission = null;

            try
            {
                using (NpgsqlConnection connection = SQLjec.getInstance().conn())
                {
                    NpgsqlCommand command = connection.CreateCommand();
                    connection.Open();
                    command.Parameters.AddWithValue("@owner", pId);
                    command.CommandText = "SELECT * FROM player_missions WHERE owner_id=@owner";
                    command.CommandType = CommandType.Text;
                    NpgsqlDataReader data = command.ExecuteReader();
                    while (data.Read())
                    {
                        mission = new PlayerMissions
                        {
                            actualMission = data.GetInt32(1),
                            card1         = data.GetInt32(2),
                            card2         = data.GetInt32(3),
                            card3         = data.GetInt32(4),
                            card4         = data.GetInt32(5),
                            mission1      = mission1,
                            mission2      = mission2,
                            mission3      = mission3,
                            mission4      = mission4,
                        };

                        data.GetBytes(6, 0, mission.list1, 0, 40);
                        data.GetBytes(7, 0, mission.list2, 0, 40);
                        data.GetBytes(8, 0, mission.list3, 0, 40);
                        data.GetBytes(9, 0, mission.list4, 0, 40);
                        mission.UpdateSelectedCard();
                    }
                    command.Dispose();
                    data.Close();
                    connection.Dispose();
                    connection.Close();
                }
                return(mission);
            }
            catch (Exception ex)
            {
                SaveLog.fatal(ex.ToString());
                Printf.b_danger("[MissionManager.getMission] Erro fatal!");
                return(null);
            }
        }
예제 #4
0
        public void LoadMissionList()
        {
            PlayerMissions mission = MissionManager.getInstance().getMission(this.player_id, this._mission.mission1, this._mission.mission2, this._mission.mission3, this._mission.mission4);

            if (mission == null)
            {
                MissionManager.getInstance().addMissionDB(this.player_id);
            }
            else
            {
                this._mission = mission;
            }
        }
        public void LoadMissionList()
        {
            PlayerMissions m = MissionManager.getInstance().getMission(player_id, _mission.mission1, _mission.mission2, _mission.mission3, _mission.mission4);

            if (m == null)
            {
                MissionManager.getInstance().addMissionDB(player_id);
            }
            else
            {
                _mission = m;
            }
        }
예제 #6
0
 public void SimpleClear()
 {
     this._titles    = new PlayerTitles();
     this._mission   = new PlayerMissions();
     this._inventory = new PlayerInventory();
     this._status    = new AccountStatus();
     this.FriendSystem.CleanList();
     this.Session     = (PlayerSession)null;
     this._event      = (PlayerEvent)null;
     this._match      = (Match)null;
     this._room       = (Room)null;
     this._config     = (PlayerConfig)null;
     this._connection = (GameClient)null;
 }
 /// <summary>
 /// Eventos, Títulos, Missões, Inventário, Status, Lista de amigos (Clean), Sessão, ClanMatch, Sala, Config, Connection,
 /// </summary>
 public void SimpleClear()
 {
     _titles    = new PlayerTitles();
     _mission   = new PlayerMissions();
     _inventory = new PlayerInventory();
     _status    = new AccountStatus();
     FriendSystem.CleanList();
     Session     = null;
     _event      = null;
     _match      = null;
     _room       = null;
     _config     = null;
     _connection = null;
 }
예제 #8
0
 public void SimpleClear()
 {
     _config      = null;
     _titles      = null;
     _bonus       = null;
     _event       = null;
     _connection  = null;
     _inventory   = new PlayerInventory();
     FriendSystem = new FriendSystem();
     _clanPlayers = new List <Account>();
     _equip       = new PlayerEquipedItems();
     _mission     = new PlayerMissions();
     _status      = new AccountStatus();
 }
예제 #9
0
 public void SimpleClear()
 {
     this._config      = (PlayerConfig)null;
     this._titles      = (PlayerTitles)null;
     this._bonus       = (PlayerBonus)null;
     this._event       = (PlayerEvent)null;
     this._connection  = (LoginClient)null;
     this._inventory   = new PlayerInventory();
     this.FriendSystem = new FriendSystem();
     this._clanPlayers = new List <Account>();
     this._equip       = new PlayerEquipedItems();
     this._mission     = new PlayerMissions();
     this._status      = new AccountStatus();
 }
 public override void run()
 {
     try
     {
         if (_client == null)
         {
             return;
         }
         Account p = _client._player;
         if (p == null)
         {
             return;
         }
         PlayerMissions missions = p._mission;
         DBQuery        query    = new DBQuery();
         if (missions.getCard(actualMission) != cardIdx)
         {
             if (actualMission == 0)
             {
                 missions.card1 = cardIdx;
             }
             else if (actualMission == 1)
             {
                 missions.card2 = cardIdx;
             }
             else if (actualMission == 2)
             {
                 missions.card3 = cardIdx;
             }
             else if (actualMission == 3)
             {
                 missions.card4 = cardIdx;
             }
             query.AddQuery("card" + (actualMission + 1), cardIdx);
         }
         missions.selectedCard = cardFlags == 65535;
         if (missions.actualMission != actualMission)
         {
             query.AddQuery("actual_mission", actualMission);
             missions.actualMission = actualMission;
         }
         ComDiv.updateDB("player_missions", "owner_id", _client.player_id, query.GetTables(), query.GetValues());
     }
     catch (Exception ex)
     {
         SaveLog.fatal(ex.ToString());
         Printf.b_danger("[BASE_MISSION_ENTER_REC.run] Erro fatal!");
     }
 }
예제 #11
0
 public override void run()
 {
     try
     {
         if (this._client == null)
         {
             return;
         }
         Account player = this._client._player;
         if (player == null)
         {
             return;
         }
         PlayerMissions mission = player._mission;
         DBQuery        dbQuery = new DBQuery();
         if (mission.getCard(this.actualMission) != this.cardIdx)
         {
             if (this.actualMission == 0)
             {
                 mission.card1 = this.cardIdx;
             }
             else if (this.actualMission == 1)
             {
                 mission.card2 = this.cardIdx;
             }
             else if (this.actualMission == 2)
             {
                 mission.card3 = this.cardIdx;
             }
             else if (this.actualMission == 3)
             {
                 mission.card4 = this.cardIdx;
             }
             dbQuery.AddQuery("card" + (object)(this.actualMission + 1), (object)this.cardIdx);
         }
         mission.selectedCard = this.cardFlags == (int)ushort.MaxValue;
         if (mission.actualMission != this.actualMission)
         {
             dbQuery.AddQuery("actual_mission", (object)this.actualMission);
             mission.actualMission = this.actualMission;
         }
         ComDiv.updateDB("player_missions", "owner_id", (object)this._client.player_id, dbQuery.GetTables(), dbQuery.GetValues());
     }
     catch (Exception ex)
     {
         Logger.info("BASE_MISSION_ENTER_REC: " + ex.ToString());
     }
 }
예제 #12
0
 public override void RunImplement()
 {
     try
     {
         Logger.DebugPacket(GetType().Name, $"actualMission: {actualMission} cardIdx: {cardIdx} cardFlags: {cardFlags}");
         Account player = client.SessionPlayer;
         if (player == null || actualMission > 3 || cardIdx > 9)
         {
             return;
         }
         PlayerMissions missions = player.missions;
         using (DBQuery query = new DBQuery())
         {
             if (missions.GetCard(actualMission) != cardIdx)
             {
                 if (actualMission == 0)
                 {
                     missions.card1 = cardIdx;
                 }
                 else if (actualMission == 1)
                 {
                     missions.card2 = cardIdx;
                 }
                 else if (actualMission == 2)
                 {
                     missions.card3 = cardIdx;
                 }
                 else if (actualMission == 3)
                 {
                     missions.card4 = cardIdx;
                 }
                 query.AddQuery($"card{actualMission + 1}", cardIdx);
             }
             missions.selectedCard = cardFlags == 65535;
             if (missions.actualMission != actualMission)
             {
                 query.AddQuery("actual_mission", actualMission);
                 missions.actualMission = actualMission;
             }
             Utilities.UpdateDB("player_missions", "owner_id", player.playerId, query.GetTables(), query.GetValues());
         }
     }
     catch (Exception ex)
     {
         PacketLog(ex);
     }
 }
예제 #13
0
 public override void RunImplement()
 {
     try
     {
         Account        player   = client.SessionPlayer;
         PlayerMissions missions = player != null ? player.missions : null;
         bool           failed   = false;
         if (missions == null || missionIdx >= 3 || (missionIdx == 0 && missions.mission1 == 0) || (missionIdx == 1 && missions.mission2 == 0) || (missionIdx == 2 && missions.mission3 == 0))
         {
             failed = true;
         }
         if (!failed && player.UpdateMissionId(0, missionIdx) && player.UpdateCardDelete(missionIdx + 1))
         {
             if (missionIdx == 0)
             {
                 missions.mission1 = 0;
                 missions.card1    = 0;
                 missions.list1    = new byte[40];
             }
             else if (missionIdx == 1)
             {
                 missions.mission2 = 0;
                 missions.card2    = 0;
                 missions.list2    = new byte[40];
             }
             else if (missionIdx == 2)
             {
                 missions.mission3 = 0;
                 missions.card3    = 0;
                 missions.list3    = new byte[40];
             }
             client.SendPacket(new BASE_QUEST_DELETE_CARD_SET_PAK(player, 0));
         }
         else
         {
             client.SendCompletePacket(PackageDataManager.BASE_QUEST_DELETE_CARD_SET_ERROR_PAK);
         }
     }
     catch (Exception ex)
     {
         PacketLog(ex);
     }
 }
 public void ResetSlot()
 {
     repeatLastState = false;
     _deathState     = DeadEnum.isAlive;
     StopTiming();
     check            = false;
     espectador       = false;
     specGM           = false;
     withHost         = false;
     firstRespawn     = true;
     failLatencyTimes = 0;
     latency          = 0;
     ping             = 5; // Default 0
     passSequence     = 0;
     allDeaths        = 0;
     allKills         = 0;
     bonusFlags       = 0;
     killsOnLife      = 0;
     lastKillState    = 0;
     Score            = 0;
     gp           = 0;
     exp          = 0;
     headshots    = 0;
     objetivos    = 0;
     BonusGP      = 0;
     BonusXP      = 0;
     spawnsCount  = 0;
     damageBar1   = 0;
     damageBar2   = 0;
     earnedXP     = 0;
     isPlaying    = 0;
     money        = 0;
     NextVoteDate = new DateTime();
     aiLevel      = 0;
     armas_usadas.Clear();
     MissionsCompleted = false;
     Missions          = null;
 }
예제 #15
0
        public override void RunImplement()
        {
            try
            {
                Account        player   = client.SessionPlayer;
                PlayerMissions missions = player != null ? player.missions : null;
                int            price    = MissionsXML.GetMissionPrice(missionId);
                if (player == null || price == 1 || 0 > player.gold - price || missions.mission1 == missionId || missions.mission2 == missionId || missions.mission3 == missionId)
                {
                    if (price == 1)
                    {
                        client.SendCompletePacket(PackageDataManager.BASE_QUEST_BUY_CARD_SET_0x8000104C_PAK);
                    }
                    else
                    {
                        client.SendCompletePacket(PackageDataManager.BASE_QUEST_BUY_CARD_SET_0x8000104D_PAK);
                    }
                }
                else
                {
                    if (missions.mission1 == 0)
                    {
                        if (player.UpdateMissionId(missionId, 0))
                        {
                            missions.mission1      = missionId;
                            missions.list1         = new byte[40];
                            missions.actualMission = 0;
                            missions.card1         = 0;
                        }
                        else
                        {
                            client.SendCompletePacket(PackageDataManager.BASE_QUEST_BUY_CARD_SET_0x8000104C_PAK);
                            return;
                        }
                    }
                    else if (missions.mission2 == 0)
                    {
                        if (player.UpdateMissionId(missionId, 1))
                        {
                            missions.mission2      = missionId;
                            missions.list2         = new byte[40];
                            missions.actualMission = 1;
                            missions.card2         = 0;
                        }
                        else
                        {
                            client.SendCompletePacket(PackageDataManager.BASE_QUEST_BUY_CARD_SET_0x8000104C_PAK);
                            return;
                        }
                    }
                    else if (missions.mission3 == 0)
                    {
                        if (player.UpdateMissionId(missionId, 2))
                        {
                            missions.mission3      = missionId;
                            missions.list3         = new byte[40];
                            missions.actualMission = 2;
                            missions.card3         = 0;
                        }
                        else
                        {
                            client.SendCompletePacket(PackageDataManager.BASE_QUEST_BUY_CARD_SET_0x8000104C_PAK);
                            return;
                        }
                    }
                    else
                    {
                        client.SendCompletePacket(PackageDataManager.BASE_QUEST_BUY_CARD_SET_0x8000104E_PAK);
                        return;
                    }
                    if (price == 0 || player.UpdateAccountGold(player.gold - price))
                    {
                        player.gold -= price;
                        client.SendPacket(new BASE_QUEST_BUY_CARD_SET_PAK(0, player));
                    }
                    else
                    {
                        client.SendCompletePacket(PackageDataManager.BASE_QUEST_BUY_CARD_SET_0x8000104C_PAK);
                    }
                }
            }
            catch (Exception ex)
            {
                PacketLog(ex);
            }

            /*
             * 0x8000104C STR_TBL_GUI_BASE_FAIL_BUY_CARD_BY_NO_CARD_INFO
             * 0x8000104D STR_TBL_GUI_BASE_NO_POINT_TO_GET_ITEM
             * 0x8000104E STR_TBL_GUI_BASE_LIMIT_CARD_COUNT
             * 0x800010D5 STR_TBL_GUI_BASE_DID_NOT_TUTORIAL_MISSION_CARD
             */
        }
        public override void run()
        {
            Account player = _client._player;

            if (player == null)
            {
                return;
            }
            PlayerMissions missions = player._mission;
            int            price    = MissionsXML.GetMissionPrice(missionId);

            if (player == null || price == -1 || 0 > player._gp - price || missions.mission1 == missionId || missions.mission2 == missionId || missions.mission3 == missionId)
            {
                erro = price == -1 ? 0x8000104C : 0x8000104D;
            }
            else
            {
                if (missions.mission1 == 0)
                {
                    if (PlayerManager.updateMissionId(player.player_id, missionId, 0))
                    {
                        missions.mission1      = missionId;
                        missions.list1         = new byte[40];
                        missions.actualMission = 0;
                        missions.card1         = 0;
                    }
                    else
                    {
                        erro = 0x8000104C;
                    }
                }
                else if (missions.mission2 == 0)
                {
                    if (PlayerManager.updateMissionId(player.player_id, missionId, 1))
                    {
                        missions.mission2      = missionId;
                        missions.list2         = new byte[40];
                        missions.actualMission = 1;
                        missions.card2         = 0;
                    }
                    else
                    {
                        erro = 0x8000104C;
                    }
                }
                else if (missions.mission3 == 0)
                {
                    if (PlayerManager.updateMissionId(player.player_id, missionId, 2))
                    {
                        missions.mission3      = missionId;
                        missions.list3         = new byte[40];
                        missions.actualMission = 2;
                        missions.card3         = 0;
                    }
                    else
                    {
                        erro = 0x8000104C;
                    }
                }
                else
                {
                    erro = 0x8000104E;
                }
                if (erro == 0)
                {
                    if (price == 0 || PlayerManager.updateAccountGold(player.player_id, player._gp - price))
                    {
                        player._gp -= price;
                    }
                    else
                    {
                        erro = 0x8000104C;
                    }
                }
            }
            _client.SendPacket(new BASE_QUEST_BUY_CARD_SET_PAK(erro, player));

            /*
             * 0x8000104C STR_TBL_GUI_BASE_FAIL_BUY_CARD_BY_NO_CARD_INFO
             * 0x8000104D STR_TBL_GUI_BASE_NO_POINT_TO_GET_ITEM
             * 0x8000104E STR_TBL_GUI_BASE_LIMIT_CARD_COUNT
             * 0x800010D5 STR_TBL_GUI_BASE_DID_NOT_TUTORIAL_MISSION_CARD
             */
        }
예제 #17
0
 public void updateCurrentMissionList(long player_id, PlayerMissions mission)
 {
     byte[] list = mission.getCurrentMissionList();
     ComDiv.updateDB("player_missions", "mission" + (mission.actualMission + 1), list, "owner_id", player_id);
 }
 public void SetMissionsClone(PlayerMissions missions)
 {
     Missions          = missions.DeepCopy();
     MissionsCompleted = false;
 }
예제 #19
0
        public override void run()
        {
            Account player = this._client._player;

            if (player == null)
            {
                return;
            }
            PlayerMissions mission      = player._mission;
            int            missionPrice = MissionsXML.GetMissionPrice(this.missionId);

            if (player == null || missionPrice == -1 || (0 > player._gp - missionPrice || mission.mission1 == this.missionId) || (mission.mission2 == this.missionId || mission.mission3 == this.missionId))
            {
                this.erro = missionPrice == -1 ? 2147487820U : 2147487821U;
            }
            else
            {
                if (mission.mission1 == 0)
                {
                    if (PlayerManager.updateMissionId(player.player_id, this.missionId, 0))
                    {
                        mission.mission1      = this.missionId;
                        mission.list1         = new byte[40];
                        mission.actualMission = 0;
                        mission.card1         = 0;
                    }
                    else
                    {
                        this.erro = 2147487820U;
                    }
                }
                else if (mission.mission2 == 0)
                {
                    if (PlayerManager.updateMissionId(player.player_id, this.missionId, 1))
                    {
                        mission.mission2      = this.missionId;
                        mission.list2         = new byte[40];
                        mission.actualMission = 1;
                        mission.card2         = 0;
                    }
                    else
                    {
                        this.erro = 2147487820U;
                    }
                }
                else if (mission.mission3 == 0)
                {
                    if (PlayerManager.updateMissionId(player.player_id, this.missionId, 2))
                    {
                        mission.mission3      = this.missionId;
                        mission.list3         = new byte[40];
                        mission.actualMission = 2;
                        mission.card3         = 0;
                    }
                    else
                    {
                        this.erro = 2147487820U;
                    }
                }
                else
                {
                    this.erro = 2147487822U;
                }
                if (this.erro == 0U)
                {
                    if (missionPrice == 0 || PlayerManager.updateAccountGold(player.player_id, player._gp - missionPrice))
                    {
                        player._gp -= missionPrice;
                    }
                    else
                    {
                        this.erro = 2147487820U;
                    }
                }
            }
            this._client.SendPacket((SendPacket) new BASE_QUEST_BUY_CARD_SET_PAK(this.erro, player));
        }