aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rwxr-xr-xsrc/server/game/Spells/Spell.cpp4
-rw-r--r--src/server/scripts/Commands/cs_misc.cpp938
-rw-r--r--src/server/scripts/Northrend/dragonblight.cpp2
-rw-r--r--src/tools/map_extractor/CMakeLists.txt2
4 files changed, 473 insertions, 473 deletions
diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp
index 00c758e2659..cd01d229e0f 100755
--- a/src/server/game/Spells/Spell.cpp
+++ b/src/server/game/Spells/Spell.cpp
@@ -3025,7 +3025,7 @@ void Spell::prepare(SpellCastTargets const* targets, AuraEffect const* triggered
if (m_caster->GetTypeId() == TYPEID_PLAYER)
{
m_caster->ToPlayer()->SetSpellModTakingSpell(this, false);
-
+
// Set casttime to 0 if .cheat casttime is enabled.
if (m_caster->ToPlayer()->GetCommandStatus(CHEAT_CASTTIME))
m_casttime = 0;
@@ -3323,7 +3323,7 @@ void Spell::cast(bool skipCheck)
if (m_caster->GetTypeId() == TYPEID_PLAYER)
{
m_caster->ToPlayer()->SetSpellModTakingSpell(this, false);
-
+
//Clear spell cooldowns after every spell is cast if .cheat cooldown is enabled.
if (m_caster->ToPlayer()->GetCommandStatus(CHEAT_COOLDOWN))
m_caster->ToPlayer()->RemoveSpellCooldown(m_spellInfo->Id, true);
diff --git a/src/server/scripts/Commands/cs_misc.cpp b/src/server/scripts/Commands/cs_misc.cpp
index fa4b0ce3957..fea96cc80f3 100644
--- a/src/server/scripts/Commands/cs_misc.cpp
+++ b/src/server/scripts/Commands/cs_misc.cpp
@@ -14,7 +14,7 @@
* You should have received a copy of the GNU General Public License along
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-
+
#include "Chat.h"
#include "ScriptMgr.h"
#include "AccountMgr.h"
@@ -29,12 +29,12 @@
#include "TargetedMovementGenerator.h"
#include "WeatherMgr.h"
#include "ace/INET_Addr.h"
-
+
class misc_commandscript : public CommandScript
{
public:
misc_commandscript() : CommandScript("misc_commandscript") { }
-
+
ChatCommand* GetCommands() const
{
static ChatCommand groupCommandTable[] =
@@ -117,7 +117,7 @@ public:
};
return commandTable;
}
-
+
static bool HandleDevCommand(ChatHandler* handler, char const* args)
{
if (!*args)
@@ -128,28 +128,28 @@ public:
handler->GetSession()->SendNotification(LANG_DEV_OFF);
return true;
}
-
+
std::string argstr = (char*)args;
-
+
if (argstr == "on")
{
handler->GetSession()->GetPlayer()->SetFlag(PLAYER_FLAGS, PLAYER_FLAGS_DEVELOPER);
handler->GetSession()->SendNotification(LANG_DEV_ON);
return true;
}
-
+
if (argstr == "off")
{
handler->GetSession()->GetPlayer()->RemoveFlag(PLAYER_FLAGS, PLAYER_FLAGS_DEVELOPER);
handler->GetSession()->SendNotification(LANG_DEV_OFF);
return true;
}
-
+
handler->SendSysMessage(LANG_USE_BOL);
handler->SetSentErrorMessage(true);
return false;
}
-
+
static bool HandleGPSCommand(ChatHandler* handler, char const* args)
{
WorldObject* object = NULL;
@@ -158,7 +158,7 @@ public:
uint64 guid = handler->extractGuidFromLink((char*)args);
if (guid)
object = (WorldObject*)ObjectAccessor::GetObjectByTypeMask(*handler->GetSession()->GetPlayer(), guid, TYPEMASK_UNIT | TYPEMASK_GAMEOBJECT);
-
+
if (!object)
{
handler->SendSysMessage(LANG_PLAYER_NOT_FOUND);
@@ -169,7 +169,7 @@ public:
else
{
object = handler->getSelectedUnit();
-
+
if (!object)
{
handler->SendSysMessage(LANG_SELECT_CHAR_OR_CREATURE);
@@ -177,35 +177,35 @@ public:
return false;
}
}
-
+
CellCoord cellCoord = Trinity::ComputeCellCoord(object->GetPositionX(), object->GetPositionY());
Cell cell(cellCoord);
-
+
uint32 zoneId, areaId;
object->GetZoneAndAreaId(zoneId, areaId);
-
+
MapEntry const* mapEntry = sMapStore.LookupEntry(object->GetMapId());
AreaTableEntry const* zoneEntry = GetAreaEntryByAreaID(zoneId);
AreaTableEntry const* areaEntry = GetAreaEntryByAreaID(areaId);
-
+
float zoneX = object->GetPositionX();
float zoneY = object->GetPositionY();
-
+
Map2ZoneCoordinates(zoneX, zoneY, zoneId);
-
+
Map const* map = object->GetMap();
float groundZ = map->GetHeight(object->GetPhaseMask(), object->GetPositionX(), object->GetPositionY(), MAX_HEIGHT);
float floorZ = map->GetHeight(object->GetPhaseMask(), object->GetPositionX(), object->GetPositionY(), object->GetPositionZ());
-
+
GridCoord gridCoord = Trinity::ComputeGridCoord(object->GetPositionX(), object->GetPositionY());
-
+
// 63? WHY?
int gridX = 63 - gridCoord.x_coord;
int gridY = 63 - gridCoord.y_coord;
-
+
uint32 haveMap = Map::ExistMap(object->GetMapId(), gridX, gridY) ? 1 : 0;
uint32 haveVMap = Map::ExistVMap(object->GetMapId(), gridX, gridY) ? 1 : 0;
-
+
if (haveVMap)
{
if (map->IsOutdoors(object->GetPositionX(), object->GetPositionY(), object->GetPositionZ()))
@@ -215,7 +215,7 @@ public:
}
else
handler->PSendSysMessage("no VMAP available for area info");
-
+
handler->PSendSysMessage(LANG_MAP_POSITION,
object->GetMapId(), (mapEntry ? mapEntry->name[handler->GetSessionDbcLocale()] : "<unknown>"),
zoneId, (zoneEntry ? zoneEntry->area_name[handler->GetSessionDbcLocale()] : "<unknown>"),
@@ -224,16 +224,16 @@ public:
object->GetPositionX(), object->GetPositionY(), object->GetPositionZ(), object->GetOrientation(),
cell.GridX(), cell.GridY(), cell.CellX(), cell.CellY(), object->GetInstanceId(),
zoneX, zoneY, groundZ, floorZ, haveMap, haveVMap);
-
+
LiquidData liquidStatus;
ZLiquidStatus status = map->getLiquidStatus(object->GetPositionX(), object->GetPositionY(), object->GetPositionZ(), MAP_ALL_LIQUIDS, &liquidStatus);
-
+
if (status)
handler->PSendSysMessage(LANG_LIQUID_STATUS, liquidStatus.level, liquidStatus.depth_level, liquidStatus.entry, liquidStatus.type_flags, status);
-
+
return true;
}
-
+
static bool HandleAuraCommand(ChatHandler* handler, char const* args)
{
Unit* target = handler->getSelectedUnit();
@@ -243,16 +243,16 @@ public:
handler->SetSentErrorMessage(true);
return false;
}
-
+
// number or [name] Shift-click form |color|Hspell:spell_id|h[name]|h|r or Htalent form
uint32 spellId = handler->extractSpellIdFromLink((char*)args);
-
+
if (SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(spellId))
Aura::TryRefreshStackOrCreate(spellInfo, MAX_EFFECT_MASK, target, target);
-
+
return true;
}
-
+
static bool HandleUnAuraCommand(ChatHandler* handler, char const* args)
{
Unit* target = handler->getSelectedUnit();
@@ -262,21 +262,21 @@ public:
handler->SetSentErrorMessage(true);
return false;
}
-
+
std::string argstr = args;
if (argstr == "all")
{
target->RemoveAllAuras();
return true;
}
-
+
// number or [name] Shift-click form |color|Hspell:spell_id|h[name]|h|r or Htalent form
uint32 spellId = handler->extractSpellIdFromLink((char*)args);
if (!spellId)
return false;
-
+
target->RemoveAurasDueToSpell(spellId);
-
+
return true;
}
// Teleport to Player
@@ -287,7 +287,7 @@ public:
std::string targetName;
if (!handler->extractPlayerTarget((char*)args, &target, &targetGuid, &targetName))
return false;
-
+
Player* _player = handler->GetSession()->GetPlayer();
if (target == _player || targetGuid == _player->GetGUID())
{
@@ -295,15 +295,15 @@ public:
handler->SetSentErrorMessage(true);
return false;
}
-
+
if (target)
{
// check online security
if (handler->HasLowerSecurity(target, 0))
return false;
-
+
std::string chrNameLink = handler->playerLink(targetName);
-
+
Map* map = target->GetMap();
if (map->IsBattlegroundOrArena())
{
@@ -317,7 +317,7 @@ public:
// if both players are in different bgs
else if (_player->GetBattlegroundId() && _player->GetBattlegroundId() != target->GetBattlegroundId())
_player->LeaveBattleground(false); // Note: should be changed so _player gets no Deserter debuff
-
+
// all's well, set bg id
// when porting out from the bg, it will be reset to 0
_player->SetBattlegroundId(target->GetBattlegroundId(), target->GetBattlegroundTypeId());
@@ -350,7 +350,7 @@ public:
return false;
}
}
-
+
// if the player or the player's group is bound to another instance
// the player will not be bound to another one
InstancePlayerBind* bind = _player->GetBoundInstance(target->GetMapId(), target->GetDifficulty(map->IsRaid()));
@@ -363,15 +363,15 @@ public:
if (InstanceSave* save = sInstanceSaveMgr->GetInstanceSave(target->GetInstanceId()))
_player->BindToInstance(save, !save->CanReset());
}
-
+
if (map->IsRaid())
_player->SetRaidDifficulty(target->GetRaidDifficulty());
else
_player->SetDungeonDifficulty(target->GetDungeonDifficulty());
}
-
+
handler->PSendSysMessage(LANG_APPEARING_AT, chrNameLink.c_str());
-
+
// stop flight if need
if (_player->isInFlight())
{
@@ -381,11 +381,11 @@ public:
// save only in non-flight case
else
_player->SaveRecallPosition();
-
+
// to point to see at target with same orientation
float x, y, z;
target->GetContactPoint(_player, x, y, z);
-
+
_player->TeleportTo(target->GetMapId(), x, y, z, _player->GetAngle(target), TELE_TO_GM_MODE);
_player->SetPhaseMask(target->GetPhaseMask(), true);
}
@@ -394,18 +394,18 @@ public:
// check offline security
if (handler->HasLowerSecurity(NULL, targetGuid))
return false;
-
+
std::string nameLink = handler->playerLink(targetName);
-
+
handler->PSendSysMessage(LANG_APPEARING_AT, nameLink.c_str());
-
+
// to point where player stay (if loaded)
float x, y, z, o;
uint32 map;
bool in_flight;
if (!Player::LoadPositionFromDB(map, x, y, z, o, in_flight, targetGuid))
return false;
-
+
// stop flight if need
if (_player->isInFlight())
{
@@ -415,10 +415,10 @@ public:
// save only in non-flight case
else
_player->SaveRecallPosition();
-
+
_player->TeleportTo(map, x, y, z, _player->GetOrientation());
}
-
+
return true;
}
// Summon Player
@@ -429,7 +429,7 @@ public:
std::string targetName;
if (!handler->extractPlayerTarget((char*)args, &target, &targetGuid, &targetName))
return false;
-
+
Player* _player = handler->GetSession()->GetPlayer();
if (target == _player || targetGuid == _player->GetGUID())
{
@@ -437,23 +437,23 @@ public:
handler->SetSentErrorMessage(true);
return false;
}
-
+
if (target)
{
std::string nameLink = handler->playerLink(targetName);
// check online security
if (handler->HasLowerSecurity(target, 0))
return false;
-
+
if (target->IsBeingTeleported())
{
handler->PSendSysMessage(LANG_IS_TELEPORTED, nameLink.c_str());
handler->SetSentErrorMessage(true);
return false;
}
-
+
Map* map = handler->GetSession()->GetPlayer()->GetMap();
-
+
if (map->IsBattlegroundOrArena())
{
// only allow if gm mode is on
@@ -466,7 +466,7 @@ public:
// if both players are in different bgs
else if (target->GetBattlegroundId() && handler->GetSession()->GetPlayer()->GetBattlegroundId() != target->GetBattlegroundId())
target->LeaveBattleground(false); // Note: should be changed so target gets no Deserter debuff
-
+
// all's well, set bg id
// when porting out from the bg, it will be reset to 0
target->SetBattlegroundId(handler->GetSession()->GetPlayer()->GetBattlegroundId(), handler->GetSession()->GetPlayer()->GetBattlegroundTypeId());
@@ -477,10 +477,10 @@ public:
else if (map->IsDungeon())
{
Map* map = target->GetMap();
-
+
if (map->Instanceable() && map->GetInstanceId() != map->GetInstanceId())
target->UnbindInstance(map->GetInstanceId(), target->GetDungeonDifficulty(), true);
-
+
// we are in instance, and can summon only player in our group with us as lead
if (!handler->GetSession()->GetPlayer()->GetGroup() || !target->GetGroup() ||
(target->GetGroup()->GetLeaderGUID() != handler->GetSession()->GetPlayer()->GetGUID()) ||
@@ -492,11 +492,11 @@ public:
return false;
}
}
-
+
handler->PSendSysMessage(LANG_SUMMONING, nameLink.c_str(), "");
if (handler->needReportToTarget(target))
ChatHandler(target).PSendSysMessage(LANG_SUMMONED_BY, handler->playerLink(_player->GetName()).c_str());
-
+
// stop flight if need
if (target->isInFlight())
{
@@ -506,7 +506,7 @@ public:
// save only in non-flight case
else
target->SaveRecallPosition();
-
+
// before GM
float x, y, z;
handler->GetSession()->GetPlayer()->GetClosePoint(x, y, z, target->GetObjectSize());
@@ -518,11 +518,11 @@ public:
// check offline security
if (handler->HasLowerSecurity(NULL, targetGuid))
return false;
-
+
std::string nameLink = handler->playerLink(targetName);
-
+
handler->PSendSysMessage(LANG_SUMMONING, nameLink.c_str(), handler->GetTrinityString(LANG_OFFLINE));
-
+
// in point where GM stay
Player::SavePositionInDB(handler->GetSession()->GetPlayer()->GetMapId(),
handler->GetSession()->GetPlayer()->GetPositionX(),
@@ -532,7 +532,7 @@ public:
handler->GetSession()->GetPlayer()->GetZoneId(),
targetGuid);
}
-
+
return true;
}
// Summon group of player
@@ -541,25 +541,25 @@ public:
Player* target;
if (!handler->extractPlayerTarget((char*)args, &target))
return false;
-
+
// check online security
if (handler->HasLowerSecurity(target, 0))
return false;
-
+
Group* group = target->GetGroup();
-
+
std::string nameLink = handler->GetNameLink(target);
-
+
if (!group)
{
handler->PSendSysMessage(LANG_NOT_IN_GROUP, nameLink.c_str());
handler->SetSentErrorMessage(true);
return false;
}
-
+
Map* gmMap = handler->GetSession()->GetPlayer()->GetMap();
bool toInstance = gmMap->Instanceable();
-
+
// we are in instance, and can summon only player in our group with us as lead
if (toInstance && (
!handler->GetSession()->GetPlayer()->GetGroup() || (group->GetLeaderGUID() != handler->GetSession()->GetPlayer()->GetGUID()) ||
@@ -570,31 +570,31 @@ public:
handler->SetSentErrorMessage(true);
return false;
}
-
+
for (GroupReference* itr = group->GetFirstMember(); itr != NULL; itr = itr->next())
{
Player* player = itr->getSource();
-
+
if (!player || player == handler->GetSession()->GetPlayer() || !player->GetSession())
continue;
-
+
// check online security
if (handler->HasLowerSecurity(player, 0))
return false;
-
+
std::string plNameLink = handler->GetNameLink(player);
-
+
if (player->IsBeingTeleported() == true)
{
handler->PSendSysMessage(LANG_IS_TELEPORTED, plNameLink.c_str());
handler->SetSentErrorMessage(true);
return false;
}
-
+
if (toInstance)
{
Map* playerMap = player->GetMap();
-
+
if (playerMap->Instanceable() && playerMap->GetInstanceId() != gmMap->GetInstanceId())
{
// cannot summon from instance to instance
@@ -603,11 +603,11 @@ public:
return false;
}
}
-
+
handler->PSendSysMessage(LANG_SUMMONING, plNameLink.c_str(), "");
if (handler->needReportToTarget(player))
ChatHandler(player).PSendSysMessage(LANG_SUMMONED_BY, handler->GetNameLink().c_str());
-
+
// stop flight if need
if (player->isInFlight())
{
@@ -617,39 +617,39 @@ public:
// save only in non-flight case
else
player->SaveRecallPosition();
-
+
// before GM
float x, y, z;
handler->GetSession()->GetPlayer()->GetClosePoint(x, y, z, player->GetObjectSize());
player->TeleportTo(handler->GetSession()->GetPlayer()->GetMapId(), x, y, z, player->GetOrientation());
}
-
+
return true;
}
-
+
static bool HandleCommandsCommand(ChatHandler* handler, char const* /*args*/)
{
handler->ShowHelpForCommand(handler->getCommandTable(), "");
return true;
}
-
+
static bool HandleDieCommand(ChatHandler* handler, char const* /*args*/)
{
Unit* target = handler->getSelectedUnit();
-
+
if (!target || !handler->GetSession()->GetPlayer()->GetSelection())
{
handler->SendSysMessage(LANG_SELECT_CHAR_OR_CREATURE);
handler->SetSentErrorMessage(true);
return false;
}
-
+
if (target->GetTypeId() == TYPEID_PLAYER)
{
if (handler->HasLowerSecurity((Player*)target, 0, false))
return false;
}
-
+
if (target->isAlive())
{
if (sWorld->getBoolConfig(CONFIG_DIE_COMMAND_MODE))
@@ -657,17 +657,17 @@ public:
else
handler->GetSession()->GetPlayer()->DealDamage(target, target->GetHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false);
}
-
+
return true;
}
-
+
static bool HandleReviveCommand(ChatHandler* handler, char const* args)
{
Player* target;
uint64 targetGuid;
if (!handler->extractPlayerTarget((char*)args, &target, &targetGuid))
return false;
-
+
if (target)
{
target->ResurrectPlayer(!AccountMgr::IsPlayerAccount(target->GetSession()->GetSecurity()) ? 1.0f : 0.5f);
@@ -677,14 +677,14 @@ public:
else
// will resurrected at login without corpse
sObjectAccessor->ConvertCorpseForPlayer(targetGuid);
-
+
return true;
}
-
+
static bool HandleDismountCommand(ChatHandler* handler, char const* /*args*/)
{
Player* player = handler->GetSession()->GetPlayer();
-
+
// If player is not mounted, so go out :)
if (!player->IsMounted())
{
@@ -692,34 +692,34 @@ public:
handler->SetSentErrorMessage(true);
return false;
}
-
+
if (player->isInFlight())
{
handler->SendSysMessage(LANG_YOU_IN_FLIGHT);
handler->SetSentErrorMessage(true);
return false;
}
-
+
player->Dismount();
player->RemoveAurasByType(SPELL_AURA_MOUNTED);
return true;
}
-
+
static bool HandleGUIDCommand(ChatHandler* handler, char const* /*args*/)
{
uint64 guid = handler->GetSession()->GetPlayer()->GetSelection();
-
+
if (guid == 0)
{
handler->SendSysMessage(LANG_NO_SELECTION);
handler->SetSentErrorMessage(true);
return false;
}
-
+
handler->PSendSysMessage(LANG_OBJECT_GUID, GUID_LOPART(guid), GUID_HIPART(guid));
return true;
}
-
+
static bool HandleHelpCommand(ChatHandler* handler, char const* args)
{
char const* cmd = strtok((char*)args, " ");
@@ -733,7 +733,7 @@ public:
if (!handler->ShowHelpForCommand(handler->getCommandTable(), cmd))
handler->SendSysMessage(LANG_NO_HELP_CMD);
}
-
+
return true;
}
// move item to other slot
@@ -741,35 +741,35 @@ public:
{
if (!*args)
return false;
-
+
char const* param1 = strtok((char*)args, " ");
if (!param1)
return false;
-
+
char const* param2 = strtok(NULL, " ");
if (!param2)
return false;
-
+
uint8 srcSlot = uint8(atoi(param1));
uint8 dstSlot = uint8(atoi(param2));
-
+
if (srcSlot == dstSlot)
return true;
-
+
if (!handler->GetSession()->GetPlayer()->IsValidPos(INVENTORY_SLOT_BAG_0, srcSlot, true))
return false;
-
+
if (!handler->GetSession()->GetPlayer()->IsValidPos(INVENTORY_SLOT_BAG_0, dstSlot, false))
return false;
-
+
uint16 src = ((INVENTORY_SLOT_BAG_0 << 8) | srcSlot);
uint16 dst = ((INVENTORY_SLOT_BAG_0 << 8) | dstSlot);
-
+
handler->GetSession()->GetPlayer()->SwapItem(src, dst);
-
+
return true;
}
-
+
static bool HandleCooldownCommand(ChatHandler* handler, char const* args)
{
Player* target = handler->getSelectedPlayer();
@@ -779,9 +779,9 @@ public:
handler->SetSentErrorMessage(true);
return false;
}
-
+
std::string nameLink = handler->GetNameLink(target);
-
+
if (!*args)
{
target->RemoveAllSpellCooldown();
@@ -793,30 +793,30 @@ public:
uint32 spellIid = handler->extractSpellIdFromLink((char*)args);
if (!spellIid)
return false;
-
+
if (!sSpellMgr->GetSpellInfo(spellIid))
{
handler->PSendSysMessage(LANG_UNKNOWN_SPELL, target == handler->GetSession()->GetPlayer() ? handler->GetTrinityString(LANG_YOU) : nameLink.c_str());
handler->SetSentErrorMessage(true);
return false;
}
-
+
target->RemoveSpellCooldown(spellIid, true);
handler->PSendSysMessage(LANG_REMOVE_COOLDOWN, spellIid, target == handler->GetSession()->GetPlayer() ? handler->GetTrinityString(LANG_YOU) : nameLink.c_str());
}
return true;
}
-
+
static bool HandleGetDistanceCommand(ChatHandler* handler, char const* args)
{
WorldObject* obj = NULL;
-
+
if (*args)
{
uint64 guid = handler->extractGuidFromLink((char*)args);
if (guid)
obj = (WorldObject*)ObjectAccessor::GetObjectByTypeMask(*handler->GetSession()->GetPlayer(), guid, TYPEMASK_UNIT|TYPEMASK_GAMEOBJECT);
-
+
if (!obj)
{
handler->SendSysMessage(LANG_PLAYER_NOT_FOUND);
@@ -827,7 +827,7 @@ public:
else
{
obj = handler->getSelectedUnit();
-
+
if (!obj)
{
handler->SendSysMessage(LANG_SELECT_CHAR_OR_CREATURE);
@@ -835,7 +835,7 @@ public:
return false;
}
}
-
+
handler->PSendSysMessage(LANG_DISTANCE, handler->GetSession()->GetPlayer()->GetDistance(obj), handler->GetSession()->GetPlayer()->GetDistance2d(obj), handler->GetSession()->GetPlayer()->GetExactDist(obj), handler->GetSession()->GetPlayer()->GetExactDist2d(obj));
return true;
}
@@ -845,33 +845,33 @@ public:
Player* target;
if (!handler->extractPlayerTarget((char*)args, &target))
return false;
-
+
// check online security
if (handler->HasLowerSecurity(target, 0))
return false;
-
+
if (target->IsBeingTeleported())
{
handler->PSendSysMessage(LANG_IS_TELEPORTED, handler->GetNameLink(target).c_str());
handler->SetSentErrorMessage(true);
return false;
}
-
+
// stop flight if need
if (target->isInFlight())
{
target->GetMotionMaster()->MovementExpired();
target->CleanupAfterTaxiFlight();
}
-
+
target->TeleportTo(target->m_recallMap, target->m_recallX, target->m_recallY, target->m_recallZ, target->m_recallO);
return true;
}
-
+
static bool HandleSaveCommand(ChatHandler* handler, char const* /*args*/)
{
Player* player = handler->GetSession()->GetPlayer();
-
+
// save GM account without delay and output message
if (!AccountMgr::IsPlayerAccount(handler->GetSession()->GetSecurity()))
{
@@ -882,15 +882,15 @@ public:
handler->SendSysMessage(LANG_PLAYER_SAVED);
return true;
}
-
+
// save if the player has last been saved over 20 seconds ago
uint32 saveInterval = sWorld->getIntConfig(CONFIG_INTERVAL_SAVE);
if (saveInterval == 0 || (saveInterval > 20 * IN_MILLISECONDS && player->GetSaveTimer() <= saveInterval - 20 * IN_MILLISECONDS))
player->SaveToDB();
-
+
return true;
}
-
+
// Save all players in the world
static bool HandleSaveAllCommand(ChatHandler* handler, char const* /*args*/)
{
@@ -898,7 +898,7 @@ public:
handler->SendSysMessage(LANG_PLAYERS_SAVED);
return true;
}
-
+
// kick player
static bool HandleKickPlayerCommand(ChatHandler* handler, char const* args)
{
@@ -906,73 +906,73 @@ public:
std::string playerName;
if (!handler->extractPlayerTarget((char*)args, &target, NULL, &playerName))
return false;
-
+
if (handler->GetSession() && target == handler->GetSession()->GetPlayer())
{
handler->SendSysMessage(LANG_COMMAND_KICKSELF);
handler->SetSentErrorMessage(true);
return false;
}
-
+
// check online security
if (handler->HasLowerSecurity(target, 0))
return false;
-
+
if (sWorld->getBoolConfig(CONFIG_SHOW_KICK_IN_WORLD))
sWorld->SendWorldText(LANG_COMMAND_KICKMESSAGE, playerName.c_str());
else
handler->PSendSysMessage(LANG_COMMAND_KICKMESSAGE, playerName.c_str());
-
+
target->GetSession()->KickPlayer();
-
+
return true;
}
-
+
static bool HandleStartCommand(ChatHandler* handler, char const* /*args*/)
{
Player* player = handler->GetSession()->GetPlayer();
-
+
if (player->isInFlight())
{
handler->SendSysMessage(LANG_YOU_IN_FLIGHT);
handler->SetSentErrorMessage(true);
return false;
}
-
+
if (player->isInCombat())
{
handler->SendSysMessage(LANG_YOU_IN_COMBAT);
handler->SetSentErrorMessage(true);
return false;
}
-
+
if (player->isDead() || player->HasFlag(PLAYER_FLAGS, PLAYER_FLAGS_GHOST))
{
// if player is dead and stuck, send ghost to graveyard
player->RepopAtGraveyard();
return true;
}
-
+
// cast spell Stuck
player->CastSpell(player, 7355, false);
return true;
}
-
+
static bool HandleLinkGraveCommand(ChatHandler* handler, char const* args)
{
if (!*args)
return false;
-
+
char* px = strtok((char*)args, " ");
if (!px)
return false;
-
+
uint32 graveyardId = uint32(atoi(px));
-
+
uint32 team;
-
+
char* px2 = strtok(NULL, " ");
-
+
if (!px2)
team = 0;
else if (strncmp(px2, "horde", 6) == 0)
@@ -981,20 +981,20 @@ public:
team = ALLIANCE;
else
return false;
-
+
WorldSafeLocsEntry const* graveyard = sWorldSafeLocsStore.LookupEntry(graveyardId);
-
+
if (!graveyard)
{
handler->PSendSysMessage(LANG_COMMAND_GRAVEYARDNOEXIST, graveyardId);
handler->SetSentErrorMessage(true);
return false;
}
-
+
Player* player = handler->GetSession()->GetPlayer();
-
+
uint32 zoneId = player->GetZoneId();
-
+
AreaTableEntry const* areaEntry = GetAreaEntryByAreaID(zoneId);
if (!areaEntry || areaEntry->zone !=0)
{
@@ -1002,21 +1002,21 @@ public:
handler->SetSentErrorMessage(true);
return false;
}
-
+
if (sObjectMgr->AddGraveYardLink(graveyardId, zoneId, team))
handler->PSendSysMessage(LANG_COMMAND_GRAVEYARDLINKED, graveyardId, zoneId);
else
handler->PSendSysMessage(LANG_COMMAND_GRAVEYARDALRLINKED, graveyardId, zoneId);
-
+
return true;
}
-
+
static bool HandleNearGraveCommand(ChatHandler* handler, char const* args)
{
uint32 team;
-
+
size_t argStr = strlen(args);
-
+
if (!*args)
team = 0;
else if (strncmp((char*)args, "horde", argStr) == 0)
@@ -1025,17 +1025,17 @@ public:
team = ALLIANCE;
else
return false;
-
+
Player* player = handler->GetSession()->GetPlayer();
uint32 zone_id = player->GetZoneId();
-
+
WorldSafeLocsEntry const* graveyard = sObjectMgr->GetClosestGraveYard(
player->GetPositionX(), player->GetPositionY(), player->GetPositionZ(), player->GetMapId(), team);
-
+
if (graveyard)
{
uint32 graveyardId = graveyard->ID;
-
+
GraveYardData const* data = sObjectMgr->FindGraveYardData(graveyardId, zone_id);
if (!data)
{
@@ -1043,45 +1043,45 @@ public:
handler->SetSentErrorMessage(true);
return false;
}
-
+
team = data->team;
-
+
std::string team_name = handler->GetTrinityString(LANG_COMMAND_GRAVEYARD_NOTEAM);
-
+
if (team == 0)
team_name = handler->GetTrinityString(LANG_COMMAND_GRAVEYARD_ANY);
else if (team == HORDE)
team_name = handler->GetTrinityString(LANG_COMMAND_GRAVEYARD_HORDE);
else if (team == ALLIANCE)
team_name = handler->GetTrinityString(LANG_COMMAND_GRAVEYARD_ALLIANCE);
-
+
handler->PSendSysMessage(LANG_COMMAND_GRAVEYARDNEAREST, graveyardId, team_name.c_str(), zone_id);
}
else
{
std::string team_name;
-
+
if (team == 0)
team_name = handler->GetTrinityString(LANG_COMMAND_GRAVEYARD_ANY);
else if (team == HORDE)
team_name = handler->GetTrinityString(LANG_COMMAND_GRAVEYARD_HORDE);
else if (team == ALLIANCE)
team_name = handler->GetTrinityString(LANG_COMMAND_GRAVEYARD_ALLIANCE);
-
+
if (team == ~uint32(0))
handler->PSendSysMessage(LANG_COMMAND_ZONENOGRAVEYARDS, zone_id);
else
handler->PSendSysMessage(LANG_COMMAND_ZONENOGRAFACTION, zone_id, team_name.c_str());
}
-
+
return true;
}
-
+
static bool HandleShowAreaCommand(ChatHandler* handler, char const* args)
{
if (!*args)
return false;
-
+
Player* playerTarget = handler->getSelectedPlayer();
if (!playerTarget)
{
@@ -1089,30 +1089,30 @@ public:
handler->SetSentErrorMessage(true);
return false;
}
-
+
int32 area = GetAreaFlagByAreaID(atoi((char*)args));
int32 offset = area / 32;
uint32 val = uint32((1 << (area % 32)));
-
+
if (area<0 || offset >= PLAYER_EXPLORED_ZONES_SIZE)
{
handler->SendSysMessage(LANG_BAD_VALUE);
handler->SetSentErrorMessage(true);
return false;
}
-
+
uint32 currFields = playerTarget->GetUInt32Value(PLAYER_EXPLORED_ZONES_1 + offset);
playerTarget->SetUInt32Value(PLAYER_EXPLORED_ZONES_1 + offset, uint32((currFields | val)));
-
+
handler->SendSysMessage(LANG_EXPLORE_AREA);
return true;
}
-
+
static bool HandleHideAreaCommand(ChatHandler* handler, char const* args)
{
if (!*args)
return false;
-
+
Player* playerTarget = handler->getSelectedPlayer();
if (!playerTarget)
{
@@ -1120,45 +1120,45 @@ public:
handler->SetSentErrorMessage(true);
return false;
}
-
+
int32 area = GetAreaFlagByAreaID(atoi((char*)args));
int32 offset = area / 32;
uint32 val = uint32((1 << (area % 32)));
-
+
if (area < 0 || offset >= PLAYER_EXPLORED_ZONES_SIZE)
{
handler->SendSysMessage(LANG_BAD_VALUE);
handler->SetSentErrorMessage(true);
return false;
}
-
+
uint32 currFields = playerTarget->GetUInt32Value(PLAYER_EXPLORED_ZONES_1 + offset);
playerTarget->SetUInt32Value(PLAYER_EXPLORED_ZONES_1 + offset, uint32((currFields ^ val)));
-
+
handler->SendSysMessage(LANG_UNEXPLORE_AREA);
return true;
}
-
+
static bool HandleAddItemCommand(ChatHandler* handler, char const* args)
{
if (!*args)
return false;
-
+
uint32 itemId = 0;
-
+
if (args[0] == '[') // [name] manual form
{
char const* itemNameStr = strtok((char*)args, "]");
-
+
if (itemNameStr && itemNameStr[0])
{
std::string itemName = itemNameStr+1;
WorldDatabase.EscapeString(itemName);
-
+
PreparedStatement* stmt = WorldDatabase.GetPreparedStatement(WORLD_SEL_ITEM_TEMPLATE_BY_NAME);
stmt->setString(0, itemName);
PreparedQueryResult result = WorldDatabase.Query(stmt);
-
+
if (!result)
{
handler->PSendSysMessage(LANG_COMMAND_COULDNOTFIND, itemNameStr+1);
@@ -1177,24 +1177,24 @@ public:
return false;
itemId = uint32(atol(id));
}
-
+
char const* ccount = strtok(NULL, " ");
-
+
int32 count = 1;
-
+
if (ccount)
count = strtol(ccount, NULL, 10);
-
+
if (count == 0)
count = 1;
-
+
Player* player = handler->GetSession()->GetPlayer();
Player* playerTarget = handler->getSelectedPlayer();
if (!playerTarget)
playerTarget = player;
-
+
sLog->outDebug(LOG_FILTER_GENERAL, handler->GetTrinityString(LANG_ADDITEM), itemId, count);
-
+
ItemTemplate const* itemTemplate = sObjectMgr->GetItemTemplate(itemId);
if (!itemTemplate)
{
@@ -1202,7 +1202,7 @@ public:
handler->SetSentErrorMessage(true);
return false;
}
-
+
// Subtract
if (count < 0)
{
@@ -1210,55 +1210,55 @@ public:
handler->PSendSysMessage(LANG_REMOVEITEM, itemId, -count, handler->GetNameLink(playerTarget).c_str());
return true;
}
-
+
// Adding items
uint32 noSpaceForCount = 0;
-
+
// check space and find places
ItemPosCountVec dest;
InventoryResult msg = playerTarget->CanStoreNewItem(NULL_BAG, NULL_SLOT, dest, itemId, count, &noSpaceForCount);
if (msg != EQUIP_ERR_OK) // convert to possible store amount
count -= noSpaceForCount;
-
+
if (count == 0 || dest.empty()) // can't add any
{
handler->PSendSysMessage(LANG_ITEM_CANNOT_CREATE, itemId, noSpaceForCount);
handler->SetSentErrorMessage(true);
return false;
}
-
+
Item* item = playerTarget->StoreNewItem(dest, itemId, true, Item::GenerateItemRandomPropertyId(itemId));
-
+
// remove binding (let GM give it to another player later)
if (player == playerTarget)
for (ItemPosCountVec::const_iterator itr = dest.begin(); itr != dest.end(); ++itr)
if (Item* item1 = player->GetItemByPos(itr->pos))
item1->SetBinding(false);
-
+
if (count > 0 && item)
{
player->SendNewItem(item, count, false, true);
if (player != playerTarget)
playerTarget->SendNewItem(item, count, true, false);
}
-
+
if (noSpaceForCount > 0)
handler->PSendSysMessage(LANG_ITEM_CANNOT_CREATE, itemId, noSpaceForCount);
-
+
return true;
}
-
+
static bool HandleAddItemSetCommand(ChatHandler* handler, char const* args)
{
if (!*args)
return false;
-
+
char const* id = handler->extractKeyFromLink((char*)args, "Hitemset"); // number or [name] Shift-click form |color|Hitemset:itemset_id|h[name]|h|r
if (!id)
return false;
-
+
uint32 itemSetId = atol(id);
-
+
// prevent generation all items with itemset field value '0'
if (itemSetId == 0)
{
@@ -1266,14 +1266,14 @@ public:
handler->SetSentErrorMessage(true);
return false;
}
-
+
Player* player = handler->GetSession()->GetPlayer();
Player* playerTarget = handler->getSelectedPlayer();
if (!playerTarget)
playerTarget = player;
-
+
sLog->outDebug(LOG_FILTER_GENERAL, handler->GetTrinityString(LANG_ADDITEMSET), itemSetId);
-
+
bool found = false;
ItemTemplateContainer const* its = sObjectMgr->GetItemTemplateStore();
for (ItemTemplateContainer::const_iterator itr = its->begin(); itr != its->end(); ++itr)
@@ -1286,11 +1286,11 @@ public:
if (msg == EQUIP_ERR_OK)
{
Item* item = playerTarget->StoreNewItem(dest, itr->second.ItemId, true);
-
+
// remove binding (let GM give it to another player later)
if (player == playerTarget)
item->SetBinding(false);
-
+
player->SendNewItem(item, 1, false, true);
if (player != playerTarget)
playerTarget->SendNewItem(item, 1, true, false);
@@ -1302,28 +1302,28 @@ public:
}
}
}
-
+
if (!found)
{
handler->PSendSysMessage(LANG_NO_ITEMS_FROM_ITEMSET_FOUND, itemSetId);
handler->SetSentErrorMessage(true);
return false;
}
-
+
return true;
}
-
+
static bool HandleBankCommand(ChatHandler* handler, char const* /*args*/)
{
handler->GetSession()->SendShowBank(handler->GetSession()->GetPlayer()->GetGUID());
return true;
}
-
+
static bool HandleChangeWeather(ChatHandler* handler, char const* args)
{
if (!*args)
return false;
-
+
// Weather is OFF
if (!sWorld->getBoolConfig(CONFIG_WEATHER))
{
@@ -1331,22 +1331,22 @@ public:
handler->SetSentErrorMessage(true);
return false;
}
-
+
// *Change the weather of a cell
char const* px = strtok((char*)args, " ");
char const* py = strtok(NULL, " ");
-
+
if (!px || !py)
return false;
-
+
uint32 type = uint32(atoi(px)); //0 to 3, 0: fine, 1: rain, 2: snow, 3: sand
float grade = float(atof(py)); //0 to 1, sending -1 is instand good weather
-
+
Player* player = handler->GetSession()->GetPlayer();
uint32 zoneid = player->GetZoneId();
-
+
Weather* weather = WeatherMgr::FindWeather(zoneid);
-
+
if (!weather)
weather = WeatherMgr::AddWeather(zoneid);
if (!weather)
@@ -1355,12 +1355,12 @@ public:
handler->SetSentErrorMessage(true);
return false;
}
-
+
weather->SetWeather(WeatherType(type), grade);
-
+
return true;
}
-
+
static bool HandleMaxSkillCommand(ChatHandler* handler, char const* /*args*/)
{
@@ -1371,25 +1371,25 @@ public:
handler->SetSentErrorMessage(true);
return false;
}
-
+
// each skills that have max skill value dependent from level seted to current level max skill value
SelectedPlayer->UpdateSkillsToMaxSkillsForLevel();
return true;
}
-
+
static bool HandleSetSkillCommand(ChatHandler* handler, char const* args)
{
// number or [name] Shift-click form |color|Hskill:skill_id|h[name]|h|r
char const* skillStr = handler->extractKeyFromLink((char*)args, "Hskill");
if (!skillStr)
return false;
-
+
char const* levelStr = strtok(NULL, " ");
if (!levelStr)
return false;
-
+
char const* maxPureSkill = strtok(NULL, " ");
-
+
int32 skill = atoi(skillStr);
if (skill <= 0)
{
@@ -1397,9 +1397,9 @@ public:
handler->SetSentErrorMessage(true);
return false;
}
-
+
int32 level = uint32(atol(levelStr));
-
+
Player* target = handler->getSelectedPlayer();
if (!target)
{
@@ -1407,7 +1407,7 @@ public:
handler->SetSentErrorMessage(true);
return false;
}
-
+
SkillLineEntry const* skillLine = sSkillLineStore.LookupEntry(skill);
if (!skillLine)
{
@@ -1415,24 +1415,24 @@ public:
handler->SetSentErrorMessage(true);
return false;
}
-
+
std::string tNameLink = handler->GetNameLink(target);
-
+
if (!target->GetSkillValue(skill))
{
handler->PSendSysMessage(LANG_SET_SKILL_ERROR, tNameLink.c_str(), skill, skillLine->name[handler->GetSessionDbcLocale()]);
handler->SetSentErrorMessage(true);
return false;
}
-
+
uint16 max = maxPureSkill ? atol (maxPureSkill) : target->GetPureMaxSkillValue(skill);
-
+
if (level <= 0 || level > max || max <= 0)
return false;
-
+
target->SetSkill(skill, target->GetSkillStep(skill), level, max);
handler->PSendSysMessage(LANG_SET_SKILL, skill, skillLine->name[handler->GetSessionDbcLocale()], tNameLink.c_str(), level, max);
-
+
return true;
}
// show info of player
@@ -1441,9 +1441,9 @@ public:
Player* target;
uint64 targetGuid;
std::string targetName;
-
+
uint32 parseGUID = MAKE_NEW_GUID(atol((char*)args), 0, HIGHGUID_PLAYER);
-
+
if (sObjectMgr->GetPlayerNameByGUID(parseGUID, targetName))
{
target = sObjectMgr->GetPlayerByLowGUID(parseGUID);
@@ -1451,7 +1451,7 @@ public:
}
else if (!handler->extractPlayerTarget((char*)args, &target, &targetGuid, &targetName))
return false;
-
+
uint32 accId = 0;
uint32 money = 0;
uint32 totalPlayerTime = 0;
@@ -1464,14 +1464,14 @@ public:
uint32 mapId;
uint32 areaId;
uint32 phase = 0;
-
+
// get additional information from Player object
if (target)
{
// check online security
if (handler->HasLowerSecurity(target, 0))
return false;
-
+
accId = target->GetSession()->GetAccountId();
money = target->GetMoney();
totalPlayerTime = target->GetTotalPlayedTime();
@@ -1490,14 +1490,14 @@ public:
// check offline security
if (handler->HasLowerSecurity(NULL, targetGuid))
return false;
-
+
PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_CHAR_PINFO);
stmt->setUInt32(0, GUID_LOPART(targetGuid));
PreparedQueryResult result = CharacterDatabase.Query(stmt);
-
+
if (!result)
return false;
-
+
Field* fields = result->Fetch();
totalPlayerTime = fields[0].GetUInt32();
level = fields[1].GetUInt8();
@@ -1508,18 +1508,18 @@ public:
mapId = fields[6].GetUInt16();
areaId = fields[7].GetUInt16();
}
-
+
std::string userName = handler->GetTrinityString(LANG_ERROR);
std::string eMail = handler->GetTrinityString(LANG_ERROR);
std::string lastIp = handler->GetTrinityString(LANG_ERROR);
uint32 security = 0;
std::string lastLogin = handler->GetTrinityString(LANG_ERROR);
-
+
PreparedStatement* stmt = LoginDatabase.GetPreparedStatement(LOGIN_SEL_PINFO);
stmt->setInt32(0, int32(realmID));
stmt->setUInt32(1, accId);
PreparedQueryResult result = LoginDatabase.Query(stmt);
-
+
if (result)
{
Field* fields = result->Fetch();
@@ -1527,26 +1527,26 @@ public:
security = fields[1].GetUInt8();
eMail = fields[2].GetString();
muteTime = fields[5].GetUInt64();
-
+
if (eMail.empty())
eMail = "-";
-
+
if (!handler->GetSession() || handler->GetSession()->GetSecurity() >= AccountTypes(security))
{
lastIp = fields[3].GetString();
lastLogin = fields[4].GetString();
-
+
uint32 ip = inet_addr(lastIp.c_str());
#if TRINITY_ENDIAN == BIGENDIAN
EndianConvertReverse(ip);
#endif
-
+
PreparedStatement* stmt = WorldDatabase.GetPreparedStatement(WORLD_SEL_IP2NATION_COUNTRY);
-
+
stmt->setUInt32(0, ip);
-
+
PreparedQueryResult result2 = WorldDatabase.Query(stmt);
-
+
if (result2)
{
Field* fields2 = result2->Fetch();
@@ -1561,14 +1561,14 @@ public:
lastLogin = "-";
}
}
-
+
std::string nameLink = handler->playerLink(targetName);
-
+
handler->PSendSysMessage(LANG_PINFO_ACCOUNT, (target ? "" : handler->GetTrinityString(LANG_OFFLINE)), nameLink.c_str(), GUID_LOPART(targetGuid), userName.c_str(), accId, eMail.c_str(), security, lastIp.c_str(), lastLogin.c_str(), latency);
-
+
std::string bannedby = "unknown";
std::string banreason = "";
-
+
stmt = LoginDatabase.GetPreparedStatement(LOGIN_SEL_PINFO_BANS);
stmt->setUInt32(0, accId);
PreparedQueryResult result2 = LoginDatabase.Query(stmt);
@@ -1578,7 +1578,7 @@ public:
stmt->setUInt32(0, GUID_LOPART(targetGuid));
result2 = CharacterDatabase.Query(stmt);
}
-
+
if (result2)
{
Field* fields = result2->Fetch();
@@ -1586,13 +1586,13 @@ public:
bannedby = fields[2].GetString();
banreason = fields[3].GetString();
}
-
+
if (muteTime > 0)
handler->PSendSysMessage(LANG_PINFO_MUTE, secsToTimeString(muteTime - time(NULL), true).c_str());
-
+
if (banTime >= 0)
handler->PSendSysMessage(LANG_PINFO_BAN, banTime > 0 ? secsToTimeString(banTime - time(NULL), true).c_str() : "permanently", bannedby.c_str(), banreason.c_str());
-
+
std::string raceStr, ClassStr;
switch (race)
{
@@ -1627,7 +1627,7 @@ public:
raceStr = "Draenei";
break;
}
-
+
switch (Class)
{
case CLASS_WARRIOR:
@@ -1661,30 +1661,30 @@ public:
ClassStr = "Druid";
break;
}
-
+
std::string timeStr = secsToTimeString(totalPlayerTime, true, true);
uint32 gold = money /GOLD;
uint32 silv = (money % GOLD) / SILVER;
uint32 copp = (money % GOLD) % SILVER;
handler->PSendSysMessage(LANG_PINFO_LEVEL, raceStr.c_str(), ClassStr.c_str(), timeStr.c_str(), level, gold, silv, copp);
-
+
// Add map, zone, subzone and phase to output
int locale = handler->GetSessionDbcLocale();
std::string areaName = "<unknown>";
std::string zoneName = "";
-
+
MapEntry const* map = sMapStore.LookupEntry(mapId);
-
+
AreaTableEntry const* area = GetAreaEntryByAreaID(areaId);
if (area)
{
areaName = area->area_name[locale];
-
+
AreaTableEntry const* zone = GetAreaEntryByAreaID(area->zone);
if (zone)
zoneName = zone->area_name[locale];
}
-
+
if (target)
{
if (!zoneName.empty())
@@ -1694,14 +1694,14 @@ public:
}
else
handler->PSendSysMessage(LANG_PINFO_MAP_OFFLINE, map->name[locale], areaName.c_str());
-
+
return true;
}
-
+
static bool HandleRespawnCommand(ChatHandler* handler, char const* /*args*/)
{
Player* player = handler->GetSession()->GetPlayer();
-
+
// accept only explicitly selected target (not implicitly self targeting case)
Unit* target = handler->getSelectedUnit();
if (player->GetSelection() && target)
@@ -1712,22 +1712,22 @@ public:
handler->SetSentErrorMessage(true);
return false;
}
-
+
if (target->isDead())
target->ToCreature()->Respawn();
return true;
}
-
+
CellCoord p(Trinity::ComputeCellCoord(player->GetPositionX(), player->GetPositionY()));
Cell cell(p);
cell.SetNoCreate();
-
+
Trinity::RespawnDo u_do;
Trinity::WorldObjectWorker<Trinity::RespawnDo> worker(player, u_do);
-
+
TypeContainerVisitor<Trinity::WorldObjectWorker<Trinity::RespawnDo>, GridTypeMapContainer > obj_worker(worker);
cell.Visit(p, obj_worker, *player->GetMap(), *player, player->GetGridActivationRange());
-
+
return true;
}
// mute player for some times
@@ -1738,33 +1738,33 @@ public:
handler->extractOptFirstArg((char*)args, &nameStr, &delayStr);
if (!delayStr)
return false;
-
+
char const* muteReason = strtok(NULL, "\r");
std::string muteReasonStr = "No reason";
if (muteReason != NULL)
muteReasonStr = muteReason;
-
+
Player* target;
uint64 targetGuid;
std::string targetName;
if (!handler->extractPlayerTarget(nameStr, &target, &targetGuid, &targetName))
return false;
-
+
uint32 accountId = target ? target->GetSession()->GetAccountId() : sObjectMgr->GetPlayerAccountIdByGUID(targetGuid);
-
+
// find only player from same account if any
if (!target)
if (WorldSession* session = sWorld->FindSession(accountId))
target = session->GetPlayer();
-
+
uint32 notSpeakTime = uint32(atoi(delayStr));
-
+
// must have strong lesser security level
if (handler->HasLowerSecurity (target, targetGuid, true))
return false;
-
+
PreparedStatement* stmt = LoginDatabase.GetPreparedStatement(LOGIN_UPD_MUTE_TIME);
-
+
if (target)
{
// Target is online, mute will be in effect right away.
@@ -1779,16 +1779,16 @@ public:
int32 muteTime = -int32(notSpeakTime * MINUTE);
stmt->setInt64(0, muteTime);
}
-
+
stmt->setUInt32(1, accountId);
LoginDatabase.Execute(stmt);
std::string nameLink = handler->playerLink(targetName);
-
+
handler->PSendSysMessage(target ? LANG_YOU_DISABLE_CHAT : LANG_COMMAND_DISABLE_CHAT_DELAYED, nameLink.c_str(), notSpeakTime, muteReasonStr.c_str());
-
+
return true;
}
-
+
// unmute player
static bool HandleUnmuteCommand(ChatHandler* handler, char const* args)
{
@@ -1797,18 +1797,18 @@ public:
std::string targetName;
if (!handler->extractPlayerTarget((char*)args, &target, &targetGuid, &targetName))
return false;
-
+
uint32 accountId = target ? target->GetSession()->GetAccountId() : sObjectMgr->GetPlayerAccountIdByGUID(targetGuid);
-
+
// find only player from same account if any
if (!target)
if (WorldSession* session = sWorld->FindSession(accountId))
target = session->GetPlayer();
-
+
// must have strong lesser security level
if (handler->HasLowerSecurity (target, targetGuid, true))
return false;
-
+
if (target)
{
if (target->CanSpeak())
@@ -1817,25 +1817,25 @@ public:
handler->SetSentErrorMessage(true);
return false;
}
-
+
target->GetSession()->m_muteTime = 0;
}
-
+
PreparedStatement* stmt = LoginDatabase.GetPreparedStatement(LOGIN_UPD_MUTE_TIME);
stmt->setInt64(0, 0);
stmt->setUInt32(1, accountId);
LoginDatabase.Execute(stmt);
-
+
if (target)
ChatHandler(target).PSendSysMessage(LANG_YOUR_CHAT_ENABLED);
-
+
std::string nameLink = handler->playerLink(targetName);
-
+
handler->PSendSysMessage(LANG_YOU_ENABLE_CHAT, nameLink.c_str());
-
+
return true;
}
-
+
static bool HandleMovegensCommand(ChatHandler* handler, char const* /*args*/)
{
@@ -1846,13 +1846,13 @@ public:
handler->SetSentErrorMessage(true);
return false;
}
-
+
handler->PSendSysMessage(LANG_MOVEGENS_LIST, (unit->GetTypeId() == TYPEID_PLAYER ? "Player" : "Creature"), unit->GetGUIDLow());
-
+
MotionMaster* motionMaster = unit->GetMotionMaster();
float x, y, z;
motionMaster->GetDestination(x, y, z);
-
+
for (uint8 i = 0; i < MAX_MOTION_SLOT; ++i)
{
MovementGenerator* movementGenerator = motionMaster->GetMotionSlot(i);
@@ -1861,7 +1861,7 @@ public:
handler->SendSysMessage("Empty");
continue;
}
-
+
switch (movementGenerator->GetMovementGeneratorType())
{
case IDLE_MOTION_TYPE:
@@ -1886,7 +1886,7 @@ public:
target = static_cast<ChaseMovementGenerator<Player> const*>(movementGenerator)->GetTarget();
else
target = static_cast<ChaseMovementGenerator<Creature> const*>(movementGenerator)->GetTarget();
-
+
if (!target)
handler->SendSysMessage(LANG_MOVEGENS_CHASE_NULL);
else if (target->GetTypeId() == TYPEID_PLAYER)
@@ -1902,7 +1902,7 @@ public:
target = static_cast<FollowMovementGenerator<Player> const*>(movementGenerator)->GetTarget();
else
target = static_cast<FollowMovementGenerator<Creature> const*>(movementGenerator)->GetTarget();
-
+
if (!target)
handler->SendSysMessage(LANG_MOVEGENS_FOLLOW_NULL);
else if (target->GetTypeId() == TYPEID_PLAYER)
@@ -1953,7 +1953,7 @@ public:
char const* newFlagStr = strtok((char*)args, " ");
if (!newFlagStr)
return false;
-
+
Creature* caster = handler->getSelectedCreature();
if (!caster)
{
@@ -1961,19 +1961,19 @@ public:
handler->SetSentErrorMessage(true);
return false;
}
-
+
Player* player = handler->GetSession()->GetPlayer();
-
+
caster->GetMotionMaster()->MovePoint(0, player->GetPositionX(), player->GetPositionY(), player->GetPositionZ());
-
+
return true;
}
-
+
static bool HandleDamageCommand(ChatHandler* handler, char const* args)
{
if (!*args)
return false;
-
+
Unit* target = handler->getSelectedUnit();
if (!target || !handler->GetSession()->GetPlayer()->GetSelection())
{
@@ -1981,28 +1981,28 @@ public:
handler->SetSentErrorMessage(true);
return false;
}
-
+
if (target->GetTypeId() == TYPEID_PLAYER)
{
if (handler->HasLowerSecurity((Player*)target, 0, false))
return false;
}
-
+
if (!target->isAlive())
return true;
-
+
char* damageStr = strtok((char*)args, " ");
if (!damageStr)
return false;
-
+
int32 damage_int = atoi((char*)damageStr);
if (damage_int <= 0)
return true;
-
+
uint32 damage = damage_int;
-
+
char* schoolStr = strtok((char*)NULL, " ");
-
+
// flat melee damage without resistence/etc reduction
if (!schoolStr)
{
@@ -2011,52 +2011,52 @@ public:
handler->GetSession()->GetPlayer()->SendAttackStateUpdate (HITINFO_AFFECTS_VICTIM, target, 1, SPELL_SCHOOL_MASK_NORMAL, damage, 0, 0, VICTIMSTATE_HIT, 0);
return true;
}
-
+
uint32 school = schoolStr ? atoi((char*)schoolStr) : SPELL_SCHOOL_NORMAL;
if (school >= MAX_SPELL_SCHOOL)
return false;
-
+
SpellSchoolMask schoolmask = SpellSchoolMask(1 << school);
-
+
if (Unit::IsDamageReducedByArmor(schoolmask))
damage = handler->GetSession()->GetPlayer()->CalcArmorReducedDamage(target, damage, NULL, BASE_ATTACK);
-
+
char* spellStr = strtok((char*)NULL, " ");
-
+
// melee damage by specific school
if (!spellStr)
{
uint32 absorb = 0;
uint32 resist = 0;
-
+
handler->GetSession()->GetPlayer()->CalcAbsorbResist(target, schoolmask, SPELL_DIRECT_DAMAGE, damage, &absorb, &resist);
-
+
if (damage <= absorb + resist)
return true;
-
+
damage -= absorb + resist;
-
+
handler->GetSession()->GetPlayer()->DealDamageMods(target, damage, &absorb);
handler->GetSession()->GetPlayer()->DealDamage(target, damage, NULL, DIRECT_DAMAGE, schoolmask, NULL, false);
handler->GetSession()->GetPlayer()->SendAttackStateUpdate (HITINFO_AFFECTS_VICTIM, target, 1, schoolmask, damage, absorb, resist, VICTIMSTATE_HIT, 0);
return true;
}
-
+
// non-melee damage
-
+
// number or [name] Shift-click form |color|Hspell:spell_id|h[name]|h|r or Htalent form
uint32 spellid = handler->extractSpellIdFromLink((char*)args);
if (!spellid || !sSpellMgr->GetSpellInfo(spellid))
return false;
-
+
handler->GetSession()->GetPlayer()->SpellNonMeleeDamageLog(target, spellid, damage);
return true;
}
-
+
static bool HandleCombatStopCommand(ChatHandler* handler, char const* args)
{
Player* target = NULL;
-
+
if (args && strlen(args) > 0)
{
target = sObjectAccessor->FindPlayerByName(args);
@@ -2067,48 +2067,48 @@ public:
return false;
}
}
-
+
if (!target)
{
if (!handler->extractPlayerTarget((char*)args, &target))
return false;
}
-
+
// check online security
if (handler->HasLowerSecurity(target, 0))
return false;
-
+
target->CombatStop();
target->getHostileRefManager().deleteReferences();
return true;
}
-
+
static bool HandleFlushArenaPointsCommand(ChatHandler* /*handler*/, char const* /*args*/)
{
sArenaTeamMgr->DistributeArenaPoints();
return true;
}
-
+
static bool HandleRepairitemsCommand(ChatHandler* handler, char const* args)
{
Player* target;
if (!handler->extractPlayerTarget((char*)args, &target))
return false;
-
+
// check online security
if (handler->HasLowerSecurity(target, 0))
return false;
-
+
// Repair items
target->DurabilityRepairAll(false, 0, false);
-
+
handler->PSendSysMessage(LANG_YOU_REPAIR_ITEMS, handler->GetNameLink(target).c_str());
if (handler->needReportToTarget(target))
ChatHandler(target).PSendSysMessage(LANG_YOUR_ITEMS_REPAIRED, handler->GetNameLink().c_str());
-
+
return true;
}
-
+
// Send mail by command
static bool HandleSendMailCommand(ChatHandler* handler, char const* args)
{
@@ -2118,37 +2118,37 @@ public:
std::string targetName;
if (!handler->extractPlayerTarget((char*)args, &target, &targetGuid, &targetName))
return false;
-
+
char* tail1 = strtok(NULL, "");
if (!tail1)
return false;
-
+
char const* msgSubject = handler->extractQuotedArg(tail1);
if (!msgSubject)
return false;
-
+
char* tail2 = strtok(NULL, "");
if (!tail2)
return false;
-
+
char const* msgText = handler->extractQuotedArg(tail2);
if (!msgText)
return false;
-
+
// msgSubject, msgText isn't NUL after prev. check
std::string subject = msgSubject;
std::string text = msgText;
-
+
// from console show not existed sender
MailSender sender(MAIL_NORMAL, handler->GetSession() ? handler->GetSession()->GetPlayer()->GetGUIDLow() : 0, MAIL_STATIONERY_GM);
-
+
//- TODO: Fix poor design
SQLTransaction trans = CharacterDatabase.BeginTransaction();
MailDraft(subject, text)
.SendMailTo(trans, MailReceiver(target, GUID_LOPART(targetGuid)), sender);
-
+
CharacterDatabase.CommitTransaction(trans);
-
+
std::string nameLink = handler->playerLink(targetName);
handler->PSendSysMessage(LANG_MAIL_SENT, nameLink.c_str());
return true;
@@ -2162,49 +2162,49 @@ public:
std::string receiverName;
if (!handler->extractPlayerTarget((char*)args, &receiver, &receiverGuid, &receiverName))
return false;
-
+
char* tail1 = strtok(NULL, "");
if (!tail1)
return false;
-
+
char const* msgSubject = handler->extractQuotedArg(tail1);
if (!msgSubject)
return false;
-
+
char* tail2 = strtok(NULL, "");
if (!tail2)
return false;
-
+
char const* msgText = handler->extractQuotedArg(tail2);
if (!msgText)
return false;
-
+
// msgSubject, msgText isn't NUL after prev. check
std::string subject = msgSubject;
std::string text = msgText;
-
+
// extract items
typedef std::pair<uint32, uint32> ItemPair;
typedef std::list< ItemPair > ItemPairs;
ItemPairs items;
-
+
// get all tail string
char* tail = strtok(NULL, "");
-
+
// get from tail next item str
while (char* itemStr = strtok(tail, " "))
{
// and get new tail
tail = strtok(NULL, "");
-
+
// parse item str
char const* itemIdStr = strtok(itemStr, ":");
char const* itemCountStr = strtok(NULL, " ");
-
+
uint32 itemId = atoi(itemIdStr);
if (!itemId)
return false;
-
+
ItemTemplate const* item_proto = sObjectMgr->GetItemTemplate(itemId);
if (!item_proto)
{
@@ -2212,7 +2212,7 @@ public:
handler->SetSentErrorMessage(true);
return false;
}
-
+
uint32 itemCount = itemCountStr ? atoi(itemCountStr) : 1;
if (itemCount < 1 || (item_proto->MaxCount > 0 && itemCount > uint32(item_proto->MaxCount)))
{
@@ -2220,15 +2220,15 @@ public:
handler->SetSentErrorMessage(true);
return false;
}
-
+
while (itemCount > item_proto->GetMaxStackSize())
{
items.push_back(ItemPair(itemId, item_proto->GetMaxStackSize()));
itemCount -= item_proto->GetMaxStackSize();
}
-
+
items.push_back(ItemPair(itemId, itemCount));
-
+
if (items.size() > MAX_MAIL_ITEMS)
{
handler->PSendSysMessage(LANG_COMMAND_MAIL_ITEMS_LIMIT, MAX_MAIL_ITEMS);
@@ -2236,15 +2236,15 @@ public:
return false;
}
}
-
+
// from console show not existed sender
MailSender sender(MAIL_NORMAL, handler->GetSession() ? handler->GetSession()->GetPlayer()->GetGUIDLow() : 0, MAIL_STATIONERY_GM);
-
+
// fill mail
MailDraft draft(subject, text);
-
+
SQLTransaction trans = CharacterDatabase.BeginTransaction();
-
+
for (ItemPairs::const_iterator itr = items.begin(); itr != items.end(); ++itr)
{
if (Item* item = Item::CreateItem(itr->first, itr->second, handler->GetSession() ? handler->GetSession()->GetPlayer() : 0))
@@ -2253,10 +2253,10 @@ public:
draft.AddItem(item);
}
}
-
+
draft.SendMailTo(trans, MailReceiver(receiver, GUID_LOPART(receiverGuid)), sender);
CharacterDatabase.CommitTransaction(trans);
-
+
std::string nameLink = handler->playerLink(receiverName);
handler->PSendSysMessage(LANG_MAIL_SENT, nameLink.c_str());
return true;
@@ -2265,49 +2265,49 @@ public:
static bool HandleSendMoneyCommand(ChatHandler* handler, char const* args)
{
/// format: name "subject text" "mail text" money
-
+
Player* receiver;
uint64 receiverGuid;
std::string receiverName;
if (!handler->extractPlayerTarget((char*)args, &receiver, &receiverGuid, &receiverName))
return false;
-
+
char* tail1 = strtok(NULL, "");
if (!tail1)
return false;
-
+
char* msgSubject = handler->extractQuotedArg(tail1);
if (!msgSubject)
return false;
-
+
char* tail2 = strtok(NULL, "");
if (!tail2)
return false;
-
+
char* msgText = handler->extractQuotedArg(tail2);
if (!msgText)
return false;
-
+
char* moneyStr = strtok(NULL, "");
int32 money = moneyStr ? atoi(moneyStr) : 0;
if (money <= 0)
return false;
-
+
// msgSubject, msgText isn't NUL after prev. check
std::string subject = msgSubject;
std::string text = msgText;
-
+
// from console show not existed sender
MailSender sender(MAIL_NORMAL, handler->GetSession() ? handler->GetSession()->GetPlayer()->GetGUIDLow() : 0, MAIL_STATIONERY_GM);
-
+
SQLTransaction trans = CharacterDatabase.BeginTransaction();
-
+
MailDraft(subject, text)
.AddMoney(money)
.SendMailTo(trans, MailReceiver(receiver, GUID_LOPART(receiverGuid)), sender);
-
+
CharacterDatabase.CommitTransaction(trans);
-
+
std::string nameLink = handler->playerLink(receiverName);
handler->PSendSysMessage(LANG_MAIL_SENT, nameLink.c_str());
return true;
@@ -2319,11 +2319,11 @@ public:
Player* player;
if (!handler->extractPlayerTarget((char*)args, &player))
return false;
-
+
char* msgStr = strtok(NULL, "");
if (!msgStr)
return false;
-
+
///- Check that he is not logging out.
if (player->GetSession()->isLogingOut())
{
@@ -2331,31 +2331,31 @@ public:
handler->SetSentErrorMessage(true);
return false;
}
-
+
/// - Send the message
// Use SendAreaTriggerMessage for fastest delivery.
player->GetSession()->SendAreaTriggerMessage("%s", msgStr);
player->GetSession()->SendAreaTriggerMessage("|cffff0000[Message from administrator]:|r");
-
+
// Confirmation message
std::string nameLink = handler->GetNameLink(player);
handler->PSendSysMessage(LANG_SENDMESSAGE, nameLink.c_str(), msgStr);
-
+
return true;
}
-
+
static bool HandleCreatePetCommand(ChatHandler* handler, char const* /*args*/)
{
Player* player = handler->GetSession()->GetPlayer();
Creature* creatureTarget = handler->getSelectedCreature();
-
+
if (!creatureTarget || creatureTarget->isPet() || creatureTarget->GetTypeId() == TYPEID_PLAYER)
{
handler->PSendSysMessage(LANG_SELECT_CREATURE);
handler->SetSentErrorMessage(true);
return false;
}
-
+
CreatureTemplate const* creatrueTemplate = sObjectMgr->GetCreatureTemplate(creatureTarget->GetEntry());
// Creatures with family 0 crashes the server
if (!creatrueTemplate->family)
@@ -2364,14 +2364,14 @@ public:
handler->SetSentErrorMessage(true);
return false;
}
-
+
if (player->GetPetGUID())
{
handler->PSendSysMessage("You already have a pet");
handler->SetSentErrorMessage(true);
return false;
}
-
+
// Everything looks OK, create new pet
Pet* pet = new Pet(player, HUNTER_PET);
if (!pet->CreateBaseAtCreature(creatureTarget))
@@ -2380,14 +2380,14 @@ public:
handler->PSendSysMessage("Error 1");
return false;
}
-
+
creatureTarget->setDeathState(JUST_DIED);
creatureTarget->RemoveCorpse();
creatureTarget->SetHealth(0); // just for nice GM-mode view
-
+
pet->SetUInt64Value(UNIT_FIELD_CREATEDBY, player->GetGUID());
pet->SetUInt32Value(UNIT_FIELD_FACTIONTEMPLATE, player->getFaction());
-
+
if (!pet->InitStatsForLevel(creatureTarget->getLevel()))
{
sLog->outError(LOG_FILTER_GENERAL, "InitStatsForLevel() in EffectTameCreature failed! Pet deleted.");
@@ -2395,47 +2395,47 @@ public:
delete pet;
return false;
}
-
+
// prepare visual effect for levelup
pet->SetUInt32Value(UNIT_FIELD_LEVEL, creatureTarget->getLevel()-1);
-
+
pet->GetCharmInfo()->SetPetNumber(sObjectMgr->GeneratePetNumber(), true);
// this enables pet details window (Shift+P)
pet->InitPetCreateSpells();
pet->SetFullHealth();
-
+
pet->GetMap()->AddToMap(pet->ToCreature());
-
+
// visual effect for levelup
pet->SetUInt32Value(UNIT_FIELD_LEVEL, creatureTarget->getLevel());
-
+
player->SetMinion(pet, true);
pet->SavePetToDB(PET_SAVE_AS_CURRENT);
player->PetSpellInitialize();
-
+
return true;
}
-
+
static bool HandlePetLearnCommand(ChatHandler* handler, char const* args)
{
if (!*args)
return false;
-
+
Player* player = handler->GetSession()->GetPlayer();
Pet* pet = player->GetPet();
-
+
if (!pet)
{
handler->PSendSysMessage("You have no pet");
handler->SetSentErrorMessage(true);
return false;
}
-
+
uint32 spellId = handler->extractSpellIdFromLink((char*)args);
-
+
if (!spellId || !sSpellMgr->GetSpellInfo(spellId))
return false;
-
+
// Check if pet already has it
if (pet->HasSpell(spellId))
{
@@ -2443,7 +2443,7 @@ public:
handler->SetSentErrorMessage(true);
return false;
}
-
+
// Check if spell is valid
SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(spellId);
if (!spellInfo || !SpellMgr::IsSpellValid(spellInfo))
@@ -2452,18 +2452,18 @@ public:
handler->SetSentErrorMessage(true);
return false;
}
-
+
pet->learnSpell(spellId);
-
+
handler->PSendSysMessage("Pet has learned spell %u", spellId);
return true;
}
-
+
static bool HandlePetUnlearnCommand(ChatHandler* handler, char const* args)
{
if (!*args)
return false;
-
+
Player* player = handler->GetSession()->GetPlayer();
Pet* pet = player->GetPet();
if (!pet)
@@ -2472,17 +2472,17 @@ public:
handler->SetSentErrorMessage(true);
return false;
}
-
+
uint32 spellId = handler->extractSpellIdFromLink((char*)args);
-
+
if (pet->HasSpell(spellId))
pet->removeSpell(spellId, false);
else
handler->PSendSysMessage("Pet doesn't have that spell");
-
+
return true;
}
-
+
static bool HandleFreezeCommand(ChatHandler* handler, char const* args)
{
std::string name;
@@ -2503,31 +2503,31 @@ public:
normalizePlayerName(name);
player = sObjectAccessor->FindPlayerByName(name.c_str());
}
-
+
if (!player)
{
handler->SendSysMessage(LANG_COMMAND_FREEZE_WRONG);
return true;
}
-
+
if (player == handler->GetSession()->GetPlayer())
{
handler->SendSysMessage(LANG_COMMAND_FREEZE_ERROR);
return true;
}
-
+
// effect
if (player && (player != handler->GetSession()->GetPlayer()))
{
handler->PSendSysMessage(LANG_COMMAND_FREEZE, name.c_str());
-
+
// stop combat + make player unattackable + duel stop + stop some spells
player->setFaction(35);
player->CombatStop();
if (player->IsNonMeleeSpellCasted(true))
player->InterruptNonMeleeSpells(true);
player->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
-
+
// if player class = hunter || warlock remove pet if alive
if ((player->getClass() == CLASS_HUNTER) || (player->getClass() == CLASS_WARLOCK))
{
@@ -2539,23 +2539,23 @@ public:
player->RemovePet(pet, PET_SAVE_NOT_IN_SLOT);
}
}
-
+
if (SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(9454))
Aura::TryRefreshStackOrCreate(spellInfo, MAX_EFFECT_MASK, player, player);
-
+
// save player
player->SaveToDB();
}
-
+
return true;
}
-
+
static bool HandleUnFreezeCommand(ChatHandler* handler, char const*args)
{
std::string name;
Player* player;
char* targetName = strtok((char*)args, " "); // Get entered name
-
+
if (targetName)
{
name = targetName;
@@ -2568,18 +2568,18 @@ public:
if (player)
name = player->GetName();
}
-
+
if (player)
{
handler->PSendSysMessage(LANG_COMMAND_UNFREEZE, name.c_str());
-
+
// Reset player faction + allow combat + allow duels
player->setFactionForRace(player->getRace());
player->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
-
+
// Remove Freeze spell (allowing movement and spells)
player->RemoveAurasDueToSpell(9454);
-
+
// Save player
player->SaveToDB();
}
@@ -2591,21 +2591,21 @@ public:
PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_CHAR_GUID_BY_NAME);
stmt->setString(0, name);
PreparedQueryResult result = CharacterDatabase.Query(stmt);
-
+
if (!result)
{
handler->SendSysMessage(LANG_COMMAND_FREEZE_WRONG);
return true;
}
-
+
// If player found: delete his freeze aura
Field* fields = result->Fetch();
uint32 lowGuid = fields[0].GetUInt32();
-
+
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_CHAR_AURA_FROZEN);
stmt->setUInt32(0, lowGuid);
CharacterDatabase.Execute(stmt);
-
+
handler->PSendSysMessage(LANG_COMMAND_UNFREEZE, name.c_str());
return true;
}
@@ -2615,10 +2615,10 @@ public:
return true;
}
}
-
+
return true;
}
-
+
static bool HandleListFreezeCommand(ChatHandler* handler, char const* /*args*/)
{
// Get names from DB
@@ -2629,10 +2629,10 @@ public:
handler->SendSysMessage(LANG_COMMAND_NO_FROZEN_PLAYERS);
return true;
}
-
+
// Header of the names
handler->PSendSysMessage(LANG_COMMAND_LIST_FREEZE);
-
+
// Output of the results
do
{
@@ -2641,120 +2641,120 @@ public:
handler->PSendSysMessage(LANG_COMMAND_FROZEN_PLAYERS, player.c_str());
}
while (result->NextRow());
-
+
return true;
}
-
+
static bool HandleGroupLeaderCommand(ChatHandler* handler, char const* args)
{
Player* player = NULL;
Group* group = NULL;
uint64 guid = 0;
char* nameStr = strtok((char*)args, " ");
-
+
if (handler->GetPlayerGroupAndGUIDByName(nameStr, player, group, guid))
if (group && group->GetLeaderGUID() != guid)
{
group->ChangeLeader(guid);
group->SendUpdate();
}
-
+
return true;
}
-
+
static bool HandleGroupDisbandCommand(ChatHandler* handler, char const* args)
{
Player* player = NULL;
Group* group = NULL;
uint64 guid = 0;
char* nameStr = strtok((char*)args, " ");
-
+
if (handler->GetPlayerGroupAndGUIDByName(nameStr, player, group, guid))
if (group)
group->Disband();
-
+
return true;
}
-
+
static bool HandleGroupRemoveCommand(ChatHandler* handler, char const* args)
{
Player* player = NULL;
Group* group = NULL;
uint64 guid = 0;
char* nameStr = strtok((char*)args, " ");
-
+
if (handler->GetPlayerGroupAndGUIDByName(nameStr, player, group, guid, true))
if (group)
group->RemoveMember(guid);
-
+
return true;
}
-
+
static bool HandlePlayAllCommand(ChatHandler* handler, char const* args)
{
if (!*args)
return false;
-
+
uint32 soundId = atoi((char*)args);
-
+
if (!sSoundEntriesStore.LookupEntry(soundId))
{
handler->PSendSysMessage(LANG_SOUND_NOT_EXIST, soundId);
handler->SetSentErrorMessage(true);
return false;
}
-
+
WorldPacket data(SMSG_PLAY_SOUND, 4);
data << uint32(soundId) << handler->GetSession()->GetPlayer()->GetGUID();
sWorld->SendGlobalMessage(&data);
-
+
handler->PSendSysMessage(LANG_COMMAND_PLAYED_TO_ALL, soundId);
return true;
}
-
+
static bool HandlePossessCommand(ChatHandler* handler, char const* /*args*/)
{
Unit* unit = handler->getSelectedUnit();
if (!unit)
return false;
-
+
handler->GetSession()->GetPlayer()->CastSpell(unit, 530, true);
return true;
}
-
+
static bool HandleUnPossessCommand(ChatHandler* handler, char const* /*args*/)
{
Unit* unit = handler->getSelectedUnit();
if (!unit)
unit = handler->GetSession()->GetPlayer();
-
+
unit->RemoveCharmAuras();
-
+
return true;
}
-
+
static bool HandleBindSightCommand(ChatHandler* handler, char const* /*args*/)
{
Unit* unit = handler->getSelectedUnit();
if (!unit)
return false;
-
+
handler->GetSession()->GetPlayer()->CastSpell(unit, 6277, true);
return true;
}
-
+
static bool HandleUnbindSightCommand(ChatHandler* handler, char const* /*args*/)
{
Player* player = handler->GetSession()->GetPlayer();
-
+
if (player->isPossessing())
return false;
-
+
player->StopCastingBindSight();
return true;
}
};
-
+
void AddSC_misc_commandscript()
{
new misc_commandscript();
diff --git a/src/server/scripts/Northrend/dragonblight.cpp b/src/server/scripts/Northrend/dragonblight.cpp
index 1f1d24453ee..a26ee4e9270 100644
--- a/src/server/scripts/Northrend/dragonblight.cpp
+++ b/src/server/scripts/Northrend/dragonblight.cpp
@@ -190,7 +190,7 @@ class npc_wyrmrest_defender : public CreatureScript
npc_wyrmrest_defender() : CreatureScript("npc_wyrmrest_defender") { }
bool OnGossipHello(Player* player, Creature* creature)
- {
+ {
if (player->GetQuestStatus(QUEST_DEFENDING_WYRMREST_TEMPLE) == QUEST_STATUS_INCOMPLETE)
{
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
diff --git a/src/tools/map_extractor/CMakeLists.txt b/src/tools/map_extractor/CMakeLists.txt
index bde62c24c70..55a136f6329 100644
--- a/src/tools/map_extractor/CMakeLists.txt
+++ b/src/tools/map_extractor/CMakeLists.txt
@@ -43,5 +43,5 @@ add_dependencies(mapextractor mpq)
if( UNIX )
install(TARGETS mapextractor DESTINATION bin)
elseif( WIN32 )
- install(TARGETS mapextractor DESTINATION "${CMAKE_INSTALL_PREFIX}")
+ install(TARGETS mapextractor DESTINATION "${CMAKE_INSTALL_PREFIX}")
endif()