找回密码
 立即注册
搜索
查看: 167|回复: 6

[已处理] 建议跳转行数支持带参数

  [复制链接]
发表于 2026-8-30 10:54:18 | 显示全部楼层 |阅读模式
建议反馈
建议描述: 建议跳转的函数支持带参数
actor:delayGotoLable
play:messageBox
实现具体思路: 建议跳转的函数支持带参数
actor:delayGotoLable
play:messageBox
联系QQ: 隐藏内容

比如这个弹框我先接收了参数弹框,然后弹框确认之后带的参数就会提示无效,包括延迟跳转的那个也是,希望这两个跳转能跟普通点击一样支持带参数


actor:messageBox("确定使用" .. price .. "个" .. currency .. "兑换" .. itemName .. "吗?", "@exchangeitemex{" .. itemName .. "}", "", actorNpc:getKeyId())


装备兑换商-3 脚本函数无效giveitem{开天}
回复

使用道具 举报

发表于 2026-8-30 11:50:05 | 显示全部楼层
本帖最后由 1580 于 2026-8-30 11:52 编辑

如果你的NPC是LUA脚本,就需要自己把函数补全,

actor:delayGotoLable(5000, "盟重老兵", "@DelayLabel",1)


function DelayLabel(actor, actorNpc)

end


    if actor:messageBox("弹出对话框", "@OkScript", "@CancelScript", actorNpc:getKeyId()) == 1 then      print("向登陆器发送弹出对话框:按确定触发@OkScript,按取消触发@CancelScript")    end--注意,Lua函数不能含中文function OkScript(actor, actorNpc)

end
function CancelScript(actor, actorNpc)

end

回复

使用道具 举报

发表于 2026-8-30 12:25:58 | 显示全部楼层
本帖最后由 1580 于 2026-8-30 12:41 编辑

至于传参模式,下版再做支持


function ShowMessageBoxEx(actor, actorNpc)
  if actor:getRace() == 0 then--种族ID:人物
    if actor:messageBox("弹出对话框[带参数]", "@OkScriptEx{参数1}", "@CancelScriptEx{参数2}", actorNpc:getKeyId()) == 1 then
      print("弹出对话框:按确定触发OkScriptEx,按取消触发CancelScriptEx")
    end
  end
end

function OkScriptEx(actor, actorNpc)
  local sParam = ""
  if type(actor.getVal_S) == "function" then
        sParam = actor:getVal_S(0)--提取链接中的参数,即{}中的信息:参数1
  end
  print("按确定触发OkScriptEx,参数:"..sParam)
end

function CancelScriptEx(actor, actorNpc)
  local sParam = ""
  if type(actor.getVal_S) == "function" then
        sParam = actor:getVal_S(0)--提取链接中的参数,即{}中的信息:参数2
  end
  print("按取消触发CancelScriptEx,参数:"..sParam)
end

===========================================

--延时跳转[带参数]
function PlayDelayRun(actor, actorNpc)
  actor:delayGotoLable(1000, actorNpc:getCharName(), "@DelayLabel{传参}", 0)
  print("设置延时跳转[带参数]: DelayLabel{传参}")
end
--延时执行过程
function DelayLabel(actor, actorNpc)
  local sParam = ""
  if type(actor.getVal_S) == "function" then
        sParam = actor:getVal_S(0)--提取链接中的参数,即{}中的信息:传参
  end
  print("执行延时跳转[带参数],参数:"..sParam)
end

回复

使用道具 举报

发表于 2026-8-30 18:09:40 | 显示全部楼层
回复

使用道具 举报

 楼主| 发表于 2026-8-31 08:34:50 | 显示全部楼层
1580 发表于 2026-8-30 12:25
至于传参模式,下版再做支持

好的,有没有可能支持到跟常规点击链接一样的产出传递模式

function testParam(actor, actorNpc, itemName, itemCount)
回复

使用道具 举报

发表于 2026-8-31 10:46:41 | 显示全部楼层
本帖最后由 1580 于 2026-8-31 11:10 编辑
小道消息 发表于 2026-8-31 08:34
好的,有没有可能支持到跟常规点击链接一样的产出传递模式

function testParam(actor, actorNpc, itemNa ...
可通过S0传出,或定义函数来接收


function ShowMessageBoxEx(actor, actorNpc)
  if actor:getRace() == 0 then--种族ID:人物
    if actor:messageBox("弹出对话框[带参数]", "@OkScriptEx{AAA,BBB}", "@CancelScriptEx{CCC,DDD}", actorNpc:getKeyId()) == 1 then
      print("弹出对话框:按确定触发@OkScriptEx,按取消触发@CancelScriptEx")
    end
  end
end
--接收多个参数的函数
function OkScriptEx(actor, actorNpc, sStr1, sStr2)
  local sParam = ""
  if type(actor.getVal_S) == "function" then
        sParam = actor:getVal_S(0)--提取链接中的参数,S0,即{}中的信息:AAA,BBB
  end
  print("按确定触发@OkScriptEx,参数:"..sParam)
  print("参数1:"..sStr1.." 参数2:"..sStr2)
end
--接收多个参数的函数
function CancelScriptEx(actor, actorNpc, sStr3, sStr4)
  local sParam = ""
  if type(actor.getVal_S) == "function" then
        sParam = actor:getVal_S(0)--提取链接中的参数,S0,即{}中的信息:CCC,DDD
  end
  print("按取消触发@CancelScriptEx,参数:"..sParam)
  print("参数3:"..sStr3.." 参数4:"..sStr4)
end
回复

使用道具 举报

 楼主| 发表于 2026-8-31 22:32:46 | 显示全部楼层
1580 发表于 2026-8-31 10:46
可通过S0传出,或定义函数来接收

好的,明白了,等更新了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|HGEM2论坛

GMT+8, 2026-9-20 20:40 , Processed in 0.337880 second(s), 5 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表