jehadServer
所属分类:游戏
开发工具:Visual C++
文件大小:1104KB
下载次数:32
上传日期:2010-05-11 15:11:05
上 传 者:
cakeman11
说明: game msg server jehad build
文件列表:
jehadServer\cq_tables.sql (31718, 2004-02-18)
jehadServer\cq_taskall.sql (6420, 2003-12-04)
jehadServer\cq_user.sql (9679, 2003-12-25)
jehadServer\DBThread.cpp (3063, 2004-09-06)
jehadServer\DBThread.h (1037, 2004-09-06)
jehadServer\Default.SUP (57, 2004-12-03)
jehadServer\jehadServer.dsw (5166, 2004-09-10)
jehadServer\jehadServer.ncb (1696768, 2006-02-25)
jehadServer\jehadServer.opt (250368, 2006-02-25)
jehadServer\MapGroupKernel\ActionDefine.h (33037, 2005-06-16)
jehadServer\MapGroupKernel\Agent.cpp (1357, 2004-09-01)
jehadServer\MapGroupKernel\Agent.h (958, 2004-09-01)
jehadServer\MapGroupKernel\agent设计说明.txt (185, 2003-11-15)
jehadServer\MapGroupKernel\AINpc.cpp (75331, 2005-06-22)
jehadServer\MapGroupKernel\AINpc.h (20044, 2005-06-22)
jehadServer\MapGroupKernel\Announce.cpp (5403, 2005-03-04)
jehadServer\MapGroupKernel\Announce.h (1599, 2005-03-04)
jehadServer\MapGroupKernel\AnnounceData.cpp (2455, 2005-02-04)
jehadServer\MapGroupKernel\AnnounceData.h (2363, 2005-02-04)
jehadServer\MapGroupKernel\Auction.cpp (17860, 2005-05-17)
jehadServer\MapGroupKernel\Auction.h (3918, 2005-05-17)
jehadServer\MapGroupKernel\AuctionStorage.cpp (4306, 2005-05-08)
jehadServer\MapGroupKernel\AuctionStorage.h (2210, 2005-05-08)
jehadServer\MapGroupKernel\AuctionSystemItemData.cpp (5549, 2005-05-08)
jehadServer\MapGroupKernel\AuctionSystemItemData.h (2669, 2005-05-08)
jehadServer\MapGroupKernel\BattleSystem.cpp (21428, 2005-06-23)
jehadServer\MapGroupKernel\BattleSystem.h (3011, 2005-06-23)
jehadServer\MapGroupKernel\BetOutside.cpp (12123, 2003-12-09)
jehadServer\MapGroupKernel\BetOutside.h (2576, 2003-11-13)
jehadServer\MapGroupKernel\BetOutside设计说明.txt (4782, 2003-11-15)
jehadServer\MapGroupKernel\Booth.cpp (8150, 2005-06-17)
jehadServer\MapGroupKernel\Booth.h (2221, 2003-11-13)
jehadServer\MapGroupKernel\DeadLoop.h (913, 2003-11-18)
jehadServer\MapGroupKernel\DropRule.cpp (2006, 2005-03-19)
jehadServer\MapGroupKernel\DropRule.h (2115, 2005-03-19)
jehadServer\MapGroupKernel\DropRuleGroup.cpp (3190, 2005-03-19)
jehadServer\MapGroupKernel\DropRuleGroup.h (1556, 2004-01-08)
jehadServer\MapGroupKernel\DropRuleMap.cpp (1918, 2004-04-21)
jehadServer\MapGroupKernel\DropRuleMap.h (1434, 2004-01-08)
jehadServer\MapGroupKernel\Enemy.cpp (5462, 2005-02-01)
... ...
// 设计说明
// 仙剑修,2002.10.23
///////////////////////////////////////////////////////////////////////
核心代码请在核心工程的“TODO”部分添加。
工程模块:
MsgServer
SocketKernel
WorldKernel
MapGroupKernel
GameBaseCode(该工程从属于以上三个工程)
Comm
Common(工具库,从属于所有工程)
MapData
线程模块:
shell
socket
world
*map_group
登录过程:
。玩家登录时先在WORLD_KERNEL进行网络消息处理。
。MSG_LOGIN时,将玩家转到MAPGROUP_KERNEL。
。退出时过程相反。
同步处理:
。玩家从一个核心转到另一个核心时,客户端要等待服务器回应后才能再上传消息,否则服务器可能会丢失该消息。
NPC消息广播:
。TARGET_NPC_ID指定为BROADCAST_NPC_ID(可直接为ID_NONE),这时只需要向NPC服务器发送一个消息,由NPC服务器自己
决定转发给哪几个NPC。
玩家进入步骤:
。建立连接,玩家属世界核心。
。登录世界核心,转到地图组。
。登录地图组。
玩家转地图组:
。玩家登出地图组。
。通知世界和网络玩家切换。
。向另一地图组发送玩家数据。
。通知另一地图组让玩家登录。
玩家退出步骤:
。从核心开始退出:
。WORLD或者MAPGROUP调用CloseSocket接口,玩家LOGOUT,同时发给SOCKET核心 SOCKET_BREAKCONNECT。SOCKET核心断开SOCKET(或者按1-1发消息)。执行“从网络层退出”。
。从网络层开始退出:
。SOCKET核心的行为:
1-1。发送给最后一个MAPGROUP核心KERNEL_CLOSEKERNEL消息。
1-6。接收到MAPGROUP的SETPROCESSID消息时,回复KERNEL_CLOSEKERNEL。
1-7。接收到SOCKET_CLOSEKERNEL时,完成退出操作!
。WORLD核心的行为:
2-1。KERNEL_CLOSEKERNEL:玩家退出WORLD,转发给SOCKET核心SOCKET_CLOSESOCKET。
。MAPGROUP核心的行为:
3-1。KERNEL_CLOSEKERNEL:如果不在本MAPGROUP,转发给前一个线程(MAPGROUP或WORLD) KERNEL_CLOSEKERNEL消息。
3-2。KERNEL_CLOSEKERNEL:玩家从MAPGROUP核心退出时,直接通知WORLD核心KERNEL_CLOSEKERNEL消息。
3-6。如果玩家正在从WORLD到MAPGROUP,或者从MAPGROUP到MAPGROUP。则玩家到新MAPGROUP时,会调用SETPROCESSID,这时SOCKET会回复KERNEL_CLOSEKERNEL(即再次发此消息)。这时,也能正常退出。
帮派:
。CSynData:数据层,所有成员变量使用private,防止CSyndicate类存取。所有外部接口必须是原子的。
。QuerySynchro():内部接口。修改自己的状态。
。CSyndicate:从CSynData派生。只提供只读接口。
。QueryChange():提供修改的接口。
。CSynShell:提供给地图组对象的***程序。
。QueryChange():将修改消息转发到主对象。
。QuerySynchro():调用基类接口。
。CSynWorldShell:提供给地图组对象的***程序。
。QueryChange():调用基类接口。
。QuerySynchro():内部接口。修改自己的状态,同时广播给所有MapGroup。
。CSynManager:
。创建新帮派:向WORLD申请,完成后向所有MAPGROUP广播。由申请的MAPGROUP创建数据库记录。
。解散帮派:向WORLD申请,完成后向所有MAPGROUP广播。都可以删除数据库记录。
。CSynWorldManager:
。新建帮派。
。删除帮派。
登录消息流程:
。客户端先登录到帐号服务器,上传CMsgAccount登录帐号服务器。帐号服务器会返回给客户端XXX消息。
。帐号服务器会向游戏服务器下传CMsgConnect_A
。同时客户端会连接SOCKET,并上传CMsgConnect
。世界核心收到CMsgConnect_A和CMsgConnect后,向客户端返回CTalk的_TXTATR_ENTRANCE频道消息,同时向地图组发MAPGROUP_LOGIN内部消息,让玩家登录地图组。
。
近期下载者:
相关文件:
收藏者: