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 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 HandleModifyHonorCommand(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 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 HandleModifyFlyCommand(CommandHandler handler, StringArguments args) { 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 HandleModifyHPCommand(StringArguments args, CommandHandler handler) { Player target = handler.GetSelectedPlayerOrSelf(); if (CheckModifyResources(args, handler, target, out int hp, out int hpmax)) { NotifyModification(handler, target, CypherStrings.YouChangeHp, CypherStrings.YoursHpChanged, hp, hpmax); target.SetMaxHealth((uint)hpmax); target.SetHealth((uint)hp); return(true); } return(false); }
static bool HandleModifyWalkSpeedCommand(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 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 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 HandleModifyRunicPowerCommand(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 HandleModifyManaCommand(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 HandleModifyASpeedCommand(CommandHandler handler, StringArguments args) { float allSpeed; Player target = handler.GetSelectedPlayerOrSelf(); if (CheckModifySpeed(args, handler, target, out allSpeed, 0.1f, 50.0f)) { NotifyModification(handler, target, CypherStrings.YouChangeAspeed, CypherStrings.YoursAspeedChanged, allSpeed); target.SetSpeedRate(UnitMoveType.Walk, allSpeed); target.SetSpeedRate(UnitMoveType.Run, allSpeed); target.SetSpeedRate(UnitMoveType.Swim, allSpeed); target.SetSpeedRate(UnitMoveType.Flight, allSpeed); 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 (Global.CharacterCacheStorage.GetCharacterNameByGuid(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 HandleModifyMountCommand(StringArguments args, CommandHandler handler) { if (args.Empty()) { return(false); } if (!uint.TryParse(args.NextString(), 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 HandleModifyDrunkCommand(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 HandlePlaySceneCommand(StringArguments args, CommandHandler handler) { if (args.Empty()) { return(false); } uint sceneId = args.NextUInt32(); 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 HandleModifyRepCommand(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); } if (!uint.TryParse(factionTxt, out uint factionId)) { return(false); } string rankTxt = args.NextString(); if (factionId == 0 || !int.TryParse(rankTxt, out int amount)) { return(false); } var 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); } // try to find rank by name if ((amount == 0) && !(amount < 0) && !rankTxt.IsNumber()) { string rankStr = rankTxt.ToLower(); int i = 0; int r = 0; for (; i != ReputationMgr.ReputationRankThresholds.Length - 1; ++i, ++r) { string rank = handler.GetCypherString(ReputationMgr.ReputationRankStrIndex[r]); if (string.IsNullOrEmpty(rank)) { continue; } if (rank.Equals(rankStr)) { break; } if (i == ReputationMgr.ReputationRankThresholds.Length - 1) { handler.SendSysMessage(CypherStrings.CommandInvalidParam, rankTxt); return(false); } amount = ReputationMgr.ReputationRankThresholds[i]; string deltaTxt = args.NextString(); if (!string.IsNullOrEmpty(deltaTxt)) { int toNextRank = 0; var nextThresholdIndex = i; ++nextThresholdIndex; if (nextThresholdIndex != ReputationMgr.ReputationRankThresholds.Length - 1) { toNextRank = nextThresholdIndex - i; } if (!int.TryParse(deltaTxt, out int delta) || delta < 0 || delta >= toNextRank) { handler.SendSysMessage(CypherStrings.CommandFactionDelta, Math.Max(0, toNextRank - 1)); return(false); } amount += delta; } } } 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 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.SetGender(gender); target.SetNativeSex(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 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); } if (!ushort.TryParse(args.NextString(), out ushort mark)) { mark = 65535; } 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(ServerOpcodes.SetFlatSpellModifier); SpellModifierInfo spellMod = new(); spellMod.ModIndex = op; SpellModifierData modData; modData.ClassIndex = spellflatid; modData.ModifierValue = val; spellMod.ModifierData.Add(modData); packet.Modifiers.Add(spellMod); target.SendPacket(packet); 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.SetGender(gender); target.SetNativeSex(gender); // Change display ID target.InitDisplayIds(); target.RestoreDisplayId(false); Global.CharacterCacheStorage.UpdateCharacterGender(target.GetGUID(), (byte)gender); // Generate random customizations List <ChrCustomizationChoice> customizations = new(); var options = Global.DB2Mgr.GetCustomiztionOptions(target.GetRace(), gender); WorldSession worldSession = target.GetSession(); foreach (ChrCustomizationOptionRecord option in options) { ChrCustomizationReqRecord optionReq = CliDB.ChrCustomizationReqStorage.LookupByKey(option.ChrCustomizationReqID); if (optionReq != null && !worldSession.MeetsChrCustomizationReq(optionReq, target.GetClass(), false, customizations)) { continue; } // Loop over the options until the first one fits var choicesForOption = Global.DB2Mgr.GetCustomiztionChoices(option.Id); foreach (ChrCustomizationChoiceRecord choiceForOption in choicesForOption) { var choiceReq = CliDB.ChrCustomizationReqStorage.LookupByKey(choiceForOption.ChrCustomizationReqID); if (choiceReq != null && !worldSession.MeetsChrCustomizationReq(choiceReq, target.GetClass(), false, customizations)) { continue; } ChrCustomizationChoiceRecord choiceEntry = choicesForOption[0]; ChrCustomizationChoice choice = new(); choice.ChrCustomizationOptionID = option.Id; choice.ChrCustomizationChoiceID = choiceEntry.Id; customizations.Add(choice); break; } } target.SetCustomizations(customizations); handler.SendSysMessage(CypherStrings.YouChangeGender, handler.GetNameLink(target), gender); if (handler.NeedReportToTarget(target)) { target.SendSysMessage(CypherStrings.YourGenderChanged, gender, handler.GetNameLink()); } 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 HandleModifyRepCommand(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); } if (!uint.TryParse(factionTxt, out uint factionId)) { return(false); } string rankTxt = args.NextString(); if (factionId == 0 || !int.TryParse(rankTxt, out int amount)) { return(false); } 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)) { if (!int.TryParse(deltaTxt, out int delta) || 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); }