Пример #1
0
        static bool HandlePlayScenePackageCommand(StringArguments args, CommandHandler handler)
        {
            if (args.Empty())
            {
                return(false);
            }

            string scenePackageIdStr = args.NextString();
            string flagsStr          = args.NextString("");

            if (scenePackageIdStr.IsEmpty())
            {
                return(false);
            }

            uint   scenePackageId = uint.Parse(scenePackageIdStr);
            uint   flags          = !flagsStr.IsEmpty() ? uint.Parse(flagsStr) : (uint)SceneFlags.Unk16;
            Player target         = handler.getSelectedPlayerOrSelf();

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

            if (!CliDB.SceneScriptPackageStorage.HasRecord(scenePackageId))
            {
                return(false);
            }

            target.GetSceneMgr().PlaySceneByPackageId(scenePackageId, (SceneFlags)flags);
            return(true);
        }
Пример #2
0
        static bool HandleModifyXPCommand(StringArguments args, CommandHandler handler)
        {
            if (args.Empty())
            {
                return(false);
            }

            int xp = args.NextInt32();

            if (xp < 1)
            {
                handler.SendSysMessage(CypherStrings.BadValue);
                return(false);
            }

            Player target = handler.getSelectedPlayerOrSelf();

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

            if (handler.HasLowerSecurity(target, ObjectGuid.Empty))
            {
                return(false);
            }

            // we can run the command
            target.GiveXP((uint)xp, null);
            return(true);
        }
Пример #3
0
        static bool HandleCancelSceneCommand(StringArguments args, CommandHandler handler)
        {
            if (args.Empty())
            {
                return(false);
            }

            Player target = handler.getSelectedPlayerOrSelf();

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

            uint id = args.NextUInt32();

            if (!CliDB.SceneScriptPackageStorage.HasRecord(id))
            {
                return(false);
            }

            target.GetSceneMgr().CancelSceneByPackageId(id);
            return(true);
        }
Пример #4
0
        static bool Honor(StringArguments args, CommandHandler handler)
        {
            if (args.Empty())
            {
                return(false);
            }

            Player target = handler.getSelectedPlayerOrSelf();

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

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

            int amount = args.NextInt32();

            //target.ModifyCurrency(CurrencyTypes.HonorPoints, amount, true, true);
            handler.SendSysMessage("NOT IMPLEMENTED: {0} honor NOT added.", amount);

            //handler.SendSysMessage(CypherStrings.CommandModifyHonor, handler.GetNameLink(target), target.GetCurrency((uint)CurrencyTypes.HonorPoints));
            return(true);
        }
Пример #5
0
        static bool HandlePlaySceneCommand(StringArguments args, CommandHandler handler)
        {
            if (args.Empty())
            {
                return(false);
            }

            string sceneIdStr = args.NextString();

            if (sceneIdStr.IsEmpty())
            {
                return(false);
            }

            uint   sceneId = uint.Parse(sceneIdStr);
            Player target  = handler.getSelectedPlayerOrSelf();

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

            if (Global.ObjectMgr.GetSceneTemplate(sceneId) == null)
            {
                return(false);
            }

            target.GetSceneMgr().PlayScene(sceneId);
            return(true);
        }
Пример #6
0
        static bool HandleModifyCurrencyCommand(StringArguments args, CommandHandler handler)
        {
            if (args.Empty())
            {
                return(false);
            }

            Player target = handler.getSelectedPlayerOrSelf();

            if (!target)
            {
                handler.SendSysMessage(CypherStrings.PlayerNotFound);

                return(false);
            }

            uint currencyId = args.NextUInt32();

            if (!CliDB.CurrencyTypesStorage.ContainsKey(currencyId))
            {
                return(false);
            }

            uint amount = args.NextUInt32();

            if (amount == 0)
            {
                return(false);
            }

            target.ModifyCurrency((CurrencyTypes)currencyId, (int)amount, true, true);

            return(true);
        }
Пример #7
0
        static bool HandlePlayScenePackageCommand(StringArguments args, CommandHandler handler)
        {
            if (args.Empty())
            {
                return(false);
            }

            uint scenePackageId = args.NextUInt32();

            if (!uint.TryParse(args.NextString(""), out uint flags))
            {
                flags = (uint)SceneFlags.Unk16;
            }

            Player target = handler.getSelectedPlayerOrSelf();

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

            if (!CliDB.SceneScriptPackageStorage.HasRecord(scenePackageId))
            {
                return(false);
            }

            target.GetSceneMgr().PlaySceneByPackageId(scenePackageId, (SceneFlags)flags);
            return(true);
        }
