Jump to content

Auto Announcer with NextID and MangChat support


Recommended Posts

  • Replies 106
  • Created
  • Last Reply

Top Posters In This Topic

Posted

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.

Posted

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.

Posted

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.

Posted
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

  • 4 weeks later...
Posted

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

Posted
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 ?

Posted

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.

Posted

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

Posted

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!

Posted
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.

Posted
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.

Posted

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.

Posted

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

Posted
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

Posted

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?

Posted

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;

Posted

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

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