lua 脚本如何实现循环一套动作至规定时间后关闭程序然后重新打开。

2025-04-19 10:36:08
推荐回答(2个)
回答1:

一直专注于lua问题回答已经好多年了
已经有无数人提出了lua定时的问题 但我也一直不回答
其实更希望的是提出问题的朋友门能先对lua有一个比较深的理解后再来提问题
类似功能不是无法实现 但是实现原理你们也最好去弄清楚一下
首先lua是一门很小的脚本语言 因为很小(大概就200K) 所以大部分功能都没有 只提供了最基本的库和语法解释等功能
所以 定时相关的函数 肯定就不在lua的范畴里了
那这样得怎么实现定时的功能呢? lua有很强的扩展性 可以在它的宿主语言(一般是C/C++)上实现好相关的lua接口 然后供脚本调用
所以 原理就是在你的宿主语言上实现好一个CFUNCTION 然后开放给lua来实现
但是一般开发者 只负责写脚本这边,而对宿主语言完全没有接触,甚至连lua的调用过程都不理解 所以相关问题也是无法解决的 因此 能不能实现定时的功能 完全依赖于你对宿主语言的控制程度

回答2:

如下代码 :

ret = NPCDialog( "Hello bitch" )
if ret == OK then print("OK") end

对于策划而言,NPCDialog应该是阻塞的,除家操作此对话框,点击OK或者关闭,不然该函数不会返回。而对于宿主程序C++而言,如何实现这个函数呢:
static int do_npc_dialog( lua_State *L )
{
const char *content = lua_tostring( L, -1 );

lua_pushnumber( ret );
return 1;
}