예제 #1
0
        void RewardPlayerWithRewardPack(RewardPackRecord rewardPackEntry)
        {
            if (rewardPackEntry == null)
            {
                return;
            }

            CharTitlesRecord charTitlesEntry = CliDB.CharTitlesStorage.LookupByKey(rewardPackEntry.CharTitleID);

            if (charTitlesEntry != null)
            {
                SetTitle(charTitlesEntry);
            }

            ModifyMoney(rewardPackEntry.Money);

            var rewardCurrencyTypes = Global.DB2Mgr.GetRewardPackCurrencyTypesByRewardID(rewardPackEntry.Id);

            foreach (RewardPackXCurrencyTypeRecord currency in rewardCurrencyTypes)
            {
                ModifyCurrency((CurrencyTypes)currency.CurrencyTypeID, currency.Quantity);
            }

            var rewardPackXItems = Global.DB2Mgr.GetRewardPackItemsByRewardID(rewardPackEntry.Id);

            foreach (RewardPackXItemRecord rewardPackXItem in rewardPackXItems)
            {
                AddItem(rewardPackXItem.ItemID, rewardPackXItem.ItemQuantity);
            }
        }
예제 #2
0
        void RewardPlayerWithRewardPack(RewardPackRecord rewardPackEntry)
        {
            if (rewardPackEntry == null)
            {
                return;
            }

            CharTitlesRecord charTitlesEntry = CliDB.CharTitlesStorage.LookupByKey(rewardPackEntry.TitleID);

            if (charTitlesEntry != null)
            {
                SetTitle(charTitlesEntry);
            }

            ModifyMoney(rewardPackEntry.Money);
            var rewardPackXItems = Global.DB2Mgr.GetRewardPackItemsByRewardID(rewardPackEntry.Id);

            if (rewardPackXItems != null)
            {
                foreach (RewardPackXItemRecord rewardPackXItem in rewardPackXItems)
                {
                    AddItem(rewardPackXItem.ItemID, rewardPackXItem.Amount);
                }
            }
        }
예제 #3
0
        static bool HandleTitlesRemoveCommand(StringArguments args, CommandHandler handler)
        {
            // number or [name] Shift-click form |color|Htitle:title_id|h[name]|h|r
            string id_p = handler.extractKeyFromLink(args, "Htitle");

            if (string.IsNullOrEmpty(id_p))
            {
                return(false);
            }

            int id = int.Parse(id_p);

            if (id <= 0)
            {
                handler.SendSysMessage(CypherStrings.InvalidTitleId, id);
                return(false);
            }

            Player target = handler.getSelectedPlayer();

            if (!target)
            {
                handler.SendSysMessage(CypherStrings.NoCharSelected);
                return(false);
            }

            // check online security
            if (handler.HasLowerSecurity(target, ObjectGuid.Empty))
            {
                return(false);
            }

            CharTitlesRecord titleInfo = CliDB.CharTitlesStorage.LookupByKey(id);

            if (titleInfo == null)
            {
                handler.SendSysMessage(CypherStrings.InvalidTitleId, id);
                return(false);
            }

            target.SetTitle(titleInfo, true);

            string tNameLink = handler.GetNameLink(target);

            string titleNameStr = (target.GetGender() == Gender.Male ? titleInfo.NameMale : titleInfo.NameFemale)[handler.GetSessionDbcLocale()] + target.GetName();

            handler.SendSysMessage(CypherStrings.TitleRemoveRes, id, titleNameStr, tNameLink);

            if (!target.HasTitle(target.GetUInt32Value(PlayerFields.ChosenTitle)))
            {
                target.SetUInt32Value(PlayerFields.ChosenTitle, 0);
                handler.SendSysMessage(CypherStrings.CurrentTitleReset, tNameLink);
            }

            return(true);
        }
예제 #4
0
        static bool HandleTitlesRemoveCommand(StringArguments args, CommandHandler handler)
        {
            // number or [name] Shift-click form |color|Htitle:title_id|h[name]|h|r
            string id_p = handler.ExtractKeyFromLink(args, "Htitle");

            if (string.IsNullOrEmpty(id_p))
            {
                return(false);
            }

            if (!uint.TryParse(id_p, out uint id) || id == 0)
            {
                handler.SendSysMessage(CypherStrings.InvalidTitleId, id);
                return(false);
            }

            Player target = handler.GetSelectedPlayer();

            if (!target)
            {
                handler.SendSysMessage(CypherStrings.NoCharSelected);
                return(false);
            }

            // check online security
            if (handler.HasLowerSecurity(target, ObjectGuid.Empty))
            {
                return(false);
            }

            CharTitlesRecord titleInfo = CliDB.CharTitlesStorage.LookupByKey(id);

            if (titleInfo == null)
            {
                handler.SendSysMessage(CypherStrings.InvalidTitleId, id);
                return(false);
            }

            target.SetTitle(titleInfo, true);

            string tNameLink = handler.GetNameLink(target);

            string titleNameStr = string.Format((target.GetGender() == Gender.Male ? titleInfo.Name : titleInfo.Name1)[handler.GetSessionDbcLocale()].ConvertFormatSyntax(), target.GetName());

            handler.SendSysMessage(CypherStrings.TitleRemoveRes, id, titleNameStr, tNameLink);

            if (!target.HasTitle(target.m_playerData.PlayerTitle))
            {
                target.SetChosenTitle(0);
                handler.SendSysMessage(CypherStrings.CurrentTitleReset, tNameLink);
            }

            return(true);
        }
예제 #5
0
        static bool HandleTitlesCurrentCommand(StringArguments args, CommandHandler handler)
        {
            // number or [name] Shift-click form |color|Htitle:title_id|h[name]|h|r
            string id_p = handler.extractKeyFromLink(args, "Htitle");

            if (string.IsNullOrEmpty(id_p))
            {
                return(false);
            }

            if (!uint.TryParse(id_p, out uint id) || id == 0)
            {
                handler.SendSysMessage(CypherStrings.InvalidTitleId, id);
                return(false);
            }

            Player target = handler.getSelectedPlayer();

            if (!target)
            {
                handler.SendSysMessage(CypherStrings.NoCharSelected);
                return(false);
            }

            // check online security
            if (handler.HasLowerSecurity(target, ObjectGuid.Empty))
            {
                return(false);
            }

            CharTitlesRecord titleInfo = CliDB.CharTitlesStorage.LookupByKey(id);

            if (titleInfo == null)
            {
                handler.SendSysMessage(CypherStrings.InvalidTitleId, id);
                return(false);
            }

            string tNameLink = handler.GetNameLink(target);

            target.SetTitle(titleInfo);                            // to be sure that title now known
            target.SetUInt32Value(PlayerFields.ChosenTitle, titleInfo.MaskID);

            handler.SendSysMessage(CypherStrings.TitleCurrentRes, id, (target.GetGender() == Gender.Male ? titleInfo.NameMale : titleInfo.NameFemale)[handler.GetSessionDbcLocale()], tNameLink);
            return(true);
        }