presto
-
Posts
16 -
Joined
-
Last visited
Never -
Donations
0.00 GBP
Content Type
Profiles
Bug Tracker
Wiki
Release Notes
Forums
Downloads
Blogs
Events
Posts posted by presto
-
-
This patch should insert the SQL file and options mangos.config.
file mangos.config
Automatic Broadcaster+#
+# Broadcast.Enabled
+# Enable/Disable the broadcaster
+# Default: 0 - off
+# 1 - on
+#
+# Broadcast.Position
+# Where to display the message (Just add the values for multiple)
+# Default: 1 - In the in-game chat window
+# 2 - In the top-middle of the screen
+# 4 - In the announcements IRC channel (if mangchat is installed)
+#
+# Broadcast.Interval
+# Interval at which to broadcast messages in milliseconds
+#
+###################################################################################################################
+
+Broadcast.Enabled = 1
+Broadcast.Position = 1
+Broadcast.Interval = 3600000
Not inserted! this correct?
-
Could dispobinilizar this patch with changes in the current version that works?
I'm sorry for bad english.
thx.
-
Try this one, worked for me with 10018:
diff --git a/src/game/Language.h b/src/game/Language.h index 38ec346..d968239 100644 --- a/src/game/Language.h +++ b/src/game/Language.h @@ -853,6 +853,8 @@ enum MangosStrings // 10000-10999 // Use for custom patches 11000-11999 + // Broadcaster + LANG_AUTO_BROADCAST = 11000, // NOT RESERVED IDS 12000-1999999999 // `db_script_string` table index 2000000000-2000009999 (MIN_DB_SCRIPT_STRING_ID-MAX_DB_SCRIPT_STRING_ID) diff --git a/src/game/World.cpp b/src/game/World.cpp index abf273d..28b3d27 100644 --- a/src/game/World.cpp +++ b/src/game/World.cpp @@ -61,6 +61,7 @@ #include "GMTicketMgr.h" #include "Util.h" #include "CharacterDatabaseCleaner.h" +#include "Language.h" INSTANTIATE_SINGLETON_1( World ); @@ -95,12 +96,15 @@ World::World() m_defaultDbcLocale = LOCALE_enUS; m_availableDbcLocaleMask = 0; + + // Initialize broadcaster nextId + m_nextId = 0; for(int i = 0; i < CONFIG_UINT32_VALUE_COUNT; ++i) m_configUint32Values[i] = 0; for(int i = 0; i < CONFIG_INT32_VALUE_COUNT; ++i) - m_configInt32Values[i] = 0; + /*m_configInt32Values[i] = 0;*/ for(int i = 0; i < CONFIG_FLOAT_VALUE_COUNT; ++i) m_configFloatValues[i] = 0.0f; @@ -858,6 +862,11 @@ void World::LoadConfigSettings(bool reload) sLog.outString( "WORLD: VMap support included. LineOfSight:%i, getHeight:%i",enableLOS, enableHeight); sLog.outString( "WORLD: VMap data directory is: %svmaps",m_dataPath.c_str()); sLog.outString( "WORLD: VMap config keys are: vmap.enableLOS, vmap.enableHeight, vmap.ignoreMapIds, vmap.ignoreSpellIds"); + + // Broadcaster + setConfig(CONFIG_BOOL_BROADCAST_ENABLED, "Broadcast.Enabled", true); + setConfig(CONFIG_UINT32_BROADCAST_INTERVAL, "Broadcast.Interval", 150000); + setConfig(CONFIG_UINT32_BROADCAST_POSITION, "Broadcast.Position", 1); } /// Initialize the World @@ -1292,6 +1301,9 @@ void World::SetInitialWorldSettings() // Delete all characters which have been deleted X days before Player::DeleteOldCharacters(); + sLog.outString("Starting Autobroadcast system..." ); + m_timers[WUPDATE_BROADCAST].SetInterval(m_configUint32Values[CONFIG_UINT32_BROADCAST_INTERVAL]); + sLog.outString( "WORLD: World initialized" ); uint32 uStartInterval = getMSTimeDiff(uStartTime, getMSTime()); @@ -1458,6 +1470,13 @@ void World::Update(uint32 diff) m_timers[WUPDATE_EVENTS].Reset(); } + ///- Process autobroadcaster + if(getConfig(CONFIG_BOOL_BROADCAST_ENABLED) && m_timers[WUPDATE_BROADCAST].Passed()) + { + m_timers[WUPDATE_BROADCAST].Reset(); + SendBroadcast(); + } + /// [/list] ///- Move all creatures with "delayed move" and remove and delete all objects with "delayed remove" sMapMgr.RemoveAllObjectsInRemoveList(); @@ -2193,3 +2212,42 @@ bool World::configNoReload(bool reload, eConfigBoolValues index, char const* fie return false; } + +/// Broadcast a message +void World::SendBroadcast() +{ + std::string message; + + QueryResult *result; + if(m_nextId > 0) + result = loginDatabase.PQuery("SELECT `text`, `next` FROM `broadcast_strings` WHERE `id` = %u;", m_nextId); + else + result = loginDatabase.PQuery("SELECT `text`, `next` FROM `broadcast_strings` ORDER BY RAND();", m_nextId); + + if(!result) + return; + + Field *fields = result->Fetch(); + m_nextId = fields[1].GetUInt32(); + message = fields[0].GetString(); + + delete result, fields; + + if((getConfig(CONFIG_UINT32_BROADCAST_POSITION) & BROADCAST_LOCATION_CHAT) == BROADCAST_LOCATION_CHAT) + sWorld.SendWorldText(LANG_AUTO_BROADCAST, message.c_str()); + if((getConfig(CONFIG_UINT32_BROADCAST_POSITION) & BROADCAST_LOCATION_TOP) == BROADCAST_LOCATION_TOP) + { + WorldPacket data(SMSG_NOTIFICATION, (message.size()+1)); + data << message; + sWorld.SendGlobalMessage(&data); + } + + if((getConfig(CONFIG_UINT32_BROADCAST_POSITION) & BROADCAST_LOCATION_IRC) == BROADCAST_LOCATION_IRC) +#ifdef MANGCHAT_INSTALLED + sIRC.Send_IRC_Channel(sIRC._irc_chan[sIRC.anchn].c_str(), "\\00311[server]: " + message); +#else + sLog.outError("AutoBroadcaster: You have IRC broadcasting enabled but we couldn't detect mangchat"); +#endif + + sLog.outString("AutoBroadcast: '%s'",message.c_str()); +} \\ No newline at end of file diff --git a/src/game/World.h b/src/game/World.h index b289b91..26c937c 100644 --- a/src/game/World.h +++ b/src/game/World.h @@ -78,7 +78,8 @@ enum WorldTimers WUPDATE_CORPSES = 5, WUPDATE_EVENTS = 6, WUPDATE_DELETECHARS = 7, - WUPDATE_COUNT = 8 + WUPDATE_BROADCAST = 8, + WUPDATE_COUNT = 9 }; /// Configuration elements @@ -181,6 +182,8 @@ enum eConfigUInt32Values CONFIG_UINT32_CHARDELETE_KEEP_DAYS, CONFIG_UINT32_CHARDELETE_METHOD, CONFIG_UINT32_CHARDELETE_MIN_LEVEL, + CONFIG_UINT32_BROADCAST_INTERVAL, // Broadcaster + CONFIG_UINT32_BROADCAST_POSITION, // Broadcaster CONFIG_UINT32_VALUE_COUNT }; @@ -313,6 +316,7 @@ enum eConfigBoolValues CONFIG_BOOL_KICK_PLAYER_ON_BAD_PACKET, CONFIG_BOOL_STATS_SAVE_ONLY_ON_LOGOUT, CONFIG_BOOL_CLEAN_CHARACTER_DB, + CONFIG_BOOL_BROADCAST_ENABLED, // Broadcaster CONFIG_BOOL_VALUE_COUNT }; @@ -386,6 +390,13 @@ enum RealmZone REALM_ZONE_CN5_8 = 37 // basic-Latin at create, any at login }; +enum BroadcastLocation +{ + BROADCAST_LOCATION_CHAT = 1, + BROADCAST_LOCATION_TOP = 2, + BROADCAST_LOCATION_IRC = 4, +}; + // DB scripting commands #define SCRIPT_COMMAND_TALK 0 // source = WorldObject, target = any/none, datalong (see enum ChatType for supported CHAT_TYPE_'s) // datalong2 = creature entry (searching for a buddy, closest to source), datalong3 = creature search radius @@ -685,6 +696,10 @@ class World std::string m_DBVersion; std::string m_CreatureEventAIVersion; std::string m_ScriptsVersion; + + //Broadcaster + uint32 m_nextId; + void SendBroadcast(); }; extern uint32 realmID; diff --git a/src/mangosd/mangosd.conf.dist.in b/src/mangosd/mangosd.conf.dist.in index 673ed2a..31ae633 100644 --- a/src/mangosd/mangosd.conf.dist.in +++ b/src/mangosd/mangosd.conf.dist.in @@ -1508,3 +1508,26 @@ SOAP.Port = 7878 CharDelete.Method = 0 CharDelete.MinLevel = 0 CharDelete.KeepDays = 30 + +################################################################################################################### +# Automatic Broadcaster +# +# Broadcast.Enabled +# Enable/Disable the broadcaster +# Default: 0 - off +# 1 - on +# +# Broadcast.Position +# Where to display the message (Just add the values for multiple) +# Default: 1 - In the in-game chat window +# 2 - In the top-middle of the screen +# 4 - In the announcements IRC channel (if mangchat is installed) +# +# Broadcast.Interval +# Interval at which to broadcast messages in milliseconds +# +################################################################################################################### + +Broadcast.Enabled = 1 +Broadcast.Position = 1 +Broadcast.Interval = 3600000
Files were inserted without conflict!
Now I'll compile them and test.
I know I'm not in the right place, but someone has mirror image patch that works
Thank you very much!
I hope you understand my translation.
I'm sorry for bad english
-
-
Correct! I can not apply the patch in review 9890, so I wonder if it is to be applied without conflict (even if applied manually) or if you like me to explain how to download a review before 9890. Download a review of the core corresponding to the April 1, exactly equal to the last posting of the patch.
Thanks again.
sorry for my english.
I do not understand much of the language and disposal of google translation tools.
I'm sorry again.
-
Hi Xeross, I want to use your patch, I would use it in version 9890, but as seen before in this topic there as it applies in later versions, I wonder how to download the version that the patch is (1 - April) so I can implement and update.
I'm sorry for my english
-
So post your question in that topic. You're more likely to get a proper response if you stick to the forum rules. Creating a new topic for a core mod that already has a topic will get plenty of attention... from a forum moderator locking this topic and telling you the same as I have. Please use some common sense. Read the rules and guidelines for using the MaNGOS forums.
We'd love to discuss your question, if you'll post it in the right place.
Sorry, but as I've said before I have difficulty with English.
with this difficulty, I post in the wrong place, it was not my intention.
Again personal apology for the mistake OK.
UnkleNuke understand that you should have more patience, did not want to cause trouble.
Again sorry for the mistake and for my English
-
someone has autoanoncer / autobroadcast updated?
Rev.9702
Patch of Xeross with this conflict....
sorry for my english
-
What role does SOAP?
Good to activate it in CONSOLE, REMOTE ACCESS AND SOAP?
please explain WHAT makes SOAP
Sorry for English
-
-
Hello again sorry vladex inconvenience.
Please take this doubt
If I have the patch Druid-tree-aura.patch druid.patch saved as c:
How should I proceed?
Mangos folder> Git Bash Here> patch-p1 <druid.patch
This correct? No need to say that the patch is in C:?
If yes. How would the command?
patch-p1 <c: \\ druid.patch
Sorry for English.
lished in the hope I have understood my english
-
Thanks for your help!
Having doubts, I post again?
Sorry for English.
-
How to add file. Patch?
I know add in git pull, I want to learn how to add files. Patch!
Please explain how to do.
Sorry for English.
-
How do the skill work Shadowdancer?
In the repository insider is working, but would like to use the official repository Mangos, with modification to work Shadowdancer, even if not 100%.
repository> http://github.com/insider42/mangos/
Sorry for my English.
Thanks
-
I added it (manually) and it didnt gave any error.
Try adding it again.
========== Build: 11 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========
luck
edit: btw, i tested it, it "works" but not like it should be.
When you enter shadow dance, you are NOT stealthed (which is ok) but you have like... stealth movements, (while walking, etc)
but yeah, it kinda works.
As I will add it manually? Can someone guide me? plz
sorry for English
Auto Announcer with NextID and MangChat support
in OldCore modifications
Posted
Thanks again.
I inserted at the beginning of the code
but now it worked perfectly.
For some reason my old Code "Broadcast" was with the Table (broadcast_realmd) as "Autobroadcast.'' Already changed to" broadcast_strings.
Very many thanks for your help.
I hope you understand my translation.
I'm sorry for bad english