Jump to content

Diablox

Members
  • Posts

    182
  • Joined

  • Last visited

    Never
  • Donations

    0.00 GBP 

Posts posted by Diablox

  1. Copy paste this in your patch.txt

    [HIGHLIGHT=diff]From 71dcce34aeb586a253b4645fe893ebc22a50332e Mon Sep 17 00:00:00 2001

    From: Diablox <[email protected]>

    Date: Thu, 9 Jul 2009 21:42:54 +0200

    Subject: PATCH Autobroadcast

    ---

    sql/autobroadcast/mangos_mangos_string.sql | 4 ++

    sql/autobroadcast/realmd_autobroadcast.sql | 6 ++

    src/game/Language.h | 3 +

    src/game/World.cpp | 72 ++++++++++++++++++++++++++--

    src/game/World.h | 3 +-

    src/mangosd/mangosd.conf.dist.in | 23 +++++++++

    6 files changed, 106 insertions(+), 5 deletions(-)

    create mode 100644 sql/autobroadcast/mangos_mangos_string.sql

    create mode 100644 sql/autobroadcast/realmd_autobroadcast.sql

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

    new file mode 100644

    index 0000000..39dc1ce

    --- /dev/null

    +++ b/sql/autobroadcast/mangos_mangos_string.sql

    @@ -0,0 +1,4 @@

    +DELETE FROM `mangos_string` WHERE `entry` = '1300';

    +

    +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);

    diff --git a/sql/autobroadcast/realmd_autobroadcast.sql b/sql/autobroadcast/realmd_autobroadcast.sql

    new file mode 100644

    index 0000000..1e1ad4c

    --- /dev/null

    +++ b/sql/autobroadcast/realmd_autobroadcast.sql

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

    +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 ;

    diff --git a/src/game/Language.h b/src/game/Language.h

    index e1c15fb..0643b24 100644

    --- a/src/game/Language.h

    +++ b/src/game/Language.h

    @@ -773,6 +773,9 @@ enum MangosStrings

    // FREE IDS 1300-9999

    + // Broadcaster

    + LANG_AUTO_BROADCAST = 1300,

    +

    // Use for not-in-offcial-sources patches

    // 10000-10999

    diff --git a/src/game/World.cpp b/src/game/World.cpp

    index bf20ccf..3651b62 100644

    --- a/src/game/World.cpp

    +++ b/src/game/World.cpp

    @@ -49,6 +49,7 @@

    #include "CreatureAIRegistry.h"

    #include "Policies/SingletonImp.h"

    #include "BattleGroundMgr.h"

    +#include "Language.h"

    #include "TemporarySummon.h"

    #include "WaypointMovementGenerator.h"

    #include "VMapFactory.h"

    @@ -1398,8 +1399,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', " UI64FMTD ", '%s', 0)",

    - realmID, uint64(m_startTime), isoDate);

    + loginDatabase.PExecute("INSERT INTO uptime (realmid, starttime, startstring, uptime) VALUES('%u', " UI64FMTD ", '%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);

    @@ -1409,7 +1412,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

    //one second is 1000 -(tested on win system)

    @@ -1448,7 +1451,7 @@ void World::SetInitialWorldSettings()

    sLog.outString("Starting Game Event system..." );

    uint32 nextGameEvent = gameeventmgr.Initialize();

    m_timers[WUPDATE_EVENTS].SetInterval(nextGameEvent); //depend on next event

    -

    + sLog.outString("Starting Autobroadcast system by Xeross..." );

    sLog.outString( "WORLD: World initialized" );

    }

    @@ -1604,6 +1607,16 @@ void World::Update(uint32 diff)

    m_timers[WUPDATE_EVENTS].SetInterval(nextGameEvent);

    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();

    + }

    + }

    ///

    ///- Move all creatures with "delayed move" and remove and delete all objects with "delayed remove"

    @@ -2729,6 +2742,57 @@ 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 8c2f2df..16c0394 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

    @@ -372,6 +372,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/mangosd.conf.dist.in b/src/mangosd/mangosd.conf.dist.in

    index de5dbe2..29bbef1 100644

    --- a/src/mangosd/mangosd.conf.dist.in

    +++ b/src/mangosd/mangosd.conf.dist.in

    @@ -680,6 +680,29 @@ AllowTwoSide.AddFriend = 0

    TalentsInspecting = 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

    +

    +###################################################################################################################

    # CREATURE SETTINGS

    #

    # ThreatRadius

    --

    1.5.6.3[/HIGHLIGHT]

  2. What settings did you use

    Visibility.Distance.Continents = 90

    Visibility.Distance.Instances = 90

    Visibility.Distance.BGArenas = 90

    Visibility.Distance.Object = 90

    Visibility.Distance.InFlight = 90

    or

    Visibility.Distance.Continents = 66

    Visibility.Distance.Instances = 66

    Visibility.Distance.BGArenas = 66

    Visibility.Distance.Object = 66

    Visibility.Distance.InFlight = 66

    Does anyone know how far do you see on retail?

  3. Sory there was a error in my patch (and in my repo). Now is fixed.

    From 71dcce34aeb586a253b4645fe893ebc22a50332e Mon Sep 17 00:00:00 2001
    From: Diablox <[email protected]>
    Date: Thu, 9 Jul 2009 21:42:54 +0200
    Subject: PATCH Autobroadcast
    
    ---
    sql/autobroadcast/mangos_mangos_string.sql |    4 ++
    sql/autobroadcast/realmd_autobroadcast.sql |    6 ++
    src/game/Language.h                        |    3 +
    src/game/World.cpp                         |   72 ++++++++++++++++++++++++++--
    src/game/World.h                           |    3 +-
    src/mangosd/mangosd.conf.dist.in           |   23 +++++++++
    6 files changed, 106 insertions(+), 5 deletions(-)
    create mode 100644 sql/autobroadcast/mangos_mangos_string.sql
    create mode 100644 sql/autobroadcast/realmd_autobroadcast.sql
    
    diff --git a/sql/autobroadcast/mangos_mangos_string.sql b/sql/autobroadcast/mangos_mangos_string.sql
    new file mode 100644
    index 0000000..39dc1ce
    --- /dev/null
    +++ b/sql/autobroadcast/mangos_mangos_string.sql
    @@ -0,0 +1,4 @@
    +DELETE FROM `mangos_string` WHERE `entry` = '1300';
    +
    +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);
    diff --git a/sql/autobroadcast/realmd_autobroadcast.sql b/sql/autobroadcast/realmd_autobroadcast.sql
    new file mode 100644
    index 0000000..1e1ad4c
    --- /dev/null
    +++ b/sql/autobroadcast/realmd_autobroadcast.sql
    @@ -0,0 +1,6 @@
    +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 ;
    diff --git a/src/game/Language.h b/src/game/Language.h
    index e1c15fb..0643b24 100644
    --- a/src/game/Language.h
    +++ b/src/game/Language.h
    @@ -773,6 +773,9 @@ enum MangosStrings
    
        // FREE IDS                           1300-9999
    
    +    // Broadcaster
    +    LANG_AUTO_BROADCAST                 = 1300,
    +
        // Use for not-in-offcial-sources patches
        //                                    10000-10999
    
    diff --git a/src/game/World.cpp b/src/game/World.cpp
    index bf20ccf..3651b62 100644
    --- a/src/game/World.cpp
    +++ b/src/game/World.cpp
    @@ -49,6 +49,7 @@
    #include "CreatureAIRegistry.h"
    #include "Policies/SingletonImp.h"
    #include "BattleGroundMgr.h"
    +#include "Language.h"
    #include "TemporarySummon.h"
    #include "WaypointMovementGenerator.h"
    #include "VMapFactory.h"
    @@ -1398,8 +1399,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', " UI64FMTD ", '%s', 0)",
    -        realmID, uint64(m_startTime), isoDate);
    +    loginDatabase.PExecute("INSERT INTO uptime (realmid, starttime, startstring, uptime) VALUES('%u', " UI64FMTD ", '%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);
    @@ -1409,7 +1412,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
        //one second is 1000 -(tested on win system)
    @@ -1448,7 +1451,7 @@ void World::SetInitialWorldSettings()
        sLog.outString("Starting Game Event system..." );
        uint32 nextGameEvent = gameeventmgr.Initialize();
        m_timers[WUPDATE_EVENTS].SetInterval(nextGameEvent);    //depend on next event
    -
    +    sLog.outString("Starting Autobroadcast system by Xeross..." );
        sLog.outString( "WORLD: World initialized" );
    }
    
    @@ -1604,6 +1607,16 @@ void World::Update(uint32 diff)
            m_timers[WUPDATE_EVENTS].SetInterval(nextGameEvent);
            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"
    @@ -2729,6 +2742,57 @@ 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 8c2f2df..16c0394 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
    @@ -372,6 +372,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/mangosd.conf.dist.in b/src/mangosd/mangosd.conf.dist.in
    index de5dbe2..29bbef1 100644
    --- a/src/mangosd/mangosd.conf.dist.in
    +++ b/src/mangosd/mangosd.conf.dist.in
    @@ -680,6 +680,29 @@ AllowTwoSide.AddFriend = 0
    TalentsInspecting = 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
    +
    +###################################################################################################################
    # CREATURE SETTINGS
    #
    #    ThreatRadius
    -- 
    1.5.6.3
    

  4. Here it is!!! :D

    git pull git://github.com/Diablox/mangos.git autobroadcast

    Edit: I finaly created patch file :D

    [HIGHLIGHT=diff]From 71dcce34aeb586a253b4645fe893ebc22a50332e Mon Sep 17 00:00:00 2001

    From: Diablox <[email protected]>

    Date: Thu, 9 Jul 2009 21:42:54 +0200

    Subject: [PATCH] Autobroadcast

    ---

    sql/autobroadcast/mangos_mangos_string.sql | 4 ++

    sql/autobroadcast/realmd_autobroadcast.sql | 6 ++

    src/game/Language.h | 3 +

    src/game/World.cpp | 72 ++++++++++++++++++++++++++--

    src/game/World.h | 3 +-

    src/mangosd/mangosd.conf.dist.in | 23 +++++++++

    6 files changed, 106 insertions(+), 5 deletions(-)

    create mode 100644 sql/autobroadcast/mangos_mangos_string.sql

    create mode 100644 sql/autobroadcast/realmd_autobroadcast.sql

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

    new file mode 100644

    index 0000000..39dc1ce

    --- /dev/null

    +++ b/sql/autobroadcast/mangos_mangos_string.sql

    @@ -0,0 +1,4 @@

    +DELETE FROM `mangos_string` WHERE `entry` = '1300';

    +

    +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);

    diff --git a/sql/autobroadcast/realmd_autobroadcast.sql b/sql/autobroadcast/realmd_autobroadcast.sql

    new file mode 100644

    index 0000000..1e1ad4c

    --- /dev/null

    +++ b/sql/autobroadcast/realmd_autobroadcast.sql

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

    +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 ;

    diff --git a/src/game/Language.h b/src/game/Language.h

    index e1c15fb..0643b24 100644

    --- a/src/game/Language.h

    +++ b/src/game/Language.h

    @@ -773,6 +773,9 @@ enum MangosStrings

    // FREE IDS 1300-9999

    + // Broadcaster

    + LANG_AUTO_BROADCAST = 1300,

    +

    // Use for not-in-offcial-sources patches

    // 10000-10999

    diff --git a/src/game/World.cpp b/src/game/World.cpp

    index bf20ccf..3651b62 100644

    --- a/src/game/World.cpp

    +++ b/src/game/World.cpp

    @@ -49,6 +49,7 @@

    #include "CreatureAIRegistry.h"

    #include "Policies/SingletonImp.h"

    #include "BattleGroundMgr.h"

    +#include "Language.h"

    #include "TemporarySummon.h"

    #include "WaypointMovementGenerator.h"

    #include "VMapFactory.h"

    @@ -1398,8 +1399,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', " UI64FMTD ", '%s', 0)",

    - realmID, uint64(m_startTime), isoDate);

    + loginDatabase.PExecute("INSERT INTO uptime (realmid, starttime, startstring, uptime) VALUES('%u', " UI64FMTD ", '%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);

    @@ -1409,7 +1412,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

    //one second is 1000 -(tested on win system)

    @@ -1448,7 +1451,7 @@ void World::SetInitialWorldSettings()

    sLog.outString("Starting Game Event system..." );

    uint32 nextGameEvent = gameeventmgr.Initialize();

    m_timers[WUPDATE_EVENTS].SetInterval(nextGameEvent); //depend on next event

    -

    + sLog.outString("Starting Autobroadcast system by Xeross..." );

    sLog.outString( "WORLD: World initialized" );

    }

    @@ -1604,6 +1607,16 @@ void World::Update(uint32 diff)

    m_timers[WUPDATE_EVENTS].SetInterval(nextGameEvent);

    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();

    + }

    + }

    ///

    ///- Move all creatures with "delayed move" and remove and delete all objects with "delayed remove"

    @@ -2729,6 +2742,57 @@ 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 8c2f2df..16c0394 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

    @@ -372,6 +372,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/mangosd.conf.dist.in b/src/mangosd/mangosd.conf.dist.in

    index de5dbe2..29bbef1 100644

    --- a/src/mangosd/mangosd.conf.dist.in

    +++ b/src/mangosd/mangosd.conf.dist.in

    @@ -680,6 +680,29 @@ AllowTwoSide.AddFriend = 0

    TalentsInspecting = 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

    +

    +###################################################################################################################

    # CREATURE SETTINGS

    #

    # ThreatRadius

    --

    1.5.6.3

    [/HIGHLIGHT]

  5. I'm thinkin you dont know how to compile!! But i will try one more time

    Create new folder called mangos.

    Right clik on mangos folder -> Git Bash Here

    Copy paste next:

    git clone git://github.com/mangos/mangos.git

    git pull git://github.com/Diablox/mangos.git autobroadcast

    git pull git://github.com/Naicisum/mangos.git ahbot

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