25 #include "ace/Atomic_Op.h" 416 typedef void Print(
void*,
const char*);
426 : m_callbackArg(callbackArg), m_print(zprint), m_commandFinished(commandFinished)
428 size_t len = strlen(command) + 1;
429 m_command =
new char[len];
430 memcpy(m_command, command, len);
467 void SendAutoBroadcast();
468 bool RemoveSession(
uint32 id);
470 void UpdateMaxSessionCounters();
474 return m_sessions.size();
478 return m_sessions.size() - m_QueuedPlayer.size();
482 return m_QueuedPlayer.size();
487 return m_maxQueuedSessionCount;
491 return m_maxActiveSessionCount;
497 void RemoveWeather(
uint32 zone_id);
502 return m_playerLimit >= 0 ? m_playerLimit : 0;
506 return m_allowedSecurityLevel < 0 ?
SEC_PLAYER : m_allowedSecurityLevel;
514 void SetPlayerLimit(
int32 limit,
bool needUpdate =
false);
517 typedef std::list<WorldSession*>
Queue;
524 return m_QueuedPlayer.size();
531 return m_allowMovement;
536 m_allowMovement = allow;
547 return m_motd.c_str();
553 m_newCharString = str;
558 return m_newCharString;
563 return m_defaultDbcLocale;
585 return uint32(m_gameTime - m_startTime);
601 return lvl > 60 ? 300 + ((lvl - 60) * 75) / 10 : lvl * 5;
604 void SetInitialWorldSettings();
605 void LoadConfigSettings(
bool reload =
false);
607 void SendWorldText(
int32 string_id, ...);
608 void SendGlobalText(
const char* text,
WorldSession*
self);
609 void SendGMText(
int32 string_id, ...);
619 return m_ShutdownTimer > 0;
623 return m_ShutdownTimer;
626 void ShutdownCancel();
627 void ShutdownMsg(
bool show =
false,
Player* player = NULL);
634 if (m_stopEvent)
return;
636 m_ExitCode = exitcode;
645 void UpdateSessions(time_t diff);
649 rate_values[rate] =
value;
654 return rate_values[rate];
661 m_configs[index] =
value;
668 return m_configs[index];
683 bool KickPlayer(
const std::string& playerName);
686 BanReturn BanAccount(
BanMode mode, std::string nameOrIP, std::string duration, std::string reason, std::string author);
687 bool RemoveBanAccount(
BanMode mode, std::string nameOrIP);
691 return (
uint32)++m_scheduledScripts;
695 return (
uint32)--m_scheduledScripts;
699 return (
uint32)(m_scheduledScripts -= count);
703 return m_scheduledScripts > 0;
709 return m_MaxVisibleDistanceOnContinents;
713 return m_MaxVisibleDistanceInInstances;
717 return m_MaxVisibleDistanceInBGArenas;
722 return m_visibility_notify_periodOnContinents;
726 return m_visibility_notify_periodInInstances;
730 return m_visibility_notify_periodInBGArenas;
733 void ProcessCliCommands();
736 cliCmdQueue.add(commandHolder);
739 void UpdateResultQueue();
740 void InitResultQueue();
742 void ForceGameEventUpdate();
744 void UpdateRealmCharCount(
uint32 accid);
746 void UpdateAllowedSecurity();
750 if (m_availableDbcLocaleMask & (1 << locale))
return locale;
751 else return m_defaultDbcLocale;
755 void LoadDBVersion();
758 return m_DBVersion.c_str();
764 m_ScriptsVersion = version ? version :
"unknown scripting library";
768 return m_ScriptsVersion.c_str();
771 void RecordTimeDiff(
const char* text, ...);
772 void LoadAutobroadcasts();
773 void LoadIp2nation();
774 void LoadOpcodeProtection();
775 void LoadSQLUpdates();
779 void _UpdateGameTime();
783 void InitDailyQuestResetTime();
784 void ResetDailyQuests();
821 void DetectDBCLang();
860 #define sWorld Oregon::Singleton<World>::Instance()
uint32 mail_timer_expires
UNORDERED_MAP< uint32, time_t > DisconnectMap
void SetAllowMovement(bool allow)
UNORDERED_MAP< uint32, WorldSession * > SessionMap
void SetNewCharString(std::string str)
std::string GetDataPath() const
OpcodePenalty
What should happen if the threshold per interval is passed.
CommandFinished * m_commandFinished
uint32 GetShutDownTimeLeft()
const std::string & GetNewCharString() const
UNORDERED_MAP< uint32, Weather * > WeatherMap
time_t m_NextDailyQuestReset
std::list< WorldSession * > Queue
std::string m_SQLUpdatesPath
uint32 GetActiveAndQueuedSessionCount() const
static float GetMaxVisibleDistanceOnContinents()
ACE_Based::LockedQueue< CliCommandHolder *, ACE_Thread_Mutex > cliCmdQueue
void QueueCliCommand(CliCommandHolder *commandHolder)
IntervalTimer extmail_timer
static float m_MaxVisibleDistanceInInstances
uint32 GetUpdateTime() const
SqlResultQueue * m_resultQueue
bool getAllowMovement() const
uint32 GetMaxActiveSessionCount() const
uint32 DecreaseScheduledScriptCount()
std::list< std::string > m_Autobroadcasts
AccountTypes GetPlayerSecurityLimit() const
void SetScriptsVersion(char const *version)
AccountTypes m_allowedSecurityLevel
uint32 m_maxActiveSessionCount
uint32 m_availableDbcLocaleMask
static float GetMaxVisibleDistanceInInstances()
static float GetMaxVisibleDistanceInBGArenas()
uint32 threshold
Sets the maximum count one protected packet per Interval can be processed per session.
CliCommandHolder(void *callbackArg, const char *command, Print *zprint, CommandFinished *commandFinished)
void Print(void *, const char *)
time_t const & GetStartTime() const
float getRate(Rates rate) const
uint32 DecreaseScheduledScriptCount(size_t count)
uint32 GetQueueSize() const
static uint8 GetExitCode()
static int32 GetVisibilityNotifyPeriodInInstances()
const char * GetMotd() const
void setConfig(uint32 index, uint32 value)
OpcodePenalty penalty
What should happen if the threshold per interval is passed.
static int32 m_visibility_notify_periodInBGArenas
static int32 GetVisibilityNotifyPeriodOnContinents()
etc mysql my cnf *Then change max_allowed_packet to a bigger value
uint16 GetConfigMaxSkillValue() const
static int32 m_visibility_notify_periodOnContinents
std::string m_newCharString
void SetRecordDiffInterval(int32 t)
LocaleConstant GetAvailableDbcLocale(LocaleConstant locale) const
DisconnectMap m_disconnects
char const * GetScriptsVersion()
static int32 m_visibility_notify_periodInInstances
uint32 m_maxQueuedSessionCount
uint32 GetPlayerAmountLimit() const
time_t const & GetGameTime() const
static float m_MaxVisibleDistanceInBGArenas
char const * GetDBVersion()
ACE_Based::LockedQueue< WorldSession *, ACE_Thread_Mutex > addSessQueue
void SetPlayerSecurityLimit(AccountTypes sec)
void SetMotd(std::string motd)
uint32 IncreaseScheduledScriptsCount()
static volatile bool m_stopEvent
void CommandFinished(void *, bool success)
static int32 GetVisibilityNotifyPeriodInBGArenas()
ACE_Refcounted_Auto_Ptr< QueryResult, ACE_Null_Mutex > QueryResult_AutoPtr
uint32 interval
Interval for threshold, in milliseconds.'.
LocaleConstant m_defaultDbcLocale
bool IsScriptScheduled() const
uint32 realmID
Id of the realm.
uint32 GetQueuedSessionCount() const
ACE_Atomic_Op< ACE_Thread_Mutex, long > m_scheduledScripts
uint32 GetDefaultDbcLocale() const
void setRate(Rates rate, float value)
static volatile uint32 m_worldLoopCounter
uint32 getConfig(uint32 index) const
Skip the packet without processing.
static float m_MaxVisibleDistanceOnContinents
bool IsShuttingDown() const
UNORDERED_MAP< uint32, ProtectedOpcodeProperties > _protectedOpcodesProperties
const SessionMap & GetAllSessions() const
std::string m_ScriptsVersion
uint32 GetActiveSessionCount() const
uint32 GetMaxQueuedSessionCount() const
static void StopNow(uint8 exitcode)