随笔分类 -  项目分析

摘要: 阅读全文
posted @ 2020-11-22 16:23 zzyoucan 阅读(134) 评论(0) 推荐(0) 编辑
摘要:客户端登录会拿到token,然后去登录游戏服务器了解GUID 可以了解http://blog.sina.com.cn/s/blog_5c8d13830100gku3.html// obviously this is the windows version#ifdef GUID_WINDOWSGuid... 阅读全文
posted @ 2016-01-17 16:41 zzyoucan 阅读(1123) 评论(0) 推荐(0) 编辑
摘要:e_msg_c_as_login_req e_msg_c_as_login_if_no_register_req这两条协议差不多第一个就是纯粹的登录,验证密码第二个游戏中游客模式,直接登录的模式,既包括注册又包括登录的功能for (std::map::iterator it = m_mapAreaI... 阅读全文
posted @ 2016-01-17 14:32 zzyoucan 阅读(230) 评论(0) 推荐(0) 编辑
摘要:TOP:BEGIN #Routine body goes here...IF EXISTS(SELECT * FROM `global_account` WHERE `plantform_id` = in_plantform_id AND `plantform_sub_id` = in... 阅读全文
posted @ 2016-01-17 14:12 zzyoucan 阅读(360) 评论(0) 推荐(0) 编辑
摘要:登录流程-1(服务器是一个账号然后可以选择多个区,类似lol,其实就是把服务器列表发给客户端,账号就一个数据库,然后不同的服务器部署在不同的服务器上就是ip不同)e_msg_c_as_register_reqe_msg_c_as_login_req 返回服务器列表,注意客户端得到的服务器列表的id... 阅读全文
posted @ 2016-01-17 00:31 zzyoucan 阅读(437) 评论(0) 推荐(0) 编辑
摘要:这套逻辑有点复杂message db_user_mission_event{ required user_mission.MISSION_EVENT_TYPE mission_event_type = 1; //任务事件类型 required user_mission.MI... 阅读全文
posted @ 2015-08-16 21:30 zzyoucan 阅读(137) 评论(0) 推荐(0) 编辑
摘要:1.last_update_timestamp大于一个月提醒购买月卡2.last_update_timestamp小于3天提醒续费3.充值算不算如果last_update_timestamp<3天算4.当其充值到25的那个时间将其充值数目置成0 阅读全文
posted @ 2015-08-11 09:15 zzyoucan 阅读(288) 评论(0) 推荐(0) 编辑
摘要:简述 C 首先连接AS,当进区的时候AS会发送口令,GS的ip和端口,然后直接登录GS,后面就直接跟GS交互了 AS 负责玩家注册,登录,当玩家进区的时候,生成口令并发送给GS和C GS 接受AS玩家的进区的消息,接受玩家进区 流程图 ... 阅读全文
posted @ 2015-05-10 19:34 zzyoucan 阅读(402) 评论(0) 推荐(0) 编辑
摘要:项目数据库逻辑数据库主要逻辑模块分为asynDBCenter,DBNet,DBSvrasynDBCenter与DBNet之间通过共享内存通信(缓存进程为了防止GS崩溃导致玩家数据丢失,并且在DBNet里面可以做定时存储)这里的共享内存有点复杂1.发包类型的,就是跟GS与Net之间的相似带回收类型的2... 阅读全文
posted @ 2015-03-28 23:33 zzyoucan 阅读(307) 评论(0) 推荐(0) 编辑
摘要:现在就来看看数据库发包模式这个用到了抽象工厂模式其实经理的那个差不多都是注册具体工厂到抽象工厂,只是这里不是抽象工厂而是PktFactoryMgr功能和抽象工厂差不多{#define __REGISTER_DB_PKT_CREATEFUNCTION(DBOptClassType) \ R... 阅读全文
posted @ 2015-03-20 22:18 zzyoucan 阅读(450) 评论(0) 推荐(0) 编辑
摘要:共享内存现在使用环形队列,以前使用boost的那一套,难以看懂,现在直接改成环形队列简单多了,将环形队列的头和尾放入共享内存中,也是安全的和内存池的实现差不多,都是先分配好,然后放入队列中,只是这个是环形队列,而那个是无锁队列,具体哪个队列的效率高,个人感觉还是环形队列的效率高然后再外层再搞个环形队... 阅读全文
posted @ 2015-03-18 11:11 zzyoucan 阅读(259) 评论(0) 推荐(0) 编辑
摘要:解释一下网络的调度过程客户机连接:服务器监听线程收到连接,轮询libevent线程,扔给轮询线程的连接队列中,向socketpair发送c一个字节,lib线程收到通知根据fd创建与客户机通信的bufferevent,然后将这样一个连接事件放入线程的状态改变队列(w2m_state_change_qu... 阅读全文
posted @ 2015-03-17 00:24 zzyoucan 阅读(597) 评论(0) 推荐(0) 编辑
摘要:这两天看csdn有一些关于socket粘包,socket缓冲区设置的问题,发现自己不是很清楚,所以查资料了解记录一下: 一两个简单概念长连接与短连接:1.长连接 Client方与Server方先建立通讯连接,连接建立后不断开, 然后再进行报文发送和接收。2.短连接 Client方与Ser... 阅读全文
posted @ 2015-03-17 00:16 zzyoucan 阅读(532) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2015-03-16 10:58 zzyoucan 阅读(734) 评论(0) 推荐(0) 编辑
摘要:关于项目中lua任务(某些没弄懂,但lua上耗费时间有点长了不看了)这段时间看了lua语法和项目中lua应用1.在lua中注册c库,在lua5.2中好像都是注册c库,相当于在lua中定义一个table,key是函数名字,value是函数指针m_spLuaState->RegLib("game", f... 阅读全文
posted @ 2015-03-15 23:16 zzyoucan 阅读(646) 评论(0) 推荐(0) 编辑
摘要:#include //下面说的是在服务器差异脏标记,不管在想客户端还是在数据库中经常用到的一种方法//由于其实直接拿为进行操作,所以速度是非常快的,也许刚开始不太好理解,但只要熟悉之后就非常好用//对于包而言如果Update包只改变一项你把整个结构体都发过去会大大增加网络带快,现在基本都走差异更新e... 阅读全文
posted @ 2015-02-06 22:38 zzyoucan 阅读(377) 评论(0) 推荐(0) 编辑
摘要:关于buff和玩家自动回血buff{ m_StatusTimer.reset(pFT->createTimer()); m_StatusTimer->setInterval(500); m_StatusTimer->regTimer(std::bind(&StatusMgr::Ru... 阅读全文
posted @ 2015-02-05 23:04 zzyoucan 阅读(225) 评论(0) 推荐(0) 编辑
摘要:游戏中有限状态机用的很多,经理那天培训讲了一遍,那天在睡觉,刚才下载代码看,吗的没看懂,先上传到文件中,以后再看吧 阅读全文
posted @ 2015-02-05 21:23 zzyoucan 阅读(124) 评论(0) 推荐(0) 编辑
摘要:玩家移动玩家移动包的通知是很重要的当玩家移动时客户端发过来的struct TgtPos{ short mov_mode; // 移动方式,对应枚举值EnumMoveMode(转向、走、跑、传送、冲撞) short mov_face; // 移动朝向(不是方向)... 阅读全文
posted @ 2015-02-02 15:55 zzyoucan 阅读(216) 评论(0) 推荐(0) 编辑
摘要:人物上线block格子通知(相当重要了)人物上线需要看到可视范围内玩家,npc,玩家,同时附近玩家也需要看到本玩家上线对于进入地图switch (eBlockChange){case Map::eBlockChange_EnterMap: { m_MapBlockMgr.Proc... 阅读全文
posted @ 2015-01-31 21:50 zzyoucan 阅读(155) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示