MoleServer游戏服务器框架使用教程(四)

MoleServer游戏服务器框架使用教程(四)


 

这将是本教程的最后一篇,我们将在这篇教程中详细讲解游戏中机器人的添加,管理,如何编写,已经如何接入代理,代码系统的使用。

首先打开网站后台,“玩家”-》“机器人管理”-》“机器人列表”-》“添加机器人”:


 

然后就可以为某个具体游戏的具体某台服务器添加机器人了。机器人添加后,还需要设置机器人的工作时间:


 

只有设置了某一段时间,机器人才会在这段时间进入服务器进行工作,当然这里可以设置多个时间段,时间段是24小时制,比如3:00:00-18:00:00。

机器人添加完成后,机器人就会在相应的时间段进入游戏服务器进行工作。

到这里,我们网站方面的配置就完成了,但游戏服务器中的接口在哪里呢,比如我们这个游戏例子,具体的机器人逻辑就在moleserver/games/example/crobotlogicframe.h文件中,它有下面一些接口:

/// 用于处理用户准备后的消息

virtual void OnProcessPlayerReadyMes(int playerId);

/// 用于处理用户开始游戏开始消息

virtual void OnProcessPlayerGameStartMes();

/// 用于处理用户结束游戏消息

virtual void OnProcessPlayerGameOverMes(void);

/// 用于处理用户进入游戏房间后的消息

virtual void OnProcessPlayerRoomMes(Json::Value &mes);

/// 处理用户进入房间消息

virtual void OnProcessEnterRoomMsg(int playerId);

/// 处理用户离开房间消息

virtual void OnProcessLeaveRoomMsg(int playerId);

/// 处理用户断线重连消息

virtual void OnProcessReEnterRoomMes(int playerId);

/// 处理用户断线消息

virtual void OnProcessOfflineRoomMes(int playerId);

/// 处理用户定时器消息

virtual void OnProcessTimerMsg(int timerId,int curTimer);


 

如果你看过前一篇文章你就会发现,和正常玩家的接口是一样的,这里唯一的区别是逻辑中比如管理定时器,发送消息的方法不再走房间类,而是走玩家类。

我们看下Player类提供下面结构方法:

/// 开始一个定时器

virtual bool StartTimer(int timerId,int space) = 0;

/// 关闭一个定时器

virtual void StopTimer(int id) = 0;

/// 关闭所有的定时器

virtual void StopAllTimer(void) = 0;


 

/// 发送游戏数据(此函数只限于机器人使用,正常用户使用请使用房间消息发送函数)

virtual void SendGameMsg(Json::Value &msg) = 0;

/// 发送准备消息

virtual void SendReadyMsg(void) = 0;

以上就是机器人的相关的内容,下面我们再来看看代理方面的东西,一个玩家如果要成为某个代理的会员,主要在注册这个接口,我们来看看账号服务器管理注册方面的处理代码

/**

* 处理用户注册消息

*

* @param connId 要处理网络消息的客户端ID

* @param mes 要处理的网络消息

*/

void GameFrameManager::OnProcessUserRegisterMes(uint32 connId,Json::Value &mes)

{

std::string pUserName = mes["UserName"].asString();

std::string pUserPW = mes["UserPW"].asString();

std::string pEmail = mes["Email"].asString();

int pSex = mes["Sex"].asInt();

std::string pRealName = mes["RealName"].asString();

std::string pTelephone = mes["Telephone"].asString();

std::string pAvatorIndex = mes["AvatorIndex"].asString();

std::string pReferrer = mes["Referrer"].asString();

std::string pcardnumber = mes["cardnumber"].asString();


 

pReferrer 这个参数就是代理的账号,如果填写了这个代理账号,那么这个玩家就是这个代理旗下的会员。

顶级代理是在后台设置的,而分级代理由代理自己通过代理后台去设置。


 

代理管理系统的访问地址为:

http://127.0.0.1/agentuser/index/index.html


 

好,以上就是我们整套教程内容,欢迎来信交流,学习。


 

欢迎加入QQ群交流:131296225

email:akinggw@126.com

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值