为网狐棋牌游戏添加机器人
网狐平台的机器人功能平台都给实现了,而且接口都给定义好了只需要实现这个接口就可以class CAndroidUserItemSink : public IAndroidUserItemSink{
//控件变量
protected:
CGameLogic m_GameLogic; //游戏逻辑
IAndroidUserItem * m_pIAndroidUserItem; //用户接口//函数定义
public:
//构造函数
CAndroidUserItemSink();
//析构函数
virtual ~CAndroidUserItemSink();//基础接口
public:
//释放对象
virtual void __cdecl Release() { }//if (IsValid()){delete this;}return ;
//是否有效
virtual bool __cdecl IsValid() { return AfxIsValidAddress(this,sizeof(CAndroidUserItemSink))?true:false; }
//接口查询
virtual void * __cdecl QueryInterface(const IID & Guid, DWORD dwQueryVer);//控制接口
public:
//初始接口
virtual bool __cdecl InitUserItemSink(IUnknownEx * pIUnknownEx);
//重置接口
virtual bool __cdecl RepositUserItemSink();//游戏事件
public:
//时间消息
virtual bool __cdecl OnEventTimer(UINT nTimerID);
//游戏消息
virtual bool __cdecl OnEventGameMessage(WORD wSubCmdID, void * pData, WORD wDataSize);
//游戏消息
virtual bool __cdecl OnEventFrameMessage(WORD wSubCmdID, void * pData, WORD wDataSize);
//场景消息
virtual bool __cdecl OnEventGameScene(BYTE cbGameStatus, bool bLookonOther, void * pData, WORD wDataSize);//用户事件
public:
//用户进入
virtual void __cdecl OnEventUserEnter(IAndroidUserItem * pIAndroidUserItem, bool bLookonUser);
//用户离开
virtual void __cdecl OnEventUserLeave(IAndroidUserItem * pIAndroidUserItem, bool bLookonUser);
//用户积分
virtual void __cdecl OnEventUserScore(IAndroidUserItem * pIAndroidUserItem, bool bLookonUser);
//用户状态
virtual void __cdecl OnEventUserStatus(IAndroidUserItem * pIAndroidUserItem, bool bLookonUser);
//用户段位
virtual void __cdecl OnEventUserSegment(IAndroidUserItem * pIAndroidUserItem, bool bLookonUser);
}
实现这个接口其实很简单,机器人就是一个游戏玩家CGameClientDlg中已经实现了所有的功能,我们只需要把这些功能再在机器人类中再实现一遍就可以了,如果说游戏各个模块之间的通信消息是生命过程的血液的话,那么游戏的操作界面就是生命体的躯体,普通的游戏玩家需要界面,以实现漂亮人性化的操作效果,而机器人是没有血肉之躯,但是不乏流畅的血液,热血澎湃着,机器人就有了灵魂,因为我们的工作就是要保证机器人有灵魂!一个简单的办法就是拷贝CGameClientDlg中的所有功能,移除所有的界面操作的代码就可以了!简单吧,是不是没有我们想象中的那么麻烦,呵呵!
好帖就是要顶 很好哦 LZ真是人才 厉害厉害 这个东西找了很久了多谢楼主!! 很不错 楼主是超人 顶顶多好 这个东西找了很久了多谢楼主!!
页:
[1]
2