diff options
Diffstat (limited to 'src/game/Level1.cpp')
-rw-r--r-- | src/game/Level1.cpp | 182 |
1 files changed, 170 insertions, 12 deletions
diff --git a/src/game/Level1.cpp b/src/game/Level1.cpp index 8ac8f491fd2..be8d4cfb0bf 100644 --- a/src/game/Level1.cpp +++ b/src/game/Level1.cpp @@ -115,6 +115,10 @@ bool ChatHandler::HandleNpcWhisperCommand(const char* args) uint64 receiver_guid= atol(receiver_str); + // check online security + if (HasLowerSecurity(objmgr.GetPlayer(receiver_guid), 0)) + return false; + pCreature->Whisper(text,receiver_guid); return true; @@ -125,8 +129,7 @@ bool ChatHandler::HandleNameAnnounceCommand(const char* args) WorldPacket data; if(!*args) return false; - //char str[1024]; - //sprintf(str, GetTrinityString(LANG_ANNOUNCE_COLOR), m_session->GetPlayer()->GetName(), args); + sWorld.SendWorldText(LANG_ANNOUNCE_COLOR, m_session->GetPlayer()->GetName(), args); return true; } @@ -705,6 +708,10 @@ bool ChatHandler::HandleNamegoCommand(const char* args) Player *chr = objmgr.GetPlayer(name.c_str()); if (chr) { + // check online security + if (HasLowerSecurity(chr, 0)) + return false; + if(chr->IsBeingTeleported()==true) { PSendSysMessage(LANG_IS_TELEPORTED, chr->GetName()); @@ -765,6 +772,10 @@ bool ChatHandler::HandleNamegoCommand(const char* args) } else if (uint64 guid = objmgr.GetPlayerGUIDByName(name)) { + // check offline security + if (HasLowerSecurity(NULL, guid)) + return false; + PSendSysMessage(LANG_SUMMONING, name.c_str(),GetTrinityString(LANG_OFFLINE)); // in point where GM stay @@ -805,6 +816,10 @@ bool ChatHandler::HandleGonameCommand(const char* args) Player *chr = objmgr.GetPlayer(name.c_str()); if (chr) { + // check online security + if (HasLowerSecurity(chr, 0)) + return false; + Map* cMap = chr->GetMap(); if(cMap->IsBattleGroundOrArena()) { @@ -898,6 +913,10 @@ bool ChatHandler::HandleGonameCommand(const char* args) if (uint64 guid = objmgr.GetPlayerGUIDByName(name)) { + // check offline security + if (HasLowerSecurity(NULL, guid)) + return false; + PSendSysMessage(LANG_APPEARING_AT, name.c_str()); // to point where player stay (if loaded) @@ -937,6 +956,10 @@ bool ChatHandler::HandleRecallCommand(const char* args) chr = getSelectedPlayer(); if(!chr) chr = m_session->GetPlayer(); + + // check online security + else if (HasLowerSecurity(chr, 0)) + return false; } else { @@ -957,6 +980,10 @@ bool ChatHandler::HandleRecallCommand(const char* args) SetSentErrorMessage(true); return false; } + + // check online security + if (HasLowerSecurity(chr, 0)) + return false; } if(chr->IsBeingTeleported()) @@ -995,6 +1022,10 @@ bool ChatHandler::HandleModifyKnownTitlesCommand(const char* args) return false; } + // check online security + if (HasLowerSecurity(chr, 0)) + return false; + uint64 titles2 = titles; for(int i=1; i < sCharTitlesStore.GetNumRows(); ++i) @@ -1044,6 +1075,10 @@ bool ChatHandler::HandleModifyHPCommand(const char* args) return false; } + // check online security + if (HasLowerSecurity(chr, 0)) + return false; + PSendSysMessage(LANG_YOU_CHANGE_HP, chr->GetName(), hp, hpm); if (needReportToTarget(chr)) ChatHandler(chr).PSendSysMessage(LANG_YOURS_HP_CHANGED, GetName(), hp, hpm); @@ -1088,6 +1123,10 @@ bool ChatHandler::HandleModifyManaCommand(const char* args) return false; } + // check online security + if (HasLowerSecurity(chr, 0)) + return false; + PSendSysMessage(LANG_YOU_CHANGE_MANA, chr->GetName(), mana, manam); if (needReportToTarget(chr)) ChatHandler(chr).PSendSysMessage(LANG_YOURS_MANA_CHANGED, GetName(), mana, manam); @@ -1133,6 +1172,10 @@ bool ChatHandler::HandleModifyEnergyCommand(const char* args) return false; } + // check online security + if (HasLowerSecurity(chr, 0)) + return false; + PSendSysMessage(LANG_YOU_CHANGE_ENERGY, chr->GetName(), energy/10, energym/10); if (needReportToTarget(chr)) ChatHandler(chr).PSendSysMessage(LANG_YOURS_ENERGY_CHANGED, GetName(), energy/10, energym/10); @@ -1180,6 +1223,10 @@ bool ChatHandler::HandleModifyRageCommand(const char* args) return false; } + // check online security + if (HasLowerSecurity(chr, 0)) + return false; + PSendSysMessage(LANG_YOU_CHANGE_RAGE, chr->GetName(), rage/10, ragem/10); if (needReportToTarget(chr)) ChatHandler(chr).PSendSysMessage(LANG_YOURS_RAGE_CHANGED, GetName(), rage/10, ragem/10); @@ -1190,6 +1237,40 @@ bool ChatHandler::HandleModifyRageCommand(const char* args) 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) + { + SendSysMessage(LANG_NO_CHAR_SELECTED); + SetSentErrorMessage(true); + return false; + } + + PSendSysMessage(LANG_YOU_CHANGE_RUNIC_POWER, chr->GetName(), rune/10, runem/10); + if (needReportToTarget(chr)) + ChatHandler(chr).PSendSysMessage(LANG_YOURS_RUNIC_POWER_CHANGED, GetName(), 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) { @@ -1304,6 +1385,10 @@ bool ChatHandler::HandleModifySpellCommand(const char* args) return false; } + // check online security + if (HasLowerSecurity(chr, 0)) + return false; + PSendSysMessage(LANG_YOU_CHANGE_SPELLFLATID, spellflatid, val, mark, chr->GetName()); if (needReportToTarget(chr)) ChatHandler(chr).PSendSysMessage(LANG_YOURS_SPELLFLATID_CHANGED, GetName(), spellflatid, val, mark); @@ -1334,6 +1419,11 @@ bool ChatHandler::HandleModifyTalentCommand (const char* args) SetSentErrorMessage(true); return false; } + + // check online security + if (HasLowerSecurity(player, 0)) + return false; + player->SetFreeTalentPoints(tp); return true; } @@ -1358,6 +1448,10 @@ bool ChatHandler::HandleTaxiCheatCommand(const char* args) chr=m_session->GetPlayer(); } + // check online security + else if (HasLowerSecurity(chr, 0)) + return false; + if (argstr == "on") { chr->SetTaxiCheater(true); @@ -1405,6 +1499,10 @@ bool ChatHandler::HandleModifyASpeedCommand(const char* args) return false; } + // check online security + if (HasLowerSecurity(chr, 0)) + return false; + if(chr->isInFlight()) { PSendSysMessage(LANG_CHAR_IN_FLIGHT,chr->GetName()); @@ -1447,6 +1545,10 @@ bool ChatHandler::HandleModifySpeedCommand(const char* args) return false; } + // check online security + if (HasLowerSecurity(chr, 0)) + return false; + if(chr->isInFlight()) { PSendSysMessage(LANG_CHAR_IN_FLIGHT,chr->GetName()); @@ -1486,6 +1588,10 @@ bool ChatHandler::HandleModifySwimCommand(const char* args) return false; } + // check online security + if (HasLowerSecurity(chr, 0)) + return false; + if(chr->isInFlight()) { PSendSysMessage(LANG_CHAR_IN_FLIGHT,chr->GetName()); @@ -1525,6 +1631,10 @@ bool ChatHandler::HandleModifyBWalkCommand(const char* args) return false; } + // check online security + if (HasLowerSecurity(chr, 0)) + return false; + if(chr->isInFlight()) { PSendSysMessage(LANG_CHAR_IN_FLIGHT,chr->GetName()); @@ -1564,6 +1674,10 @@ bool ChatHandler::HandleModifyFlyCommand(const char* args) return false; } + // check online security + if (HasLowerSecurity(chr, 0)) + return false; + PSendSysMessage(LANG_YOU_CHANGE_FLY_SPEED, FSpeed, chr->GetName()); if (needReportToTarget(chr)) ChatHandler(chr).PSendSysMessage(LANG_YOURS_FLY_SPEED_CHANGED, GetName(), FSpeed); @@ -1595,6 +1709,10 @@ bool ChatHandler::HandleModifyScaleCommand(const char* args) return false; } + // check online security + if (HasLowerSecurity(chr, 0)) + return false; + PSendSysMessage(LANG_YOU_CHANGE_SIZE, Scale, chr->GetName()); if (needReportToTarget(chr)) ChatHandler(chr).PSendSysMessage(LANG_YOURS_SIZE_CHANGED, GetName(), Scale); @@ -1838,6 +1956,10 @@ bool ChatHandler::HandleModifyMountCommand(const char* args) return false; } + // check online security + if (HasLowerSecurity(chr, 0)) + return false; + PSendSysMessage(LANG_YOU_GIVE_MOUNT, chr->GetName()); if (needReportToTarget(chr)) ChatHandler(chr).PSendSysMessage(LANG_MOUNT_GIVED, GetName()); @@ -1875,6 +1997,10 @@ bool ChatHandler::HandleModifyMoneyCommand(const char* args) return false; } + // check online security + if (HasLowerSecurity(chr, 0)) + return false; + int32 addmoney = atoi((char*)args); uint32 moneyuser = chr->GetMoney(); @@ -1927,6 +2053,10 @@ bool ChatHandler::HandleModifyBitCommand(const char* args) return false; } + // check online security + if (HasLowerSecurity(chr, 0)) + return false; + char* pField = strtok((char*)args, " "); if (!pField) return false; @@ -1979,6 +2109,10 @@ bool ChatHandler::HandleModifyHonorCommand (const char* args) return false; } + // check online security + if (HasLowerSecurity(target, 0)) + return false; + int32 amount = (uint32)atoi(args); target->ModifyHonorPoints(amount); @@ -2076,9 +2210,9 @@ bool ChatHandler::HandleLookupAreaCommand(const char* args) // send area in "id - [name]" format std::ostringstream ss; if (m_session) - ss << areaEntry->ID << " - |cffffffff|Harea:" << areaEntry->ID << "|h[" << name << " " << localeNames[loc]<< "]|h|r"; - else - ss << areaEntry->ID << " - " << name << " " << localeNames[loc]; + 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()); @@ -2086,8 +2220,10 @@ bool ChatHandler::HandleLookupAreaCommand(const char* args) } } } + if (counter == 0) // if counter == 0 then we found nth SendSysMessage (LANG_COMMAND_NOAREAFOUND); + return true; } @@ -2116,7 +2252,7 @@ bool ChatHandler::HandleLookupTeleCommand(const char * args) std::ostringstream reply; - GameTeleMap const & teleMap = objmgr.GetGameTeleMap(); + GameTeleMap const & teleMap = objmgr.GetGameTeleMap(); for(GameTeleMap::const_iterator itr = teleMap.begin(); itr != teleMap.end(); ++itr) { GameTele const* tele = &itr->second; @@ -2125,9 +2261,9 @@ bool ChatHandler::HandleLookupTeleCommand(const char * args) continue; if (m_session) - reply << " |cffffffff|Htele:" << itr->first << "|h[" << tele->name << "]|h|r\n"; - else - reply << " " << itr->first << " " << tele->name << "\n"; + reply << " |cffffffff|Htele:" << itr->first << "|h[" << tele->name << "]|h|r\n"; + else + reply << " " << itr->first << " " << tele->name << "\n"; } if(reply.str().empty()) @@ -2274,7 +2410,6 @@ bool ChatHandler::HandleSendMailCommand(const char* args) return false; } - uint32 mailId = objmgr.GenerateMailID(); // from console show not existed sender uint32 sender_guidlo = m_session ? m_session->GetPlayer()->GetGUIDLow() : 0; @@ -2334,6 +2469,9 @@ bool ChatHandler::HandleNameTeleCommand(const char * args) Player *chr = objmgr.GetPlayer(name.c_str()); if (chr) { + // check online security + if (HasLowerSecurity(chr, 0)) + return false; if(chr->IsBeingTeleported()==true) { @@ -2360,6 +2498,10 @@ bool ChatHandler::HandleNameTeleCommand(const char * args) } else if (uint64 guid = objmgr.GetPlayerGUIDByName(name.c_str())) { + // check offline security + if (HasLowerSecurity(NULL, guid)) + return false; + PSendSysMessage(LANG_TELEPORTING_TO, name.c_str(), GetTrinityString(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),guid); } @@ -2383,6 +2525,10 @@ bool ChatHandler::HandleGroupTeleCommand(const char * args) 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) @@ -2414,6 +2560,10 @@ bool ChatHandler::HandleGroupTeleCommand(const char * args) if(!pl || !pl->GetSession() ) continue; + // check online security + if (HasLowerSecurity(pl, 0)) + return false; + if(pl->IsBeingTeleported()) { PSendSysMessage(LANG_IS_TELEPORTED, pl->GetName()); @@ -2463,6 +2613,10 @@ bool ChatHandler::HandleGroupgoCommand(const char* args) return false; } + // check online security + if (HasLowerSecurity(player, 0)) + return false; + Group *grp = player->GetGroup(); if(!grp) @@ -2472,7 +2626,7 @@ bool ChatHandler::HandleGroupgoCommand(const char* args) return false; } - Map* gmMap = MapManager::Instance().GetMap(m_session->GetPlayer()->GetMapId(),m_session->GetPlayer()); + 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 @@ -2493,6 +2647,10 @@ bool ChatHandler::HandleGroupgoCommand(const char* args) if(!pl || pl==m_session->GetPlayer() || !pl->GetSession() ) continue; + // check online security + if (HasLowerSecurity(pl, 0)) + return false; + if(pl->IsBeingTeleported()==true) { PSendSysMessage(LANG_IS_TELEPORTED, pl->GetName()); @@ -2502,7 +2660,7 @@ bool ChatHandler::HandleGroupgoCommand(const char* args) if (to_instance) { - Map* plMap = MapManager::Instance().GetMap(pl->GetMapId(),pl); + Map* plMap = pl->GetMap(); if ( plMap->Instanceable() && plMap->GetInstanceId() != gmMap->GetInstanceId() ) { |