Пример #8
0
        static bool SetSkill(StringArguments args, CommandHandler handler)
        {
            // number or [name] Shift-click form |color|Hskill:skill_id|h[name]|h|r
            string skillStr = handler.extractKeyFromLink(args, "Hskill");

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

            if (!uint.TryParse(skillStr, out uint skill) || skill == 0)
            {
                handler.SendSysMessage(CypherStrings.InvalidSkillId, skill);
                return(false);
            }

            uint level = args.NextUInt32();

            if (level == 0)
            {
                return(false);
            }

            Player target = handler.getSelectedPlayerOrSelf();

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

            SkillLineRecord skillLine = CliDB.SkillLineStorage.LookupByKey(skill);

            if (skillLine == null)
            {
                handler.SendSysMessage(CypherStrings.InvalidSkillId, skill);
                return(false);
            }

            bool targetHasSkill = target.GetSkillValue((SkillType)skill) != 0;

            ushort maxPureSkill = args.NextUInt16();
            // If our target does not yet have the skill they are trying to add to them, the chosen level also becomes
            // the max level of the new profession.
            ushort max = maxPureSkill != 0 ? maxPureSkill : targetHasSkill?target.GetPureMaxSkillValue((SkillType)skill) : (ushort)level;

            if (level == 0 || level > max || max <= 0)
            {
                return(false);
            }

            // If the player has the skill, we get the current skill step. If they don't have the skill, we
            // add the skill to the player's book with step 1 (which is the first rank, in most cases something
            // like 'Apprentice <skill>'.
            target.SetSkill((SkillType)skill, (uint)(targetHasSkill ? target.GetSkillStep((SkillType)skill) : 1), level, max);
            handler.SendSysMessage(CypherStrings.SetSkill, skill, skillLine.DisplayName[handler.GetSessionDbcLocale()], handler.GetNameLink(target), level, max);
            return(true);
        }
Пример #9
0
        static bool HandleModifyPowerCommand(StringArguments args, CommandHandler handler)
        {
            if (args.Empty())
            {
                return(false);
            }

            Player target = handler.getSelectedPlayerOrSelf();

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

            if (handler.HasLowerSecurity(target, ObjectGuid.Empty))
            {
                return(false);
            }

            string powerTypeToken = args.NextString();

            if (powerTypeToken.IsEmpty())
            {
                return(false);
            }

            PowerTypeRecord powerType = Global.DB2Mgr.GetPowerTypeByName(powerTypeToken);

            if (powerType == null)
            {
                handler.SendSysMessage(CypherStrings.InvalidPowerName);
                return(false);
            }

            if (target.GetPowerIndex(powerType.PowerTypeEnum) == (int)PowerType.Max)
            {
                handler.SendSysMessage(CypherStrings.InvalidPowerName);
                return(false);
            }

            int powerAmount = args.NextInt32();

            if (powerAmount < 1)
            {
                handler.SendSysMessage(CypherStrings.BadValue);
                return(false);
            }

            NotifyModification(handler, target, CypherStrings.YouChangePower, CypherStrings.YourPowerChanged, powerType.NameGlobalStringTag, powerAmount, powerAmount);
            powerAmount *= powerType.DisplayModifier;
            target.SetMaxPower(powerType.PowerTypeEnum, powerAmount);
            target.SetPower(powerType.PowerTypeEnum, powerAmount);
            return(true);
        }
Пример #10
0
        static bool HandleModifyMountCommand(StringArguments args, CommandHandler handler)
        {
            if (args.Empty())
            {
                return(false);
            }

            string mountStr = args.NextString();

            if (mountStr.IsEmpty())
            {
                return(false);
            }

            if (uint.TryParse(mountStr, out uint mount))
            {
                return(false);
            }

            if (!CliDB.CreatureDisplayInfoStorage.HasRecord(mount))
            {
                handler.SendSysMessage(CypherStrings.NoMount);
                return(false);
            }

            Player target = handler.getSelectedPlayerOrSelf();

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

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

            float speed;

            if (!CheckModifySpeed(args, handler, target, out speed, 0.1f, 50.0f))
            {
                return(false);
            }

            NotifyModification(handler, target, CypherStrings.YouGiveMount, CypherStrings.MountGived);
            target.Mount(mount);
            target.SetSpeedRate(UnitMoveType.Run, speed);
            target.SetSpeedRate(UnitMoveType.Flight, speed);
            return(true);
        }
