AutoBroadcast system.

-This commit is paired with 1 database update
This commit is contained in:
H0zen 2017-01-12 16:47:40 +02:00 committed by Antz
parent a7f938e7e6
commit 2888858616
9 changed files with 618 additions and 461 deletions

View file

@ -237,6 +237,7 @@ bool ChatHandler::HandleReloadAllCommand(char* /*args*/)
HandleReloadAllAchievementCommand((char*)""); HandleReloadAllAchievementCommand((char*)"");
HandleReloadAllAreaCommand((char*)""); HandleReloadAllAreaCommand((char*)"");
HandleReloadAutoBroadcastCommand((char*)"");
HandleReloadAllEventAICommand((char*)""); HandleReloadAllEventAICommand((char*)"");
HandleReloadAllLootCommand((char*)""); HandleReloadAllLootCommand((char*)"");
HandleReloadAllNpcCommand((char*)""); HandleReloadAllNpcCommand((char*)"");
@ -423,6 +424,14 @@ bool ChatHandler::HandleReloadAreaTriggerTeleportCommand(char* /*args*/)
return true; return true;
} }
bool ChatHandler::HandleReloadAutoBroadcastCommand(char* /*args*/)
{
sLog.outString("Re-Loading broadcast strings...");
sWorld.LoadBroadcastStrings();
SendGlobalSysMessage("Broadcast strings reloaded.");
return true;
}
bool ChatHandler::HandleReloadCommandCommand(char* /*args*/) bool ChatHandler::HandleReloadCommandCommand(char* /*args*/)
{ {
load_command_table = true; load_command_table = true;

View file

@ -1021,11 +1021,12 @@ enum MangosStrings
LANG_OPVP_SI_CAPTURE_H = 1635, LANG_OPVP_SI_CAPTURE_H = 1635,
LANG_OPVP_SI_CAPTURE_A = 1636, LANG_OPVP_SI_CAPTURE_A = 1636,
// Room for 4.x clients only 1700-1799 // Room for 4.x clients only 1702-1799
LANG_VENDOR_WRONG_ITEM_TYPE = 1700, LANG_VENDOR_WRONG_ITEM_TYPE = 1700,
LANG_VENDOR_WRONG_CURRENCY_MAXCOUNT = 1701, LANG_VENDOR_WRONG_CURRENCY_MAXCOUNT = 1701,
// FREE IDS 1800-9999 // FREE IDS 1801-9999
LANG_AUTOBROADCAST = 1800
// Use for not-in-official-sources patches // Use for not-in-official-sources patches
// 10000-10999 // 10000-10999

View file

@ -533,6 +533,7 @@ ChatCommand* ChatHandler::getCommandTable()
{ "areatrigger_involvedrelation", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadQuestAreaTriggersCommand, "", NULL }, { "areatrigger_involvedrelation", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadQuestAreaTriggersCommand, "", NULL },
{ "areatrigger_tavern", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadAreaTriggerTavernCommand, "", NULL }, { "areatrigger_tavern", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadAreaTriggerTavernCommand, "", NULL },
{ "areatrigger_teleport", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadAreaTriggerTeleportCommand, "", NULL }, { "areatrigger_teleport", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadAreaTriggerTeleportCommand, "", NULL },
{ "autobroadcast", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadAutoBroadcastCommand, "", NULL },
{ "command", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadCommandCommand, "", NULL }, { "command", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadCommandCommand, "", NULL },
{ "conditions", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadConditionsCommand, "", NULL }, { "conditions", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadConditionsCommand, "", NULL },
{ "creature_ai_scripts", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadEventAIScriptsCommand, "", NULL }, { "creature_ai_scripts", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadEventAIScriptsCommand, "", NULL },

View file

@ -432,6 +432,7 @@ class ChatHandler
bool HandleReloadAchievementRewardCommand(char* args); bool HandleReloadAchievementRewardCommand(char* args);
bool HandleReloadAreaTriggerTavernCommand(char* args); bool HandleReloadAreaTriggerTavernCommand(char* args);
bool HandleReloadAreaTriggerTeleportCommand(char* args); bool HandleReloadAreaTriggerTeleportCommand(char* args);
bool HandleReloadAutoBroadcastCommand(char* args);
bool HandleReloadBattleEventCommand(char* args); bool HandleReloadBattleEventCommand(char* args);
bool HandleReloadCreaturesStatsCommand(char* args); bool HandleReloadCreaturesStatsCommand(char* args);
bool HandleReloadCommandCommand(char* args); bool HandleReloadCommandCommand(char* args);

File diff suppressed because it is too large Load diff

View file

@ -26,8 +26,8 @@
/// @{ /// @{
/// \file /// \file
#ifndef __WORLD_H #ifndef MANGOS_H_WORLD
#define __WORLD_H #define MANGOS_H_WORLD
#include "Common.h" #include "Common.h"
#include "Timer.h" #include "Timer.h"
@ -229,7 +229,8 @@ enum eConfigUInt32Values
CONFIG_UINT32_WARDEN_CLIENT_BAN_DURATION, CONFIG_UINT32_WARDEN_CLIENT_BAN_DURATION,
CONFIG_UINT32_WARDEN_NUM_MEM_CHECKS, CONFIG_UINT32_WARDEN_NUM_MEM_CHECKS,
CONFIG_UINT32_WARDEN_NUM_OTHER_CHECKS, CONFIG_UINT32_WARDEN_NUM_OTHER_CHECKS,
CONFIG_UINT32_WARDEN_DB_LOGLEVEL CONFIG_UINT32_WARDEN_DB_LOGLEVEL,
CONFIG_UINT32_AUTOBROADCAST_INTERVAL,
}; };
/// Configuration elements /// Configuration elements
@ -418,7 +419,7 @@ enum RealmType
REALM_TYPE_RP = 6, REALM_TYPE_RP = 6,
REALM_TYPE_RPPVP = 8, REALM_TYPE_RPPVP = 8,
REALM_TYPE_FFA_PVP = 16 // custom, free for all pvp mode like arena PvP in all zones except rest activated places and sanctuaries REALM_TYPE_FFA_PVP = 16 // custom, free for all pvp mode like arena PvP in all zones except rest activated places and sanctuaries
// replaced by REALM_PVP in realm list // replaced by REALM_PVP in realm list
}; };
/// This is values from first column of Cfg_Categories.dbc (1.12.1 have another numeration) /// This is values from first column of Cfg_Categories.dbc (1.12.1 have another numeration)
@ -654,6 +655,7 @@ class World
char const* GetDBVersion() { return m_DBVersion.c_str(); } char const* GetDBVersion() { return m_DBVersion.c_str(); }
void UpdatePhaseDefinitions(); void UpdatePhaseDefinitions();
void LoadBroadcastStrings();
/** /**
* \brief: force all client to request player data * \brief: force all client to request player data
@ -704,6 +706,18 @@ class World
bool configNoReload(bool reload, eConfigFloatValues index, char const* fieldname, float defvalue); bool configNoReload(bool reload, eConfigFloatValues index, char const* fieldname, float defvalue);
bool configNoReload(bool reload, eConfigBoolValues index, char const* fieldname, bool defvalue); bool configNoReload(bool reload, eConfigBoolValues index, char const* fieldname, bool defvalue);
// AutoBroadcast system
void AutoBroadcast();
struct BroadcastString
{
uint32 freq;
std::string text;
};
std::vector<BroadcastString> m_broadcastList;
uint32 m_broadcastWeight;
bool m_broadcastEnable;
IntervalTimer m_broadcastTimer;
static volatile bool m_stopEvent; static volatile bool m_stopEvent;
static uint8 m_ExitCode; static uint8 m_ExitCode;
uint32 m_ShutdownTimer; uint32 m_ShutdownTimer;
@ -755,7 +769,7 @@ class World
time_t m_NextDailyQuestReset; time_t m_NextDailyQuestReset;
time_t m_NextRandomBGReset; time_t m_NextRandomBGReset;
time_t m_NextWeeklyQuestReset; time_t m_NextWeeklyQuestReset;
time_t m_NextMonthlyQuestReset; time_t m_NextMonthlyQuestReset;
// Player Queue // Player Queue
Queue m_QueuedSessions; Queue m_QueuedSessions;

View file

@ -3,7 +3,7 @@
################################################################################ ################################################################################
[MangosdConf] [MangosdConf]
ConfVersion=2017021100 ConfVersion=2017021400
################################################################################ ################################################################################
# CONNECTIONS AND DIRECTORIES # CONNECTIONS AND DIRECTORIES
@ -796,6 +796,11 @@ SD3ErrorLogFile = "scriptdev3-errors.log"
# Motd # Motd
# Message of the Day. Displayed at worldlogin for every user ('@' for a newline). # Message of the Day. Displayed at worldlogin for every user ('@' for a newline).
# #
# AutoBroadcast
# Timer interval (in seconds) for automatic server announcements (autobroadcasts). Zero value means AB is disabled
# 0 (AB is disabled)
# Default: 600 (AB every 10 minutes)
# N (>0, AB every N seconds)
################################################################################ ################################################################################
GameType = 1 GameType = 1
@ -867,6 +872,7 @@ WaitAtStartupError = 10
Raid.MinLevel = 10 Raid.MinLevel = 10
PlayerCommands = 0 PlayerCommands = 0
Motd = "Welcome to Mangos Three" Motd = "Welcome to Mangos Three"
AutoBroadcast = 0
################################################################################ ################################################################################
# PLAYER INTERACTION # PLAYER INTERACTION

View file

@ -42,7 +42,7 @@
// Format is YYYYMMDDRR where RR is the change in the conf file // Format is YYYYMMDDRR where RR is the change in the conf file
// for that day. // for that day.
#ifndef MANGOSD_CONFIG_VERSION #ifndef MANGOSD_CONFIG_VERSION
# define MANGOSD_CONFIG_VERSION 2016031901 # define MANGOSD_CONFIG_VERSION 2017021400
#endif #endif
#ifndef REALMD_CONFIG_VERSION #ifndef REALMD_CONFIG_VERSION
# define REALMD_CONFIG_VERSION 2010062001 # define REALMD_CONFIG_VERSION 2010062001

View file

@ -24,7 +24,7 @@
#ifndef MANGOS_H_REVISION #ifndef MANGOS_H_REVISION
#define MANGOS_H_REVISION #define MANGOS_H_REVISION
#define REVISION_NR "21000" #define REVISION_NR "21007"
#define REALMD_DB_VERSION_NR 21 #define REALMD_DB_VERSION_NR 21
#define REALMD_DB_STRUCTURE_NR 1 #define REALMD_DB_STRUCTURE_NR 1
@ -37,7 +37,7 @@
#define CHAR_DB_UPDATE_DESCRIPTION "characters_pvpstats" #define CHAR_DB_UPDATE_DESCRIPTION "characters_pvpstats"
#define WORLD_DB_VERSION_NR 21 #define WORLD_DB_VERSION_NR 21
#define WORLD_DB_STRUCTURE_NR 5 #define WORLD_DB_STRUCTURE_NR 7
#define WORLD_DB_CONTENT_NR 1 #define WORLD_DB_CONTENT_NR 1
#define WORLD_DB_UPDATE_DESCRIPTION "dbscripts_refactor" #define WORLD_DB_UPDATE_DESCRIPTION "AutoBroadcast"
#endif // __REVISION_H__ #endif // __REVISION_H__