摘要:
enum SM_DBModifyOpt{ eSM_DB_Add, eSM_DB_Update, eSM_DB_Del,};char c = {0};//111---删除|更新|增加bool IsOpt(int eOpt, char c){ return (c >> eOpt ... 阅读全文
摘要:
这段时间被数据库共享内存坑毁了,搞了半天犯了一个大错误,今晚才发现,经理的思路好像也不太适合我们项目。一个字坑。 阅读全文
摘要:
GS与MS之间通信注意GS与MS是两个线程,现在是每个map一个线程,他们之间是内部协议进行通信的,那既然是两个线程那如何通信呢,看了net进程通信这个就比较简单了举个例子m_pMap->Gs2MsData(gs2ms_add_player, m_nChannelId, (void*)&rActor... 阅读全文
摘要:
关于function的一种常用用法void Share::InitAcrossManager(){ GsMgrEvent gsMgrEvents;//保存function的结构体 gsMgrEvents.fnSendData2Client = [this](int nChannelId,... 阅读全文
摘要:
share(发包方面)接收所有map发过来的包,这个是GS线程驱动的{ for (;;) { //... if(!itMap.second->RecvData(Pkt)) break; if(Pkt.cmd == ms2gs... 阅读全文
摘要:
小退1.将玩家角色置为登录状态 2.向MS发送del_player消息,同步玩家信息3.向GS发送ms2gs_db_buff_info消息,同步本地玩家数据,发送角色列表大退根据玩家状态做相应处理如果进入地图就向地图发送下线消息,没有进入地图就放入自动释放队列中向GS发送保存消息,保存数据库删除在线... 阅读全文
摘要:
GameServer号称游戏服务器,是整个服务器的控制其中驱动的东西很多,网络:DataLayer,接收所有map发到GS过来的包,从网络层接报,数据库:DB,数据库回调驱动,玩家:GameChannel,玩家接报,道具,帮会等定时保存,几个定时器管理,帮助GC发送未发送的数据,所有的工作都是在GS... 阅读全文
摘要:
在看MS人物上线else if(gs2ms_add_player == pkt.cmd){ PlayerChannel* pPC = new PlayerChannel(this); //加到地图中,但是并未激活该玩家 int nChannelId = pPC->OnPlayerE... 阅读全文
摘要:
关于地图加载.map文件记录了格子大小为107*160,关于.map文件时如何生成的我也不清楚,.map文件中已经有二维大小以及整个阻挡信息(0:无阻挡,1:阻挡,2:透明0)/** *m_nMapWidth 地图宽 *m_nMapHight 地图高 *m_dvecCollsion 地图阻挡信息 *... 阅读全文
摘要:
玩家移动//好长时间没看这些,好多都看不懂了void Map::UpdatePlayerPos(TgtPos pos, PlayerInfo* pl){// m_pLog->Logs(eLogLevel_Warning, "人物移动"); // 检查位置包 auto& mpos =... 阅读全文