Jump to content

Diablox

Members
  • Posts

    182
  • Joined

  • Last visited

    Never
  • Donations

    0.00 GBP 

Everything posted by Diablox

  1. Try restarting the server when you change config options!
  2. In your realmd DB you have a table caled autobroadcast It looks like this Lets say you want 3 mesage to broadcast message 1 message 2 message 3 I think you can understend now how it works,
  3. Copy paste this in your patch.txt [HIGHLIGHT=diff]From 71dcce34aeb586a253b4645fe893ebc22a50332e Mon Sep 17 00:00:00 2001 From: Diablox <[email protected]> Date: Thu, 9 Jul 2009 21:42:54 +0200 Subject: PATCH Autobroadcast --- sql/autobroadcast/mangos_mangos_string.sql | 4 ++ sql/autobroadcast/realmd_autobroadcast.sql | 6 ++ src/game/Language.h | 3 + src/game/World.cpp | 72 ++++++++++++++++++++++++++-- src/game/World.h | 3 +- src/mangosd/mangosd.conf.dist.in | 23 +++++++++ 6 files changed, 106 insertions(+), 5 deletions(-) create mode 100644 sql/autobroadcast/mangos_mangos_string.sql create mode 100644 sql/autobroadcast/realmd_autobroadcast.sql diff --git a/sql/autobroadcast/mangos_mangos_string.sql b/sql/autobroadcast/mangos_mangos_string.sql new file mode 100644 index 0000000..39dc1ce --- /dev/null +++ b/sql/autobroadcast/mangos_mangos_string.sql @@ -0,0 +1,4 @@ +DELETE FROM `mangos_string` WHERE `entry` = '1300'; + +INSERT INTO `mangos_string` (`entry`, `content_default`, `content_loc1`, `content_loc2`, `content_loc3`, `content_loc4`, `content_loc5`, `content_loc6`, `content_loc7`, `content_loc8`) VALUES +(1300, '|cffffcc00[server]: |cff00ff00%s|r', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); diff --git a/sql/autobroadcast/realmd_autobroadcast.sql b/sql/autobroadcast/realmd_autobroadcast.sql new file mode 100644 index 0000000..1e1ad4c --- /dev/null +++ b/sql/autobroadcast/realmd_autobroadcast.sql @@ -0,0 +1,6 @@ +CREATE TABLE IF NOT EXISTS `autobroadcast` ( + `id` int(11) NOT NULL auto_increment, + `text` longtext NOT NULL, + `next` int(11) NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 ; diff --git a/src/game/Language.h b/src/game/Language.h index e1c15fb..0643b24 100644 --- a/src/game/Language.h +++ b/src/game/Language.h @@ -773,6 +773,9 @@ enum MangosStrings // FREE IDS 1300-9999 + // Broadcaster + LANG_AUTO_BROADCAST = 1300, + // Use for not-in-offcial-sources patches // 10000-10999 diff --git a/src/game/World.cpp b/src/game/World.cpp index bf20ccf..3651b62 100644 --- a/src/game/World.cpp +++ b/src/game/World.cpp @@ -49,6 +49,7 @@ #include "CreatureAIRegistry.h" #include "Policies/SingletonImp.h" #include "BattleGroundMgr.h" +#include "Language.h" #include "TemporarySummon.h" #include "WaypointMovementGenerator.h" #include "VMapFactory.h" @@ -1398,8 +1399,10 @@ void World::SetInitialWorldSettings() sprintf( isoDate, "%04d-%02d-%02d %02d:%02d:%02d", local.tm_year+1900, local.tm_mon+1, local.tm_mday, local.tm_hour, local.tm_min, local.tm_sec); - loginDatabase.PExecute("INSERT INTO uptime (realmid, starttime, startstring, uptime) VALUES('%u', " UI64FMTD ", '%s', 0)", - realmID, uint64(m_startTime), isoDate); + loginDatabase.PExecute("INSERT INTO uptime (realmid, starttime, startstring, uptime) VALUES('%u', " UI64FMTD ", '%s', 0)", realmID, uint64(m_startTime), isoDate); + + static uint32 abtimer = 0; + abtimer = sConfig.GetIntDefault("AutoBroadcast.Timer", 60000); m_timers[WUPDATE_OBJECTS].SetInterval(0); m_timers[WUPDATE_SESSIONS].SetInterval(0); @@ -1409,7 +1412,7 @@ void World::SetInitialWorldSettings() //Update "uptime" table based on configuration entry in minutes. m_timers[WUPDATE_CORPSES].SetInterval(20*MINUTE*IN_MILISECONDS); //erase corpses every 20 minutes - + m_timers[WUPDATE_AUTOBROADCAST].SetInterval(abtimer); //to set mailtimer to return mails every day between 4 and 5 am //mailtimer is increased when updating auctions //one second is 1000 -(tested on win system) @@ -1448,7 +1451,7 @@ void World::SetInitialWorldSettings() sLog.outString("Starting Game Event system..." ); uint32 nextGameEvent = gameeventmgr.Initialize(); m_timers[WUPDATE_EVENTS].SetInterval(nextGameEvent); //depend on next event - + sLog.outString("Starting Autobroadcast system by Xeross..." ); sLog.outString( "WORLD: World initialized" ); } @@ -1604,6 +1607,16 @@ void World::Update(uint32 diff) m_timers[WUPDATE_EVENTS].SetInterval(nextGameEvent); m_timers[WUPDATE_EVENTS].Reset(); } + static uint32 autobroadcaston = 0; + autobroadcaston = sConfig.GetIntDefault("AutoBroadcast.On", 0); + if(autobroadcaston == 1) + { + if (m_timers[WUPDATE_AUTOBROADCAST].Passed()) + { + m_timers[WUPDATE_AUTOBROADCAST].Reset(); + SendBroadcast(); + } + } /// ///- Move all creatures with "delayed move" and remove and delete all objects with "delayed remove" @@ -2729,6 +2742,57 @@ void World::ProcessCliCommands() zprint("mangos>"); } +void World::SendBroadcast() +{ + std::string msg; + static int nextid; + + QueryResult *result; + if(nextid != 0) + { + result = loginDatabase.PQuery("SELECT `text`, `next` FROM `autobroadcast` WHERE `id` = %u", nextid); + } + else + { + result = loginDatabase.PQuery("SELECT `text`, `next` FROM `autobroadcast` ORDER BY RAND() LIMIT 1"); + } + + if(!result) + return; + + Field *fields = result->Fetch(); + nextid = fields[1].GetUInt32(); + msg = fields[0].GetString(); + delete result; + + static uint32 abcenter = 0; + abcenter = sConfig.GetIntDefault("AutoBroadcast.Center", 0); + if(abcenter == 0) + { + sWorld.SendWorldText(LANG_AUTO_BROADCAST, msg.c_str()); + + sLog.outString("AutoBroadcast: '%s'",msg.c_str()); + } + if(abcenter == 1) + { + WorldPacket data(SMSG_NOTIFICATION, (msg.size()+1)); + data << msg; + sWorld.SendGlobalMessage(&data); + + sLog.outString("AutoBroadcast: '%s'",msg.c_str()); + } + if(abcenter == 2) + { + sWorld.SendWorldText(LANG_AUTO_BROADCAST, msg.c_str()); + + WorldPacket data(SMSG_NOTIFICATION, (msg.size()+1)); + data << msg; + sWorld.SendGlobalMessage(&data); + + sLog.outString("AutoBroadcast: '%s'",msg.c_str()); + } +} + void World::InitResultQueue() { m_resultQueue = new SqlResultQueue; diff --git a/src/game/World.h b/src/game/World.h index 8c2f2df..16c0394 100644 --- a/src/game/World.h +++ b/src/game/World.h @@ -76,7 +76,8 @@ enum WorldTimers WUPDATE_UPTIME = 4, WUPDATE_CORPSES = 5, WUPDATE_EVENTS = 6, - WUPDATE_COUNT = 7 + WUPDATE_AUTOBROADCAST = 7, + WUPDATE_COUNT = 8 }; /// Configuration elements @@ -372,6 +372,7 @@ class World WorldSession* FindSession(uint32 id) const; void AddSession(WorldSession *s); + void SendBroadcast(); bool RemoveSession(uint32 id); /// Get the number of current active sessions void UpdateMaxSessionCounters(); diff --git a/src/mangosd/mangosd.conf.dist.in b/src/mangosd/mangosd.conf.dist.in index de5dbe2..29bbef1 100644 --- a/src/mangosd/mangosd.conf.dist.in +++ b/src/mangosd/mangosd.conf.dist.in @@ -680,6 +680,29 @@ AllowTwoSide.AddFriend = 0 TalentsInspecting = 1 ################################################################################################################### +# AUTO BROADCAST +# +# AutoBroadcast.On +# Enable auto broadcast +# Default: 0 - off +# 1 - on +# +# AutoBroadcast.Center +# Display method +# Default: 0 - announce +# 1 - notify +# 2 - both +# +# AutoBroadcast.Timer +# Timer for auto broadcast +# +################################################################################################################### + +AutoBroadcast.On = 1 +AutoBroadcast.Center = 2 +AutoBroadcast.Timer = 30000 + +################################################################################################################### # CREATURE SETTINGS # # ThreatRadius -- 1.5.6.3[/HIGHLIGHT]
  4. When someone enters the BG queue server will do announce. Something like BG queue announce Warsong Gulch H(1/5) A(0/5) can't remember exactly how it looks like.
  5. create new file caled patch.txt in mangos source folder copy paste patch into the patch.txt, save and then run git am patch.txt Works for me!!
  6. We are not even near to achieve something like that!!
  7. What settings did you use or Does anyone know how far do you see on retail?
  8. On my server this is working! Everyone can se the announce.
  9. Sory there was a error in my patch (and in my repo). Now is fixed. From 71dcce34aeb586a253b4645fe893ebc22a50332e Mon Sep 17 00:00:00 2001 From: Diablox <[email protected]> Date: Thu, 9 Jul 2009 21:42:54 +0200 Subject: PATCH Autobroadcast --- sql/autobroadcast/mangos_mangos_string.sql | 4 ++ sql/autobroadcast/realmd_autobroadcast.sql | 6 ++ src/game/Language.h | 3 + src/game/World.cpp | 72 ++++++++++++++++++++++++++-- src/game/World.h | 3 +- src/mangosd/mangosd.conf.dist.in | 23 +++++++++ 6 files changed, 106 insertions(+), 5 deletions(-) create mode 100644 sql/autobroadcast/mangos_mangos_string.sql create mode 100644 sql/autobroadcast/realmd_autobroadcast.sql diff --git a/sql/autobroadcast/mangos_mangos_string.sql b/sql/autobroadcast/mangos_mangos_string.sql new file mode 100644 index 0000000..39dc1ce --- /dev/null +++ b/sql/autobroadcast/mangos_mangos_string.sql @@ -0,0 +1,4 @@ +DELETE FROM `mangos_string` WHERE `entry` = '1300'; + +INSERT INTO `mangos_string` (`entry`, `content_default`, `content_loc1`, `content_loc2`, `content_loc3`, `content_loc4`, `content_loc5`, `content_loc6`, `content_loc7`, `content_loc8`) VALUES +(1300, '|cffffcc00[server]: |cff00ff00%s|r', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); diff --git a/sql/autobroadcast/realmd_autobroadcast.sql b/sql/autobroadcast/realmd_autobroadcast.sql new file mode 100644 index 0000000..1e1ad4c --- /dev/null +++ b/sql/autobroadcast/realmd_autobroadcast.sql @@ -0,0 +1,6 @@ +CREATE TABLE IF NOT EXISTS `autobroadcast` ( + `id` int(11) NOT NULL auto_increment, + `text` longtext NOT NULL, + `next` int(11) NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 ; diff --git a/src/game/Language.h b/src/game/Language.h index e1c15fb..0643b24 100644 --- a/src/game/Language.h +++ b/src/game/Language.h @@ -773,6 +773,9 @@ enum MangosStrings // FREE IDS 1300-9999 + // Broadcaster + LANG_AUTO_BROADCAST = 1300, + // Use for not-in-offcial-sources patches // 10000-10999 diff --git a/src/game/World.cpp b/src/game/World.cpp index bf20ccf..3651b62 100644 --- a/src/game/World.cpp +++ b/src/game/World.cpp @@ -49,6 +49,7 @@ #include "CreatureAIRegistry.h" #include "Policies/SingletonImp.h" #include "BattleGroundMgr.h" +#include "Language.h" #include "TemporarySummon.h" #include "WaypointMovementGenerator.h" #include "VMapFactory.h" @@ -1398,8 +1399,10 @@ void World::SetInitialWorldSettings() sprintf( isoDate, "%04d-%02d-%02d %02d:%02d:%02d", local.tm_year+1900, local.tm_mon+1, local.tm_mday, local.tm_hour, local.tm_min, local.tm_sec); - loginDatabase.PExecute("INSERT INTO uptime (realmid, starttime, startstring, uptime) VALUES('%u', " UI64FMTD ", '%s', 0)", - realmID, uint64(m_startTime), isoDate); + loginDatabase.PExecute("INSERT INTO uptime (realmid, starttime, startstring, uptime) VALUES('%u', " UI64FMTD ", '%s', 0)", realmID, uint64(m_startTime), isoDate); + + static uint32 abtimer = 0; + abtimer = sConfig.GetIntDefault("AutoBroadcast.Timer", 60000); m_timers[WUPDATE_OBJECTS].SetInterval(0); m_timers[WUPDATE_SESSIONS].SetInterval(0); @@ -1409,7 +1412,7 @@ void World::SetInitialWorldSettings() //Update "uptime" table based on configuration entry in minutes. m_timers[WUPDATE_CORPSES].SetInterval(20*MINUTE*IN_MILISECONDS); //erase corpses every 20 minutes - + m_timers[WUPDATE_AUTOBROADCAST].SetInterval(abtimer); //to set mailtimer to return mails every day between 4 and 5 am //mailtimer is increased when updating auctions //one second is 1000 -(tested on win system) @@ -1448,7 +1451,7 @@ void World::SetInitialWorldSettings() sLog.outString("Starting Game Event system..." ); uint32 nextGameEvent = gameeventmgr.Initialize(); m_timers[WUPDATE_EVENTS].SetInterval(nextGameEvent); //depend on next event - + sLog.outString("Starting Autobroadcast system by Xeross..." ); sLog.outString( "WORLD: World initialized" ); } @@ -1604,6 +1607,16 @@ void World::Update(uint32 diff) m_timers[WUPDATE_EVENTS].SetInterval(nextGameEvent); m_timers[WUPDATE_EVENTS].Reset(); } + static uint32 autobroadcaston = 0; + autobroadcaston = sConfig.GetIntDefault("AutoBroadcast.On", 0); + if(autobroadcaston == 1) + { + if (m_timers[WUPDATE_AUTOBROADCAST].Passed()) + { + m_timers[WUPDATE_AUTOBROADCAST].Reset(); + SendBroadcast(); + } + } /// [/list] ///- Move all creatures with "delayed move" and remove and delete all objects with "delayed remove" @@ -2729,6 +2742,57 @@ void World::ProcessCliCommands() zprint("mangos>"); } +void World::SendBroadcast() +{ + std::string msg; + static int nextid; + + QueryResult *result; + if(nextid != 0) + { + result = loginDatabase.PQuery("SELECT `text`, `next` FROM `autobroadcast` WHERE `id` = %u", nextid); + } + else + { + result = loginDatabase.PQuery("SELECT `text`, `next` FROM `autobroadcast` ORDER BY RAND() LIMIT 1"); + } + + if(!result) + return; + + Field *fields = result->Fetch(); + nextid = fields[1].GetUInt32(); + msg = fields[0].GetString(); + delete result; + + static uint32 abcenter = 0; + abcenter = sConfig.GetIntDefault("AutoBroadcast.Center", 0); + if(abcenter == 0) + { + sWorld.SendWorldText(LANG_AUTO_BROADCAST, msg.c_str()); + + sLog.outString("AutoBroadcast: '%s'",msg.c_str()); + } + if(abcenter == 1) + { + WorldPacket data(SMSG_NOTIFICATION, (msg.size()+1)); + data << msg; + sWorld.SendGlobalMessage(&data); + + sLog.outString("AutoBroadcast: '%s'",msg.c_str()); + } + if(abcenter == 2) + { + sWorld.SendWorldText(LANG_AUTO_BROADCAST, msg.c_str()); + + WorldPacket data(SMSG_NOTIFICATION, (msg.size()+1)); + data << msg; + sWorld.SendGlobalMessage(&data); + + sLog.outString("AutoBroadcast: '%s'",msg.c_str()); + } +} + void World::InitResultQueue() { m_resultQueue = new SqlResultQueue; diff --git a/src/game/World.h b/src/game/World.h index 8c2f2df..16c0394 100644 --- a/src/game/World.h +++ b/src/game/World.h @@ -76,7 +76,8 @@ enum WorldTimers WUPDATE_UPTIME = 4, WUPDATE_CORPSES = 5, WUPDATE_EVENTS = 6, - WUPDATE_COUNT = 7 + WUPDATE_AUTOBROADCAST = 7, + WUPDATE_COUNT = 8 }; /// Configuration elements @@ -372,6 +372,7 @@ class World WorldSession* FindSession(uint32 id) const; void AddSession(WorldSession *s); + void SendBroadcast(); bool RemoveSession(uint32 id); /// Get the number of current active sessions void UpdateMaxSessionCounters(); diff --git a/src/mangosd/mangosd.conf.dist.in b/src/mangosd/mangosd.conf.dist.in index de5dbe2..29bbef1 100644 --- a/src/mangosd/mangosd.conf.dist.in +++ b/src/mangosd/mangosd.conf.dist.in @@ -680,6 +680,29 @@ AllowTwoSide.AddFriend = 0 TalentsInspecting = 1 ################################################################################################################### +# AUTO BROADCAST +# +# AutoBroadcast.On +# Enable auto broadcast +# Default: 0 - off +# 1 - on +# +# AutoBroadcast.Center +# Display method +# Default: 0 - announce +# 1 - notify +# 2 - both +# +# AutoBroadcast.Timer +# Timer for auto broadcast +# +################################################################################################################### + +AutoBroadcast.On = 1 +AutoBroadcast.Center = 2 +AutoBroadcast.Timer = 30000 + +################################################################################################################### # CREATURE SETTINGS # # ThreatRadius -- 1.5.6.3
  10. Try reading the config file!!
  11. Here it is!!! Edit: I finaly created patch file [HIGHLIGHT=diff]From 71dcce34aeb586a253b4645fe893ebc22a50332e Mon Sep 17 00:00:00 2001 From: Diablox <[email protected]> Date: Thu, 9 Jul 2009 21:42:54 +0200 Subject: [PATCH] Autobroadcast --- sql/autobroadcast/mangos_mangos_string.sql | 4 ++ sql/autobroadcast/realmd_autobroadcast.sql | 6 ++ src/game/Language.h | 3 + src/game/World.cpp | 72 ++++++++++++++++++++++++++-- src/game/World.h | 3 +- src/mangosd/mangosd.conf.dist.in | 23 +++++++++ 6 files changed, 106 insertions(+), 5 deletions(-) create mode 100644 sql/autobroadcast/mangos_mangos_string.sql create mode 100644 sql/autobroadcast/realmd_autobroadcast.sql diff --git a/sql/autobroadcast/mangos_mangos_string.sql b/sql/autobroadcast/mangos_mangos_string.sql new file mode 100644 index 0000000..39dc1ce --- /dev/null +++ b/sql/autobroadcast/mangos_mangos_string.sql @@ -0,0 +1,4 @@ +DELETE FROM `mangos_string` WHERE `entry` = '1300'; + +INSERT INTO `mangos_string` (`entry`, `content_default`, `content_loc1`, `content_loc2`, `content_loc3`, `content_loc4`, `content_loc5`, `content_loc6`, `content_loc7`, `content_loc8`) VALUES +(1300, '|cffffcc00[server]: |cff00ff00%s|r', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); diff --git a/sql/autobroadcast/realmd_autobroadcast.sql b/sql/autobroadcast/realmd_autobroadcast.sql new file mode 100644 index 0000000..1e1ad4c --- /dev/null +++ b/sql/autobroadcast/realmd_autobroadcast.sql @@ -0,0 +1,6 @@ +CREATE TABLE IF NOT EXISTS `autobroadcast` ( + `id` int(11) NOT NULL auto_increment, + `text` longtext NOT NULL, + `next` int(11) NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 ; diff --git a/src/game/Language.h b/src/game/Language.h index e1c15fb..0643b24 100644 --- a/src/game/Language.h +++ b/src/game/Language.h @@ -773,6 +773,9 @@ enum MangosStrings // FREE IDS 1300-9999 + // Broadcaster + LANG_AUTO_BROADCAST = 1300, + // Use for not-in-offcial-sources patches // 10000-10999 diff --git a/src/game/World.cpp b/src/game/World.cpp index bf20ccf..3651b62 100644 --- a/src/game/World.cpp +++ b/src/game/World.cpp @@ -49,6 +49,7 @@ #include "CreatureAIRegistry.h" #include "Policies/SingletonImp.h" #include "BattleGroundMgr.h" +#include "Language.h" #include "TemporarySummon.h" #include "WaypointMovementGenerator.h" #include "VMapFactory.h" @@ -1398,8 +1399,10 @@ void World::SetInitialWorldSettings() sprintf( isoDate, "%04d-%02d-%02d %02d:%02d:%02d", local.tm_year+1900, local.tm_mon+1, local.tm_mday, local.tm_hour, local.tm_min, local.tm_sec); - loginDatabase.PExecute("INSERT INTO uptime (realmid, starttime, startstring, uptime) VALUES('%u', " UI64FMTD ", '%s', 0)", - realmID, uint64(m_startTime), isoDate); + loginDatabase.PExecute("INSERT INTO uptime (realmid, starttime, startstring, uptime) VALUES('%u', " UI64FMTD ", '%s', 0)", realmID, uint64(m_startTime), isoDate); + + static uint32 abtimer = 0; + abtimer = sConfig.GetIntDefault("AutoBroadcast.Timer", 60000); m_timers[WUPDATE_OBJECTS].SetInterval(0); m_timers[WUPDATE_SESSIONS].SetInterval(0); @@ -1409,7 +1412,7 @@ void World::SetInitialWorldSettings() //Update "uptime" table based on configuration entry in minutes. m_timers[WUPDATE_CORPSES].SetInterval(20*MINUTE*IN_MILISECONDS); //erase corpses every 20 minutes - + m_timers[WUPDATE_AUTOBROADCAST].SetInterval(abtimer); //to set mailtimer to return mails every day between 4 and 5 am //mailtimer is increased when updating auctions //one second is 1000 -(tested on win system) @@ -1448,7 +1451,7 @@ void World::SetInitialWorldSettings() sLog.outString("Starting Game Event system..." ); uint32 nextGameEvent = gameeventmgr.Initialize(); m_timers[WUPDATE_EVENTS].SetInterval(nextGameEvent); //depend on next event - + sLog.outString("Starting Autobroadcast system by Xeross..." ); sLog.outString( "WORLD: World initialized" ); } @@ -1604,6 +1607,16 @@ void World::Update(uint32 diff) m_timers[WUPDATE_EVENTS].SetInterval(nextGameEvent); m_timers[WUPDATE_EVENTS].Reset(); } + static uint32 autobroadcaston = 0; + autobroadcaston = sConfig.GetIntDefault("AutoBroadcast.On", 0); + if(autobroadcaston == 1) + { + if (m_timers[WUPDATE_AUTOBROADCAST].Passed()) + { + m_timers[WUPDATE_AUTOBROADCAST].Reset(); + SendBroadcast(); + } + } /// ///- Move all creatures with "delayed move" and remove and delete all objects with "delayed remove" @@ -2729,6 +2742,57 @@ void World::ProcessCliCommands() zprint("mangos>"); } +void World::SendBroadcast() +{ + std::string msg; + static int nextid; + + QueryResult *result; + if(nextid != 0) + { + result = loginDatabase.PQuery("SELECT `text`, `next` FROM `autobroadcast` WHERE `id` = %u", nextid); + } + else + { + result = loginDatabase.PQuery("SELECT `text`, `next` FROM `autobroadcast` ORDER BY RAND() LIMIT 1"); + } + + if(!result) + return; + + Field *fields = result->Fetch(); + nextid = fields[1].GetUInt32(); + msg = fields[0].GetString(); + delete result; + + static uint32 abcenter = 0; + abcenter = sConfig.GetIntDefault("AutoBroadcast.Center", 0); + if(abcenter == 0) + { + sWorld.SendWorldText(LANG_AUTO_BROADCAST, msg.c_str()); + + sLog.outString("AutoBroadcast: '%s'",msg.c_str()); + } + if(abcenter == 1) + { + WorldPacket data(SMSG_NOTIFICATION, (msg.size()+1)); + data << msg; + sWorld.SendGlobalMessage(&data); + + sLog.outString("AutoBroadcast: '%s'",msg.c_str()); + } + if(abcenter == 2) + { + sWorld.SendWorldText(LANG_AUTO_BROADCAST, msg.c_str()); + + WorldPacket data(SMSG_NOTIFICATION, (msg.size()+1)); + data << msg; + sWorld.SendGlobalMessage(&data); + + sLog.outString("AutoBroadcast: '%s'",msg.c_str()); + } +} + void World::InitResultQueue() { m_resultQueue = new SqlResultQueue; diff --git a/src/game/World.h b/src/game/World.h index 8c2f2df..16c0394 100644 --- a/src/game/World.h +++ b/src/game/World.h @@ -76,7 +76,8 @@ enum WorldTimers WUPDATE_UPTIME = 4, WUPDATE_CORPSES = 5, WUPDATE_EVENTS = 6, - WUPDATE_COUNT = 7 + WUPDATE_AUTOBROADCAST = 7, + WUPDATE_COUNT = 8 }; /// Configuration elements @@ -372,6 +372,7 @@ class World WorldSession* FindSession(uint32 id) const; void AddSession(WorldSession *s); + void SendBroadcast(); bool RemoveSession(uint32 id); /// Get the number of current active sessions void UpdateMaxSessionCounters(); diff --git a/src/mangosd/mangosd.conf.dist.in b/src/mangosd/mangosd.conf.dist.in index de5dbe2..29bbef1 100644 --- a/src/mangosd/mangosd.conf.dist.in +++ b/src/mangosd/mangosd.conf.dist.in @@ -680,6 +680,29 @@ AllowTwoSide.AddFriend = 0 TalentsInspecting = 1 ################################################################################################################### +# AUTO BROADCAST +# +# AutoBroadcast.On +# Enable auto broadcast +# Default: 0 - off +# 1 - on +# +# AutoBroadcast.Center +# Display method +# Default: 0 - announce +# 1 - notify +# 2 - both +# +# AutoBroadcast.Timer +# Timer for auto broadcast +# +################################################################################################################### + +AutoBroadcast.On = 1 +AutoBroadcast.Center = 2 +AutoBroadcast.Timer = 30000 + +################################################################################################################### # CREATURE SETTINGS # # ThreatRadius -- 1.5.6.3 [/HIGHLIGHT]
  12. Actualy Paradox version is still working whit MaNGOS se there is time to make this one working.
  13. Thats why i created a git branch. Im still dont know hot to create patch. I will try today if i make it i will post it here :D
  14. Yes! But i think that will also affect BG and you can be stuck for 2 min waiting to reivive
  15. mangos DB game_graveyard_zone! You can empty the table.
  16. Ofc the credits are yours!! The patch is still in your thread
  17. Look at mangos DB battleground_template table! The max and min lvl fields is what you are looking for.
  18. What exactly?? Vendor showing only yours class gear??
  19. No it only req to know SQL and ofc to know where to put what!!
  20. Ok i will give you a example whit S4 vendor!! You do the rest http://paste2.org/p/307074
  21. hehe You must add all the patches to the source and compile! If you add one by one you will get core whit just one patch not all of them.
  22. I'm thinkin you dont know how to compile!! But i will try one more time Create new folder called mangos. Right clik on mangos folder -> Git Bash Here Copy paste next: git clone git://github.com/mangos/mangos.git git pull git://github.com/Diablox/mangos.git autobroadcast git pull git://github.com/Naicisum/mangos.git ahbot
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. Privacy Policy Terms of Use