mirror of
https://github.com/mangosfour/server.git
synced 2025-12-27 19:37:04 +00:00
Over 100 camangos Cata commits applied (to c12950)
Over 100 camangos Cata commits applied. up to and inclusing c12950.
This commit is contained in:
parent
b4ec0440aa
commit
eef77eadb9
117 changed files with 4314 additions and 3547 deletions
|
|
@ -125,7 +125,7 @@ bool ChatHandler::HandleServerInfoCommand(char* /*args*/)
|
|||
bool ChatHandler::HandleDismountCommand(char* /*args*/)
|
||||
{
|
||||
Player* player = m_session->GetPlayer();
|
||||
|
||||
|
||||
// If player is not mounted, so go out :)
|
||||
if (!player->IsMounted())
|
||||
{
|
||||
|
|
@ -175,10 +175,11 @@ bool ChatHandler::HandleGMListIngameCommand(char* /*args*/)
|
|||
HashMapHolder<Player>::MapType& m = sObjectAccessor.GetPlayers();
|
||||
for (HashMapHolder<Player>::MapType::const_iterator itr = m.begin(); itr != m.end(); ++itr)
|
||||
{
|
||||
AccountTypes itr_sec = itr->second->GetSession()->GetSecurity();
|
||||
if ((itr->second->isGameMaster() || (itr_sec > SEC_PLAYER && itr_sec <= (AccountTypes)sWorld.getConfig(CONFIG_UINT32_GM_LEVEL_IN_GM_LIST))) &&
|
||||
(!m_session || itr->second->IsVisibleGloballyFor(m_session->GetPlayer())))
|
||||
{ names.push_back(std::make_pair<std::string, bool>(GetNameLink(itr->second), itr->second->isAcceptWhispers())); }
|
||||
Player* player = itr->second;
|
||||
AccountTypes security = player->GetSession()->GetSecurity();
|
||||
if ((player->isGameMaster() || (security > SEC_PLAYER && security <= (AccountTypes)sWorld.getConfig(CONFIG_UINT32_GM_LEVEL_IN_GM_LIST))) &&
|
||||
(!m_session || player->IsVisibleGloballyFor(m_session->GetPlayer())))
|
||||
names.push_back(std::make_pair<std::string, bool>(GetNameLink(player), player->isAcceptWhispers()));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -189,10 +190,10 @@ bool ChatHandler::HandleGMListIngameCommand(char* /*args*/)
|
|||
char const* accepts = GetMangosString(LANG_GM_ACCEPTS_WHISPER);
|
||||
char const* not_accept = GetMangosString(LANG_GM_NO_WHISPER);
|
||||
for (std::list<std::pair< std::string, bool> >::const_iterator iter = names.begin(); iter != names.end(); ++iter)
|
||||
{ PSendSysMessage("%s - %s", iter->first.c_str(), iter->second ? accepts : not_accept); }
|
||||
PSendSysMessage("%s - %s", iter->first.c_str(), iter->second ? accepts : not_accept);
|
||||
}
|
||||
else
|
||||
{ SendSysMessage(LANG_GMS_NOT_LOGGED); }
|
||||
SendSysMessage(LANG_GMS_NOT_LOGGED);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -383,8 +383,8 @@ bool ChatHandler::HandleSummonCommand(char* args)
|
|||
if (!ExtractPlayerTarget(&args, &target, &target_guid, &target_name))
|
||||
return false;
|
||||
|
||||
Player* _player = m_session->GetPlayer();
|
||||
if (target == _player || target_guid == _player->GetObjectGuid())
|
||||
Player* player = m_session->GetPlayer();
|
||||
if (target == player || target_guid == player->GetObjectGuid())
|
||||
{
|
||||
PSendSysMessage(LANG_CANT_TELEPORT_SELF);
|
||||
SetSentErrorMessage(true);
|
||||
|
|
@ -405,7 +405,7 @@ bool ChatHandler::HandleSummonCommand(char* args)
|
|||
return false;
|
||||
}
|
||||
|
||||
Map* pMap = m_session->GetPlayer()->GetMap();
|
||||
Map* pMap = player->GetMap();
|
||||
|
||||
if (pMap->IsBattleGroundOrArena())
|
||||
{
|
||||
|
|
@ -442,9 +442,9 @@ bool ChatHandler::HandleSummonCommand(char* args)
|
|||
}
|
||||
|
||||
// we are in instance, and can summon only player in our group with us as lead
|
||||
if (!m_session->GetPlayer()->GetGroup() || !target->GetGroup() ||
|
||||
(target->GetGroup()->GetLeaderGuid() != m_session->GetPlayer()->GetObjectGuid()) ||
|
||||
(m_session->GetPlayer()->GetGroup()->GetLeaderGuid() != m_session->GetPlayer()->GetObjectGuid()))
|
||||
if (!player->GetGroup() || !target->GetGroup() ||
|
||||
(target->GetGroup()->GetLeaderGuid() != player->GetObjectGuid()) ||
|
||||
(player->GetGroup()->GetLeaderGuid() != player->GetObjectGuid()))
|
||||
// the last check is a bit excessive, but let it be, just in case
|
||||
{
|
||||
PSendSysMessage(LANG_CANNOT_SUMMON_TO_INST, nameLink.c_str());
|
||||
|
|
@ -455,7 +455,7 @@ bool ChatHandler::HandleSummonCommand(char* args)
|
|||
|
||||
PSendSysMessage(LANG_SUMMONING, nameLink.c_str(), "");
|
||||
if (needReportToTarget(target))
|
||||
ChatHandler(target).PSendSysMessage(LANG_SUMMONED_BY, playerLink(_player->GetName()).c_str());
|
||||
ChatHandler(target).PSendSysMessage(LANG_SUMMONED_BY, playerLink(player->GetName()).c_str());
|
||||
|
||||
// stop flight if need
|
||||
if (target->IsTaxiFlying())
|
||||
|
|
@ -483,12 +483,12 @@ bool ChatHandler::HandleSummonCommand(char* args)
|
|||
PSendSysMessage(LANG_SUMMONING, nameLink.c_str(), GetMangosString(LANG_OFFLINE));
|
||||
|
||||
// in point where GM stay
|
||||
Player::SavePositionInDB(target_guid, m_session->GetPlayer()->GetMapId(),
|
||||
m_session->GetPlayer()->GetPositionX(),
|
||||
m_session->GetPlayer()->GetPositionY(),
|
||||
m_session->GetPlayer()->GetPositionZ(),
|
||||
m_session->GetPlayer()->GetOrientation(),
|
||||
m_session->GetPlayer()->GetZoneId());
|
||||
Player::SavePositionInDB(target_guid, player->GetMapId(),
|
||||
player->GetPositionX(),
|
||||
player->GetPositionY(),
|
||||
player->GetPositionZ(),
|
||||
player->GetOrientation(),
|
||||
player->GetZoneId());
|
||||
}
|
||||
|
||||
return true;
|
||||
|
|
@ -1984,13 +1984,14 @@ bool ChatHandler::HandleGroupgoCommand(char* args)
|
|||
return false;
|
||||
}
|
||||
|
||||
Map* gmMap = m_session->GetPlayer()->GetMap();
|
||||
Player* player = m_session->GetPlayer();
|
||||
Map* gmMap = player->GetMap();
|
||||
bool to_instance = gmMap->Instanceable();
|
||||
|
||||
// we are in instance, and can summon only player in our group with us as lead
|
||||
if (to_instance && (
|
||||
!m_session->GetPlayer()->GetGroup() || (grp->GetLeaderGuid() != m_session->GetPlayer()->GetObjectGuid()) ||
|
||||
(m_session->GetPlayer()->GetGroup()->GetLeaderGuid() != m_session->GetPlayer()->GetObjectGuid())))
|
||||
!player->GetGroup() || (grp->GetLeaderGuid() != player->GetObjectGuid()) ||
|
||||
(player->GetGroup()->GetLeaderGuid() != player->GetObjectGuid())))
|
||||
// the last check is a bit excessive, but let it be, just in case
|
||||
{
|
||||
SendSysMessage(LANG_CANNOT_SUMMON_TO_INST);
|
||||
|
|
@ -1998,7 +1999,7 @@ bool ChatHandler::HandleGroupgoCommand(char* args)
|
|||
return false;
|
||||
}
|
||||
|
||||
for (GroupReference* itr = grp->GetFirstMember(); itr != NULL; itr = itr->next())
|
||||
for (GroupReference* itr = grp->GetFirstMember(); itr != nullptr; itr = itr->next())
|
||||
{
|
||||
Player* pl = itr->getSource();
|
||||
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -2370,7 +2370,8 @@ bool ChatHandler::HandleLearnAllMyClassCommand(char* /*args*/)
|
|||
|
||||
bool ChatHandler::HandleLearnAllMySpellsCommand(char* /*args*/)
|
||||
{
|
||||
ChrClassesEntry const* clsEntry = sChrClassesStore.LookupEntry(m_session->GetPlayer()->getClass());
|
||||
Player* player = m_session->GetPlayer();
|
||||
ChrClassesEntry const* clsEntry = sChrClassesStore.LookupEntry(player->getClass());
|
||||
if (!clsEntry)
|
||||
return true;
|
||||
uint32 family = clsEntry->spellfamily;
|
||||
|
|
@ -2390,7 +2391,7 @@ bool ChatHandler::HandleLearnAllMySpellsCommand(char* /*args*/)
|
|||
continue;
|
||||
|
||||
// skip wrong class/race skills
|
||||
if (!m_session->GetPlayer()->IsSpellFitByClassAndRace(spellInfo->Id))
|
||||
if (!player->IsSpellFitByClassAndRace(spellInfo->Id))
|
||||
continue;
|
||||
|
||||
// skip other spell families
|
||||
|
|
@ -2403,10 +2404,10 @@ bool ChatHandler::HandleLearnAllMySpellsCommand(char* /*args*/)
|
|||
continue;
|
||||
|
||||
// skip broken spells
|
||||
if (!SpellMgr::IsSpellValid(spellInfo, m_session->GetPlayer(), false))
|
||||
if (!SpellMgr::IsSpellValid(spellInfo, player, false))
|
||||
continue;
|
||||
|
||||
m_session->GetPlayer()->learnSpell(spellInfo->Id, false);
|
||||
player->learnSpell(spellInfo->Id, false);
|
||||
}
|
||||
|
||||
SendSysMessage(LANG_COMMAND_LEARN_CLASS_SPELLS);
|
||||
|
|
@ -2447,7 +2448,7 @@ bool ChatHandler::HandleLearnAllMyTalentsCommand(char* /*args*/)
|
|||
continue;
|
||||
|
||||
SpellEntry const* spellInfo = sSpellStore.LookupEntry(spellid);
|
||||
if (!spellInfo || !SpellMgr::IsSpellValid(spellInfo, m_session->GetPlayer(), false))
|
||||
if (!spellInfo || !SpellMgr::IsSpellValid(spellInfo, player, false))
|
||||
continue;
|
||||
|
||||
// learn highest rank of talent and learn all non-talent spell ranks (recursive by tree)
|
||||
|
|
@ -2540,9 +2541,11 @@ bool ChatHandler::HandleLearnAllMyPetTalentsCommand(char* /*args*/)
|
|||
|
||||
bool ChatHandler::HandleLearnAllLangCommand(char* /*args*/)
|
||||
{
|
||||
Player* player = m_session->GetPlayer();
|
||||
|
||||
// skipping UNIVERSAL language (0)
|
||||
for (int i = 1; i < LANGUAGES_COUNT; ++i)
|
||||
m_session->GetPlayer()->learnSpell(lang_description[i].spell_id, false);
|
||||
player->learnSpell(lang_description[i].spell_id, false);
|
||||
|
||||
SendSysMessage(LANG_COMMAND_LEARN_ALL_LANG);
|
||||
return true;
|
||||
|
|
@ -2563,6 +2566,7 @@ bool ChatHandler::HandleLearnAllDefaultCommand(char* args)
|
|||
|
||||
bool ChatHandler::HandleLearnCommand(char* args)
|
||||
{
|
||||
Player* player = m_session->GetPlayer();
|
||||
Player* targetPlayer = getSelectedPlayer();
|
||||
|
||||
if (!targetPlayer)
|
||||
|
|
@ -2577,12 +2581,12 @@ bool ChatHandler::HandleLearnCommand(char* args)
|
|||
if (!spell || !sSpellStore.LookupEntry(spell))
|
||||
return false;
|
||||
|
||||
bool allRanks = ExtractLiteralArg(&args, "all") != NULL;
|
||||
bool allRanks = ExtractLiteralArg(&args, "all") != nullptr;
|
||||
if (!allRanks && *args) // can be fail also at syntax error
|
||||
return false;
|
||||
|
||||
SpellEntry const* spellInfo = sSpellStore.LookupEntry(spell);
|
||||
if (!spellInfo || !SpellMgr::IsSpellValid(spellInfo, m_session->GetPlayer()))
|
||||
if (!spellInfo || !SpellMgr::IsSpellValid(spellInfo, player))
|
||||
{
|
||||
PSendSysMessage(LANG_COMMAND_SPELL_BROKEN, spell);
|
||||
SetSentErrorMessage(true);
|
||||
|
|
@ -2591,7 +2595,7 @@ bool ChatHandler::HandleLearnCommand(char* args)
|
|||
|
||||
if (!allRanks && targetPlayer->HasSpell(spell))
|
||||
{
|
||||
if (targetPlayer == m_session->GetPlayer())
|
||||
if (targetPlayer == player)
|
||||
SendSysMessage(LANG_YOU_KNOWN_SPELL);
|
||||
else
|
||||
PSendSysMessage(LANG_TARGET_KNOWN_SPELL, GetNameLink(targetPlayer).c_str());
|
||||
|
|
@ -3956,9 +3960,10 @@ bool ChatHandler::HandleGetDistanceCommand(char* args)
|
|||
|
||||
bool ChatHandler::HandleDieCommand(char* /*args*/)
|
||||
{
|
||||
Player* player = m_session->GetPlayer();
|
||||
Unit* target = getSelectedUnit();
|
||||
|
||||
if (!target || !m_session->GetPlayer()->GetSelectionGuid())
|
||||
if (!target || !player->GetSelectionGuid())
|
||||
{
|
||||
SendSysMessage(LANG_SELECT_CHAR_OR_CREATURE);
|
||||
SetSentErrorMessage(true);
|
||||
|
|
@ -3973,7 +3978,7 @@ bool ChatHandler::HandleDieCommand(char* /*args*/)
|
|||
|
||||
if (target->IsAlive())
|
||||
{
|
||||
m_session->GetPlayer()->DealDamage(target, target->GetHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false);
|
||||
player->DealDamage(target, target->GetHealth(), nullptr, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, nullptr, false);
|
||||
}
|
||||
|
||||
return true;
|
||||
|
|
@ -3985,8 +3990,9 @@ bool ChatHandler::HandleDamageCommand(char* args)
|
|||
return false;
|
||||
|
||||
Unit* target = getSelectedUnit();
|
||||
Player* player = m_session->GetPlayer();
|
||||
|
||||
if (!target || !m_session->GetPlayer()->GetSelectionGuid())
|
||||
if (!target || !player->GetSelectionGuid())
|
||||
{
|
||||
SendSysMessage(LANG_SELECT_CHAR_OR_CREATURE);
|
||||
SetSentErrorMessage(true);
|
||||
|
|
@ -4005,12 +4011,12 @@ bool ChatHandler::HandleDamageCommand(char* args)
|
|||
|
||||
uint32 damage = damage_int;
|
||||
|
||||
// flat melee damage without resistence/etc reduction
|
||||
// flat melee damage without resistance/etc reduction
|
||||
if (!*args)
|
||||
{
|
||||
m_session->GetPlayer()->DealDamage(target, damage, NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false);
|
||||
if (target != m_session->GetPlayer())
|
||||
m_session->GetPlayer()->SendAttackStateUpdate(HITINFO_NORMALSWING2, target, 1, SPELL_SCHOOL_MASK_NORMAL, damage, 0, 0, VICTIMSTATE_NORMAL, 0);
|
||||
player->DealDamage(target, damage, nullptr, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, nullptr, false);
|
||||
if (target != player)
|
||||
player->SendAttackStateUpdate(HITINFO_NORMALSWING2, target, SPELL_SCHOOL_MASK_NORMAL, damage, 0, 0, VICTIMSTATE_NORMAL, 0);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
@ -4024,7 +4030,7 @@ bool ChatHandler::HandleDamageCommand(char* args)
|
|||
SpellSchoolMask schoolmask = SpellSchoolMask(1 << school);
|
||||
|
||||
if (schoolmask & SPELL_SCHOOL_MASK_NORMAL)
|
||||
damage = m_session->GetPlayer()->CalcArmorReducedDamage(target, damage);
|
||||
damage = player->CalcArmorReducedDamage(target, damage);
|
||||
|
||||
// melee damage by specific school
|
||||
if (!*args)
|
||||
|
|
@ -4032,16 +4038,16 @@ bool ChatHandler::HandleDamageCommand(char* args)
|
|||
uint32 absorb = 0;
|
||||
uint32 resist = 0;
|
||||
|
||||
target->CalculateDamageAbsorbAndResist(m_session->GetPlayer(), schoolmask, SPELL_DIRECT_DAMAGE, damage, &absorb, &resist);
|
||||
target->CalculateDamageAbsorbAndResist(player, schoolmask, SPELL_DIRECT_DAMAGE, damage, &absorb, &resist);
|
||||
|
||||
if (damage <= absorb + resist)
|
||||
return true;
|
||||
|
||||
damage -= absorb + resist;
|
||||
|
||||
m_session->GetPlayer()->DealDamageMods(target, damage, &absorb);
|
||||
m_session->GetPlayer()->DealDamage(target, damage, NULL, DIRECT_DAMAGE, schoolmask, NULL, false);
|
||||
m_session->GetPlayer()->SendAttackStateUpdate(HITINFO_NORMALSWING2, target, 1, schoolmask, damage, absorb, resist, VICTIMSTATE_NORMAL, 0);
|
||||
player->DealDamageMods(target, damage, &absorb);
|
||||
player->DealDamage(target, damage, nullptr, DIRECT_DAMAGE, schoolmask, nullptr, false);
|
||||
player->SendAttackStateUpdate(HITINFO_NORMALSWING2, target, schoolmask, damage, absorb, resist, VICTIMSTATE_NORMAL, 0);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
@ -4052,7 +4058,7 @@ bool ChatHandler::HandleDamageCommand(char* args)
|
|||
if (!spellid || !sSpellStore.LookupEntry(spellid))
|
||||
return false;
|
||||
|
||||
m_session->GetPlayer()->SpellNonMeleeDamageLog(target, spellid, damage);
|
||||
player->SpellNonMeleeDamageLog(target, spellid, damage);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
@ -6411,7 +6417,7 @@ bool ChatHandler::HandleCastCommand(char* args)
|
|||
return false;
|
||||
}
|
||||
|
||||
bool triggered = ExtractLiteralArg(&args, "triggered") != NULL;
|
||||
bool triggered = ExtractLiteralArg(&args, "triggered") != nullptr;
|
||||
if (!triggered && *args) // can be fail also at syntax error
|
||||
return false;
|
||||
|
||||
|
|
@ -7132,8 +7138,10 @@ bool ChatHandler::HandleSendMessageCommand(char* args)
|
|||
if (!*args)
|
||||
return false;
|
||||
|
||||
WorldSession* rPlayerSession = rPlayer->GetSession();
|
||||
|
||||
///- Check that he is not logging out.
|
||||
if (rPlayer->GetSession()->isLogingOut())
|
||||
if (rPlayerSession->isLogingOut())
|
||||
{
|
||||
SendSysMessage(LANG_PLAYER_NOT_FOUND);
|
||||
SetSentErrorMessage(true);
|
||||
|
|
@ -7142,8 +7150,8 @@ bool ChatHandler::HandleSendMessageCommand(char* args)
|
|||
|
||||
///- Send the message
|
||||
// Use SendAreaTriggerMessage for fastest delivery.
|
||||
rPlayer->GetSession()->SendAreaTriggerMessage("%s", args);
|
||||
rPlayer->GetSession()->SendAreaTriggerMessage("|cffff0000[Message from administrator]:|r");
|
||||
rPlayerSession->SendAreaTriggerMessage("%s", args);
|
||||
rPlayerSession->SendAreaTriggerMessage("|cffff0000[Message from administrator]:|r");
|
||||
|
||||
// Confirmation message
|
||||
std::string nameLink = GetNameLink(rPlayer);
|
||||
|
|
@ -7301,3 +7309,11 @@ bool ChatHandler::HandleMmapTestArea(char* args)
|
|||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool ChatHandler::HandleServerResetAllRaidCommand(char* args)
|
||||
{
|
||||
PSendSysMessage("Global raid instances reset, all players in raid instances will be teleported to homebind!");
|
||||
sMapPersistentStateMgr.GetScheduler().ResetAllRaid();
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -37,7 +37,6 @@
|
|||
#include "ObjectMgr.h"
|
||||
#include "ObjectGuid.h"
|
||||
#include "SpellMgr.h"
|
||||
#include "PhaseMgr.h"
|
||||
|
||||
bool ChatHandler::HandleDebugSendSpellFailCommand(char* args)
|
||||
{
|
||||
|
|
@ -129,58 +128,60 @@ bool ChatHandler::HandleDebugSendOpcodeCommand(char* /*args*/)
|
|||
if (!unit || (unit->GetTypeId() != TYPEID_PLAYER))
|
||||
unit = m_session->GetPlayer();
|
||||
|
||||
std::ifstream ifs("opcode.txt");
|
||||
if (ifs.bad())
|
||||
std::ifstream stream("opcode.txt");
|
||||
if (!stream.is_open())
|
||||
return false;
|
||||
|
||||
uint32 opcode;
|
||||
ifs >> opcode;
|
||||
uint32 opcode = 0;
|
||||
if (!(stream >> opcode))
|
||||
{
|
||||
stream.close();
|
||||
return false;
|
||||
}
|
||||
|
||||
WorldPacket data(Opcodes(opcode), 0);
|
||||
|
||||
while (!ifs.eof())
|
||||
std::string type;
|
||||
while (stream >> type)
|
||||
{
|
||||
std::string type;
|
||||
ifs >> type;
|
||||
|
||||
if (type == "")
|
||||
if (type.empty())
|
||||
break;
|
||||
|
||||
if (type == "uint8")
|
||||
{
|
||||
uint16 val1;
|
||||
ifs >> val1;
|
||||
data << uint8(val1);
|
||||
uint16 value;
|
||||
stream >> value;
|
||||
data << uint8(value);
|
||||
}
|
||||
else if (type == "uint16")
|
||||
{
|
||||
uint16 val2;
|
||||
ifs >> val2;
|
||||
data << val2;
|
||||
uint16 value;
|
||||
stream >> value;
|
||||
data << value;
|
||||
}
|
||||
else if (type == "uint32")
|
||||
{
|
||||
uint32 val3;
|
||||
ifs >> val3;
|
||||
data << val3;
|
||||
uint32 value;
|
||||
stream >> value;
|
||||
data << value;
|
||||
}
|
||||
else if (type == "uint64")
|
||||
{
|
||||
uint64 val4;
|
||||
ifs >> val4;
|
||||
data << val4;
|
||||
uint64 value;
|
||||
stream >> value;
|
||||
data << value;
|
||||
}
|
||||
else if (type == "float")
|
||||
{
|
||||
float val5;
|
||||
ifs >> val5;
|
||||
data << val5;
|
||||
float value;
|
||||
stream >> value;
|
||||
data << value;
|
||||
}
|
||||
else if (type == "string")
|
||||
{
|
||||
std::string val6;
|
||||
ifs >> val6;
|
||||
data << val6;
|
||||
std::string value;
|
||||
stream >> value;
|
||||
data << value;
|
||||
}
|
||||
else if (type == "pguid")
|
||||
{
|
||||
|
|
@ -192,11 +193,15 @@ bool ChatHandler::HandleDebugSendOpcodeCommand(char* /*args*/)
|
|||
break;
|
||||
}
|
||||
}
|
||||
ifs.close();
|
||||
stream.close();
|
||||
|
||||
DEBUG_LOG("Sending opcode %u, %s", data.GetOpcode(), data.GetOpcodeName());
|
||||
|
||||
data.hexlike();
|
||||
((Player*)unit)->GetSession()->SendPacket(&data);
|
||||
|
||||
PSendSysMessage(LANG_COMMAND_OPCODESENT, data.GetOpcode(), unit->GetName());
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
@ -673,32 +678,23 @@ bool ChatHandler::HandleDebugSendSetPhaseShiftCommand(char* args)
|
|||
if (!*args)
|
||||
return false;
|
||||
|
||||
char* t = strtok((char*)args, " ");
|
||||
char* m = strtok((char*)args, " ");
|
||||
char* p = strtok(NULL, " ");
|
||||
|
||||
if (!t)
|
||||
return false;
|
||||
|
||||
std::set<uint32> terrainswap;
|
||||
std::set<uint32> phaseId;
|
||||
|
||||
terrainswap.insert((uint32)atoi(t));
|
||||
|
||||
if (p)
|
||||
phaseId.insert((uint32)atoi(p));
|
||||
|
||||
m_session->SendSetPhaseShift(phaseId, terrainswap);
|
||||
uint16 MapId = atoi(m);
|
||||
uint32 PhaseShift = atoi(p);
|
||||
m_session->SendSetPhaseShift(PhaseShift, MapId);
|
||||
return true;
|
||||
}
|
||||
|
||||
bool ChatHandler::HandleDebugPhaseCommand(char* args)
|
||||
{
|
||||
Player* player = getSelectedPlayer();
|
||||
if (!player)
|
||||
player = m_session->GetPlayer();
|
||||
uint32 emote_id;
|
||||
if (!ExtractUInt32(&args, emote_id))
|
||||
{ return false; }
|
||||
|
||||
player->GetPhaseMgr()->SendDebugReportToPlayer(m_session->GetPlayer());
|
||||
return true;
|
||||
m_session->GetPlayer()->HandleEmoteCommand(emote_id);
|
||||
return true;
|
||||
}
|
||||
|
||||
// show animation
|
||||
|
|
@ -973,29 +969,30 @@ bool ChatHandler::HandlerDebugModValueHelper(Object* target, uint32 field, char*
|
|||
return false;
|
||||
|
||||
uint32 value = target->GetUInt32Value(field);
|
||||
const char* guidString = guid.GetString().c_str();
|
||||
|
||||
switch (type)
|
||||
{
|
||||
default:
|
||||
case 1: // int +
|
||||
value = uint32(int32(value) + int32(iValue));
|
||||
DEBUG_LOG(GetMangosString(LANG_CHANGE_INT32), guid.GetString().c_str(), field, iValue, value, value);
|
||||
PSendSysMessage(LANG_CHANGE_INT32_FIELD, guid.GetString().c_str(), field, iValue, value, value);
|
||||
DEBUG_LOG(GetMangosString(LANG_CHANGE_INT32), guidString, field, iValue, value, value);
|
||||
PSendSysMessage(LANG_CHANGE_INT32_FIELD, guidString, field, iValue, value, value);
|
||||
break;
|
||||
case 2: // |= bit or
|
||||
value |= iValue;
|
||||
DEBUG_LOG(GetMangosString(LANG_CHANGE_HEX), guid.GetString().c_str(), field, typeStr, iValue, value);
|
||||
PSendSysMessage(LANG_CHANGE_HEX_FIELD, guid.GetString().c_str(), field, typeStr, iValue, value);
|
||||
DEBUG_LOG(GetMangosString(LANG_CHANGE_HEX), guidString, field, typeStr, iValue, value);
|
||||
PSendSysMessage(LANG_CHANGE_HEX_FIELD, guidString, field, typeStr, iValue, value);
|
||||
break;
|
||||
case 3: // &= bit and
|
||||
value &= iValue;
|
||||
DEBUG_LOG(GetMangosString(LANG_CHANGE_HEX), guid.GetString().c_str(), field, typeStr, iValue, value);
|
||||
PSendSysMessage(LANG_CHANGE_HEX_FIELD, guid.GetString().c_str(), field, typeStr, iValue, value);
|
||||
DEBUG_LOG(GetMangosString(LANG_CHANGE_HEX), guidString, field, typeStr, iValue, value);
|
||||
PSendSysMessage(LANG_CHANGE_HEX_FIELD, guidString, field, typeStr, iValue, value);
|
||||
break;
|
||||
case 4: // &=~ bit and not
|
||||
value &= ~iValue;
|
||||
DEBUG_LOG(GetMangosString(LANG_CHANGE_HEX), guid.GetString().c_str(), field, typeStr, iValue, value);
|
||||
PSendSysMessage(LANG_CHANGE_HEX_FIELD, guid.GetString().c_str(), field, typeStr, iValue, value);
|
||||
DEBUG_LOG(GetMangosString(LANG_CHANGE_HEX), guidString, field, typeStr, iValue, value);
|
||||
PSendSysMessage(LANG_CHANGE_HEX_FIELD, guidString, field, typeStr, iValue, value);
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue