mirror of
https://github.com/mangosfour/server.git
synced 2025-12-15 10:37:02 +00:00
AutoBroadcast system.
-This commit is paired with 1 database update
This commit is contained in:
parent
a7f938e7e6
commit
2888858616
9 changed files with 618 additions and 461 deletions
|
|
@ -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;
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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 },
|
||||||
|
|
|
||||||
|
|
@ -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
|
|
@ -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;
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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__
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue