6. 接收怪物,商人,其它玩家的消息:
ProcessUserHuman:( 其它玩家—服务器处理)
CPlayerObject->SearchViewRange();
CPlayerObject->Operate();
遍历 UserInfoList列表,依次调用每个UserInfo的Operate来处理命令队列中的所有操作; pUserInfo->Operate()调用m_pxPlayerObject->Operate()调用。根据分发消息(RM_TURN)向客户端发送SM_TURN消息。GameSrv广播新玩家上线(坐标)的消息。向该新玩家发送玩家信息(等级,装备,魔法,攻击力等)。
玩家,移动对象:
1. 遍历 m_xVisibleObjectList列表,所有(玩家,商人,怪物)发送调用AddProcess
(RM_TURN向周围玩家发送消息 )。
地图:
2.遍历 m_xVisibleItemList,发送AddProcess(this, RM_ITEMSHOW消息更新地图。
3.遍历 m_xVisibleEventList,发送AddProcess(this, RM_SHOWEVENT
ProcessMonster 线程: (怪物—服务器处理)
这篇博客详细解析了游戏服务器如何处理客户端消息,包括玩家、怪物和商人的交互逻辑。服务器通过ProcessUserHuman、ProcessMonster和ProcessMerchants线程处理不同对象的操作,如移动、攻击和状态更新。客户端则接收并处理服务器发送的SM_TURN、SM_HIT等消息,更新UI界面。整个流程涉及到对象的创建、状态维护和UI渲染,确保游戏的顺畅运行。
订阅专栏 解锁全文
1386

被折叠的 条评论
为什么被折叠?



