Forusim
Members-
Posts
190 -
Joined
-
Last visited
Never -
Donations
0.00 GBP
Content Type
Profiles
Bug Tracker
Wiki
Release Notes
Forums
Downloads
Blogs
Events
Everything posted by Forusim
-
Still using: Rev 9134 UDB 386 AnnouncerPatch SD2-1542 ACID3.0.2 WoW3.2.2a with 200-300 players and no lags/less crashes.
-
this one too
-
[patch] Power Word: Shield and Divine Aegis stacking
Forusim replied to Auntie Mangos's topic in ... under reviewOld
time for bump -
1. Not 100% sure, but imo this works 2. Pretty sure the fear and disorient reduction works. Tested with rogue and priest.
-
It´s indeed a core bug, but this workarround works good for me. UPDATE quest_template SET RewSpell= '66747', RewSpellCast= '66747' WHERE entry IN (14100, 14111);
-
Bump, what about void Aura::HandleModMechanicImmunity(bool apply, bool /*Real*/)?? Same as Hunter http://www.wowhead.com/?spell=34692, am i right?
-
Try to update to actual revision. But the arenainvite was fixed long time ago...
-
Current instant dmg is 8%. On 3.3.2 it should be 30% (http://www.wowhead.com/?spell=63627) If you look in the sourcecode you see it directly. int32 damagefromticks = SpellDamageBonus(pVictim, procSpell, (leachAura->GetModifier()->m_amount* GetSpellAuraMaxTicks(procSpell)), DOT); basepoints0 = damagefromticks * triggerAmount / 100; triggered_spell_id = 63675; break; From my point of view it should looks like: basepoints0 = damagefromticks * 30 / 100; Would be nice, if some1 could confirm my idea.
-
Nice patch, which should be implemented to mangos imo. This works on 9312 for me. diff --git a/src/game/Language.h b/src/game/Language.h index 9f9f7af..857d6b9 100644 --- a/src/game/Language.h +++ b/src/game/Language.h @@ -778,6 +778,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 ca23473..ab5edf4 100644 --- a/src/game/World.cpp +++ b/src/game/World.cpp @@ -62,6 +62,7 @@ #include "WaypointManager.h" #include "GMTicketMgr.h" #include "Util.h" +#include "Language.h" INSTANTIATE_SINGLETON_1( World ); @@ -95,6 +96,9 @@ World::World() m_defaultDbcLocale = LOCALE_enUS; m_availableDbcLocaleMask = 0; + + // Initialize broadcaster nextId + m_nextId = 0; } /// World destructor @@ -1082,6 +1086,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 + m_configs[CONFIG_BROADCAST_ENABLED] = sConfig.GetBoolDefault("Broadcast.Enabled", true); + m_configs[CONFIG_BROADCAST_INTERVAL] = sConfig.GetIntDefault("Broadcast.Interval", 150000); + m_configs[CONFIG_BROADCAST_POSITION] = sConfig.GetIntDefault("Broadcast.Position", 1); } /// Initialize the World @@ -1491,6 +1500,9 @@ void World::SetInitialWorldSettings() uint32 nextGameEvent = gameeventmgr.Initialize(); m_timers[WUPDATE_EVENTS].SetInterval(nextGameEvent); //depend on next event + sLog.outString("Starting Autobroadcast system..." ); + m_timers[WUPDATE_BROADCAST].SetInterval(m_configs[CONFIG_BROADCAST_INTERVAL]); + sLog.outString( "WORLD: World initialized" ); } @@ -1643,6 +1655,13 @@ void World::Update(uint32 diff) m_timers[WUPDATE_EVENTS].Reset(); } + ///- Process autobroadcaster + if(getConfig(CONFIG_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" MapManager::Instance().DoDelayedMovesAndRemoves(); @@ -2176,3 +2195,42 @@ void World::LoadDBVersion() if(m_CreatureEventAIVersion.empty()) m_CreatureEventAIVersion = "Unknown creature EventAI."; } + +/// 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_BROADCAST_POSITION) & BROADCAST_LOCATION_CHAT) == BROADCAST_LOCATION_CHAT) + sWorld.SendWorldText(LANG_AUTO_BROADCAST, message.c_str()); + if((getConfig(CONFIG_BROADCAST_POSITION) & BROADCAST_LOCATION_TOP) == BROADCAST_LOCATION_TOP) + { + WorldPacket data(SMSG_NOTIFICATION, (message.size()+1)); + data << message; + sWorld.SendGlobalMessage(&data); + } + + if((getConfig(CONFIG_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()); +} diff --git a/src/game/World.h b/src/game/World.h index 74c897a..7a58e59 100644 --- a/src/game/World.h +++ b/src/game/World.h @@ -77,7 +77,8 @@ enum WorldTimers WUPDATE_UPTIME = 4, WUPDATE_CORPSES = 5, WUPDATE_EVENTS = 6, - WUPDATE_COUNT = 7 + WUPDATE_BROADCAST = 7, + WUPDATE_COUNT = 8 }; /// Configuration elements @@ -222,6 +223,12 @@ enum WorldConfigs CONFIG_TIMERBAR_BREATH_MAX, CONFIG_TIMERBAR_FIRE_GMLEVEL, CONFIG_TIMERBAR_FIRE_MAX, + + // Broadcaster + CONFIG_BROADCAST_ENABLED, + CONFIG_BROADCAST_INTERVAL, + CONFIG_BROADCAST_POSITION, + CONFIG_VALUE_COUNT }; @@ -334,6 +341,13 @@ enum RealmZone REALM_ZONE_CN9 = 29 // 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 = unit, target=any, datalong ( 0=say, 1=whisper, 2=yell, 3=emote text) #define SCRIPT_COMMAND_EMOTE 1 // source = unit, datalong = anim_id @@ -597,6 +611,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 479a6ce..705e28e 100644 --- a/src/mangosd/mangosd.conf.dist.in +++ b/src/mangosd/mangosd.conf.dist.in @@ -1374,3 +1374,27 @@ Ra.IP = 0.0.0.0 Ra.Port = 3443 Ra.MinLevel = 3 Ra.Secure = 1 + +################################################################################################################### +# Automatic Broadcaster +# +# AutoBroadcast.Enabled +# Enable/Disable the broadcaster +# Default: 0 - off +# 1 - on +# +# AutoBroadcast.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) +# +# AutoBroadcast.Interval +# Interval at which to broadcast messages +# +################################################################################################################### + +AutoBroadcast.Enabled = 1 +AutoBroadcast.Position = 1 +AutoBroadcast.Interval = 30000 +
-
We run [9134] MaNGOS 0.15 and UDB 386 on our server and have to restart our server because of buggy infinite instance id´s. Otherwise it would run for days without a crash and 200-300 players.
-
Bump for master repo
-
Works since 300 Revisions?
-
I can confirm, that any libral modifieng spellpower of flashlight will consume Infusion of Light instantly.
-
I had same issue on my server with the alliance spirit guide in warsong. The problem was missing npcflag (32768) for that spirit guide. Check this in your database.
-
[8990][Bug] Vampiric touch deals insane damage on dispell
Forusim replied to a topic in OldBug reports
I don´t get, where this multiplicator comes from bp0 = 8 * caster->SpellDamageBonus(this, spellEntry, bp0, DOT, 1); On my server (Rev. 9134) http://www.wowhead.com/?spell=34917 does about 8k dispelldmg at 1100 spellpower. Yesterday i just changed this line to: bp0 = 1 * caster->SpellDamageBonus(this, spellEntry, bp0, DOT, 1); And voilà it does only 1k damage on dispell. Which is equal to the displayed dmg in tooltip for rank 3 (http://www.wowhead.com/?spell=34917). So any ideas? Otherwise i have to change it manualy for my life server.
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®