Jump to content

kich0

Members
  • Posts

    144
  • Joined

  • Last visited

  • Donations

    0.00 GBP 

Everything posted by kich0

  1. here is updated patch diff --git a/src/game/World.cpp b/src/game/World.cpp index abf002d..daabc68 100644 --- a/src/game/World.cpp +++ b/src/game/World.cpp @@ -1367,8 +1367,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', " I64FMTD ", '%s', 0)", - realmID, uint64(m_startTime), isoDate); + loginDatabase.PExecute("INSERT INTO uptime (realmid, starttime, startstring, uptime) VALUES('%u', " I64FMTD ", '%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); @@ -1378,6 +1378,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 @@ -1418,6 +1418,8 @@ void World::SetInitialWorldSettings() uint32 nextGameEvent = gameeventmgr.Initialize(); m_timers[WUPDATE_EVENTS].SetInterval(nextGameEvent); //depend on next event + sLog.outString("Starting Autobroadcast system..." ); + sLog.outString( "WORLD: World initialized" ); } @@ -1574,6 +1574,17 @@ void World::Update(uint32 diff) 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" MapManager::Instance().DoDelayedMovesAndRemoves(); @@ -2729,6 +2729,56 @@ 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 3e4b24c..6b41cd3 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 @@ -366,6 +366,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.conf.dist b/src/mangosd/mangosd.conf.dist index 3e4b24c..6b41cd3 100644 --- a/src/mangosd/mangosd.conf.dist.in +++ b/src/mangosd/mangosd.conf.dist.in @@ -1250,6 +1250,29 @@ Network.OutUBuff = 65536 Network.TcpNodelay = 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 + +################################################################################################################### # CONSOLE AND REMOTE ACCESS # # Console.Enable diff --git a/src/game/Language.h b/src/game/Language.h index 0c20968..6b27f6e 100644 --- a/src/game/Language.h +++ b/src/game/Language.h @@ -723,6 +723,8 @@ enum MangosStrings // FREE IDS 1300-9999 + // Broadcaster + LANG_AUTO_BROADCAST = 1300, // Use for not-in-offcial-sources patches // 10000-10999 the sql (execute on realmd DB] 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 ; the sql (execute on mangos DB] 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); Notice: not tested.
  2. would be usefull to be able to read tickets from console...not sure if possible tho...
  3. Repacks are unsupported by MaNGOS and can contain malicious software...It is highly recommended to compile your own binaries.
  4. Ok I've done a 2 mins rewrite/update to newest version...try this version...I didn't tested it...but it should work (aldo I'm a bit rusty) http://filebeam.com/adf17893cebd3965ea98e33796343449
  5. would be usefull to mention SD2 in the guide aswell...
  6. please stay on topic...this is not a topic to discuss Blizz's actions...
  7. try to avoid these kind of questions...it depends on too much things..(OS,CPU,MaNGOS rev, amount of players.....)
  8. you are free to try WotLK development repository however its not officially supported
  9. MaNGOS does not support running public servers and it does not modify any game content
  10. as far as I know there aren't any disadvantages in using this...
  11. ACE is "new method" for Netcode Describe your problem more clearly...also better place would be installation topic when its done... http://github.com/mangos/mangos/tree/master MaNGOS changed to GIT -> check link above
  12. try (re)installing .NET framework
  13. Telling us your MaNGOS rev might help....anyway You probably missed sql update
  14. on Windows right click on your MaNGOS SVN folder you check out -> Tortoise SVN -> Apply Patch -> when box pops up Right Click then Patch All
  15. make sure u don't confuse entry with guid anyway u can always delete it from database , just find guid in creature table and remove go
×
×
  • 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