点击复制链接推荐朋友: www.huoshentu.com

Lua神途123自定义调用函数脚本参数

来源:神途 2019-12-06 作者:新开传奇网站 阅读:点击提交

Lua神途123调用函数参数
假设你在脚本中定义了一个函数:
function main(number)
number = number + 1
return number
end
在你的游戏代码中,你希望在某个时刻调用这个函数取得它的返回值。
在Lua中,函数等同于变量,所以你可以这样来取得这个函数:
lua_getglobal(L, "main");//函数现在栈顶
现在,我们可以调用这个函数,并传递给它正确的参数:
lua_pushnumber(L, 100); //将参数压栈
lua_pcall(L, 1, 1, 0); //调用函数,有一个参数,一个返回值
//返回值现在栈顶
int result = lua_tonumber(L, -1);
result 就是函数的返回值
完整的测试代码如下:
#include "lua.h"
#include "lauxlib.h"
#include "lualib.h"
 
int main(int argc, char *argv[])
{
lua_State *L = lua_open();
 
// 此处记住,当你使用的是5.1版本以上的Lua时,请修改以下这句为luaL_openlibs(L);
luaopen_base(L);
const char *buf = "function main(number) number = number + 1 return number end";
lua_dostring(buf);
lua_getglobal(L, "main");
lua_pushnumber(L, 100);
lua_pcall(L, 1, 1, 0);
int result = lua_tonumber(L, -1);
assert(result == 101);
lua_close(L);
return 0;
}
 