Пример #11
0
            static bool HandleModifyFlyCommand(StringArguments args, CommandHandler handler)
            {
                float  flySpeed;
                Player target = handler.getSelectedPlayerOrSelf();

                if (CheckModifySpeed(args, handler, target, out flySpeed, 0.1f, 50.0f, false))
                {
                    NotifyModification(handler, target, CypherStrings.YouChangeFlySpeed, CypherStrings.YoursFlySpeedChanged, flySpeed);
                    target.SetSpeedRate(UnitMoveType.Flight, flySpeed);
                    return(true);
                }
                return(false);
            }
Пример #12
0
            static bool Walk(StringArguments args, CommandHandler handler)
            {
                float  Speed;
                Player target = handler.getSelectedPlayerOrSelf();

                if (CheckModifySpeed(args, handler, target, out Speed, 0.1f, 50.0f))
                {
                    NotifyModification(handler, target, CypherStrings.YouChangeSpeed, CypherStrings.YoursSpeedChanged, Speed);
                    target.SetSpeedRate(UnitMoveType.Run, Speed);
                    return(true);
                }
                return(false);
            }
Пример #13
0
        static bool HP(StringArguments args, CommandHandler handler)
        {
            int    hp, hpmax = 0;
            Player target = handler.getSelectedPlayerOrSelf();

            if (CheckModifyResources(args, handler, target, out hp, out hpmax))
            {
                NotifyModification(handler, target, CypherStrings.YouChangeHp, CypherStrings.YoursHpChanged, hp, hpmax);
                target.SetMaxHealth((uint)hpmax);
                target.SetHealth((uint)hp);
                return(true);
            }
            return(false);
        }
Пример #14
0
        static bool HandleMaxSkillCommand(StringArguments args, CommandHandler handler)
        {
            Player player = handler.getSelectedPlayerOrSelf();

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

            // each skills that have max skill value dependent from level seted to current level max skill value
            player.UpdateSkillsToMaxSkillsForLevel();
            return(true);
        }
Пример #15
0
        static bool RunicPower(StringArguments args, CommandHandler handler)
        {
            int    rune, runemax;
            Player target         = handler.getSelectedPlayerOrSelf();
            byte   runeMultiplier = 10;

            if (CheckModifyResources(args, handler, target, out rune, out runemax, runeMultiplier))
            {
                NotifyModification(handler, target, CypherStrings.YouChangeRunicPower, CypherStrings.YoursRunicPowerChanged, rune / runeMultiplier, runemax / runeMultiplier);
                target.SetMaxPower(PowerType.RunicPower, runemax);
                target.SetPower(PowerType.RunicPower, rune);
                return(true);
            }
            return(false);
        }
Пример #16
0
        static bool HandleModifyEnergyCommand(StringArguments args, CommandHandler handler)
        {
            int    energy, energymax;
            Player target           = handler.getSelectedPlayerOrSelf();
            byte   energyMultiplier = 10;

            if (CheckModifyResources(args, handler, target, out energy, out energymax, energyMultiplier))
            {
                NotifyModification(handler, target, CypherStrings.YouChangeEnergy, CypherStrings.YoursEnergyChanged, energy / energyMultiplier, energymax / energyMultiplier);
                target.SetMaxPower(PowerType.Energy, energymax);
                target.SetPower(PowerType.Energy, energy);
                return(true);
            }
            return(false);
        }
Пример #17
0
        static bool Mana(StringArguments args, CommandHandler handler)
        {
            int    mana, manamax;
            Player target = handler.getSelectedPlayerOrSelf();

            if (CheckModifyResources(args, handler, target, out mana, out manamax))
            {
                NotifyModification(handler, target, CypherStrings.YouChangeMana, CypherStrings.YoursManaChanged, mana, manamax);
                target.SetMaxPower(PowerType.Mana, manamax);
                target.SetPower(PowerType.Mana, mana);
                return(true);
            }

            return(false);
        }
