魔兽私服 经验交流 发布家族 高手进阶心得 软件下载 魔兽私服技术文章 家族联盟 广告合作

自动公告的代码

建立一个数据库

/*
MySQL Data Transfer
Source Host: localhost
Source Database: wowkk_db
Target Host: localhost
Target Database: wowkk_db
Date: 2007-8-23 16:04:31
*/
SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for gonggao
-- ----------------------------
CREATE TA*LE `gonggao` (
  `guid` bigint(20) NOT NULL auto_increment,
  `text` varchar(200) NOT NULL,
  `color` varbinary(10) NOT NULL,
  PRIMARY KEY  (`guid`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Player System';
-- ----------------------------
-- Records
-- ----------------------------
INSERT INTO `gonggao` VALUES ('1', '内容。。。。。。。。。。。。。。', '|cFFFF3366');
INSERT INTO `gonggao` VALUES ('2', '内容。。。。。。。。。。。。。。。', '|cFF00FFFF');
INSERT INTO `gonggao` VALUES ('3', '内容。。。。。。。。。。。。。。', '|cFF00FFFF');

然后增加代码

Index: Player.cpp
===================================================================
--- Player.cpp        (revision 1203)
+++ Player.cpp        (working copy)
@@ -89,6 +89,21 @@

        m_nextSave                          = getMSTime() + sWorld.getIntRate(INTRATE_SAVE);

+        gonggaotiem                          = sWorld.getIntRate(CONFIG_INTRATE_GONGGAO);
+        GongGaoID            = 0;
+
        m_currentSpell                  = NULL;
        m_resurrectHealth          = m_resurrectMana = 0;


@@ -822,6 +905,169 @@
                else
                        m_pvpTimer -= p_time;
        }
+
+        if(gonggaotiem)
+        {
+                if(p_time >= gonggaotiem)
+                {
+                        gonggaotiem = sWorld.getIntRate(CONFIG_INTRATE_GONGGAO);
+                        if(!GongGaoID)
+                          GongGaoID = 1;
+
+                          GongGao * GongGaoInfo = GongGaoInfoStorage.LookupEntry(GongGaoID);
+                          if(!GongGaoInfo)
+                              GongGaoID = 1;
+
+                        if(GongGaoInfo)
+                        {
+                            sChatHandler.ColorSystemMessage(GetSession(),GongGaoInfo->color,GongGaoInfo->text);
+                            GongGaoID += 1;
+                            return;
+                          }
+                }
+                else
+                        gonggaotiem -= p_time;
+        }


Index: Player.h
===================================================================
--- Player.h        (revision 1203)
+++ Player.h        (working copy)
@@ -289,6 +289,14 @@
                return HATED;
        }
};
+struct GongGao
+{
+        uint32 guid;
+        char * text;
+        char * color;
+};
+
+        uint32 GongGaoID;
+        uint32 gonggaotiem;
+        uint32 m_nextGongGao;

Index: World.cpp
===================================================================
--- World.cpp        (revision 1203)
+++ World.cpp        (working copy)
@@ -2026,9 +2024,64 @@
        SpeedhackProtection = Config.MainConfig.Get*oolDefault("Server", "SpeedhackProtection", false);
        SendStatsOnJoin = Config.MainConfig.Get*oolDefault("Server", "SendStatsOnJoin", true);
        compression_threshold = Config.MainConfig.GetIntDefault("Server", "CompressionThreshold", 1000);
        LevelCap = Config.MainConfig.GetIntDefault("Server", "LevelCap", 60);
        Expansion1LevelCap = Config.MainConfig.GetIntDefault("Server", "Expansion1LevelCap", 70);

+        setIntRate(CONFIG_INTRATE_GONGGAO, Config.MainConfig.GetIntDefault("Server","GongGaoTime", 240000));

Index: World.h
===================================================================
--- World.h        (revision 1203)
+++ World.h        (working copy)
@@ -60,6 +60,18 @@
enum IntRates
{
        INTRATE_SAVE=0,
+        CONFIG_INTRATE_AUTO_F*ZY_GONGGAO,

Index: ObjectStorage.cpp
===================================================================
--- ObjectStorage.cpp        (revision 1203)
+++ ObjectStorage.cpp        (working copy)
@@ -19,7 +19,7 @@

/** Table formats converted to strings
  */
const char * gCreatureNameFormat                                                = "ussuuuuuuuffcc";
const char * gGameObjectNameFormat                                                = "uuusuuuuuuuuuuuuuuuuuuuuuuuu";
const char * gCreatureProtoFormat                                                = "uuuuuuufuuffuffuuuuuuuuuuuuuuuuuuffsuuuu";
@@ -35,6 +35,11 @@
+const char * gGongGaoInfoFormat                        = "uss";


/** SQLStorage symbols
  */
SERVER_DECL SQLStorage<ItemPrototype, ArrayStorageContainer<ItemPrototype> >                                ItemPrototypeStorage;
@@ -52,6 +57,11 @@
SERVER_DECL SQLStorage<MapInfo, HashMapStorageContainer<MapInfo> >                        WorldMapInfoStorage;
SERVER_DECL SQLStorage<ZoneGuardEntry, HashMapStorageContainer<ZoneGuardEntry> >        ZoneGuardStorage;
                                        LanguageInfoStorage;
+SERVER_DECL SQLStorage<GongGao, HashMapStorageContainer<GongGao> >                                                    GongGaoInfoStorage;

@@ -263,6 +273,12 @@
        make_task(NpcTextStorage, GossipText, HashMapStorageContainer, "npc_text", gNpcTextFormat);
        make_task(WorldMapInfoStorage, MapInfo, HashMapStorageContainer, "worldmap_info", gWorldMapInfoFormat);
        make_task(ZoneGuardStorage, ZoneGuardEntry, HashMapStorageContainer, "zoneguards", gZoneGuardsFormat);

+        make_task(GongGaoInfoStorage, GongGao, HashMapStorageContainer, "gonggao", gGongGaoInfoFormat);

@@ -296,6 +312,11 @@
        NpcTextStorage.Cleanup();
        WorldMapInfoStorage.Cleanup();
        ZoneGuardStorage.Cleanup();
+
+        GongGaoInfoStorage.Cleanup();

Index: ObjectStorage.h
===================================================================
--- ObjectStorage.h        (revision 1203)
+++ ObjectStorage.h        (working copy)
@@ -33,6 +33,11 @@
extern SERVER_DECL SQLStorage<MapInfo, HashMapStorageContainer<MapInfo> >                WorldMapInfoStorage;
extern SERVER_DECL SQLStorage<ZoneGuardEntry, HashMapStorageContainer<ZoneGuardEntry> >                        ZoneGuardStorage;

+extern SERVER_DECL SQLStorage<GongGao, HashMapStorageContainer<GongGao> >                                                GongGaoInfoStorage;

上面的是以前写的,看大家找得很辛苦,所以共享给大家,可能有遗漏的地方,大家借鉴一下

setIntRate(CONFIG_INTRATE_GONGGAO, Config.MainConfig.GetIntDefault("Server","GongGaoTime", 240000));

这条大家应该知道什么意思吧,就是可以在ascent.conf 里面的 Server 字头文件里面加入
GongGaoTime = "240000" 设置一下间隔时间,默认为 4分钟

上一篇魔兽私服文章:上一篇: 全13种商业技能相关代码
下一篇魔兽私服文章:下一篇: Ascent 副本传送 代码 汉化注
魔兽世界私服 魔兽世界下载 wow魔兽私服
五二我的wow魔兽私服网 www.52mysf.com 提供最新开魔兽世界私服发布 版权所有