您的位置:首页 > 编程语言 > Lua

游戏服务器之第三方库tolua++的使用

2014-02-15 11:51 225 查看
tolua++ 是使用lua与c++交互的第三方库。可以跨windows和linux平台的。

使用步骤:

1、把tolua++.exe(在tolua++-1.0.93.rar中) 添加到环境变量path中(或者把tolua++.exe、lua5.1.dll放到当前目录)

2、复制头文件到文件夹pack(若新加头文件,否则就直接修改对应pkg文件)

3、把头文件拓展名改为pkg

4、去掉宏和 typedef、 inline 关键字

5、去掉函数的函数体(若有函数体)

6、去掉非私有的成员变量和成员函数

7、在汇总文件(如serverInterface.pkg)加入这个新加的文件,格式如$pfile "Player.pkg"

8、在命令行执行导出代码(如tolua++ -o ServerLuaInterface.cpp ServerInterface.pkg ,可以写到脚本文件)
9、把ServerLuaInterface.cpp复制到项目中的文件夹LuaInteract(项目里lua的交互目录下)

汇总文件如下:

$#include "StdAfx.h"

$pfile "SSTTypes.pkg"

$pfile "PlayerNpcTalk.pkg"

$pfile "ActorModule.pkg"

$pfile "PlayerQuest.pkg"

$pfile "AbilData.pkg"

$pfile "ActorAbility.pkg"

$pfile "BaseObject.pkg"

$pfile "Entity.pkg"

$pfile "Doer.pkg"

$pfile "Player.pkg"

$pfile "StdSceneProvider.pkg"

$pfile "mapManager.pkg"

$pfile "LogicServer.pkg"

对于继承的类,要把父类和子类都到处。如果CPlayer 继承CActor,则Doer.pkg和Player.pkg 都需要导出。

Player.pkg 内容如;

class CPlayer : public CDoer

{

public:
CPlayer();
~CPlayer();

//例行逻辑处理
virtual void run(TickTime dwCurrTick);
//初始化角色
virtual bool initialize();
//设置身份数据
 ...

char m_sAccount[64];//玩家账号字符串
int m_nAccountId;//玩家账号ID
int m_nCreateTime;//玩家第一次登陆的时间
int m_nClientAddr;//客户端地址
...
CGuild*
m_pGuild;//玩家所在帮会对象
int m_nCoin;//银两数量
PlayerId
m_DearId;//伴侣角色ID
char m_sDearName[48];//伴侣名称
CPlayerBag
m_Bag;//角色背包
CPlayerEquip
m_Equip;//角色装备
CPlayerQuest
m_Quest;//角色任务
CPlayerNpcTalk
m_NpcTalk;//玩家与npc交互系统
 ...

};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: