Jump to content

Auto Announcer with NextID and MangChat support


Guest xeross155

Recommended Posts

  • Replies 106
  • Created
  • Last Reply

Top Posters In This Topic

Don't take this the wrong way, as I'm not intending to make this sound rude at all, but wouldn't it be wiser to update the patch, instead of having to jump through a couple of hoops to apply it?

Regardless, I appreciate the work you have put into this, and I await your decision on my statement.

Link to comment
Share on other sites

Wisdom has nothing to do with it. All that updating the patch will do is make it more convenient for the unwashed masses to add this mod to their cores.

Unlike those who can't be bothered to go through those two extra ( and easy ) steps, xeross has many projects he must maintain and develop including taking on the responsibility of fixing the abandoned Auctionhouse Bot.

As such, I'm sure you'll understand that it's more than reasonable for him to expect people to make some effort to help themselves.

Link to comment
Share on other sites

Oh, of course. He puts in a lot of work he doesn't have to do at all. I'm no good at this stuff, so I appreciate any work that is done on this, and his other projects, some of which I do also use. I'm more than happy to either wait until Xeross155 has time to give this an update, or keep practicing my skills so that I can myself.

Link to comment
Share on other sites

Don't take this the wrong way, as I'm not intending to make this sound rude at all, but wouldn't it be wiser to update the patch, instead of having to jump through a couple of hoops to apply it?

Regardless, I appreciate the work you have put into this, and I await your decision on my statement.

I understand it might seem hard if a patch does not apply but manually applying it isn't hard. And another thing you could do is revert MaNGOS back to the same version as my patch, apply, and then update.

I understand you want an updated patch, but updating the patches is just an unnecessary timesink for me, unless you get compile errors I won't update it.

:)

After a lot of messing around I got it working for me, I'm going to test that multi-realm crash again later on.

Thanks, hope it has resolved itself, else it's time for some digging

Link to comment
Share on other sites

  • 4 weeks later...

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

Link to comment
Share on other sites

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

If I understand correctly the patch doesn't apply any more and you want me to update it ?

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

I dont understand how interval works. Is it miliseconds? When i set it to 60 its may be 60 miliseconds but if i set more, for example 100, announce doesnt appear. For bigger values there is also no announce.

Edit: Its some kind of lotery sometimes it works sometimes not. I just set on 60 and announce doesnt appear too.

I have no idea why it happens

Link to comment
Share on other sites

Allthough the broadcaster intervall would really make sence in minutes.

Why should you need spam each millisecond? :D

Xeross are working on ingame commands atm? :)

Thanks!

Currently not working on the broadcaster, I understand you want the in-game commands but until I have some time again to work on it I will just keep the patch updated.

Link to comment
Share on other sites

Well, I have tested it, I set interval 74 and announce is about one in 1 minute. It cant be miliseconds nor seconds

Error isn't related it was a rather minor thing.

And try setting the interval to 60000 and see how many times it occurs, I have it set to 60000 on my test server and 300000 on my main server.

Link to comment
Share on other sites

Xeross Hi, I want to use your patch autoanouncer but I can not install.

Look at the picture and help me please.

broadcaster.png

broadb.png

If possible place the patch Updated file.patch, so I can add it manually.

Again I ask a thousand excuses for bad English.

Sorry for bad English.

I hope you understand my translation.

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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?

Link to comment
Share on other sites

My patch does not contain the SQL files, since everyone should already have them, if he used broadcaster before.

Here the SQL:

INSERT INTO `mangos_string` (`entry`, `content_default`, `content_loc1`, `content_loc2`, `content_loc3`, `content_loc4`, `content_loc5`, `content_loc6`, `content_loc7`, `content_loc8`) VALUES 
(11000, '|cffffcc00[server]: |cff00ff00%s|r', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);

CREATE TABLE IF NOT EXISTS `broadcast_strings` (
`id` int(11) unsigned NOT NULL auto_increment,
`text` text NOT NULL,
`next` int(11) unsigned NOT NULL,
PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

Link to comment
Share on other sites

Thanks again.

I inserted at the beginning of the code

diff --git a/sql/broadcast/mangos_mangos_string.sql b/sql/broadcast/mangos_mangos_string.sql

new file mode 100644

index 0000000..ff5dc4e

--- /dev/null

+++ b/sql/broadcast/mangos_mangos_string.sql

@@ -0,0 +1 @@

+INSERT INTO `mangos_string` (`entry`, `content_default`, `content_loc1`, `content_loc2`, `content_loc3`, `content_loc4`, `content_loc5`, `content_loc6`, `content_loc7`, `content_loc8`) VALUES

(11000, '|cffffcc00[server]: |cff00ff00%s|r', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);

\\ No newline at end of file

diff --git a/sql/broadcast/realmd_broadcast_strings.sql b/sql/broadcast/realmd_broadcast_strings.sql

new file mode 100644

index 0000000..37b1813

--- /dev/null

+++ b/sql/broadcast/realmd_broadcast_strings.sql

@@ -0,0 +1,6 @@

+CREATE TABLE IF NOT EXISTS `broadcast_strings` (

+ `id` int(11) unsigned NOT NULL auto_increment,

+ `text` text NOT NULL,

+ `next` int(11) unsigned NOT NULL,

+ PRIMARY KEY (`id`)

+) ENGINE=MyISAM DEFAULT CHARSET=utf8 ;

\\ No newline at end of file

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

Link to comment
Share on other sites

×
×
  • 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