kich0
Members-
Posts
144 -
Joined
-
Last visited
-
Donations
0.00 GBP
Content Type
Profiles
Bug Tracker
Wiki
Release Notes
Forums
Downloads
Blogs
Events
Everything posted by kich0
-
[Patch] Auto Announcer(With Next ID)
kich0 replied to Auntie Mangos's topic in OldCore modifications
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. -
would be usefull to be able to read tickets from console...not sure if possible tho...
-
[fix][7700] ACHIEVEMENT_CRITERIA_TYPE_EARN_HONORABLE_KILL
kich0 replied to a topic in ... acceptedOld
even mighty bl1zz make mistakes -
[fix][7700] ACHIEVEMENT_CRITERIA_TYPE_EARN_HONORABLE_KILL
kich0 replied to a topic in ... acceptedOld
yeah typo -> HONORBALE -> HONORABLE -
Repacks are unsupported by MaNGOS and can contain malicious software...It is highly recommended to compile your own binaries.
-
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
-
would be usefull to mention SD2 in the guide aswell...
-
please stay on topic...this is not a topic to discuss Blizz's actions...
-
try to avoid these kind of questions...it depends on too much things..(OS,CPU,MaNGOS rev, amount of players.....)
-
you are free to try WotLK development repository however its not officially supported
-
MaNGOS does not support running public servers and it does not modify any game content
-
as far as I know there aren't any disadvantages in using this...
-
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
-
try (re)installing .NET framework
-
Telling us your MaNGOS rev might help....anyway You probably missed sql update
-
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
-
arrai congratz on dev pos
-
Congratz and Welcome
-
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
Contact Us
To contact us
click here
You can also email us at [email protected]
Privacy Policy | Terms & Conditions
You can also email us at [email protected]
Privacy Policy | Terms & Conditions
Copyright © getMaNGOS. All rights Reserved.
This website is in no way associated with or endorsed by Blizzard Entertainment®
This website is in no way associated with or endorsed by Blizzard Entertainment®