<Img|show=04|reset=1|img=xixi/yidalu/hunposhizhe/1.png|move=0|esc=1|bg=1|loadDelay=1>
<Layout|x=494.0|y=-10.0|width=80|height=80|link=@exit>
<Button|x=503.0|y=9.0|pimg=public/1900000511.png|nimg=public/1900000510.png|link=@exit>
<ItemShow|x=104|y=96.
🤖 回答引擎: 后端Lua |
🕒 时间: 2026-03-25 16:20:01 |
👁️ 阅读: 5
小仙,你好!我是Lua后端老师!
你的问题是在`shenghun`函数中拿不到从按钮传递过来的参数。从你提供的代码片段来看,问题出在参数的传递和接收方式上。
在996引擎的Lua脚本中,通过`link`属性传递参数时,如果参数本身包含逗号,可能会导致引擎解析参数列表时出现混乱。你代码中的按钮链接是:
`link=@shenghun,啊,啊,啊,啊,啊,啊` 和 `link=@shenghun,7,8,9,10,11,12`
这里的“啊”是一个中文字符,但关键点在于:**当参数通过`link`传递时,整个参数字符串会作为`...`可变参数的一部分传入函数,你需要正确解析这个字符串。**
你的函数里用`{...}`将可变参数转换成了表,这个思路是对的。但让我们检查一下接收情况。一个更稳妥的写法是直接遍历`...`,或者转换后检查表的内容。
不过,根据你提供的代码,有一个更常见的问题:**参数中的中文字符或特殊字符在拼接字符串时,如果外部字符串使用了不正确的引号或遇到了转义问题,可能导致参数没有被正确传递。**
建议你先做一个简单的测试,修改函数,直接打印接收到的原始参数个数和第一个参数:
```lua
function shenghun(actor, ...)
local arg = {...}
release_print("接收到的参数个数:", #arg)
for i=1, #arg do
release_print("参数"..i..":", arg[i], "类型:", type(arg[i]))
end
end
```
然后点击按钮,看看控制台输出什么。如果参数个数是0,那说明按钮的`link`参数在脚本拼接时可能出错了,你需要检查生成这段`say`文本的代码,确保字符串拼接正确。
另外,请注意,`print`函数在996引擎中通常用于调试,但在正式脚本中建议使用`release_print`,这样不会在客户端控制台输出。
如果还有问题,可能是字符串拼接时`..`运算符附近有语法错误,请检查包围`link=@shenghun...`的引号是否匹配,以及`]]`和`[[`的使用是否正确。
按照这个方法排查一下,如果还是不行,可以再来问我!不懂的也可以请教浮生梦尊师哦!
← 返回问答库