Пример #18
0
        static bool HandleGuildInfoCommand(StringArguments args, CommandHandler handler)
        {
            Guild  guild  = null;
            Player target = handler.getSelectedPlayerOrSelf();

            if (!args.Empty() && args[0] != '\0')
            {
                if (char.IsDigit(args[0]))
                {
                    guild = Global.GuildMgr.GetGuildById(args.NextUInt64());
                }
                else
                {
                    guild = Global.GuildMgr.GetGuildByName(args.NextString());
                }
            }
            else if (target)
            {
                guild = target.GetGuild();
            }

            if (!guild)
            {
                return(false);
            }

            // Display Guild Information
            handler.SendSysMessage(CypherStrings.GuildInfoName, guild.GetName(), guild.GetId()); // Guild Id + Name

            string guildMasterName;

            if (ObjectManager.GetPlayerNameByGUID(guild.GetLeaderGUID(), out guildMasterName))
            {
                handler.SendSysMessage(CypherStrings.GuildInfoGuildMaster, guildMasterName, guild.GetLeaderGUID().ToString()); // Guild Master
            }
            // Format creation date

            var createdDateTime = Time.UnixTimeToDateTime(guild.GetCreatedDate());

            handler.SendSysMessage(CypherStrings.GuildInfoCreationDate, createdDateTime.ToLongDateString()); // Creation Date
            handler.SendSysMessage(CypherStrings.GuildInfoMemberCount, guild.GetMembersCount());             // Number of Members
            handler.SendSysMessage(CypherStrings.GuildInfoBankGold, guild.GetBankMoney() / 100 / 100);       // Bank Gold (in gold coins)
            handler.SendSysMessage(CypherStrings.GuildInfoLevel, guild.GetLevel());                          // Level
            handler.SendSysMessage(CypherStrings.GuildInfoMotd, guild.GetMOTD());                            // Message of the Day
            handler.SendSysMessage(CypherStrings.GuildInfoExtraInfo, guild.GetInfo());                       // Extra Information
            return(true);
        }
Пример #19
0
        static bool Drunk(StringArguments args, CommandHandler handler)
        {
            if (args.Empty())
            {
                return(false);
            }

            byte drunklevel = args.NextByte();

            if (drunklevel > 100)
            {
                drunklevel = 100;
            }

            Player target = handler.getSelectedPlayerOrSelf();

            if (target)
            {
                target.SetDrunkValue(drunklevel);
            }

            return(true);
        }
Пример #20
0
        static bool HandleModifyMoneyCommand(StringArguments args, CommandHandler handler)
        {
            Player target = handler.getSelectedPlayerOrSelf();

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

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

            long  moneyToAdd  = args.NextInt64();
            ulong targetMoney = target.GetMoney();

            if (moneyToAdd < 0)
            {
                long newmoney = (long)targetMoney + moneyToAdd;

                Log.outDebug(LogFilter.ChatSystem, Global.ObjectMgr.GetCypherString(CypherStrings.CurrentMoney), targetMoney, moneyToAdd, newmoney);
                if (newmoney <= 0)
                {
                    handler.SendSysMessage(CypherStrings.YouTakeAllMoney, handler.GetNameLink(target));
                    if (handler.needReportToTarget(target))
                    {
                        target.SendSysMessage(CypherStrings.YoursAllMoneyGone, handler.GetNameLink());
                    }

                    target.SetMoney(0);
                }
                else
                {
                    ulong moneyToAddMsg = (ulong)(moneyToAdd * -1);
                    if (newmoney > (long)PlayerConst.MaxMoneyAmount)
                    {
                        newmoney = (long)PlayerConst.MaxMoneyAmount;
                    }

                    handler.SendSysMessage(CypherStrings.YouTakeMoney, moneyToAddMsg, handler.GetNameLink(target));
                    if (handler.needReportToTarget(target))
                    {
                        target.SendSysMessage(CypherStrings.YoursMoneyTaken, handler.GetNameLink(), moneyToAddMsg);
                    }
                    target.SetMoney((ulong)newmoney);
                }
            }
            else
            {
                handler.SendSysMessage(CypherStrings.YouGiveMoney, moneyToAdd, handler.GetNameLink(target));
                if (handler.needReportToTarget(target))
                {
                    target.SendSysMessage(CypherStrings.YoursMoneyGiven, handler.GetNameLink(), moneyToAdd);
                }

                if ((ulong)moneyToAdd >= PlayerConst.MaxMoneyAmount)
                {
                    moneyToAdd = Convert.ToInt64(PlayerConst.MaxMoneyAmount);
                }

                moneyToAdd = (long)Math.Min((ulong)moneyToAdd, (PlayerConst.MaxMoneyAmount - targetMoney));

                target.ModifyMoney(moneyToAdd);
            }

            Log.outDebug(LogFilter.ChatSystem, Global.ObjectMgr.GetCypherString(CypherStrings.NewMoney), targetMoney, moneyToAdd, target.GetMoney());
            return(true);
        }
