Esempio n. 1
0
 public override void RunImplement()
 {
     try
     {
         Account player = client.SessionPlayer;
         if (player == null || slotIdx >= 3)
         {
             return;
         }
         PlayerTitles titles  = player.titles;
         int          titleId = titles.GetEquip(slotIdx);
         if (titleId > 0 && player.UpdateEquipedTitle(slotIdx, 0))
         {
             titles.SetEquip(slotIdx, 0);
             if (TitlesManager.Contains(titleId, player.equipments.beret) && player.ExecuteQuery($"UPDATE accounts SET character_beret='0' WHERE id='{player.playerId}'"))
             {
                 player.equipments.beret = 0;
                 Room room = player.room;
                 if (room != null && room.GetSlot(player.slotId, out Slot slot))
                 {
                     slot.equipment = player.equipments;
                 }
             }
             client.SendCompletePacket(PackageDataManager.BASE_TITLE_DETACH_SUCCESS_PAK);
         }
         else
         {
             client.SendCompletePacket(PackageDataManager.BASE_TITLE_DETACH_ERROR_PAK);
         }
     }
     catch (Exception ex)
     {
         PacketLog(ex);
     }
 }
Esempio n. 2
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);
     }
 }
Esempio n. 3
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);
     }
 }
Esempio n. 4
0
 public TitlesController(TitlesManager titlesManager, IUserNotify userNotify)
 {
     this.TitlesManager = titlesManager;
     this.UserNotify    = userNotify;
 }
Esempio n. 5
0
 public TitleArchiver(IWebHostEnvironment environment, TitlesManager <Title> titleManager)
 {
     _environment  = environment;
     _titleManager = titleManager;
 }