mirror of
https://github.com/mod-playerbots/azerothcore-wotlk.git
synced 2026-01-13 09:17:18 +00:00
feat(Core/Commands): Gear (#7717)
This commit is contained in:
committed by
GitHub
parent
1465a659ec
commit
e6143a1efd
@@ -0,0 +1,7 @@
|
||||
INSERT INTO `version_db_world` (`sql_rev`) VALUES ('1630714167178408255');
|
||||
|
||||
DELETE FROM `command` WHERE `name` IN ('repairitems', 'gear repair', 'gear stats');
|
||||
|
||||
INSERT INTO `command` VALUES
|
||||
('gear repair', 2, 'Syntax: .gear repair \nRepair all selected player''s items.'),
|
||||
('gear stats', 0, 'Syntax: .gear stats');
|
||||
@@ -500,6 +500,7 @@ void CharacterDatabaseConnection::DoPrepareStatements()
|
||||
PrepareStatement(CHAR_INS_CHAR_STATS, "INSERT INTO character_stats (guid, maxhealth, maxpower1, maxpower2, maxpower3, maxpower4, maxpower5, maxpower6, maxpower7, strength, agility, stamina, intellect, spirit, "
|
||||
"armor, resHoly, resFire, resNature, resFrost, resShadow, resArcane, blockPct, dodgePct, parryPct, critPct, rangedCritPct, spellCritPct, attackPower, rangedAttackPower, "
|
||||
"spellPower, resilience) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", CONNECTION_ASYNC);
|
||||
PrepareStatement(CHAR_SEL_CHAR_STATS, "SELECT maxhealth, strength, agility, stamina, intellect, spirit, armor, attackPower, spellPower, resilience FROM character_stats WHERE guid = ?", CONNECTION_SYNCH);
|
||||
PrepareStatement(CHAR_DEL_PETITION_BY_OWNER, "DELETE FROM petition WHERE ownerguid = ?", CONNECTION_ASYNC);
|
||||
PrepareStatement(CHAR_DEL_PETITION_SIGNATURE_BY_OWNER, "DELETE FROM petition_sign WHERE ownerguid = ?", CONNECTION_ASYNC);
|
||||
PrepareStatement(CHAR_DEL_PETITION_BY_OWNER_AND_TYPE, "DELETE FROM petition WHERE ownerguid = ? AND type = ?", CONNECTION_ASYNC);
|
||||
|
||||
@@ -424,6 +424,7 @@ enum CharacterDatabaseStatements : uint32
|
||||
CHAR_INS_CHAR_SPELL,
|
||||
CHAR_DEL_CHAR_STATS,
|
||||
CHAR_INS_CHAR_STATS,
|
||||
CHAR_SEL_CHAR_STATS,
|
||||
CHAR_DEL_PETITION_BY_OWNER,
|
||||
CHAR_DEL_PETITION_SIGNATURE_BY_OWNER,
|
||||
CHAR_DEL_PETITION_BY_OWNER_AND_TYPE,
|
||||
|
||||
@@ -15207,3 +15207,25 @@ float Player::GetSightRange(const WorldObject* target) const
|
||||
|
||||
return sightRange;
|
||||
}
|
||||
|
||||
std::string Player::GetPlayerName()
|
||||
{
|
||||
std::string name = GetName();
|
||||
std::string color = "";
|
||||
|
||||
switch (getClass())
|
||||
{
|
||||
case CLASS_DEATH_KNIGHT: color = "|cffC41F3B"; break;
|
||||
case CLASS_DRUID: color = "|cffFF7D0A"; break;
|
||||
case CLASS_HUNTER: color = "|cffABD473"; break;
|
||||
case CLASS_MAGE: color = "|cff69CCF0"; break;
|
||||
case CLASS_PALADIN: color = "|cffF58CBA"; break;
|
||||
case CLASS_PRIEST: color = "|cffFFFFFF"; break;
|
||||
case CLASS_ROGUE: color = "|cffFFF569"; break;
|
||||
case CLASS_SHAMAN: color = "|cff0070DE"; break;
|
||||
case CLASS_WARLOCK: color = "|cff9482C9"; break;
|
||||
case CLASS_WARRIOR: color = "|cffC79C6E"; break;
|
||||
}
|
||||
|
||||
return "|Hplayer:" + name + "|h" + color + name + "|h|r";
|
||||
}
|
||||
|
||||
@@ -2525,6 +2525,8 @@ public:
|
||||
|
||||
float GetSightRange(const WorldObject* target = nullptr) const override;
|
||||
|
||||
std::string GetPlayerName();
|
||||
|
||||
protected:
|
||||
// Gamemaster whisper whitelist
|
||||
WhisperListContainer WhisperList;
|
||||
|
||||
@@ -58,6 +58,11 @@ public:
|
||||
{ "message", SEC_ADMINISTRATOR, true, &HandleSendMessageCommand, "" },
|
||||
{ "money", SEC_GAMEMASTER, true, &HandleSendMoneyCommand, "" }
|
||||
};
|
||||
static std::vector<ChatCommand> gearCommandTable =
|
||||
{
|
||||
{ "repair", SEC_GAMEMASTER, false, &HandleGearRepairCommand, "" },
|
||||
{ "stats", SEC_PLAYER, false, &HandleGearStatsCommand, "" }
|
||||
};
|
||||
static std::vector<ChatCommand> commandTable =
|
||||
{
|
||||
{ "dev", SEC_ADMINISTRATOR, false, &HandleDevCommand, "" },
|
||||
@@ -102,10 +107,10 @@ public:
|
||||
{ "damage", SEC_GAMEMASTER, false, &HandleDamageCommand, "" },
|
||||
{ "combatstop", SEC_GAMEMASTER, true, &HandleCombatStopCommand, "" },
|
||||
{ "flusharenapoints", SEC_ADMINISTRATOR, false, &HandleFlushArenaPointsCommand, "" },
|
||||
{ "repairitems", SEC_GAMEMASTER, true, &HandleRepairitemsCommand, "" },
|
||||
{ "freeze", SEC_GAMEMASTER, false, &HandleFreezeCommand, "" },
|
||||
{ "unfreeze", SEC_GAMEMASTER, false, &HandleUnFreezeCommand, "" },
|
||||
{ "group", SEC_GAMEMASTER, false, nullptr, "", groupCommandTable },
|
||||
{ "gear", SEC_PLAYER, false, nullptr, "", gearCommandTable },
|
||||
{ "possess", SEC_GAMEMASTER, false, HandlePossessCommand, "" },
|
||||
{ "unpossess", SEC_GAMEMASTER, false, HandleUnPossessCommand, "" },
|
||||
{ "bindsight", SEC_ADMINISTRATOR, false, HandleBindSightCommand, "" },
|
||||
@@ -2625,7 +2630,7 @@ public:
|
||||
return true;
|
||||
}
|
||||
|
||||
static bool HandleRepairitemsCommand(ChatHandler* handler, char const* args)
|
||||
static bool HandleGearRepairCommand(ChatHandler* handler, char const* args)
|
||||
{
|
||||
Player* target;
|
||||
if (!handler->extractPlayerTarget((char*)args, &target))
|
||||
@@ -3385,6 +3390,49 @@ public:
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
static bool HandleGearStatsCommand(ChatHandler* handler, char const* /*args*/)
|
||||
{
|
||||
Player* player = handler->getSelectedPlayerOrSelf();
|
||||
|
||||
if (!player)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
handler->PSendSysMessage("Character: %s", player->GetPlayerName().c_str());
|
||||
handler->PSendSysMessage("Current equipment average item level: |cff00ffff%u|r", (int16)player->GetAverageItemLevel());
|
||||
|
||||
if (sWorld->getIntConfig(CONFIG_MIN_LEVEL_STAT_SAVE))
|
||||
{
|
||||
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_CHAR_STATS);
|
||||
stmt->setUInt32(0, player->GetGUID().GetCounter());
|
||||
PreparedQueryResult result = CharacterDatabase.Query(stmt);
|
||||
|
||||
if (result)
|
||||
{
|
||||
Field* fields = result->Fetch();
|
||||
uint32 MaxHealth = fields[0].GetUInt32();
|
||||
uint32 Strength = fields[1].GetUInt32();
|
||||
uint32 Agility = fields[2].GetUInt32();
|
||||
uint32 Stamina = fields[3].GetUInt32();
|
||||
uint32 Intellect = fields[4].GetUInt32();
|
||||
uint32 Spirit = fields[5].GetUInt32();
|
||||
uint32 Armor = fields[6].GetUInt32();
|
||||
uint32 AttackPower = fields[7].GetUInt32();
|
||||
uint32 SpellPower = fields[8].GetUInt32();
|
||||
uint32 Resilience = fields[9].GetUInt32();
|
||||
|
||||
handler->PSendSysMessage("Health: |cff00ffff%u|r - Stamina: |cff00ffff%u|r", MaxHealth, Stamina);
|
||||
handler->PSendSysMessage("Strength: |cff00ffff%u|r - Agility: |cff00ffff%u|r", Strength, Agility);
|
||||
handler->PSendSysMessage("Intellect: |cff00ffff%u|r - Spirit: |cff00ffff%u|r", Intellect, Spirit);
|
||||
handler->PSendSysMessage("AttackPower: |cff00ffff%u|r - SpellPower: |cff00ffff%u|r", AttackPower, SpellPower);
|
||||
handler->PSendSysMessage("Armor: |cff00ffff%u|r - Resilience: |cff00ffff%u|r", Armor, Resilience);
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
};
|
||||
|
||||
void AddSC_misc_commandscript()
|
||||
|
||||
Reference in New Issue
Block a user