Пример #21
0
        static bool HandleModifyGenderCommand(StringArguments args, CommandHandler handler)
        {
            if (args.Empty())
            {
                return(false);
            }

            Player target = handler.getSelectedPlayerOrSelf();

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

            PlayerInfo info = Global.ObjectMgr.GetPlayerInfo(target.GetRace(), target.GetClass());

            if (info == null)
            {
                return(false);
            }

            string gender_str = args.NextString();
            Gender gender;

            if (gender_str == "male")            // MALE
            {
                if (target.GetGender() == Gender.Male)
                {
                    return(true);
                }

                gender = Gender.Male;
            }
            else if (gender_str == "female")    // FEMALE
            {
                if (target.GetGender() == Gender.Female)
                {
                    return(true);
                }

                gender = Gender.Female;
            }
            else
            {
                handler.SendSysMessage(CypherStrings.MustMaleOrFemale);
                return(false);
            }

            // Set gender
            target.SetByteValue(UnitFields.Bytes0, 3, (byte)gender);
            target.SetByteValue(PlayerFields.Bytes3, PlayerFieldOffsets.Bytes3OffsetGender, (byte)gender);

            // Change display ID
            target.InitDisplayIds();

            handler.SendSysMessage(CypherStrings.YouChangeGender, handler.GetNameLink(target), gender);

            if (handler.needReportToTarget(target))
            {
                target.SendSysMessage(CypherStrings.YourGenderChanged, gender, handler.GetNameLink());
            }

            return(true);
        }
Пример #22
0
        static bool Rep(StringArguments args, CommandHandler handler)
        {
            if (args.Empty())
            {
                return(false);
            }

            Player target = handler.getSelectedPlayerOrSelf();

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

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

            string factionTxt = handler.extractKeyFromLink(args, "Hfaction");

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

            uint factionId = uint.Parse(factionTxt);

            int    amount  = 0;
            string rankTxt = args.NextString();

            if (factionId == 0 || rankTxt.IsEmpty())
            {
                return(false);
            }

            amount = int.Parse(rankTxt);
            if ((amount == 0) && !(amount < 0) && !rankTxt.IsNumber())
            {
                string rankStr = rankTxt.ToLower();

                int r = 0;
                amount = -42000;
                for (; r < (int)ReputationRank.Max; ++r)
                {
                    string rank = handler.GetCypherString(ReputationMgr.ReputationRankStrIndex[r]);
                    if (string.IsNullOrEmpty(rank))
                    {
                        continue;
                    }

                    if (rank.Equals(rankStr))
                    {
                        string deltaTxt = args.NextString();
                        if (!string.IsNullOrEmpty(deltaTxt))
                        {
                            int delta = int.Parse(deltaTxt);
                            if ((delta < 0) || (delta > ReputationMgr.PointsInRank[r] - 1))
                            {
                                handler.SendSysMessage(CypherStrings.CommandFactionDelta, (ReputationMgr.PointsInRank[r] - 1));
                                return(false);
                            }
                            amount += delta;
                        }
                        break;
                    }
                    amount += ReputationMgr.PointsInRank[r];
                }
                if (r >= (int)ReputationRank.Max)
                {
                    handler.SendSysMessage(CypherStrings.CommandFactionInvparam, rankTxt);
                    return(false);
                }
            }

            FactionRecord factionEntry = CliDB.FactionStorage.LookupByKey(factionId);

            if (factionEntry == null)
            {
                handler.SendSysMessage(CypherStrings.CommandFactionUnknown, factionId);
                return(false);
            }

            if (factionEntry.ReputationIndex < 0)
            {
                handler.SendSysMessage(CypherStrings.CommandFactionNorepError, factionEntry.Name[handler.GetSessionDbcLocale()], factionId);
                return(false);
            }

            target.GetReputationMgr().SetOneFactionReputation(factionEntry, amount, false);
            target.GetReputationMgr().SendState(target.GetReputationMgr().GetState(factionEntry));
            handler.SendSysMessage(CypherStrings.CommandModifyRep, factionEntry.Name[handler.GetSessionDbcLocale()], factionId, handler.GetNameLink(target), target.GetReputationMgr().GetReputation(factionEntry));

            return(true);
        }
