public override void run()
 {
     try
     {
         Account player = this._client._player;
         if (player == null)
         {
             return;
         }
         PlayerTitles titles = player._titles;
         TitleQ       title  = TitlesXML.getTitle((int)this.titleId, true);
         TitleQ       title1;
         TitleQ       title2;
         TitleQ       title3;
         TitlesXML.get3Titles(titles.Equiped1, titles.Equiped2, titles.Equiped3, out title1, out title2, out title3, false);
         if (this.slotIdx >= (byte)3 || this.titleId >= (byte)45 || (titles == null || title == null) || (title._classId == title1._classId && this.slotIdx != (byte)0 || title._classId == title2._classId && this.slotIdx != (byte)1) || (title._classId == title3._classId && this.slotIdx != (byte)2 || (!titles.Contains(title._flag) || titles.Equiped1 == (int)this.titleId) || (titles.Equiped2 == (int)this.titleId || titles.Equiped3 == (int)this.titleId)))
         {
             this.erro = 2147483648U;
         }
         else if (TitleManager.getInstance().updateEquipedTitle(titles.ownerId, (int)this.slotIdx, (int)this.titleId))
         {
             titles.SetEquip((int)this.slotIdx, (int)this.titleId);
         }
         else
         {
             this.erro = 2147483648U;
         }
         this._client.SendPacket((SendPacket) new BASE_TITLE_USE_PAK(this.erro));
     }
     catch (Exception ex)
     {
         Logger.info("BASE_TITLE_USE_REC: " + ex.ToString());
     }
 }
Exemple #2
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));
        }
Exemple #3
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 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));
        }
 public static void get3Titles(int titleId1, int titleId2, int titleId3, out TitleQ title1, out TitleQ title2, out TitleQ title3, bool ReturnNull)
 {
     if (!ReturnNull)
     {
         title1 = new TitleQ();
         title2 = new TitleQ();
         title3 = new TitleQ();
     }
     else
     {
         title1 = null;
         title2 = null;
         title3 = null;
     }
     if (titleId1 == 0 && titleId2 == 0 && titleId3 == 0)
     {
         return;
     }
     for (int i = 0; i < titles.Count; i++)
     {
         TitleQ title = titles[i];
         if (title._id == titleId1)
         {
             title1 = title;
         }
         else if (title._id == titleId2)
         {
             title2 = title;
         }
         else if (title._id == titleId3)
         {
             title3 = title;
         }
     }
 }
