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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }