156 lines
4.0 KiB
C++
156 lines
4.0 KiB
C++
/*
|
||
由于一些特殊的函数需要直接调用Lua_state进行操作,这里注册一些函数作为特殊处理的
|
||
|
||
*/
|
||
#pragma once
|
||
|
||
extern const luaL_reg LuaHelpExpot[];
|
||
|
||
/*
|
||
*关于luaL_reg类函数的返回参数请注意,该返回参数表示给脚本的返回的值的个数,如果没有返回就返回0
|
||
*如果有2个返回就返回2
|
||
*/
|
||
|
||
namespace LuaHelp
|
||
{
|
||
/*
|
||
* Comments:保存一个Lua的表到一个文件里去
|
||
比如有一个表
|
||
aa=
|
||
{
|
||
xxx = "112",
|
||
zz =
|
||
{
|
||
121, 2332,
|
||
},
|
||
yyy = 111,
|
||
}
|
||
要存盘为../Data/aa.txt使用
|
||
存盘的时候用 LuaHelp.saveTable(aa,"../Data/aa.txt",表格名字);
|
||
如果表格名字不赋值 ,那么将不存名字,否则将保持为
|
||
|
||
如果不传表名保存完的aa.txt的内容为:
|
||
{
|
||
xxx = "112",
|
||
zz =
|
||
{
|
||
121, 2332,
|
||
},
|
||
yyy = 111,
|
||
}
|
||
否则为加入名字为STable将为
|
||
STable =
|
||
{
|
||
xxx = "112",
|
||
zz =
|
||
{
|
||
121, 2332,
|
||
},
|
||
yyy = 111,
|
||
}
|
||
* Param lua_State * L: lua的指针
|
||
* @Return int:没有返回,这里的返回值是表示给lua的返回的参数的个数
|
||
*/
|
||
int saveTable(lua_State *L);
|
||
|
||
/*
|
||
* Comments:这个是测试用例,用于把一个数据表压入
|
||
脚本里使用local b = LuaHelp.getTestTable() 将得到一个table
|
||
* Param lua_State * L:
|
||
* @Return int:返回值,是一个表的话就返回1
|
||
*/
|
||
int getTestTable(lua_State *L);
|
||
|
||
/*
|
||
* Comments:获取角色所在队伍的队员的列表
|
||
* Param lua_State * L:脚本传来的参数是角色的指针
|
||
使用方法为: LuaHelp.getTeamMemberList(玩家的指针)
|
||
* @Return int:返回1,是一个表
|
||
*/
|
||
int getTeamMemberList(lua_State *L);
|
||
|
||
/*
|
||
* Comments:通过队伍的指针,获取队伍成员的列表
|
||
* Param lua_State * L:
|
||
* @Return int:
|
||
*/
|
||
int getTeamMemberListByPtr(lua_State *L);
|
||
|
||
/*
|
||
* Comments:根据副本的id获取全服中这个副本的所有copy,返回副本的handle列表
|
||
* Param int nFbid:
|
||
* @Return void:
|
||
*/
|
||
int getFbFromId(lua_State *L);
|
||
|
||
/*
|
||
* Comments:获取玩家重配地图的坐标点
|
||
* Param lua_State * L:传入玩家的指针
|
||
* @Return int:返回一个表,里面3个数字,分别是场景id,坐标X,坐标Y
|
||
*/
|
||
int getReloadMapPos(lua_State *L);
|
||
|
||
/*
|
||
* Comments:获取周围的实体的指针列表
|
||
* Param lua_State * L:[实体的指针][半径范围][实体类型tagEntityType, 留空或-1表示任意类型]
|
||
* @Return int:返回一个表,包含所有的实体指针
|
||
*/
|
||
int getNearEntityList(lua_State *L);
|
||
|
||
/*
|
||
* Comments:获取周围的实体的指针列表
|
||
* Param lua_State * L:[场景指针][x][y][半径范围]
|
||
* @Return int:返回一个表,包含所有的实体指针
|
||
*/
|
||
int getNearEntityListFromXY(lua_State *L);
|
||
|
||
/*
|
||
* Comments:获取周围的实体的指针列表
|
||
* Param lua_State * L:[场景指针][x][y][宽度半径][高度半径]
|
||
* @Return int:返回一个表,包含所有的实体指针。获取到的区域范围是 (2*宽度半径)*(2*高度半径)
|
||
*/
|
||
int getNearEntityListFromRange(lua_State *L);
|
||
|
||
/*
|
||
* Comments:获取所有的在线玩家的指针
|
||
* Param lua_State * L:
|
||
* @Return int:返回一个表,包含所有的实体指针
|
||
*/
|
||
int getAllActorList(lua_State *L);
|
||
|
||
/*
|
||
* Comments:获取场景的在线玩家的指针
|
||
* Param lua_State * L:[int:场景id]
|
||
* @Return int:返回一个表,包含所有的实体指针
|
||
*/
|
||
int getSceneActorListById(lua_State *L);
|
||
|
||
/*
|
||
* Comments:获取场景的在线玩家的指针
|
||
* Param lua_State * L:[int:场景id]
|
||
* @Return int:返回一个表,包含所有的实体指针
|
||
*/
|
||
int getSceneAliveActorListById(lua_State *L);
|
||
|
||
/*
|
||
* Comments:获取排行榜前N名的数据
|
||
* Param lua_State * L:[排行榜的指针][数量,表示要获取前N名]
|
||
* @Return int:返回一个表,包含排行榜项的指针
|
||
*/
|
||
int getRankingItemList(lua_State* L);
|
||
|
||
/*
|
||
* Comments:获取副本内所有玩家的列表
|
||
* Param lua_State * L:[副本的指针]
|
||
* @Return int:返回一个表,包含所有玩家的指针
|
||
*/
|
||
int getFbActorList(lua_State* L);
|
||
|
||
/*
|
||
* Comments:获取实体可见范围内玩家的列表
|
||
* Param lua_State * L:[实体指针]
|
||
* @Return int:
|
||
*/
|
||
int getVisiActorList(lua_State* L);
|
||
}
|