Exemple #6
0
 public override void RunImplement()
 {
     try
     {
         Account player = client.SessionPlayer;
         if (player == null || titleId >= 45)
         {
             return;
         }
         PlayerTitles titles = player.titles;
         TitleQ       titleQ = TitlesManager.GetTitle(titleId);
         if (titleQ == null)
         {
             client.SendCompletePacket(PackageDataManager.BASE_TITLE_GET_ERROR_PAK);
             return;
         }
         TitlesManager.Get2Titles(titleQ.req1, titleQ.req2, out TitleQ titleReq1, out TitleQ titleReq2);
         if ((titleQ.req1 == 0 || titleReq1 != null) && (titleQ.req2 == 0 || titleReq2 != null) && player.rankId >= titleQ.rank && player.brooch >= titleQ.brooch && player.medal >= titleQ.medals && player.blueorder >= titleQ.blueOrder && player.insignia >= titleQ.insignia && !titles.Contains(titleQ.flag) && titles.Contains(titleReq1.flag) && titles.Contains(titleReq2.flag))
         {
             if (titles.Slots < titleQ.slot && player.UpdateTitleSlots(titleQ.slot))
             {
                 titles.Slots = titleQ.slot;
             }
             if (player.UpdateTitlesFlags(titles.Add(titleQ.flag)) && player.UpdateTitleRequirements(player.brooch - titleQ.brooch, player.insignia - titleQ.insignia, player.medal - titleQ.medals, player.blueorder - titleQ.blueOrder))
             {
                 player.brooch    -= titleQ.brooch;
                 player.medal     -= titleQ.medals;
                 player.blueorder -= titleQ.blueOrder;
                 player.insignia  -= titleQ.insignia;
                 List <ItemsModel> items = TitlesManager.GetAwards(titleId);
                 if (items.Count > 0)
                 {
                     client.SendPacket(new PROTOCOL_INVENTORY_ITEM_CREATE_ACK(1, player, items));
                 }
                 client.SendPacket(new BASE_QUEST_UPDATE_INFO_PAK(player));
                 client.SendPacket(new BASE_TITLE_GET_PAK(0, titles.Slots));
             }
             else
             {
                 client.SendCompletePacket(PackageDataManager.BASE_TITLE_GET_ERROR_PAK);
             }
         }
         else
         {
             client.SendCompletePacket(PackageDataManager.BASE_TITLE_GET_ERROR_PAK);
         }
     }
     catch (Exception ex)
     {
         PacketLog(ex);
     }
 }
        public static string SendTitlePlayer(string str)
        {
            string txt = str.Substring(str.IndexOf(" ") + 1);

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

            Account p = AccountManager.getAccount(player_id, 0);

            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));
        }
 /// <summary>
 /// Procura informações de aquisição do título na Lista.
 /// </summary>
 /// <param name="titleId">Número do título</param>
 /// <param name="ReturnNull">Se o número do título for 0 é retornado um modelo vazio</param>
 /// <returns></returns>
 public static TitleQ getTitle(int titleId, bool ReturnNull = true)
 {
     if (titleId == 0)
     {
         if (!ReturnNull)
         {
             return(new TitleQ());
         }
         else
         {
             return(null);
         }
     }
     for (int i = 0; i < titles.Count; i++)
     {
         TitleQ title = titles[i];
         if (title._id == titleId)
         {
             return(title);
         }
     }
     return(null);
 }
Exemple #9
0
 public override void RunImplement()
 {
     try
     {
         Account player = client.SessionPlayer;
         if (player == null)
         {
             return;
         }
         PlayerTitles titles = player.titles;
         TitleQ       titleQ = TitlesManager.GetTitle(titleId);
         if (slotIdx >= 3 || titleId >= 45 || titleQ == null || titles.Equiped1 == titleId || titles.Equiped2 == titleId || titles.Equiped3 == titleId)
         {
             client.SendCompletePacket(PackageDataManager.BASE_TITLE_USE_ERROR_PAK);
             return;
         }
         TitlesManager.GetTitlesEquipped(titles.Equiped1, titles.Equiped2, titles.Equiped3, out TitleQ titleEquiped1, out TitleQ titleEquiped2, out TitleQ titleEquiped3);
         if (titleQ.classId == titleEquiped1.classId && slotIdx != 0 || titleQ.classId == titleEquiped2.classId && slotIdx != 1 || titleQ.classId == titleEquiped3.classId && slotIdx != 2 || !titles.Contains(titleQ.flag))
         {
             client.SendCompletePacket(PackageDataManager.BASE_TITLE_USE_ERROR_PAK);
             return;
         }
         if (player.UpdateEquipedTitle(slotIdx, titleId))
         {
             titles.SetEquip(slotIdx, titleId);
             client.SendCompletePacket(PackageDataManager.BASE_TITLE_USE_SUCCESS_PAK);
         }
         else
         {
             client.SendCompletePacket(PackageDataManager.BASE_TITLE_USE_ERROR_PAK);
         }
     }
     catch (Exception ex)
     {
         PacketLog(ex);
     }
 }
 public override void run()
 {
     try
     {
         Account p = _client._player;
         if (p == null)
         {
             return;
         }
         PlayerTitles t = p._titles;
         TitleQ       titleQ = TitlesXML.getTitle(titleId),
                      eq1, eq2, eq3;
         TitlesXML.get3Titles(t.Equiped1, t.Equiped2, t.Equiped3, out eq1, out eq2, out eq3, false);
         if (slotIdx >= 3 || titleId >= 45 || t == null || titleQ == null || titleQ._classId == eq1._classId && slotIdx != 0 || titleQ._classId == eq2._classId && slotIdx != 1 || titleQ._classId == eq3._classId && slotIdx != 2 || !t.Contains(titleQ._flag) || t.Equiped1 == titleId || t.Equiped2 == titleId || t.Equiped3 == titleId)
         {
             erro = 0x80000000;
         }
         else
         {
             if (TitleManager.getInstance().updateEquipedTitle(t.ownerId, slotIdx, titleId))
             {
                 t.SetEquip(slotIdx, titleId);
             }
             else
             {
                 erro = 0x80000000;
             }
         }
         _client.SendPacket(new BASE_TITLE_USE_PAK(erro));
     }
     catch (Exception ex)
     {
         SaveLog.fatal(ex.ToString());
         Printf.b_danger("[BASE_TITLE_USE_REC.run] Erro fatal!");
     }
 }