Пример #23
0
        static bool Money(StringArguments args, CommandHandler handler)
        {
            Player target = handler.getSelectedPlayerOrSelf();

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

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

            long addmoney  = args.NextInt64();
            long moneyuser = (long)target.GetMoney();

            if (addmoney < 0)
            {
                ulong newmoney = (ulong)(moneyuser + addmoney);

                Log.outDebug(LogFilter.ChatSystem, Global.ObjectMgr.GetCypherString(CypherStrings.CurrentMoney), moneyuser, addmoney, newmoney);
                if (newmoney <= 0)
                {
                    handler.SendSysMessage(CypherStrings.YouTakeAllMoney, handler.GetNameLink(target));
                    if (handler.needReportToTarget(target))
                    {
                        target.SendSysMessage(CypherStrings.YoursAllMoneyGone, handler.GetNameLink());
                    }

                    target.SetMoney(0);
                }
                else
                {
                    if (newmoney > PlayerConst.MaxMoneyAmount)
                    {
                        newmoney = PlayerConst.MaxMoneyAmount;
                    }

                    handler.SendSysMessage(CypherStrings.YouTakeMoney, Math.Abs(addmoney), handler.GetNameLink(target));
                    if (handler.needReportToTarget(target))
                    {
                        target.SendSysMessage(CypherStrings.YoursMoneyTaken, handler.GetNameLink(), Math.Abs(addmoney));
                    }
                    target.SetMoney(newmoney);
                }
            }
            else
            {
                handler.SendSysMessage(CypherStrings.YouGiveMoney, addmoney, handler.GetNameLink(target));
                if (handler.needReportToTarget(target))
                {
                    target.SendSysMessage(CypherStrings.YoursMoneyGiven, handler.GetNameLink(), addmoney);
                }

                if (addmoney >= PlayerConst.MaxMoneyAmount)
                {
                    target.SetMoney(PlayerConst.MaxMoneyAmount);
                }
                else
                {
                    target.ModifyMoney(addmoney);
                }
            }

            Log.outDebug(LogFilter.ChatSystem, Global.ObjectMgr.GetCypherString(CypherStrings.NewMoney), moneyuser, addmoney, target.GetMoney());
            return(true);
        }
