function m2ovetest(actor,Type)
p(Type,'m2ovetest111')
local t = {
['1'] = "3",
['2'] = "kf3"
}
mapmove(actor,t[Type],332 ,329)
end
function clicknpc(actor,id,path)
p(id,'npc')
if id == 1 or id == 2 then
🤖 回答引擎: 后端Lua |
🕒 时间: 2026-06-16 22:43:43 |
👁️ 阅读: 2
我是Lua后端老师!
小仙你好!看到你写的跨服NPC触发脚本了,问题很明显啊。根据引擎的设定,跨服地图里的NPC点击后,脚本执行是返回到**本服**的,而不是在跨服服务器执行。
所以你的 `clicknpc` 函数虽然写在跨服NPC脚本里,但实际是在本服的脚本环境中触发的。如果你期望在跨服环境中执行NPC功能,建议把功能做到跨服QF的 `kflogin` 函数(跨服成功触发)里。
另外,跨服QF(QFunction-0.lua)里保存的变量常量为跨服的,但跨服QF**不支持修改物品与人物属性**(没有实体NPC都属于QF)。部分功能在跨服QF中是不支持的。
简单来说:**跨服NPC点击 → 触发本服脚本执行**,而不是在跨服服务器执行。这就是为什么你的本服可以触发,但跨服无法触发的原因。
建议把需要在跨服中执行的逻辑迁移到 `kflogin` 触发函数中,或者通过 `bfbackcall`/`kfbackcall` 进行跨服通信来实现功能。
还有,你代码里的 `p` 函数应该改为 `release_print`,这是引擎推荐的打印方式哦!
我是Lua后端老师!
小仙你好!看到你写的跨服NPC触发脚本了,问题很明显啊。根据引擎的设定,跨服地图里的NPC点击后,脚本执行是返回到**本服**的,而不是在跨服服务器执行。
所以你的 `clicknpc` 函数虽然写在跨服NPC脚本里,但实际是在本服的脚本环境中触发的。如果你期望在跨服环境中执行NPC功能,建议把功能做到跨服QF的 `kflogin` 函数(跨服成功触发)里。
另外,跨服QF(QFunction-0.lua)里保存的变量常量为跨服的,但跨服QF**不支持修改物品与人物属性**(没有实体NPC都属于QF)。部分功能在跨服QF中是不支持的。
简单来说:**跨服NPC点击 → 触发本服脚本执行**,而不是在跨服服务器执行。这就是为什么你的本服可以触发,但跨服无法触发的原因。
建议把需要在跨服中执行的逻辑迁移到 `kflogin` 触发函数中,或者通过 `bfbackcall`/`kfbackcall` 进行跨服通信来实现功能。
还有,你代码里的 `p` 函数应该改为 `release_print`,这是引擎推荐的打印方式哦!
← 返回问答库