Exemple #11
0
        public static string SendTitlePlayer(string str)
        {
            Account account = AccountManager.getAccount(Convert.ToInt64(str.Substring(str.IndexOf(" ") + 1).Split(' ')[0]), 0);

            if (account._titles.ownerId == 0L)
            {
                TitleManager.getInstance().CreateTitleDB(account.player_id);
                account._titles = new PlayerTitles()
                {
                    ownerId = account.player_id
                };
            }
            PlayerTitles titles = account._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)account.player_id);
                TitleManager.getInstance().updateTitlesFlags(account.player_id, titles.Flags);
                account.SendPacket((SendPacket) new BASE_2626_PAK(account));
            }
            return(Translation.GetLabel("TitleAcquisiton", (object)num));
        }
Exemple #12
0
 public override void run()
 {
     try
     {
         Account p = _client._player;
         if (p == null || titleIdx >= 45)
         {
             return;
         }
         if (p._titles.ownerId == 0)
         {
             TitleManager.getInstance().CreateTitleDB(p.player_id);
             p._titles = new PlayerTitles {
                 ownerId = p.player_id
             };
         }
         TitleQ t1 = TitlesXML.getTitle(titleIdx);
         if (t1 != null)
         {
             TitleQ tr1, tr2;
             TitlesXML.get2Titles(t1._req1, t1._req2, out tr1, out tr2, false);
             if ((t1._req1 == 0 || tr1 != null) &&
                 (t1._req2 == 0 || tr2 != null) &&
                 p._rank >= t1._rank &&
                 p.brooch >= t1._brooch &&
                 p.medal >= t1._medals &&
                 p.blue_order >= t1._blueOrder &&
                 p.insignia >= t1._insignia &&
                 !p._titles.Contains(t1._flag) &&
                 p._titles.Contains(tr1._flag) &&
                 p._titles.Contains(tr2._flag))
             {
                 p.brooch     -= t1._brooch;
                 p.medal      -= t1._medals;
                 p.blue_order -= t1._blueOrder;
                 p.insignia   -= t1._insignia;
                 long flags = p._titles.Add(t1._flag);
                 TitleManager.getInstance().updateTitlesFlags(p.player_id, flags);
                 List <ItemsModel> items = TitleAwardsXML.getAwards(titleIdx);
                 if (items.Count > 0)
                 {
                     _client.SendPacket(new INVENTORY_ITEM_CREATE_PAK(1, p, items));
                 }
                 _client.SendPacket(new BASE_QUEST_UPDATE_INFO_PAK(p));
                 TitleManager.getInstance().updateRequi(p.player_id, p.medal, p.insignia, p.blue_order, p.brooch);
                 if (p._titles.Slots < t1._slot)
                 {
                     p._titles.Slots = t1._slot;
                     ComDiv.updateDB("player_titles", "titleslots", p._titles.Slots, "owner_id", p.player_id);
                 }
             }
             else
             {
                 erro = 0x80001083;
             }
         }
         else
         {
             erro = 0x80001083;
         }
         _client.SendPacket(new BASE_TITLE_GET_PAK(erro, p._titles.Slots));
     }
     catch (Exception ex)
     {
         SaveLog.fatal(ex.ToString());
         Printf.b_danger("[BASE_TITLE_GET_REC.run] Erro fatal!");
     }
 }