Lua神途123脚本调用程序
Lua神途传奇手游本身定位在一种轻量级的,灵活的,可扩充的脚本语言,这意味着你可以自由的扩充Lua,为你自己的游戏量身定做一个脚本语言。
你可以在主机程序中向脚本提供你自定的api,供脚本调用。
Lua定义了一种类型:lua_CFunction,这是一个函数指针,它的原型是:
typedef int (*lua_CFunction) (lua_State *L);
这意味着只有这种类型的函数才能向Lua注册。
首先,我们定义一个函数
int foo(lua_State *L)
{
//首先取出脚本执行这个函数时压入栈的参数
//假设这个函数提供一个参数,有两个返回值
//get the first parameter
const char *par = lua_tostring(L, -1);
printf("%s/n", par);
//push the first result
lua_pushnumber(L, 100);
//push the second result
lua_pushnumber(L, 200);
//return 2 result
return 2;
}
我们可以在脚本中这样调用这个函数
r1, r2 = foo("hello")
print(r1..r2)
完整的测试代码如下:
extern "C"
{
#include "lua.h"
#include "lauxlib.h"
#include "lualib.h"
}
int foo(lua_State *L)
{
//首先取出脚本执行这个函数时压入栈的参数
//假设这个函数提供一个参数,有两个返回值
//get the first parameter
const char *par = lua_tostring(L, -1);
printf("%s/n", par);
//push the first result
lua_pushnumber(L, 100);
//push the second result
lua_pushnumber(L, 200);
//return 2 result
return 2;
}
int main(int argc, char *argv[])
{
lua_State *L = lua_open();
// 此处记住,当你使用的是5.1版本以上的Lua时,请修改以下两句为luaL_openlibs(L);
luaopen_base(L);
luaopen_io(L);
lua_register(L, "foo", foo);
const char *buf = "r1, r2 = foo("hello") print(r1..r2)";
lua_dostring(L, buf);
lua_close(L);
return 0;
}
程序输出:
hello
100200

 

  • 2019-12-06录入 神途 Lua神途123自定义调用函数脚本参数转载请保留源文出处:http://haost123.com

    上一篇:在神途手游游戏中如何使用LUA神途脚本语言
    下一篇:没有了

    猜你可能喜欢的神途攻略文章

    好神途123超群独门升级的成长秘诀方法
    2020-02-05
    好神途123超群独门升级的成长秘诀方法
    在好神途123相信每一个玩家都想拥有非常不错的发展效果了,毕竟谁不想成为一个高手呢。对于玩家们来说,想要成为一个非常好神途123强悍的玩家,那就需要付出很多努力了,并且在...
    神途
    1.95刺影传奇手游巅峰竞技场重磅推出
    2024-03-12
    1.95刺影传奇手游巅峰竞技场重磅推出
    最新迷失单职业传奇手游1.95无英雄合击版是你从未体验过的全新版本,为大伙儿产生传奇时代的精彩纷呈感受,在游戏里面打开你的1.95刺影传奇手游作战。 热门手机游戏采用了经典的...
    传奇手游
    好神途123礼包新区推广新手攻略
    2020-03-31
    好神途123礼包新区推广新手攻略
    好神途123礼包新区推广新手攻略: 新手神途123上线领取 QQ 群 领取礼包- 获得绑定金币还有随机回城 *2 拿着身上的绑定金币去商店买一套垃圾绑定装备就可以开始刷怪神途之旅 刷怪干什...
    神途123
    复古好传奇sf道士用好施毒术战术技巧
    2020-03-15
    复古好传奇sf道士用好施毒术战术技巧
    对于道士来说,前期的176复古传奇sf新服战术自然是不断获得技能并且积累一定的游戏经验。所以,选择道士职业的游戏玩家需要每天坚持上线坚持练习,当然,在游戏中还要不但的积...
    好传奇sf
    找私服传奇成为强者神途热门争分夺秒活动
    2020-04-14
    找私服传奇成为强者神途热门争分夺秒活动
    神途热门争分夺秒活动时间每天下午1:30分开放想要在zhaosf123神途私服传奇新开游戏中成为强者那么很简单,一种是充钱,一种就是不断的刷怪来获得更强力的装备。 而在真分夺秒zhao...
    找私服传奇

    热血传奇私服推荐列表

    好神途私服游戏如何升级打宝攻略

    点击查看

    神途传奇手游sf暗之幸运怪副本爆率任务

    点击查看

    1.80至尊火龙传奇手游获取洗练精炼途径

    点击查看

    神途传奇手游sf命运之刃任务章节流程

    点击查看

    《热血神途》天下第一精彩每日活动详细介绍

    点击查看

    神途手游三端互通天龙圣衣的起源

    点击查看

    古墓迷失传奇SF单职业武魂鬼王必争之地

    点击查看

    古惑仔传奇手游单职业一个角色顶到爆

    点击查看

    武易传奇手游1.76肝帝玩家怎样获取金币

    点击查看

    1.85雷霆合击传奇SF123原版与创新体验分析

    点击查看

    开传奇sf游戏修改Boot.ini文件的重要性!

    点击查看

    嘟嘟神途传奇176游戏福利领取攻略

    点击查看

    热血传奇手游资讯动态

    苍月神途地图隐藏洞穴里的特殊神匠

    点击查看

    找私服神途私服热门激情泡点被道士算计

    点击查看

    好sf传奇猛士海贼王神途瓦罗兰大陆

    点击查看

    热血神途st传奇123领取神秘一斗签鉴定

    点击查看

    神途三职业特色混猪洞心得及技能

    点击查看

    龙门神途手游:卧龙山庄遍似世外桃源

    点击查看

    怎么修改神途传奇服务端版本!

    点击查看

    古墓单职业传奇私服逆袭BOSS专属神器

    点击查看

    好传奇sf发布网1.76我本沉默传奇独醉小极品传奇

    点击查看

    古惑仔传奇手游单职业一个角色顶到爆

    点击查看

    热血传奇私服黑暗之魂打金物品收益

    点击查看

    无量沉默传奇私服全新的沉默1.80复古传奇

    点击查看

    热血传奇SF超变发挥着独特的光芒

    点击查看

    神途手游三端互通天龙圣衣的起源

    点击查看

    豪门复古传奇再现屠龙觉醒,你准备好了吗

    点击查看

    简介:

    (www.haost123.com)正版官方发布授权品牌传奇手游,热血传奇私服版本,仿盛大传奇SF999发布网网站。
    精选最佳品牌传奇SF176精品金币复古传奇私服英雄合击传奇手游排名榜,单职业中变变态传奇私服版本,热血传奇手游资讯网站。