diff options
Diffstat (limited to 'src/game/Level1.cpp')
-rw-r--r-- | src/game/Level1.cpp | 495 |
1 files changed, 0 insertions, 495 deletions
diff --git a/src/game/Level1.cpp b/src/game/Level1.cpp index 160d65cd5cf..1108e9e1240 100644 --- a/src/game/Level1.cpp +++ b/src/game/Level1.cpp @@ -17,7 +17,6 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ - #include "Common.h" #include "Database/DatabaseEnv.h" #include "WorldPacket.h" @@ -34,17 +33,14 @@ #include "CellImpl.h" #include "InstanceSaveMgr.h" #include "Util.h" - #ifdef _DEBUG_VMAPS #include "VMapFactory.h" #endif - //-----------------------Npc Commands----------------------- bool ChatHandler::HandleNpcSayCommand(const char* args) { if(!*args) return false; - Creature* pCreature = getSelectedCreature(); if(!pCreature) { @@ -52,9 +48,7 @@ bool ChatHandler::HandleNpcSayCommand(const char* args) SetSentErrorMessage(true); return false; } - pCreature->MonsterSay(args, LANG_UNIVERSAL, 0); - // make some emotes char lastchar = args[strlen(args) - 1]; switch(lastchar) @@ -63,15 +57,12 @@ bool ChatHandler::HandleNpcSayCommand(const char* args) case '!': pCreature->HandleEmoteCommand(EMOTE_ONESHOT_EXCLAMATION); break; default: pCreature->HandleEmoteCommand(EMOTE_ONESHOT_TALK); break; } - return true; } - bool ChatHandler::HandleNpcYellCommand(const char* args) { if(!*args) return false; - Creature* pCreature = getSelectedCreature(); if(!pCreature) { @@ -79,136 +70,103 @@ bool ChatHandler::HandleNpcYellCommand(const char* args) SetSentErrorMessage(true); return false; } - pCreature->MonsterYell(args, LANG_UNIVERSAL, 0); - // make an emote pCreature->HandleEmoteCommand(EMOTE_ONESHOT_SHOUT); - return true; } - //show text emote by creature in chat bool ChatHandler::HandleNpcTextEmoteCommand(const char* args) { if(!*args) return false; - Creature* pCreature = getSelectedCreature(); - if(!pCreature) { SendSysMessage(LANG_SELECT_CREATURE); SetSentErrorMessage(true); return false; } - pCreature->MonsterTextEmote(args, 0); - return true; } - // make npc whisper to player bool ChatHandler::HandleNpcWhisperCommand(const char* args) { if(!*args) return false; - char* receiver_str = strtok((char*)args, " "); char* text = strtok(NULL, ""); - uint64 guid = m_session->GetPlayer()->GetSelection(); Creature* pCreature = m_session->GetPlayer()->GetMap()->GetCreature(guid); - if(!pCreature || !receiver_str || !text) { return false; } - uint64 receiver_guid= atol(receiver_str); - // check online security if (HasLowerSecurity(objmgr.GetPlayer(receiver_guid), 0)) return false; - pCreature->MonsterWhisper(text,receiver_guid); - return true; } //---------------------------------------------------------- - bool ChatHandler::HandleNameAnnounceCommand(const char* args) { WorldPacket data; if(!*args) return false; - sWorld.SendWorldText(LANG_ANNOUNCE_COLOR, m_session->GetPlayer()->GetName(), args); return true; } - bool ChatHandler::HandleGMNameAnnounceCommand(const char* args) { WorldPacket data; if(!*args) return false; - sWorld.SendGMText(LANG_GM_ANNOUNCE_COLOR, m_session->GetPlayer()->GetName(), args); return true; } - // global announce bool ChatHandler::HandleAnnounceCommand(const char* args) { if(!*args) return false; - sWorld.SendWorldText(LANG_SYSTEMMESSAGE,args); return true; } - // announce to logged in GMs bool ChatHandler::HandleGMAnnounceCommand(const char* args) { if(!*args) return false; - sWorld.SendGMText(LANG_GM_BROADCAST,args); return true; } - //notification player at the screen bool ChatHandler::HandleNotifyCommand(const char* args) { if(!*args) return false; - std::string str = GetTrinityString(LANG_GLOBAL_NOTIFY); str += args; - WorldPacket data(SMSG_NOTIFICATION, (str.size()+1)); data << str; sWorld.SendGlobalMessage(&data); - return true; } - //notification GM at the screen bool ChatHandler::HandleGMNotifyCommand(const char* args) { if(!*args) return false; - std::string str = GetTrinityString(LANG_GM_NOTIFY); str += args; - WorldPacket data(SMSG_NOTIFICATION, (str.size()+1)); data << str; sWorld.SendGlobalGMMessage(&data); - return true; } - //Enable\Dissable GM Mode bool ChatHandler::HandleGMCommand(const char* args) { @@ -220,9 +178,7 @@ bool ChatHandler::HandleGMCommand(const char* args) m_session->SendNotification(LANG_GM_OFF); return true; } - std::string argstr = (char*)args; - if (argstr == "on") { m_session->GetPlayer()->SetGameMaster(true); @@ -233,7 +189,6 @@ bool ChatHandler::HandleGMCommand(const char* args) #endif return true; } - if (argstr == "off") { m_session->GetPlayer()->SetGameMaster(false); @@ -244,12 +199,10 @@ bool ChatHandler::HandleGMCommand(const char* args) #endif return true; } - SendSysMessage(LANG_USE_BOL); SetSentErrorMessage(true); return false; } - // Enables or disables hiding of the staff badge bool ChatHandler::HandleGMChatCommand(const char* args) { @@ -261,28 +214,23 @@ bool ChatHandler::HandleGMChatCommand(const char* args) m_session->SendNotification(LANG_GM_CHAT_OFF); return true; } - std::string argstr = (char*)args; - if (argstr == "on") { m_session->GetPlayer()->SetGMChat(true); m_session->SendNotification(LANG_GM_CHAT_ON); return true; } - if (argstr == "off") { m_session->GetPlayer()->SetGMChat(false); m_session->SendNotification(LANG_GM_CHAT_OFF); return true; } - SendSysMessage(LANG_USE_BOL); SetSentErrorMessage(true); return false; } - std::string ChatHandler::PGetParseString(int32 entry, ...) { const char *format = GetTrinityString(entry); @@ -293,7 +241,6 @@ std::string ChatHandler::PGetParseString(int32 entry, ...) va_end(ap); return (std::string)str; } - bool ChatHandler::HandleGMTicketListCommand(const char* args) { SendSysMessage(LANG_COMMAND_TICKETSHOWLIST); @@ -316,7 +263,6 @@ bool ChatHandler::HandleGMTicketListCommand(const char* args) return true; } - bool ChatHandler::HandleGMTicketListOnlineCommand(const char* args) { SendSysMessage(LANG_COMMAND_TICKETSHOWONLINELIST); @@ -324,7 +270,6 @@ bool ChatHandler::HandleGMTicketListOnlineCommand(const char* args) { if((*itr)->closed != 0 || !objmgr.GetPlayer((*itr)->playerGuid)) continue; - std::string gmname; std::stringstream ss; ss << PGetParseString(LANG_COMMAND_TICKETLISTGUID, (*itr)->guid); @@ -339,7 +284,6 @@ bool ChatHandler::HandleGMTicketListOnlineCommand(const char* args) } return true; } - bool ChatHandler::HandleGMTicketListClosedCommand(const char* args) { SendSysMessage(LANG_COMMAND_TICKETSHOWCLOSEDLIST); @@ -347,7 +291,6 @@ bool ChatHandler::HandleGMTicketListClosedCommand(const char* args) { if((*itr)->closed == 0) continue; - std::string gmname; std::stringstream ss; ss << PGetParseString(LANG_COMMAND_TICKETLISTGUID, (*itr)->guid); @@ -362,12 +305,10 @@ bool ChatHandler::HandleGMTicketListClosedCommand(const char* args) } return true; } - bool ChatHandler::HandleGMTicketGetByIdCommand(const char* args) { if(!*args) return false; - uint64 tguid = atoi(args); GM_Ticket *ticket = objmgr.GetGMTicket(tguid); if(!ticket || ticket->closed != 0) @@ -375,7 +316,6 @@ bool ChatHandler::HandleGMTicketGetByIdCommand(const char* args) SendSysMessage(LANG_COMMAND_TICKETNOTEXIST); return true; } - std::string gmname; std::stringstream ss; ss << PGetParseString(LANG_COMMAND_TICKETLISTGUID, ticket->guid); @@ -394,29 +334,24 @@ bool ChatHandler::HandleGMTicketGetByIdCommand(const char* args) SendSysMessage(ss.str().c_str()); return true; } - bool ChatHandler::HandleGMTicketGetByNameCommand(const char* args) { if(!*args) return false; - std::string name = (char*)args; normalizePlayerName(name); - Player *plr = objmgr.GetPlayer(name.c_str()); if(!plr) { SendSysMessage(LANG_NO_PLAYERS_FOUND); return true; } - GM_Ticket *ticket = objmgr.GetGMTicketByPlayer(plr->GetGUID()); if(!ticket) { SendSysMessage(LANG_COMMAND_TICKETNOTEXIST); return true; } - std::string gmname; std::stringstream ss; ss << PGetParseString(LANG_COMMAND_TICKETLISTGUID, ticket->guid); @@ -435,12 +370,10 @@ bool ChatHandler::HandleGMTicketGetByNameCommand(const char* args) SendSysMessage(ss.str().c_str()); return true; } - bool ChatHandler::HandleGMTicketCloseByIdCommand(const char* args) { if(!*args) return false; - uint64 tguid = atoi(args); GM_Ticket *ticket = objmgr.GetGMTicket(tguid); if(!ticket || ticket->closed != 0) @@ -460,38 +393,29 @@ bool ChatHandler::HandleGMTicketCloseByIdCommand(const char* args) SendGlobalGMSysMessage(ss.str().c_str()); Player *plr = objmgr.GetPlayer(ticket->playerGuid); objmgr.RemoveGMTicket(ticket, m_session->GetPlayer()->GetGUID()); - if(!plr || !plr->IsInWorld()) return true; - // send abandon ticket WorldPacket data(SMSG_GMTICKET_DELETETICKET, 4); data << uint32(9); plr->GetSession()->SendPacket( &data ); return true; } - bool ChatHandler::HandleGMTicketAssignToCommand(const char* args) { if(!*args) return false; - char* tguid = strtok((char*)args, " "); uint64 ticketGuid = atoi(tguid); char* targetgm = strtok( NULL, " "); - if(!targetgm) return false; - std::string targm = targetgm; - if(!normalizePlayerName(targm)) return true; - Player *cplr = m_session->GetPlayer(); std::string gmname; GM_Ticket *ticket = objmgr.GetGMTicket(ticketGuid); - if(!ticket || ticket->closed != 0) { SendSysMessage(LANG_COMMAND_TICKETNOTEXIST); @@ -516,7 +440,6 @@ bool ChatHandler::HandleGMTicketAssignToCommand(const char* args) PSendSysMessage(LANG_COMMAND_TICKETALREADYASSIGNED, ticket->guid, gmname.c_str()); return true; } - ticket->assignedToGM = tarGUID; objmgr.AddOrUpdateGMTicket(*ticket); std::stringstream ss; @@ -526,16 +449,13 @@ bool ChatHandler::HandleGMTicketAssignToCommand(const char* args) SendGlobalGMSysMessage(ss.str().c_str()); return true; } - bool ChatHandler::HandleGMTicketUnAssignCommand(const char* args) { if(!*args) return false; - uint64 ticketGuid = atoi(args); Player *cplr = m_session->GetPlayer(); GM_Ticket *ticket = objmgr.GetGMTicket(ticketGuid); - if(!ticket|| ticket->closed != 0) { SendSysMessage(LANG_COMMAND_TICKETNOTEXIST); @@ -546,7 +466,6 @@ bool ChatHandler::HandleGMTicketUnAssignCommand(const char* args) PSendSysMessage(LANG_COMMAND_TICKETNOTASSIGNED, ticket->guid); return true; } - std::string gmname; objmgr.GetPlayerNameByGUID(ticket->assignedToGM, gmname); Player *plr = objmgr.GetPlayer(ticket->assignedToGM); @@ -555,7 +474,6 @@ bool ChatHandler::HandleGMTicketUnAssignCommand(const char* args) SendSysMessage(LANG_COMMAND_TICKETUNASSIGNSECURITY); return true; } - std::stringstream ss; ss << PGetParseString(LANG_COMMAND_TICKETLISTGUID, ticket->guid); ss << PGetParseString(LANG_COMMAND_TICKETLISTNAME, ticket->name.c_str()); @@ -566,22 +484,17 @@ bool ChatHandler::HandleGMTicketUnAssignCommand(const char* args) objmgr.AddOrUpdateGMTicket(*ticket); return true; } - bool ChatHandler::HandleGMTicketCommentCommand(const char* args) { if(!*args) return false; - char* tguid = strtok((char*)args, " "); uint64 ticketGuid = atoi(tguid); char* comment = strtok( NULL, "\n"); - if(!comment) return false; - Player *cplr = m_session->GetPlayer(); GM_Ticket *ticket = objmgr.GetGMTicket(ticketGuid); - if(!ticket || ticket->closed != 0) { PSendSysMessage(LANG_COMMAND_TICKETNOTEXIST); @@ -592,7 +505,6 @@ bool ChatHandler::HandleGMTicketCommentCommand(const char* args) PSendSysMessage(LANG_COMMAND_TICKETALREADYASSIGNED, ticket->guid); return true; } - std::string gmname; objmgr.GetPlayerNameByGUID(ticket->assignedToGM, gmname); ticket->comment = comment; @@ -608,14 +520,12 @@ bool ChatHandler::HandleGMTicketCommentCommand(const char* args) SendGlobalGMSysMessage(ss.str().c_str()); return true; } - bool ChatHandler::HandleGMTicketDeleteByIdCommand(const char* args) { if(!*args) return false; uint64 ticketGuid = atoi(args); GM_Ticket *ticket = objmgr.GetGMTicket(ticketGuid); - if(!ticket) { SendSysMessage(LANG_COMMAND_TICKETNOTEXIST); @@ -626,7 +536,6 @@ bool ChatHandler::HandleGMTicketDeleteByIdCommand(const char* args) SendSysMessage(LANG_COMMAND_TICKETCLOSEFIRST); return true; } - std::stringstream ss; ss << PGetParseString(LANG_COMMAND_TICKETLISTGUID, ticket->guid); ss << PGetParseString(LANG_COMMAND_TICKETLISTNAME, ticket->name.c_str()); @@ -641,17 +550,14 @@ bool ChatHandler::HandleGMTicketDeleteByIdCommand(const char* args) data << uint32(9); plr->GetSession()->SendPacket( &data ); } - ticket = NULL; return true; } - bool ChatHandler::HandleGMTicketReloadCommand(const char*) { objmgr.LoadGMTickets(); return true; } - //Enable\Dissable Invisible mode bool ChatHandler::HandleGMVisibleCommand(const char* args) { @@ -660,30 +566,24 @@ bool ChatHandler::HandleGMVisibleCommand(const char* args) PSendSysMessage(LANG_YOU_ARE, m_session->GetPlayer()->isGMVisible() ? GetTrinityString(LANG_VISIBLE) : GetTrinityString(LANG_INVISIBLE)); return true; } - std::string argstr = (char*)args; - if (argstr == "on") { m_session->GetPlayer()->SetGMVisible(true); m_session->SendNotification(LANG_INVISIBLE_VISIBLE); return true; } - if (argstr == "off") { m_session->SendNotification(LANG_INVISIBLE_INVISIBLE); m_session->GetPlayer()->SetGMVisible(false); return true; } - SendSysMessage(LANG_USE_BOL); SetSentErrorMessage(true); return false; } - - bool ChatHandler::HandleGPSCommand(const char* args) { WorldObject *obj = NULL; @@ -692,7 +592,6 @@ bool ChatHandler::HandleGPSCommand(const char* args) uint64 guid = extractGuidFromLink((char*)args); if(guid) obj = (WorldObject*)ObjectAccessor::GetObjectByTypeMask(*m_session->GetPlayer(),guid,TYPEMASK_UNIT|TYPEMASK_GAMEOBJECT); - if(!obj) { SendSysMessage(LANG_PLAYER_NOT_FOUND); @@ -703,7 +602,6 @@ bool ChatHandler::HandleGPSCommand(const char* args) else { obj = getSelectedUnit(); - if(!obj) { SendSysMessage(LANG_SELECT_CHAR_OR_CREATURE); @@ -713,31 +611,22 @@ bool ChatHandler::HandleGPSCommand(const char* args) } CellPair cell_val = Trinity::ComputeCellPair(obj->GetPositionX(), obj->GetPositionY()); Cell cell(cell_val); - uint32 zone_id, area_id; obj->GetZoneAndAreaId(zone_id,area_id); - MapEntry const* mapEntry = sMapStore.LookupEntry(obj->GetMapId()); AreaTableEntry const* zoneEntry = GetAreaEntryByAreaID(zone_id); AreaTableEntry const* areaEntry = GetAreaEntryByAreaID(area_id); - float zone_x = obj->GetPositionX(); float zone_y = obj->GetPositionY(); - Map2ZoneCoordinates(zone_x,zone_y,zone_id); - Map const *map = obj->GetMap(); float ground_z = map->GetHeight(obj->GetPositionX(), obj->GetPositionY(), MAX_HEIGHT); float floor_z = map->GetHeight(obj->GetPositionX(), obj->GetPositionY(), obj->GetPositionZ()); - GridPair p = Trinity::ComputeGridPair(obj->GetPositionX(), obj->GetPositionY()); - int gx=63-p.x_coord; int gy=63-p.y_coord; - uint32 have_map = Map::ExistMap(obj->GetMapId(),gx,gy) ? 1 : 0; uint32 have_vmap = Map::ExistVMap(obj->GetMapId(),gx,gy) ? 1 : 0; - PSendSysMessage(LANG_MAP_POSITION, obj->GetMapId(), (mapEntry ? mapEntry->name[GetSessionDbcLocale()] : "<unknown>" ), zone_id, (zoneEntry ? zoneEntry->area_name[GetSessionDbcLocale()] : "<unknown>" ), @@ -746,7 +635,6 @@ bool ChatHandler::HandleGPSCommand(const char* args) obj->GetPositionX(), obj->GetPositionY(), obj->GetPositionZ(), obj->GetOrientation(), cell.GridX(), cell.GridY(), cell.CellX(), cell.CellY(), obj->GetInstanceId(), zone_x, zone_y, ground_z, floor_z, have_map, have_vmap ); - sLog.outDebug("Player %s GPS call for %s '%s' (%s: %u):", m_session ? GetNameLink().c_str() : GetMangosString(LANG_CONSOLE_COMMAND), (obj->GetTypeId() == TYPEID_PLAYER ? "player" : "creature"), obj->GetName(), @@ -759,7 +647,6 @@ bool ChatHandler::HandleGPSCommand(const char* args) obj->GetPositionX(), obj->GetPositionY(), obj->GetPositionZ(), obj->GetOrientation(), cell.GridX(), cell.GridY(), cell.CellX(), cell.CellY(), obj->GetInstanceId(), zone_x, zone_y, ground_z, floor_z, have_map, have_vmap ); - LiquidData liquid_status; ZLiquidStatus res = map->getLiquidStatus(obj->GetPositionX(), obj->GetPositionY(), obj->GetPositionZ(), MAP_ALL_LIQUIDS, &liquid_status); if (res) @@ -768,7 +655,6 @@ bool ChatHandler::HandleGPSCommand(const char* args) } return true; } - //Summon Player bool ChatHandler::HandleNamegoCommand(const char* args) { @@ -777,7 +663,6 @@ bool ChatHandler::HandleNamegoCommand(const char* args) std::string target_name; if (!extractPlayerTarget((char*)args,&target,&target_guid,&target_name)) return false; - Player* _player = m_session->GetPlayer(); if (target == _player || target_guid == _player->GetGUID()) { @@ -785,23 +670,19 @@ bool ChatHandler::HandleNamegoCommand(const char* args) SetSentErrorMessage(true); return false; } - if (target) { std::string nameLink = playerLink(target_name); // check online security if (HasLowerSecurity(target, 0)) return false; - if (target->IsBeingTeleported()) { PSendSysMessage(LANG_IS_TELEPORTED, nameLink.c_str()); SetSentErrorMessage(true); return false; } - Map* pMap = m_session->GetPlayer()->GetMap(); - if (pMap->IsBattleGroundOrArena()) { // only allow if gm mode is on @@ -836,7 +717,6 @@ bool ChatHandler::HandleNamegoCommand(const char* args) //SetSentErrorMessage(true); //return false; } - // 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()->GetGUID()) || @@ -848,11 +728,9 @@ bool ChatHandler::HandleNamegoCommand(const char* args) return false; } } - PSendSysMessage(LANG_SUMMONING, nameLink.c_str(),""); if (needReportToTarget(target)) ChatHandler(target).PSendSysMessage(LANG_SUMMONED_BY, playerLink(_player->GetName()).c_str()); - // stop flight if need if (target->isInFlight()) { @@ -862,7 +740,6 @@ bool ChatHandler::HandleNamegoCommand(const char* args) // save only in non-flight case else target->SaveRecallPosition(); - // before GM float x,y,z; m_session->GetPlayer()->GetClosePoint(x,y,z,target->GetObjectSize()); @@ -874,11 +751,8 @@ bool ChatHandler::HandleNamegoCommand(const char* args) // check offline security if (HasLowerSecurity(NULL, target_guid)) return false; - std::string nameLink = playerLink(target_name); - PSendSysMessage(LANG_SUMMONING, nameLink.c_str(),GetTrinityString(LANG_OFFLINE)); - // in point where GM stay Player::SavePositionInDB(m_session->GetPlayer()->GetMapId(), m_session->GetPlayer()->GetPositionX(), @@ -888,10 +762,8 @@ bool ChatHandler::HandleNamegoCommand(const char* args) m_session->GetPlayer()->GetZoneId(), target_guid); } - return true; } - //Teleport to Player bool ChatHandler::HandleGonameCommand(const char* args) { @@ -900,7 +772,6 @@ bool ChatHandler::HandleGonameCommand(const char* args) std::string target_name; if (!extractPlayerTarget((char*)args,&target,&target_guid,&target_name)) return false; - Player* _player = m_session->GetPlayer(); if (target == _player || target_guid == _player->GetGUID()) { @@ -909,15 +780,12 @@ bool ChatHandler::HandleGonameCommand(const char* args) return false; } - if (target) { // check online security if (HasLowerSecurity(target, 0)) return false; - std::string chrNameLink = playerLink(target_name); - Map* cMap = target->GetMap(); if (cMap->IsBattleGroundOrArena()) { @@ -945,7 +813,6 @@ bool ChatHandler::HandleGonameCommand(const char* args) else if(cMap->IsDungeon()) { Map* pMap = _player->GetMap(); - // we have to go to instance, and can go to player only if: // 1) we are in his group (either as leader or as member) // 2) we are not bound to any group and have GM mode on @@ -969,7 +836,6 @@ bool ChatHandler::HandleGonameCommand(const char* args) 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 *pBind = _player->GetBoundInstance(target->GetMapId(), target->GetDifficulty()); @@ -983,14 +849,11 @@ bool ChatHandler::HandleGonameCommand(const char* args) if (InstanceSave *save = sInstanceSaveManager.GetInstanceSave(target->GetInstanceId())) _player->BindToInstance(save, !save->CanReset()); } - _player->SetDifficulty(target->GetDifficulty()); } - PSendSysMessage(LANG_APPEARING_AT, chrNameLink.c_str()); if (needReportToTarget(target)) ChatHandler(target).PSendSysMessage(LANG_APPEARING_TO, GetNameLink().c_str()); - // stop flight if need if (_player->isInFlight()) { @@ -1000,11 +863,9 @@ bool ChatHandler::HandleGonameCommand(const char* args) // 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); } @@ -1013,18 +874,14 @@ bool ChatHandler::HandleGonameCommand(const char* args) // check offline security if (HasLowerSecurity(NULL, target_guid)) return false; - std::string nameLink = playerLink(target_name); - 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,target_guid)) return false; - // stop flight if need if (_player->isInFlight()) { @@ -1034,52 +891,41 @@ bool ChatHandler::HandleGonameCommand(const char* args) // save only in non-flight case else _player->SaveRecallPosition(); - _player->TeleportTo(map, x, y, z,_player->GetOrientation()); } - return true; } - // Teleport player to last position bool ChatHandler::HandleRecallCommand(const char* args) { Player* target; if(!extractPlayerTarget((char*)args,&target)) return false; - // check online security if (HasLowerSecurity(target, 0)) return false; - if (target->IsBeingTeleported()) { PSendSysMessage(LANG_IS_TELEPORTED, GetNameLink(target).c_str()); 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; } - //Edit Player KnownTitles bool ChatHandler::HandleModifyKnownTitlesCommand(const char* args) { if(!*args) return false; - uint64 titles = 0; - sscanf((char*)args, UI64FMTD, &titles); - Player *chr = getSelectedPlayer(); if (!chr) { @@ -1087,52 +933,39 @@ bool ChatHandler::HandleModifyKnownTitlesCommand(const char* args) SetSentErrorMessage(true); return false; } - // check online security if (HasLowerSecurity(chr, 0)) return false; - uint64 titles2 = titles; - for(uint32 i = 1; i < sCharTitlesStore.GetNumRows(); ++i) if(CharTitlesEntry const* tEntry = sCharTitlesStore.LookupEntry(i)) titles2 &= ~(uint64(1) << tEntry->bit_index); - titles &= ~titles2; // remove not existed titles - chr->SetUInt64Value(PLAYER__FIELD_KNOWN_TITLES, titles); SendSysMessage(LANG_DONE); - return true; } - //Edit Player HP bool ChatHandler::HandleModifyHPCommand(const char* args) { if(!*args) return false; - // char* pHp = strtok((char*)args, " "); // if (!pHp) // return false; - // char* pHpMax = strtok(NULL, " "); // if (!pHpMax) // return false; - // int32 hpm = atoi(pHpMax); // int32 hp = atoi(pHp); - int32 hp = atoi((char*)args); int32 hpm = atoi((char*)args); - if (hp <= 0 || hpm <= 0 || hpm < hp) { SendSysMessage(LANG_BAD_VALUE); SetSentErrorMessage(true); return false; } - Unit *chr = getSelectedUnit(); if (chr == NULL) { @@ -1140,47 +973,37 @@ bool ChatHandler::HandleModifyHPCommand(const char* args) SetSentErrorMessage(true); return false; } - // check online security if (chr->GetTypeId() == TYPEID_PLAYER && HasLowerSecurity((Player*)chr, 0)) return false; - PSendSysMessage(LANG_YOU_CHANGE_HP, GetNameLink((Player*)chr).c_str(), hp, hpm); if (chr->GetTypeId() == TYPEID_PLAYER && needReportToTarget((Player*)chr)) ChatHandler((Player*)chr).PSendSysMessage(LANG_YOURS_HP_CHANGED, GetNameLink().c_str(), hp, hpm); - chr->SetMaxHealth( hpm ); chr->SetHealth( hp ); - return true; } - //Edit Player Mana bool ChatHandler::HandleModifyManaCommand(const char* args) { if(!*args) return false; - // char* pmana = strtok((char*)args, " "); // if (!pmana) // return false; - // char* pmanaMax = strtok(NULL, " "); // if (!pmanaMax) // return false; - // int32 manam = atoi(pmanaMax); // int32 mana = atoi(pmana); int32 mana = atoi((char*)args); int32 manam = atoi((char*)args); - if (mana <= 0 || manam <= 0 || manam < mana) { SendSysMessage(LANG_BAD_VALUE); SetSentErrorMessage(true); return false; } - Player *chr = getSelectedPlayer(); if (chr == NULL) { @@ -1188,48 +1011,37 @@ bool ChatHandler::HandleModifyManaCommand(const char* args) SetSentErrorMessage(true); return false; } - // check online security if (HasLowerSecurity(chr, 0)) return false; - PSendSysMessage(LANG_YOU_CHANGE_MANA, GetNameLink(chr).c_str(), mana, manam); if (needReportToTarget(chr)) ChatHandler(chr).PSendSysMessage(LANG_YOURS_MANA_CHANGED, GetNameLink().c_str(), mana, manam); - chr->SetMaxPower(POWER_MANA,manam ); chr->SetPower(POWER_MANA, mana ); - return true; } - //Edit Player Energy bool ChatHandler::HandleModifyEnergyCommand(const char* args) { if(!*args) return false; - // char* pmana = strtok((char*)args, " "); // if (!pmana) // return false; - // char* pmanaMax = strtok(NULL, " "); // if (!pmanaMax) // return false; - // int32 manam = atoi(pmanaMax); // int32 mana = atoi(pmana); - int32 energy = atoi((char*)args)*10; int32 energym = atoi((char*)args)*10; - if (energy <= 0 || energym <= 0 || energym < energy) { SendSysMessage(LANG_BAD_VALUE); SetSentErrorMessage(true); return false; } - Player *chr = getSelectedPlayer(); if (!chr) { @@ -1237,50 +1049,38 @@ bool ChatHandler::HandleModifyEnergyCommand(const char* args) SetSentErrorMessage(true); return false; } - // check online security if (HasLowerSecurity(chr, 0)) return false; - PSendSysMessage(LANG_YOU_CHANGE_ENERGY, GetNameLink(chr).c_str(), energy/10, energym/10); if (needReportToTarget(chr)) ChatHandler(chr).PSendSysMessage(LANG_YOURS_ENERGY_CHANGED, GetNameLink().c_str(), energy/10, energym/10); - chr->SetMaxPower(POWER_ENERGY,energym ); chr->SetPower(POWER_ENERGY, energy ); - sLog.outDetail(GetTrinityString(LANG_CURRENT_ENERGY),chr->GetMaxPower(POWER_ENERGY)); - return true; } - //Edit Player Rage bool ChatHandler::HandleModifyRageCommand(const char* args) { if(!*args) return false; - // char* pmana = strtok((char*)args, " "); // if (!pmana) // return false; - // char* pmanaMax = strtok(NULL, " "); // if (!pmanaMax) // return false; - // int32 manam = atoi(pmanaMax); // int32 mana = atoi(pmana); - int32 rage = atoi((char*)args)*10; int32 ragem = atoi((char*)args)*10; - if (rage <= 0 || ragem <= 0 || ragem < rage) { SendSysMessage(LANG_BAD_VALUE); SetSentErrorMessage(true); return false; } - Player *chr = getSelectedPlayer(); if (chr == NULL) { @@ -1288,37 +1088,29 @@ bool ChatHandler::HandleModifyRageCommand(const char* args) SetSentErrorMessage(true); return false; } - // check online security if (HasLowerSecurity(chr, 0)) return false; - PSendSysMessage(LANG_YOU_CHANGE_RAGE, GetNameLink(chr).c_str(), rage/10, ragem/10); if (needReportToTarget(chr)) ChatHandler(chr).PSendSysMessage(LANG_YOURS_RAGE_CHANGED, GetNameLink().c_str(), rage/10, ragem/10); - chr->SetMaxPower(POWER_RAGE,ragem ); chr->SetPower(POWER_RAGE, rage ); - return true; } - // Edit Player Runic Power bool ChatHandler::HandleModifyRunicPowerCommand(const char* args) { if(!*args) return false; - int32 rune = atoi((char*)args)*10; int32 runem = atoi((char*)args)*10; - if (rune <= 0 || runem <= 0 || runem < rune) { SendSysMessage(LANG_BAD_VALUE); SetSentErrorMessage(true); return false; } - Player *chr = getSelectedPlayer(); if (chr == NULL) { @@ -1326,25 +1118,19 @@ bool ChatHandler::HandleModifyRunicPowerCommand(const char* args) SetSentErrorMessage(true); return false; } - PSendSysMessage(LANG_YOU_CHANGE_RUNIC_POWER, GetNameLink(chr).c_str(), rune/10, runem/10); if (needReportToTarget(chr)) ChatHandler(chr).PSendSysMessage(LANG_YOURS_RUNIC_POWER_CHANGED, GetNameLink().c_str(), rune/10, runem/10); - chr->SetMaxPower(POWER_RUNIC_POWER,runem ); chr->SetPower(POWER_RUNIC_POWER, rune ); - return true; } - //Edit Player Faction bool ChatHandler::HandleModifyFactionCommand(const char* args) { if(!*args) return false; - char* pfactionid = extractKeyFromLink((char*)args,"Hfaction"); - Creature* chr = getSelectedCreature(); if(!chr) { @@ -1352,7 +1138,6 @@ bool ChatHandler::HandleModifyFactionCommand(const char* args) SetSentErrorMessage(true); return false; } - if(!pfactionid) { if(chr) @@ -1365,56 +1150,44 @@ bool ChatHandler::HandleModifyFactionCommand(const char* args) } return true; } - if( !chr ) { SendSysMessage(LANG_NO_CHAR_SELECTED); SetSentErrorMessage(true); return false; } - uint32 factionid = atoi(pfactionid); uint32 flag; - char *pflag = strtok(NULL, " "); if (!pflag) flag = chr->GetUInt32Value(UNIT_FIELD_FLAGS); else flag = atoi(pflag); - char* pnpcflag = strtok(NULL, " "); - uint32 npcflag; if(!pnpcflag) npcflag = chr->GetUInt32Value(UNIT_NPC_FLAGS); else npcflag = atoi(pnpcflag); - char* pdyflag = strtok(NULL, " "); - uint32 dyflag; if(!pdyflag) dyflag = chr->GetUInt32Value(UNIT_DYNAMIC_FLAGS); else dyflag = atoi(pdyflag); - if(!sFactionTemplateStore.LookupEntry(factionid)) { PSendSysMessage(LANG_WRONG_FACTION, factionid); SetSentErrorMessage(true); return false; } - PSendSysMessage(LANG_YOU_CHANGE_FACTION, chr->GetGUIDLow(),factionid,flag,npcflag,dyflag); - chr->setFaction(factionid); chr->SetUInt32Value(UNIT_FIELD_FLAGS,flag); chr->SetUInt32Value(UNIT_NPC_FLAGS,npcflag); chr->SetUInt32Value(UNIT_DYNAMIC_FLAGS,dyflag); - return true; } - //Edit Player Spell bool ChatHandler::HandleModifySpellCommand(const char* args) { @@ -1422,19 +1195,14 @@ bool ChatHandler::HandleModifySpellCommand(const char* args) char* pspellflatid = strtok((char*)args, " "); if (!pspellflatid) return false; - char* pop = strtok(NULL, " "); if (!pop) return false; - char* pval = strtok(NULL, " "); if (!pval) return false; - uint16 mark; - char* pmark = strtok(NULL, " "); - uint8 spellflatid = atoi(pspellflatid); uint8 op = atoi(pop); uint16 val = atoi(pval); @@ -1442,7 +1210,6 @@ bool ChatHandler::HandleModifySpellCommand(const char* args) mark = 65535; else mark = atoi(pmark); - Player *chr = getSelectedPlayer(); if (chr == NULL) { @@ -1450,35 +1217,28 @@ bool ChatHandler::HandleModifySpellCommand(const char* args) SetSentErrorMessage(true); return false; } - // check online security if (HasLowerSecurity(chr, 0)) return false; - PSendSysMessage(LANG_YOU_CHANGE_SPELLFLATID, spellflatid, val, mark, GetNameLink(chr).c_str()); if (needReportToTarget(chr)) ChatHandler(chr).PSendSysMessage(LANG_YOURS_SPELLFLATID_CHANGED, GetNameLink().c_str(), spellflatid, val, mark); - WorldPacket data(SMSG_SET_FLAT_SPELL_MODIFIER, (1+1+2+2)); data << uint8(spellflatid); data << uint8(op); data << uint16(val); data << uint16(mark); chr->GetSession()->SendPacket(&data); - return true; } - //Edit Player TP bool ChatHandler::HandleModifyTalentCommand (const char* args) { if (!*args) return false; - int tp = atoi((char*)args); if (tp < 0) return false; - Unit* target = getSelectedUnit(); if(!target) { @@ -1486,7 +1246,6 @@ bool ChatHandler::HandleModifyTalentCommand (const char* args) SetSentErrorMessage(true); return false; } - if(target->GetTypeId()==TYPEID_PLAYER) { // check online security @@ -1509,12 +1268,10 @@ bool ChatHandler::HandleModifyTalentCommand (const char* args) return true; } } - SendSysMessage(LANG_NO_CHAR_SELECTED); SetSentErrorMessage(true); return false; } - //Enable On\OFF all taxi paths bool ChatHandler::HandleTaxiCheatCommand(const char* args) { @@ -1524,19 +1281,15 @@ bool ChatHandler::HandleTaxiCheatCommand(const char* args) SetSentErrorMessage(true); return false; } - std::string argstr = (char*)args; - Player *chr = getSelectedPlayer(); if (!chr) { chr=m_session->GetPlayer(); } - // check online security else if (HasLowerSecurity(chr, 0)) return false; - if (argstr == "on") { chr->SetTaxiCheater(true); @@ -1545,37 +1298,30 @@ bool ChatHandler::HandleTaxiCheatCommand(const char* args) ChatHandler(chr).PSendSysMessage(LANG_YOURS_TAXIS_ADDED, GetNameLink().c_str()); return true; } - if (argstr == "off") { chr->SetTaxiCheater(false); PSendSysMessage(LANG_YOU_REMOVE_TAXIS, GetNameLink(chr).c_str()); if (needReportToTarget(chr)) ChatHandler(chr).PSendSysMessage(LANG_YOURS_TAXIS_REMOVED, GetNameLink().c_str()); - return true; } - SendSysMessage(LANG_USE_BOL); SetSentErrorMessage(true); return false; } - //Edit Player Aspeed bool ChatHandler::HandleModifyASpeedCommand(const char* args) { if (!*args) return false; - float ASpeed = (float)atof((char*)args); - if (ASpeed > 50.0f || ASpeed < 0.1f) { SendSysMessage(LANG_BAD_VALUE); SetSentErrorMessage(true); return false; } - Player *chr = getSelectedPlayer(); if (chr == NULL) { @@ -1583,24 +1329,19 @@ bool ChatHandler::HandleModifyASpeedCommand(const char* args) SetSentErrorMessage(true); return false; } - // check online security if (HasLowerSecurity(chr, 0)) return false; - std::string chrNameLink = GetNameLink(chr); - if(chr->isInFlight()) { PSendSysMessage(LANG_CHAR_IN_FLIGHT,chrNameLink.c_str()); SetSentErrorMessage(true); return false; } - PSendSysMessage(LANG_YOU_CHANGE_ASPEED, ASpeed, chrNameLink.c_str()); if (needReportToTarget(chr)) ChatHandler(chr).PSendSysMessage(LANG_YOURS_ASPEED_CHANGED, GetNameLink().c_str(), ASpeed); - chr->SetSpeed(MOVE_WALK, ASpeed,true); chr->SetSpeed(MOVE_RUN, ASpeed,true); chr->SetSpeed(MOVE_SWIM, ASpeed,true); @@ -1608,22 +1349,18 @@ bool ChatHandler::HandleModifyASpeedCommand(const char* args) chr->SetSpeed(MOVE_FLIGHT, ASpeed,true); return true; } - //Edit Player Speed bool ChatHandler::HandleModifySpeedCommand(const char* args) { if (!*args) return false; - float Speed = (float)atof((char*)args); - if (Speed > 50.0f || Speed < 0.1f) { SendSysMessage(LANG_BAD_VALUE); SetSentErrorMessage(true); return false; } - Player *chr = getSelectedPlayer(); if (chr == NULL) { @@ -1631,44 +1368,34 @@ bool ChatHandler::HandleModifySpeedCommand(const char* args) SetSentErrorMessage(true); return false; } - // check online security if (HasLowerSecurity(chr, 0)) return false; - std::string chrNameLink = GetNameLink(chr); - if(chr->isInFlight()) { PSendSysMessage(LANG_CHAR_IN_FLIGHT,chrNameLink.c_str()); SetSentErrorMessage(true); return false; } - PSendSysMessage(LANG_YOU_CHANGE_SPEED, Speed, chrNameLink.c_str()); if (needReportToTarget(chr)) ChatHandler(chr).PSendSysMessage(LANG_YOURS_SPEED_CHANGED, GetNameLink().c_str(), Speed); - chr->SetSpeed(MOVE_RUN,Speed,true); - return true; } - //Edit Player Swim Speed bool ChatHandler::HandleModifySwimCommand(const char* args) { if (!*args) return false; - float Swim = (float)atof((char*)args); - if (Swim > 50.0f || Swim < 0.1f) { SendSysMessage(LANG_BAD_VALUE); SetSentErrorMessage(true); return false; } - Player *chr = getSelectedPlayer(); if (chr == NULL) { @@ -1676,44 +1403,34 @@ bool ChatHandler::HandleModifySwimCommand(const char* args) SetSentErrorMessage(true); return false; } - // check online security if (HasLowerSecurity(chr, 0)) return false; - std::string chrNameLink = GetNameLink(chr); - if(chr->isInFlight()) { PSendSysMessage(LANG_CHAR_IN_FLIGHT,chrNameLink.c_str()); SetSentErrorMessage(true); return false; } - PSendSysMessage(LANG_YOU_CHANGE_SWIM_SPEED, Swim, chrNameLink.c_str()); if (needReportToTarget(chr)) ChatHandler(chr).PSendSysMessage(LANG_YOURS_SWIM_SPEED_CHANGED, GetNameLink().c_str(), Swim); - chr->SetSpeed(MOVE_SWIM,Swim,true); - return true; } - //Edit Player Walk Speed bool ChatHandler::HandleModifyBWalkCommand(const char* args) { if (!*args) return false; - float BSpeed = (float)atof((char*)args); - if (BSpeed > 50.0f || BSpeed < 0.1f) { SendSysMessage(LANG_BAD_VALUE); SetSentErrorMessage(true); return false; } - Player *chr = getSelectedPlayer(); if (chr == NULL) { @@ -1721,44 +1438,34 @@ bool ChatHandler::HandleModifyBWalkCommand(const char* args) SetSentErrorMessage(true); return false; } - // check online security if (HasLowerSecurity(chr, 0)) return false; - std::string chrNameLink = GetNameLink(chr); - if(chr->isInFlight()) { PSendSysMessage(LANG_CHAR_IN_FLIGHT,chrNameLink.c_str()); SetSentErrorMessage(true); return false; } - PSendSysMessage(LANG_YOU_CHANGE_BACK_SPEED, BSpeed, chrNameLink.c_str()); if (needReportToTarget(chr)) ChatHandler(chr).PSendSysMessage(LANG_YOURS_BACK_SPEED_CHANGED, GetNameLink().c_str(), BSpeed); - chr->SetSpeed(MOVE_RUN_BACK,BSpeed,true); - return true; } - //Edit Player Fly bool ChatHandler::HandleModifyFlyCommand(const char* args) { if (!*args) return false; - float FSpeed = (float)atof((char*)args); - if (FSpeed > 50.0f || FSpeed < 0.1f) { SendSysMessage(LANG_BAD_VALUE); SetSentErrorMessage(true); return false; } - Player *chr = getSelectedPlayer(); if (chr == NULL) { @@ -1766,26 +1473,20 @@ bool ChatHandler::HandleModifyFlyCommand(const char* args) SetSentErrorMessage(true); return false; } - // check online security if (HasLowerSecurity(chr, 0)) return false; - PSendSysMessage(LANG_YOU_CHANGE_FLY_SPEED, FSpeed, GetNameLink(chr).c_str()); if (needReportToTarget(chr)) ChatHandler(chr).PSendSysMessage(LANG_YOURS_FLY_SPEED_CHANGED, GetNameLink().c_str(), FSpeed); - chr->SetSpeed(MOVE_FLIGHT,FSpeed,true); - return true; } - //Edit Player Scale bool ChatHandler::HandleModifyScaleCommand(const char* args) { if (!*args) return false; - float Scale = (float)atof((char*)args); if (Scale > 10.0f || Scale <= 0.1f) { @@ -1793,7 +1494,6 @@ bool ChatHandler::HandleModifyScaleCommand(const char* args) SetSentErrorMessage(true); return false; } - Player *chr = getSelectedPlayer(); if (chr == NULL) { @@ -1801,30 +1501,23 @@ bool ChatHandler::HandleModifyScaleCommand(const char* args) SetSentErrorMessage(true); return false; } - // check online security if (HasLowerSecurity(chr, 0)) return false; - PSendSysMessage(LANG_YOU_CHANGE_SIZE, Scale, GetNameLink(chr).c_str()); if (needReportToTarget(chr)) ChatHandler(chr).PSendSysMessage(LANG_YOURS_SIZE_CHANGED, GetNameLink().c_str(), Scale); - chr->SetFloatValue(OBJECT_FIELD_SCALE_X, Scale); - return true; } - //Enable Player mount bool ChatHandler::HandleModifyMountCommand(const char* args) { if(!*args) return false; - uint16 mId = 1147; float speed = (float)15; uint32 num = 0; - num = atoi((char*)args); switch(num) { @@ -2040,7 +1733,6 @@ bool ChatHandler::HandleModifyMountCommand(const char* args) SetSentErrorMessage(true); return false; } - Player *chr = getSelectedPlayer(); if (chr == NULL) { @@ -2048,40 +1740,32 @@ bool ChatHandler::HandleModifyMountCommand(const char* args) SetSentErrorMessage(true); return false; } - // check online security if (HasLowerSecurity(chr, 0)) return false; - PSendSysMessage(LANG_YOU_GIVE_MOUNT, GetNameLink(chr).c_str()); if (needReportToTarget(chr)) ChatHandler(chr).PSendSysMessage(LANG_MOUNT_GIVED, GetNameLink().c_str()); - chr->SetUInt32Value(UNIT_FIELD_FLAGS, UNIT_FLAG_PVP); chr->Mount(mId); - WorldPacket data( SMSG_FORCE_RUN_SPEED_CHANGE, (8+4+1+4) ); data.append(chr->GetPackGUID()); data << (uint32)0; data << (uint8)0; //new 2.1.0 data << float(speed); chr->SendMessageToSet( &data, true ); - data.Initialize( SMSG_FORCE_SWIM_SPEED_CHANGE, (8+4+4) ); data.append(chr->GetPackGUID()); data << (uint32)0; data << float(speed); chr->SendMessageToSet( &data, true ); - return true; } - //Edit Player money bool ChatHandler::HandleModifyMoneyCommand(const char* args) { if (!*args) return false; - Player *chr = getSelectedPlayer(); if (chr == NULL) { @@ -2089,33 +1773,26 @@ bool ChatHandler::HandleModifyMoneyCommand(const char* args) SetSentErrorMessage(true); return false; } - // check online security if (HasLowerSecurity(chr, 0)) return false; - int32 addmoney = atoi((char*)args); - uint32 moneyuser = chr->GetMoney(); - if (addmoney < 0) { int32 newmoney = int32(moneyuser) + addmoney; - sLog.outDetail(GetTrinityString(LANG_CURRENT_MONEY), moneyuser, addmoney, newmoney); if (newmoney <= 0 ) { PSendSysMessage(LANG_YOU_TAKE_ALL_MONEY, GetNameLink(chr).c_str()); if (needReportToTarget(chr)) ChatHandler(chr).PSendSysMessage(LANG_YOURS_ALL_MONEY_GONE, GetNameLink().c_str()); - chr->SetMoney(0); } else { if (newmoney > MAX_MONEY_AMOUNT) newmoney = MAX_MONEY_AMOUNT; - PSendSysMessage(LANG_YOU_TAKE_MONEY, abs(addmoney), GetNameLink(chr).c_str()); if (needReportToTarget(chr)) ChatHandler(chr).PSendSysMessage(LANG_YOURS_MONEY_TAKEN, GetNameLink().c_str(), abs(addmoney)); @@ -2127,24 +1804,19 @@ bool ChatHandler::HandleModifyMoneyCommand(const char* args) PSendSysMessage(LANG_YOU_GIVE_MONEY, addmoney, GetNameLink(chr).c_str()); if (needReportToTarget(chr)) ChatHandler(chr).PSendSysMessage(LANG_YOURS_MONEY_GIVEN, GetNameLink().c_str(), addmoney); - if (addmoney >=MAX_MONEY_AMOUNT) chr->SetMoney(MAX_MONEY_AMOUNT); else chr->ModifyMoney( addmoney ); } - sLog.outDetail(GetTrinityString(LANG_NEW_MONEY), moneyuser, addmoney, chr->GetMoney() ); - return true; } - //Edit Unit field bool ChatHandler::HandleModifyBitCommand(const char* args) { if( !*args ) return false; - Unit *unit = getSelectedUnit(); if (!unit) { @@ -2152,22 +1824,17 @@ bool ChatHandler::HandleModifyBitCommand(const char* args) SetSentErrorMessage(true); return false; } - // check online security if (unit->GetTypeId() == TYPEID_PLAYER && HasLowerSecurity((Player *)unit, 0)) return false; - char* pField = strtok((char*)args, " "); if (!pField) return false; - char* pBit = strtok(NULL, " "); if (!pBit) return false; - uint16 field = atoi(pField); uint32 bit = atoi(pBit); - if (field < OBJECT_END || field >= unit->GetValuesCount()) { SendSysMessage(LANG_BAD_VALUE); @@ -2180,7 +1847,6 @@ bool ChatHandler::HandleModifyBitCommand(const char* args) SetSentErrorMessage(true); return false; } - if ( unit->HasFlag( field, (1<<(bit-1)) ) ) { unit->RemoveFlag( field, (1<<(bit-1)) ); @@ -2193,12 +1859,10 @@ bool ChatHandler::HandleModifyBitCommand(const char* args) } return true; } - bool ChatHandler::HandleModifyHonorCommand (const char* args) { if (!*args) return false; - Player *target = getSelectedPlayer(); if(!target) { @@ -2206,37 +1870,27 @@ bool ChatHandler::HandleModifyHonorCommand (const char* args) SetSentErrorMessage(true); return false; } - // check online security if (HasLowerSecurity(target, 0)) return false; - int32 amount = (uint32)atoi(args); - target->ModifyHonorPoints(amount); - PSendSysMessage(LANG_COMMAND_MODIFY_HONOR, GetNameLink(target).c_str(), target->GetHonorPoints()); - return true; } - bool ChatHandler::HandleTeleCommand(const char * args) { if(!*args) return false; - Player* _player = m_session->GetPlayer(); - // id, or string, or [name] Shift-click form |color|Htele:id|h[name]|h|r GameTele const* tele = extractGameTeleFromLink((char*)args); - if (!tele) { SendSysMessage(LANG_COMMAND_TELE_NOTFOUND); SetSentErrorMessage(true); return false; } - MapEntry const * me = sMapStore.LookupEntry(tele->mapId); if(!me || me->IsBattleGroundOrArena()) { @@ -2244,7 +1898,6 @@ bool ChatHandler::HandleTeleCommand(const char * args) SetSentErrorMessage(true); return false; } - // stop flight if need if(_player->isInFlight()) { @@ -2254,27 +1907,20 @@ bool ChatHandler::HandleTeleCommand(const char * args) // save only in non-flight case else _player->SaveRecallPosition(); - _player->TeleportTo(tele->mapId, tele->position_x, tele->position_y, tele->position_z, tele->orientation); return true; } - bool ChatHandler::HandleLookupAreaCommand(const char* args) { if (!*args) return false; - std::string namepart = args; std::wstring wnamepart; - if (!Utf8toWStr (namepart,wnamepart)) return false; - bool found = false; - // converting string that we try to find to lower case wstrToLower (wnamepart); - // Search in AreaTable.dbc for (uint32 areaflag = 0; areaflag < sAreaStore.GetNumRows (); ++areaflag) { @@ -2285,7 +1931,6 @@ bool ChatHandler::HandleLookupAreaCommand(const char* args) std::string name = areaEntry->area_name[loc]; if (name.empty()) continue; - if (!Utf8FitTo (name, wnamepart)) { loc = 0; @@ -2293,16 +1938,13 @@ bool ChatHandler::HandleLookupAreaCommand(const char* args) { if (loc==GetSessionDbcLocale ()) continue; - name = areaEntry->area_name[loc]; if (name.empty ()) continue; - if (Utf8FitTo (name, wnamepart)) break; } } - if (loc < MAX_LOCALE) { // send area in "id - [name]" format @@ -2311,21 +1953,16 @@ bool ChatHandler::HandleLookupAreaCommand(const char* args) ss << areaEntry->ID << " - |cffffffff|Harea:" << areaEntry->ID << "|h[" << name << " " << localeNames[loc]<< "]|h|r"; else ss << areaEntry->ID << " - " << name << " " << localeNames[loc]; - SendSysMessage (ss.str ().c_str()); - if(!found) found = true; } } } - if (!found) SendSysMessage (LANG_COMMAND_NOAREAFOUND); - return true; } - //Find tele in game_tele order by name bool ChatHandler::HandleLookupTeleCommand(const char * args) { @@ -2335,44 +1972,33 @@ bool ChatHandler::HandleLookupTeleCommand(const char * args) SetSentErrorMessage(true); return false; } - char const* str = strtok((char*)args, " "); if(!str) return false; - std::string namepart = str; std::wstring wnamepart; - if(!Utf8toWStr(namepart,wnamepart)) return false; - // converting string that we try to find to lower case wstrToLower( wnamepart ); - std::ostringstream reply; - GameTeleMap const & teleMap = objmgr.GetGameTeleMap(); for(GameTeleMap::const_iterator itr = teleMap.begin(); itr != teleMap.end(); ++itr) { GameTele const* tele = &itr->second; - if(tele->wnameLow.find(wnamepart) == std::wstring::npos) continue; - if (m_session) reply << " |cffffffff|Htele:" << itr->first << "|h[" << tele->name << "]|h|r\n"; else reply << " " << itr->first << " " << tele->name << "\n"; } - if(reply.str().empty()) SendSysMessage(LANG_COMMAND_TELE_NOLOCATION); else PSendSysMessage(LANG_COMMAND_TELE_LOCATION,reply.str().c_str()); - return true; } - //Enable\Dissable accept whispers (for GM) bool ChatHandler::HandleWhispersCommand(const char* args) { @@ -2381,7 +2007,6 @@ bool ChatHandler::HandleWhispersCommand(const char* args) PSendSysMessage(LANG_COMMAND_WHISPERACCEPTING, m_session->GetPlayer()->isAcceptWhispers() ? GetTrinityString(LANG_ON) : GetTrinityString(LANG_OFF)); return true; } - std::string argstr = (char*)args; // whisper on if (argstr == "on") @@ -2390,7 +2015,6 @@ bool ChatHandler::HandleWhispersCommand(const char* args) SendSysMessage(LANG_COMMAND_WHISPERON); return true; } - // whisper off if (argstr == "off") { @@ -2398,12 +2022,10 @@ bool ChatHandler::HandleWhispersCommand(const char* args) SendSysMessage(LANG_COMMAND_WHISPEROFF); return true; } - SendSysMessage(LANG_USE_BOL); SetSentErrorMessage(true); return false; } - //Save all players in the world bool ChatHandler::HandleSaveAllCommand(const char* /*args*/) { @@ -2411,7 +2033,6 @@ bool ChatHandler::HandleSaveAllCommand(const char* /*args*/) SendSysMessage(LANG_PLAYERS_SAVED); return true; } - //Send mail by command bool ChatHandler::HandleSendMailCommand(const char* args) { @@ -2421,41 +2042,31 @@ bool ChatHandler::HandleSendMailCommand(const char* args) std::string target_name; if(!extractPlayerTarget((char*)args,&target,&target_guid,&target_name)) return false; - char* tail1 = strtok(NULL, ""); if(!tail1) return false; - char* msgSubject = extractQuotedArg(tail1); if (!msgSubject) return false; - char* tail2 = strtok(NULL, ""); if(!tail2) return false; - char* msgText = 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 uint32 sender_guidlo = m_session ? m_session->GetPlayer()->GetGUIDLow() : 0; - uint32 messagetype = MAIL_NORMAL; uint32 stationery = MAIL_STATIONERY_GM; uint32 itemTextId = !text.empty() ? objmgr.CreateItemText( text ) : 0; - WorldSession::SendMailTo(target,messagetype, stationery, sender_guidlo, GUID_LOPART(target_guid), subject, itemTextId, NULL, 0, 0, MAIL_CHECK_MASK_NONE); - std::string nameLink = playerLink(target_name); PSendSysMessage(LANG_MAIL_SENT, nameLink.c_str()); return true; } - // teleport player to given game_tele.entry bool ChatHandler::HandleTeleNameCommand(const char * args) { @@ -2464,13 +2075,11 @@ bool ChatHandler::HandleTeleNameCommand(const char * args) extractOptFirstArg((char*)args,&nameStr,&teleStr); if(!teleStr) return false; - Player* target; uint64 target_guid; std::string target_name; if(!extractPlayerTarget(nameStr,&target,&target_guid,&target_name)) return false; - // id, or string, or [name] Shift-click form |color|Htele:id|h[name]|h|r GameTele const* tele = extractGameTeleFromLink(teleStr); if(!tele) @@ -2479,7 +2088,6 @@ bool ChatHandler::HandleTeleNameCommand(const char * args) SetSentErrorMessage(true); return false; } - /* MapEntry const * me = sMapStore.LookupEntry(tele->mapId); if(!me || me->IsBattleGroundOrArena()) { @@ -2487,28 +2095,22 @@ bool ChatHandler::HandleTeleNameCommand(const char * args) SetSentErrorMessage(true); return false; } - Player *chr = objmgr.GetPlayer(name.c_str());*/ - if (target) { // check online security if (HasLowerSecurity(target, 0)) return false; - std::string chrNameLink = playerLink(target_name); - if(target->IsBeingTeleported()==true) { PSendSysMessage(LANG_IS_TELEPORTED, chrNameLink.c_str()); SetSentErrorMessage(true); return false; } - PSendSysMessage(LANG_TELEPORTING_TO, chrNameLink.c_str(),"", tele->name.c_str()); if (needReportToTarget(target)) ChatHandler(target).PSendSysMessage(LANG_TELEPORTED_TO_BY, GetNameLink().c_str()); - // stop flight if need if(target->isInFlight()) { @@ -2518,7 +2120,6 @@ bool ChatHandler::HandleTeleNameCommand(const char * args) // save only in non-flight case else target->SaveRecallPosition(); - target->TeleportTo(tele->mapId,tele->position_x,tele->position_y,tele->position_z,tele->orientation); } else @@ -2526,23 +2127,18 @@ bool ChatHandler::HandleTeleNameCommand(const char * args) // check offline security if (HasLowerSecurity(NULL, target_guid)) return false; - std::string nameLink = playerLink(target_name); - PSendSysMessage(LANG_TELEPORTING_TO, nameLink.c_str(), GetMangosString(LANG_OFFLINE), tele->name.c_str()); Player::SavePositionInDB(tele->mapId,tele->position_x,tele->position_y,tele->position_z,tele->orientation, MapManager::Instance().GetZoneId(tele->mapId,tele->position_x,tele->position_y,tele->position_z),target_guid); } - return true; } - //Teleport group to given game_tele.entry bool ChatHandler::HandleTeleGroupCommand(const char * args) { if(!*args) return false; - Player *player = getSelectedPlayer(); if (!player) { @@ -2550,11 +2146,9 @@ bool ChatHandler::HandleTeleGroupCommand(const char * args) SetSentErrorMessage(true); return false; } - // check online security if (HasLowerSecurity(player, 0)) return false; - // id, or string, or [name] Shift-click form |color|Htele:id|h[name]|h|r GameTele const* tele = extractGameTeleFromLink((char*)args); if(!tele) @@ -2563,7 +2157,6 @@ bool ChatHandler::HandleTeleGroupCommand(const char * args) SetSentErrorMessage(true); return false; } - MapEntry const * me = sMapStore.LookupEntry(tele->mapId); if(!me || me->IsBattleGroundOrArena()) { @@ -2571,9 +2164,7 @@ bool ChatHandler::HandleTeleGroupCommand(const char * args) SetSentErrorMessage(true); return false; } - std::string nameLink = GetNameLink(player); - Group *grp = player->GetGroup(); if(!grp) { @@ -2581,30 +2172,23 @@ bool ChatHandler::HandleTeleGroupCommand(const char * args) SetSentErrorMessage(true); return false; } - for(GroupReference *itr = grp->GetFirstMember(); itr != NULL; itr = itr->next()) { Player *pl = itr->getSource(); - if(!pl || !pl->GetSession() ) continue; - // check online security if (HasLowerSecurity(pl, 0)) return false; - std::string plNameLink = GetNameLink(pl); - if(pl->IsBeingTeleported()) { PSendSysMessage(LANG_IS_TELEPORTED, plNameLink.c_str()); continue; } - PSendSysMessage(LANG_TELEPORTING_TO, plNameLink.c_str(),"", tele->name.c_str()); if (needReportToTarget(pl)) ChatHandler(pl).PSendSysMessage(LANG_TELEPORTED_TO_BY, nameLink.c_str()); - // stop flight if need if(pl->isInFlight()) { @@ -2614,38 +2198,29 @@ bool ChatHandler::HandleTeleGroupCommand(const char * args) // save only in non-flight case else pl->SaveRecallPosition(); - pl->TeleportTo(tele->mapId, tele->position_x, tele->position_y, tele->position_z, tele->orientation); } - return true; } - //Summon group of player bool ChatHandler::HandleGroupgoCommand(const char* args) { Player* target; if(!extractPlayerTarget((char*)args,&target)) return false; - // check online security if (HasLowerSecurity(target, 0)) return false; - Group *grp = target->GetGroup(); - std::string nameLink = GetNameLink(target); - if(!grp) { PSendSysMessage(LANG_NOT_IN_GROUP,nameLink.c_str()); SetSentErrorMessage(true); return false; } - Map* gmMap = m_session->GetPlayer()->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()->GetGUID()) || @@ -2656,31 +2231,24 @@ bool ChatHandler::HandleGroupgoCommand(const char* args) SetSentErrorMessage(true); return false; } - for(GroupReference *itr = grp->GetFirstMember(); itr != NULL; itr = itr->next()) { Player *pl = itr->getSource(); - if(!pl || pl==m_session->GetPlayer() || !pl->GetSession() ) continue; - // check online security if (HasLowerSecurity(pl, 0)) return false; - std::string plNameLink = GetNameLink(pl); - if(pl->IsBeingTeleported()==true) { PSendSysMessage(LANG_IS_TELEPORTED, plNameLink.c_str()); SetSentErrorMessage(true); return false; } - if (to_instance) { Map* plMap = pl->GetMap(); - if ( plMap->Instanceable() && plMap->GetInstanceId() != gmMap->GetInstanceId() ) { // cannot summon from instance to instance @@ -2689,11 +2257,9 @@ bool ChatHandler::HandleGroupgoCommand(const char* args) return false; } } - PSendSysMessage(LANG_SUMMONING, plNameLink.c_str(),""); if (needReportToTarget(pl)) ChatHandler(pl).PSendSysMessage(LANG_SUMMONED_BY, GetNameLink().c_str()); - // stop flight if need if(pl->isInFlight()) { @@ -2703,31 +2269,24 @@ bool ChatHandler::HandleGroupgoCommand(const char* args) // save only in non-flight case else pl->SaveRecallPosition(); - // before GM float x,y,z; m_session->GetPlayer()->GetClosePoint(x,y,z,pl->GetObjectSize()); pl->TeleportTo(m_session->GetPlayer()->GetMapId(),x,y,z,pl->GetOrientation()); } - return true; } - bool ChatHandler::HandleGoTaxinodeCommand(const char* args) { Player* _player = m_session->GetPlayer(); - if (!*args) return false; - char* cNodeId = extractKeyFromLink((char*)args,"Htaxinode"); if (!cNodeId) return false; - int32 i_nodeId = atoi(cNodeId); if (!i_nodeId) return false; - TaxiNodesEntry const* node = sTaxiNodesStore.LookupEntry(i_nodeId); if (!node) { @@ -2735,7 +2294,6 @@ bool ChatHandler::HandleGoTaxinodeCommand(const char* args) SetSentErrorMessage(true); return false; } - if ((node->x == 0.0f && node->y == 0.0f && node->z == 0.0f) || !MapManager::IsValidMapCoord(node->map_id,node->x,node->y,node->z)) { @@ -2743,7 +2301,6 @@ bool ChatHandler::HandleGoTaxinodeCommand(const char* args) SetSentErrorMessage(true); return false; } - // stop flight if need if (_player->isInFlight()) { @@ -2753,40 +2310,32 @@ bool ChatHandler::HandleGoTaxinodeCommand(const char* args) // save only in non-flight case else _player->SaveRecallPosition(); - _player->TeleportTo(node->map_id, node->x, node->y, node->z, _player->GetOrientation()); return true; } - //teleport at coordinates bool ChatHandler::HandleGoXYCommand(const char* args) { if(!*args) return false; - Player* _player = m_session->GetPlayer(); - char* px = strtok((char*)args, " "); char* py = strtok(NULL, " "); char* pmapid = strtok(NULL, " "); - if (!px || !py) return false; - float x = (float)atof(px); float y = (float)atof(py); uint32 mapid; if (pmapid) mapid = (uint32)atoi(pmapid); else mapid = _player->GetMapId(); - if(!MapManager::IsValidMapCoord(mapid,x,y)) { PSendSysMessage(LANG_INVALID_TARGET_COORD,x,y,mapid); SetSentErrorMessage(true); return false; } - // stop flight if need if(_player->isInFlight()) { @@ -2796,31 +2345,23 @@ bool ChatHandler::HandleGoXYCommand(const char* args) // save only in non-flight case else _player->SaveRecallPosition(); - Map const *map = MapManager::Instance().CreateBaseMap(mapid); float z = std::max(map->GetHeight(x, y, MAX_HEIGHT), map->GetWaterLevel(x, y)); - _player->TeleportTo(mapid, x, y, z, _player->GetOrientation()); - return true; } - //teleport at coordinates, including Z bool ChatHandler::HandleGoXYZCommand(const char* args) { if(!*args) return false; - Player* _player = m_session->GetPlayer(); - char* px = strtok((char*)args, " "); char* py = strtok(NULL, " "); char* pz = strtok(NULL, " "); char* pmapid = strtok(NULL, " "); - if (!px || !py || !pz) return false; - float x = (float)atof(px); float y = (float)atof(py); float z = (float)atof(pz); @@ -2829,14 +2370,12 @@ bool ChatHandler::HandleGoXYZCommand(const char* args) mapid = (uint32)atoi(pmapid); else mapid = _player->GetMapId(); - if(!MapManager::IsValidMapCoord(mapid,x,y,z)) { PSendSysMessage(LANG_INVALID_TARGET_COORD,x,y,mapid); SetSentErrorMessage(true); return false; } - // stop flight if need if(_player->isInFlight()) { @@ -2846,68 +2385,50 @@ bool ChatHandler::HandleGoXYZCommand(const char* args) // save only in non-flight case else _player->SaveRecallPosition(); - _player->TeleportTo(mapid, x, y, z, _player->GetOrientation()); - return true; } - //teleport at coordinates bool ChatHandler::HandleGoZoneXYCommand(const char* args) { if(!*args) return false; - Player* _player = m_session->GetPlayer(); - char* px = strtok((char*)args, " "); char* py = strtok(NULL, " "); char* tail = strtok(NULL,""); - char* cAreaId = extractKeyFromLink(tail,"Harea"); // string or [name] Shift-click form |color|Harea:area_id|h[name]|h|r - if (!px || !py) return false; - float x = (float)atof(px); float y = (float)atof(py); - // prevent accept wrong numeric args if ((x==0.0f && *px!='0') || (y==0.0f && *py!='0')) return false; - uint32 areaid = cAreaId ? (uint32)atoi(cAreaId) : _player->GetZoneId(); - AreaTableEntry const* areaEntry = GetAreaEntryByAreaID(areaid); - if( x<0 || x>100 || y<0 || y>100 || !areaEntry ) { PSendSysMessage(LANG_INVALID_ZONE_COORD,x,y,areaid); SetSentErrorMessage(true); return false; } - // update to parent zone if exist (client map show only zones without parents) AreaTableEntry const* zoneEntry = areaEntry->zone ? GetAreaEntryByAreaID(areaEntry->zone) : areaEntry; - Map const *map = MapManager::Instance().CreateBaseMap(zoneEntry->mapid); - if(map->Instanceable()) { PSendSysMessage(LANG_INVALID_ZONE_MAP,areaEntry->ID,areaEntry->area_name[GetSessionDbcLocale()],map->GetId(),map->GetMapName()); SetSentErrorMessage(true); return false; } - Zone2MapCoordinates(x,y,zoneEntry->ID); - if(!MapManager::IsValidMapCoord(zoneEntry->mapid,x,y)) { PSendSysMessage(LANG_INVALID_TARGET_COORD,x,y,zoneEntry->mapid); SetSentErrorMessage(true); return false; } - // stop flight if need if(_player->isInFlight()) { @@ -2917,44 +2438,35 @@ bool ChatHandler::HandleGoZoneXYCommand(const char* args) // save only in non-flight case else _player->SaveRecallPosition(); - float z = std::max(map->GetHeight(x, y, MAX_HEIGHT), map->GetWaterLevel(x, y)); _player->TeleportTo(zoneEntry->mapid, x, y, z, _player->GetOrientation()); - return true; } - //teleport to grid bool ChatHandler::HandleGoGridCommand(const char* args) { if(!*args) return false; Player* _player = m_session->GetPlayer(); - char* px = strtok((char*)args, " "); char* py = strtok(NULL, " "); char* pmapid = strtok(NULL, " "); - if (!px || !py) return false; - float grid_x = (float)atof(px); float grid_y = (float)atof(py); uint32 mapid; if (pmapid) mapid = (uint32)atoi(pmapid); else mapid = _player->GetMapId(); - // center of grid float x = (grid_x-CENTER_GRID_ID+0.5f)*SIZE_OF_GRIDS; float y = (grid_y-CENTER_GRID_ID+0.5f)*SIZE_OF_GRIDS; - if(!MapManager::IsValidMapCoord(mapid,x,y)) { PSendSysMessage(LANG_INVALID_TARGET_COORD,x,y,mapid); SetSentErrorMessage(true); return false; } - // stop flight if need if(_player->isInFlight()) { @@ -2964,26 +2476,19 @@ bool ChatHandler::HandleGoGridCommand(const char* args) // save only in non-flight case else _player->SaveRecallPosition(); - Map const *map = MapManager::Instance().CreateBaseMap(mapid); float z = std::max(map->GetHeight(x, y, MAX_HEIGHT), map->GetWaterLevel(x, y)); _player->TeleportTo(mapid, x, y, z, _player->GetOrientation()); - return true; } - bool ChatHandler::HandleModifyDrunkCommand(const char* args) { if(!*args) return false; - uint32 drunklevel = (uint32)atoi(args); if(drunklevel > 100) drunklevel = 100; - uint16 drunkMod = drunklevel * 0xFFFF / 100; - m_session->GetPlayer()->SetDrunkValue(drunkMod); - return true; } |