Пример #24
0
        static bool Mount(StringArguments args, CommandHandler handler)
        {
            if (args.Empty())
            {
                return(false);
            }

            ushort mId   = 1147;
            float  speed = 15f;

            uint num = args.NextUInt32();

            switch (num)
            {
            case 1:
                mId = 14340;
                break;

            case 2:
                mId = 4806;
                break;

            case 3:
                mId = 6471;
                break;

            case 4:
                mId = 12345;
                break;

            case 5:
                mId = 6472;
                break;

            case 6:
                mId = 6473;
                break;

            case 7:
                mId = 10670;
                break;

            case 8:
                mId = 10719;
                break;

            case 9:
                mId = 10671;
                break;

            case 10:
                mId = 10672;
                break;

            case 11:
                mId = 10720;
                break;

            case 12:
                mId = 14349;
                break;

            case 13:
                mId = 11641;
                break;

            case 14:
                mId = 12244;
                break;

            case 15:
                mId = 12242;
                break;

            case 16:
                mId = 14578;
                break;

            case 17:
                mId = 14579;
                break;

            case 18:
                mId = 14349;
                break;

            case 19:
                mId = 12245;
                break;

            case 20:
                mId = 14335;
                break;

            case 21:
                mId = 207;
                break;

            case 22:
                mId = 2328;
                break;

            case 23:
                mId = 2327;
                break;

            case 24:
                mId = 2326;
                break;

            case 25:
                mId = 14573;
                break;

            case 26:
                mId = 14574;
                break;

            case 27:
                mId = 14575;
                break;

            case 28:
                mId = 604;
                break;

            case 29:
                mId = 1166;
                break;

            case 30:
                mId = 2402;
                break;

            case 31:
                mId = 2410;
                break;

            case 32:
                mId = 2409;
                break;

            case 33:
                mId = 2408;
                break;

            case 34:
                mId = 2405;
                break;

            case 35:
                mId = 14337;
                break;

            case 36:
                mId = 6569;
                break;

            case 37:
                mId = 10661;
                break;

            case 38:
                mId = 10666;
                break;

            case 39:
                mId = 9473;
                break;

            case 40:
                mId = 9476;
                break;

            case 41:
                mId = 9474;
                break;

            case 42:
                mId = 14374;
                break;

            case 43:
                mId = 14376;
                break;

            case 44:
                mId = 14377;
                break;

            case 45:
                mId = 2404;
                break;

            case 46:
                mId = 2784;
                break;

            case 47:
                mId = 2787;
                break;

            case 48:
                mId = 2785;
                break;

            case 49:
                mId = 2736;
                break;

            case 50:
                mId = 2786;
                break;

            case 51:
                mId = 14347;
                break;

            case 52:
                mId = 14346;
                break;

            case 53:
                mId = 14576;
                break;

            case 54:
                mId = 9695;
                break;

            case 55:
                mId = 9991;
                break;

            case 56:
                mId = 6448;
                break;

            case 57:
                mId = 6444;
                break;

            case 58:
                mId = 6080;
                break;

            case 59:
                mId = 6447;
                break;

            case 60:
                mId = 4805;
                break;

            case 61:
                mId = 9714;
                break;

            case 62:
                mId = 6448;
                break;

            case 63:
                mId = 6442;
                break;

            case 64:
                mId = 14632;
                break;

            case 65:
                mId = 14332;
                break;

            case 66:
                mId = 14331;
                break;

            case 67:
                mId = 8469;
                break;

            case 68:
                mId = 2830;
                break;

            case 69:
                mId = 2346;
                break;

            default:
                handler.SendSysMessage(CypherStrings.NoMount);
                return(false);
            }

            Player target = handler.getSelectedPlayerOrSelf();

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

                return(false);
            }

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

            NotifyModification(handler, target, CypherStrings.YouGiveMount, CypherStrings.MountGived);

            target.SetUInt32Value(UnitFields.Flags, (uint)UnitFlags.Pvp);
            target.Mount(mId);

            var packet = new MoveSetSpeed(ServerOpcodes.MoveSetRunSpeed);

            packet.MoverGUID     = target.GetGUID();
            packet.SequenceIndex = 0;
            packet.Speed         = speed;
            target.SendMessageToSet(packet, true);

            packet               = new MoveSetSpeed(ServerOpcodes.MoveSetSwimSpeed);
            packet.MoverGUID     = target.GetGUID();
            packet.SequenceIndex = 0;
            packet.Speed         = speed;
            target.SendMessageToSet(packet, true);

            return(true);
        }
Пример #25
0
        static bool HandleModifySpellCommand(StringArguments args, CommandHandler handler)
        {
            if (args.Empty())
            {
                return(false);
            }

            byte spellflatid = args.NextByte();

            if (spellflatid == 0)
            {
                return(false);
            }

            byte op = args.NextByte();

            if (op == 0)
            {
                return(false);
            }

            ushort val = args.NextUInt16();

            if (val == 0)
            {
                return(false);
            }

            ushort mark;

            string pmark = args.NextString();

            if (string.IsNullOrEmpty(pmark))
            {
                mark = 65535;
            }
            else
            {
                mark = ushort.Parse(pmark);
            }

            Player target = handler.getSelectedPlayerOrSelf();

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

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

            handler.SendSysMessage(CypherStrings.YouChangeSpellflatid, spellflatid, val, mark, handler.GetNameLink(target));
            if (handler.needReportToTarget(target))
            {
                target.SendSysMessage(CypherStrings.YoursSpellflatidChanged, handler.GetNameLink(), spellflatid, val, mark);
            }

            SetSpellModifier  packet   = new SetSpellModifier(ServerOpcodes.SetFlatSpellModifier);
            SpellModifierInfo spellMod = new SpellModifierInfo();

            spellMod.ModIndex = op;
            SpellModifierData modData;

            modData.ClassIndex    = spellflatid;
            modData.ModifierValue = val;
            spellMod.ModifierData.Add(modData);
            packet.Modifiers.Add(spellMod);
            target.SendPacket(packet);

            return(true);
        }