42#if TRINITY_COMPILER == TRINITY_COMPILER_GNU
43#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
53 static std::vector<ChatCommand> modifyspeedCommandTable =
62 static std::vector<ChatCommand> modifyCommandTable =
86 static std::vector<ChatCommand> commandTable =
95 template<
typename... Args>
111 res = atoi((
char*)args) * multiplier;
112 resmax = atoi((
char*)args) * multiplier;
114 if (res < 1 || resmax < 1 || resmax < res)
168 int32 energy, energymax;
170 int8 const energyMultiplier = 10;
186 int8 const rageMultiplier = 10;
202 int8 const runeMultiplier = 10;
228 memcpy(&npcflag.emplace(), target->
m_unitData->NpcFlags.begin(),
sizeof(
uint64));
263 char* pspellflatid = strtok((
char*)args,
" ");
267 char* pop = strtok(
nullptr,
" ");
271 char* pval = strtok(
nullptr,
" ");
277 char* pmark = strtok(
nullptr,
" ");
279 uint8 spellflatid = atoi(pspellflatid);
280 uint8 op = atoi(pop);
288 if (target ==
nullptr)
365 if (speed > maximumBound || speed < minimumBound)
385 if (player->IsInFlight() && checkInFlight)
400 speed = (float)atof((
char*)args);
401 return CheckModifySpeed(handler, target, speed, minimumBound, maximumBound, checkInFlight);
517 target->
Mount(mount);
542 if (strchr(args,
'g') || strchr(args,
's') || strchr(args,
'c'))
545 moneyToAddO = Trinity::StringTo<int64>(args);
550 int64 moneyToAdd = *moneyToAddO;
556 int64 newmoney =
int64(targetMoney) + moneyToAdd;
566 uint64 moneyToAddMsg = moneyToAdd * -1;
612 int32 amount = atoi(args);
614 handler->
PSendSysMessage(
"NOT IMPLEMENTED: %d honor NOT added.", amount);
627 if (drunklevel > 100)
631 target->SetDrunkValue(drunklevel);
657 uint32 factionId = atoi(factionTxt);
660 char *rankTxt = strtok(
nullptr,
" ");
661 if (!factionId || !rankTxt)
680 amount = atoi(rankTxt);
682 if ((amount == 0) && (rankTxt[0] !=
'-') && !isdigit((
unsigned char)rankTxt[0]))
684 std::string rankStr = rankTxt;
685 std::wstring wrankStr;
696 for (; rankThresholdItr != end; ++rankThresholdItr, ++r)
708 if (wrank.substr(0, wrankStr.size()) == wrankStr)
712 if (rankThresholdItr == end)
719 amount = *rankThresholdItr;
721 char *deltaTxt = strtok(
nullptr,
" ");
724 int32 toNextRank = 0;
725 auto nextThresholdItr = rankThresholdItr;
727 if (nextThresholdItr != end)
728 toNextRank = *nextThresholdItr - *rankThresholdItr;
730 int32 delta = atoi(deltaTxt);
731 if (delta < 0 || delta >= toNextRank)
809 uint32 anim_id = atoi((
char*)args);
833 char const* gender_str = (
char*)args;
834 int gender_len = strlen(gender_str);
838 if (!strncmp(gender_str,
"male", gender_len))
845 else if (!strncmp(gender_str,
"female", gender_len))
870 std::vector<UF::ChrCustomizationChoice> customizations;
874 std::vector<ChrCustomizationOptionEntry const*>
const* options =
sDB2Manager.GetCustomiztionOptions(target->
GetRace(), gender);
883 std::vector<ChrCustomizationChoiceEntry const*>
const* choicesForOption =
sDB2Manager.GetCustomiztionChoices(option->ID);
894 customizations.push_back(choice);
901 char const* gender_full = gender ?
"female" :
"male";
939 uint32 currencyId = atoi(strtok((
char*)args,
" "));
944 uint32 amount = atoi(strtok(
nullptr,
" "));
959 int32 xp = atoi((
char*)args);
980 target->
GiveXP(xp,
nullptr);
994 char* powerTypeToken = strtok((
char*)args,
" ");
1013 char* amount = strtok(
nullptr,
" ");
1017 int32 powerAmount = atoi(amount);
1019 if (powerAmount < 1)
1027 bool upperCase =
true;
1028 for (
char& c : formattedPowerName)
DB2Storage< PhaseEntry > sPhaseStore("Phase.db2", &PhaseLoadInfo::Instance)
DB2Storage< MapEntry > sMapStore("Map.db2", &MapLoadInfo::Instance)
DB2Storage< CurrencyTypesEntry > sCurrencyTypesStore("CurrencyTypes.db2", &CurrencyTypesLoadInfo::Instance)
DB2Storage< ChrCustomizationReqEntry > sChrCustomizationReqStore("ChrCustomizationReq.db2", &ChrCustomizationReqLoadInfo::Instance)
DB2Storage< CreatureDisplayInfoEntry > sCreatureDisplayInfoStore("CreatureDisplayInfo.db2", &CreatureDisplayInfoLoadInfo::Instance)
DB2Storage< FactionTemplateEntry > sFactionTemplateStore("FactionTemplate.db2", &FactionTemplateLoadInfo::Instance)
DB2Storage< FactionEntry > sFactionStore("Faction.db2", &FactionLoadInfo::Instance)
@ LANG_MUST_MALE_OR_FEMALE
@ LANG_YOURS_ASPEED_CHANGED
@ LANG_YOURS_MANA_CHANGED
@ LANG_COMMAND_FACTION_UNKNOWN
@ LANG_YOURS_FLY_SPEED_CHANGED
@ LANG_COMMAND_FACTION_DELTA
@ LANG_YOURS_SWIM_SPEED_CHANGED
@ LANG_YOU_TAKE_ALL_MONEY
@ LANG_YOUR_POWER_CHANGED
@ LANG_YOURS_ALL_MONEY_GONE
@ LANG_YOURS_SPEED_CHANGED
@ LANG_YOURS_SIZE_CHANGED
@ LANG_YOU_CHANGE_RUNIC_POWER
@ LANG_YOURS_SPELLFLATID_CHANGED
@ LANG_YOU_CHANGE_FLY_SPEED
@ LANG_YOU_CHANGE_FACTION
@ LANG_YOURS_RAGE_CHANGED
@ LANG_COMMAND_FACTION_NOREP_ERROR
@ LANG_YOU_CHANGE_BACK_SPEED
@ LANG_COMMAND_INVALID_PARAM
@ LANG_YOU_CHANGE_SPELLFLATID
@ LANG_YOURS_ENERGY_CHANGED
@ LANG_COMMAND_MODIFY_REP
@ LANG_YOURS_BACK_SPEED_CHANGED
@ LANG_YOURS_RUNIC_POWER_CHANGED
@ LANG_INVALID_POWER_NAME
@ LANG_YOU_CHANGE_SWIM_SPEED
@ LANG_YOUR_GENDER_CHANGED
#define TC_LOG_DEBUG(filterType__,...)
std::optional< T > Optional
Optional helper class to wrap optional values within.
uint64 const MAX_MONEY_AMOUNT
Trinity::IteratorPair< UF::ChrCustomizationChoice const * > MakeChrCustomizationChoiceRange(Container const &container)
Role Based Access Control related classes definition.
uint32 const ReputationRankStrIndex[MAX_REPUTATION_RANK]
NPCFlags
Non Player Character flags.
void wstrToLower(std::wstring &str)
bool Utf8toWStr(char const *utf8str, size_t csize, wchar_t *wstr, size_t &wsize)
Optional< int64 > MoneyStringToMoney(std::string const &moneyString)
char * extractKeyFromLink(char *text, char const *linkType, char **something1=nullptr)
Player * getSelectedPlayerOrSelf()
Player * getSelectedPlayer()
WorldSession * GetSession()
virtual LocaleConstant GetSessionDbcLocale() const
virtual std::string GetNameLink() const
std::string PGetParseString(uint32 entry, Args &&... args) const
void PSendSysMessage(const char *fmt, Args &&... args)
bool HasLowerSecurity(Player *target, ObjectGuid guid, bool strong=false)
Creature * getSelectedCreature()
void SetSentErrorMessage(bool val)
virtual void SendSysMessage(std::string_view str, bool escapeCharacters=false)
virtual bool needReportToTarget(Player *chr) const
virtual char const * GetTrinityString(uint32 entry) const
static ObjectGuid const Empty
std::string ToString() const
UF::UpdateField< UF::ObjectData, 0, TYPEID_OBJECT > m_objectData
void ReplaceAllDynamicFlags(uint32 flag)
static ObjectGuid GetGUID(Object const *o)
virtual void SetObjectScale(float scale)
static Player * ToPlayer(Object *o)
bool HasPhase(uint32 phaseId) const
bool HasVisibleMapId(uint32 visibleMapId) const
static void AddVisibleMapId(WorldObject *object, uint32 visibleMapId)
static void AddPhase(WorldObject *object, uint32 phaseId, bool updateVisibility)
static void RemoveVisibleMapId(WorldObject *object, uint32 visibleMapId)
static void RemovePhase(WorldObject *object, uint32 phaseId, bool updateVisibility)
bool ModifyMoney(int64 amount, bool sendError=true)
void SetNativeGender(Gender gender) override
void SendDirectMessage(WorldPacket const *data) const
uint32 GetPowerIndex(Powers power) const override
void GiveXP(uint32 xp, Unit *victim, float group_rate=1.0f)
WorldSession * GetSession() const
void SetMoney(uint64 value)
void ModifyCurrency(uint32 id, int32 amount, CurrencyGainSource gainSource=CurrencyGainSource::Cheat, CurrencyDestroyReason destroyReason=CurrencyDestroyReason::Cheat)
Modify currency amount.
ReputationMgr & GetReputationMgr()
void SetCustomizations(Trinity::IteratorPair< Iter > customizations, bool markChanged=true)
void SendState(FactionState const *faction)
int32 GetReputation(uint32 faction_id) const
FactionState const * GetState(FactionEntry const *factionEntry) const
bool SetOneFactionReputation(FactionEntry const *factionEntry, int32 standing, bool incremental)
Public for chat command needs.
static std::set< int32 > const ReputationRankThresholds
void SetHealth(uint64 val)
void SetGender(Gender gender)
void RestoreDisplayId(bool ignorePositiveAurasPreventingMounting=false)
void ReplaceAllNpcFlags2(NPCFlags2 flags)
UF::UpdateField< UF::UnitData, 0, TYPEID_UNIT > m_unitData
void SetFaction(uint32 faction) override
void SetPower(Powers power, int32 val, bool withPowerUpdate=true)
void ReplaceAllUnitFlags(UnitFlags flags)
void Mount(uint32 mount, uint32 vehicleId=0, uint32 creatureEntry=0)
void SetEmoteState(Emote emote)
uint32 GetFaction() const override
void SetMaxHealth(uint64 val)
void SetSpeedRate(UnitMoveType mtype, float rate)
void SetMaxPower(Powers power, int32 val)
void ReplaceAllNpcFlags(NPCFlags flags)
virtual void SetDisplayId(uint32 displayId, bool setNative=false)
constexpr uint32 GetMapId() const
PhaseShift & GetPhaseShift()
std::vector< SpellModifier > Modifiers
WorldPacket const * Write() override
Player session in the World.
Player * GetPlayer() const
bool MeetsChrCustomizationReq(ChrCustomizationReqEntry const *req, Races race, Classes playerClass, bool checkRequiredDependentChoices, Trinity::IteratorPair< UF::ChrCustomizationChoice const * > selectedChoices) const
static bool CheckModifySpeed(ChatHandler *handler, Unit *target, float speed, float minimumBound, float maximumBound, bool checkInFlight=true)
static bool HandleModifyPowerCommand(ChatHandler *handler, const char *args)
static bool HandleModifyFactionCommand(ChatHandler *handler, Optional< uint32 > factionid, Optional< uint32 > flag, Optional< uint64 > npcflag, Optional< uint32 > dyflag)
static bool HandleModifyMorphCommand(ChatHandler *handler, uint32 display_id)
static bool HandleModifyCurrencyCommand(ChatHandler *handler, const char *args)
std::vector< ChatCommand > GetCommands() const override
static bool HandleModifyMountCommand(ChatHandler *handler, uint32 mount, float speed)
static bool HandleModifyRepCommand(ChatHandler *handler, char const *args)
static bool HandleModifyXPCommand(ChatHandler *handler, char const *args)
static bool HandleDeMorphCommand(ChatHandler *handler, char const *)
static void NotifyModification(ChatHandler *handler, Unit *target, TrinityStrings resourceMessage, TrinityStrings resourceReportMessage, Args &&... args)
static bool HandleModifyStandStateCommand(ChatHandler *handler, char const *args)
static bool HandleModifyRageCommand(ChatHandler *handler, char const *args)
static bool HandleModifyTalentCommand(ChatHandler *, char const *)
static bool HandleModifySpellCommand(ChatHandler *handler, char const *args)
static bool HandleModifyHPCommand(ChatHandler *handler, char const *args)
static bool HandleModifyGenderCommand(ChatHandler *handler, char const *args)
static bool HandleModifyEnergyCommand(ChatHandler *handler, char const *args)
static bool HandleModifyDrunkCommand(ChatHandler *handler, char const *args)
static bool HandleModifyFlyCommand(ChatHandler *handler, char const *args)
static bool CheckModifyResources(ChatHandler *handler, char const *args, Player *target, int32 &res, int32 &resmax, int8 const multiplier=1)
static bool HandleModifyBWalkCommand(ChatHandler *handler, char const *args)
static bool CheckModifySpeed(ChatHandler *handler, char const *args, Unit *target, float &speed, float minimumBound, float maximumBound, bool checkInFlight=true)
static bool HandleModifySwimCommand(ChatHandler *handler, char const *args)
static bool HandleModifyMoneyCommand(ChatHandler *handler, char const *args)
static bool HandleModifyScaleCommand(ChatHandler *handler, char const *args)
static bool HandleModifyRunicPowerCommand(ChatHandler *handler, char const *args)
static bool HandleModifySpeedCommand(ChatHandler *handler, char const *args)
static bool HandleModifyPhaseCommand(ChatHandler *handler, uint32 phaseId, Optional< uint32 > visibleMapId)
static bool HandleModifyManaCommand(ChatHandler *handler, char const *args)
static bool HandleModifyASpeedCommand(ChatHandler *handler, char const *args)
static bool HandleModifyHonorCommand(ChatHandler *handler, char const *args)
void AddSC_modify_commandscript()
@ SMSG_SET_FLAT_SPELL_MODIFIER
constexpr IteratorPair< iterator, end_iterator > MakeIteratorPair(iterator first, end_iterator second)
@ RBAC_PERM_COMMAND_MODIFY_MONEY
@ RBAC_PERM_COMMAND_MODIFY_RUNICPOWER
@ RBAC_PERM_COMMAND_MODIFY_MOUNT
@ RBAC_PERM_COMMAND_MODIFY_SPEED_SWIM
@ RBAC_PERM_COMMAND_MODIFY_PHASE
@ RBAC_PERM_COMMAND_MODIFY_SPEED_BACKWALK
@ RBAC_PERM_COMMAND_MODIFY_SPEED_FLY
@ RBAC_PERM_COMMAND_MODIFY_POWER
@ RBAC_PERM_COMMAND_MODIFY_SPEED
@ RBAC_PERM_COMMAND_MODIFY_TALENTPOINTS
@ RBAC_PERM_COMMAND_MODIFY
@ RBAC_PERM_COMMAND_MODIFY_CURRENCY
@ RBAC_PERM_COMMAND_MODIFY_SCALE
@ RBAC_PERM_COMMAND_MODIFY_SPEED_WALK
@ RBAC_PERM_COMMAND_MODIFY_HONOR
@ RBAC_PERM_COMMAND_MODIFY_FACTION
@ RBAC_PERM_COMMAND_DEMORPH
@ RBAC_PERM_COMMAND_MODIFY_SPELL
@ RBAC_PERM_COMMAND_MORPH
@ RBAC_PERM_COMMAND_MODIFY_RAGE
@ RBAC_PERM_COMMAND_MODIFY_GENDER
@ RBAC_PERM_COMMAND_MODIFY_MANA
@ RBAC_PERM_COMMAND_MODIFY_XP
@ RBAC_PERM_COMMAND_MODIFY_STANDSTATE
@ RBAC_PERM_COMMAND_MODIFY_REPUTATION
@ RBAC_PERM_COMMAND_MODIFY_ENERGY
@ RBAC_PERM_COMMAND_MODIFY_SPEED_ALL
@ RBAC_PERM_COMMAND_MODIFY_HP
@ RBAC_PERM_COMMAND_MODIFY_DRUNK
char const * NameGlobalStringTag
uint32 ChrCustomizationChoiceID
uint32 ChrCustomizationOptionID
std::vector< SpellModifierData > ModifierData