59 TC_LOG_INFO(
"server.loading",
">> Loaded 0 outdoor PvP definitions. DB table `outdoorpvp_template` is empty.");
68 Field* fields = result->Fetch();
77 TC_LOG_ERROR(
"sql.sql",
"Invalid OutdoorPvPTypes value {} in outdoorpvp_template; skipped.", typeId);
85 while (result->NextRow());
99 TC_LOG_ERROR(
"sql.sql",
"Could not initialize OutdoorPvP object for type ID {}; no entry in database.",
uint32(i));
106 TC_LOG_ERROR(
"outdoorpvp",
"Could not initialize OutdoorPvP object for type ID {}; got NULL pointer from script.",
uint32(i));
112 TC_LOG_ERROR(
"outdoorpvp",
"Could not initialize OutdoorPvP object for type ID {}; SetupOutdoorPvP failed.",
uint32(i));
125 return pair.first.first == map;
141 if (itr->second->HasPlayer(player))
144 itr->second->HandlePlayerEnterZone(player, zoneid);
155 if (!itr->second->HasPlayer(player))
158 itr->second->HandlePlayerLeaveZone(player, zoneid);
179 for (
auto itr = mapItr->second.begin(); itr != mapItr->second.end(); ++itr)
188 if (pvp->HasPlayer(player))
189 return pvp->HandleCustomSpell(player, spellId, go);
197 if (pvp->HasPlayer(player))
198 return pvp->HandleOpenGo(player, go);
206 if (pvp->HasPlayer(player))
207 pvp->HandleDropFlag(player, spellId);
213 if (pvp->HasPlayer(player))
214 pvp->HandlePlayerResurrects(player, zoneid);
222 TC_LOG_ERROR(
"outdoorpvp",
"Can not find DefenseMessage (Zone: {}, Id: {}). BroadcastText (Id: {}) does not exist.", zoneId,
id,
id);
DB2Storage< BroadcastTextEntry > sBroadcastTextStore("BroadcastText.db2", &BroadcastTextLoadInfo::Instance)
std::shared_ptr< ResultSet > QueryResult
DatabaseWorkerPool< WorldDatabaseConnection > WorldDatabase
Accessor to the world database.
@ DISABLE_TYPE_OUTDOORPVP
#define TC_LOG_DEBUG(filterType__,...)
#define TC_LOG_ERROR(filterType__,...)
#define TC_LOG_INFO(filterType__,...)
#define OUTDOORPVP_OBJECTIVE_UPDATE_INTERVAL
uint32 GetMSTimeDiffToNow(uint32 oldMSTime)
static char const * GetBroadcastTextValue(BroadcastTextEntry const *broadcastText, LocaleConstant locale=DEFAULT_LOCALE, uint8 gender=GENDER_MALE, bool forceGender=false)
Class used to access individual fields of database query result.
std::string ToString() const
static ObjectGuid GetGUID(Object const *o)
bool HandleCustomSpell(Player *player, uint32 spellId, GameObject *go)
static OutdoorPvPMgr * instance()
OutdoorPvPMap m_OutdoorPvPMap
void CreateOutdoorPvPForMap(Map *map)
void AddZone(uint32 zoneid, OutdoorPvP *handle)
void HandlePlayerLeaveZone(Player *player, uint32 areaflag)
OutdoorPvPScriptIds m_OutdoorMapIds
bool HandleOpenGo(Player *player, GameObject *go)
void HandleDropFlag(Player *player, uint32 spellId)
OutdoorPvP * GetOutdoorPvPToZoneId(Map *map, uint32 zoneid)
void DestroyOutdoorPvPForMap(Map *map)
std::unordered_map< Map *, std::vector< std::unique_ptr< OutdoorPvP > > > m_OutdoorPvPByMap
OutdoorPvPScriptIds m_OutdoorPvPDatas
void HandlePlayerEnterZone(Player *player, uint32 areaflag)
void HandlePlayerResurrects(Player *player, uint32 areaflag)
std::string GetDefenseMessage(uint32 zoneId, uint32 id, LocaleConstant locale) const
virtual bool SetupOutdoorPvP()
OutdoorPvP * GetOutdoorPvP() const
bool IsDisabledFor(DisableType type, uint32 entry, WorldObject const *ref, uint8 flags)
void EraseIf(Container &c, Predicate p)