Added .modify power command allowing to change any power as long as player class can use it
This commit is contained in:
@@ -748,6 +748,7 @@ namespace Framework.Constants
|
|||||||
CommandGoOffset = 852,
|
CommandGoOffset = 852,
|
||||||
CommandReloadConversationTemplate = 853,
|
CommandReloadConversationTemplate = 853,
|
||||||
CommandDebugConversation = 854,
|
CommandDebugConversation = 854,
|
||||||
|
ModifyPower = 867,
|
||||||
|
|
||||||
// Custom Permissions 1000+
|
// Custom Permissions 1000+
|
||||||
Max
|
Max
|
||||||
|
|||||||
@@ -1266,7 +1266,10 @@ namespace Framework.Constants
|
|||||||
CreatureNotAiEnabled = 11015,
|
CreatureNotAiEnabled = 11015,
|
||||||
SelectPlayerOrPet = 11016,
|
SelectPlayerOrPet = 11016,
|
||||||
ShutdownDelayed = 11017,
|
ShutdownDelayed = 11017,
|
||||||
ShutdownCancelled = 11018
|
ShutdownCancelled = 11018,
|
||||||
|
YouChangePower = 11019,
|
||||||
|
YourPowerChanged = 11020,
|
||||||
|
InvalidPowerName = 11021
|
||||||
}
|
}
|
||||||
|
|
||||||
public enum BroadcastTextIds
|
public enum BroadcastTextIds
|
||||||
|
|||||||
@@ -516,6 +516,53 @@ namespace Game.Chat
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Command("power", RBACPermissions.ModifyPower)]
|
||||||
|
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.PowerTypeToken, powerAmount, powerAmount);
|
||||||
|
powerAmount *= powerType.UIModifier;
|
||||||
|
target.SetMaxPower(powerType.PowerTypeEnum, powerAmount);
|
||||||
|
target.SetPower(powerType.PowerTypeEnum, powerAmount);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
[Command("standstate", RBACPermissions.CommandModifyStandstate)]
|
[Command("standstate", RBACPermissions.CommandModifyStandstate)]
|
||||||
static bool HandleModifyStandStateCommand(StringArguments args, CommandHandler handler)
|
static bool HandleModifyStandStateCommand(StringArguments args, CommandHandler handler)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1106,6 +1106,22 @@ namespace Game.DataStorage
|
|||||||
return _powerTypes[power];
|
return _powerTypes[power];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public PowerTypeRecord GetPowerTypeByName(string name)
|
||||||
|
{
|
||||||
|
foreach (PowerTypeRecord powerType in CliDB.PowerTypeStorage.Values)
|
||||||
|
{
|
||||||
|
string powerName = powerType.PowerTypeToken;
|
||||||
|
if (powerName.ToLower() == name)
|
||||||
|
return powerType;
|
||||||
|
|
||||||
|
powerName = powerName.Replace("_", "");
|
||||||
|
if (powerName == name)
|
||||||
|
return powerType;
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
public List<RewardPackXItemRecord> GetRewardPackItemsByRewardID(uint rewardPackID)
|
public List<RewardPackXItemRecord> GetRewardPackItemsByRewardID(uint rewardPackID)
|
||||||
{
|
{
|
||||||
return _rewardPackItems.LookupByKey(rewardPackID);
|
return _rewardPackItems.LookupByKey(rewardPackID);
|
||||||
|
|||||||
Reference in New Issue
Block a user