关于自定义OK框的一个请教!
()%100
[@MAIN]
#IF
#ACT
OPENMERCHANTBIGDLG 29 1796 1 4 0 0 1 390 2 1
#SAY
<> <≮残 剑 修 复≯/SCOLOR=215> \\ \\
<> <修复进度:/AUTOCOLOR=253>
:0:251:0:0:%p/%m>\\ \\ \\
<> 精炼石
#ACT
GAMEGOLD - 2000000
DELBOXITEM 12 1
UpdateItem boxitem12
INC U100 5
SENDMSG 7 修复成功,增加5点修复进度!
GOTO @MAIN
break
上面是大概的脚本,我想请问下大佬们,如何保证不弹回材料,刷新进度条呢?
如果是GOTO @MAIN 的话那材料就会弹出来!
东西会自动反弹回包裹的原因是:当你使用goto @main跳转回@main时,事实上是再一次执行了OPENMERCHANTBIGDLG 29 1796 1 4 0 0 1 390 2 1命令,重新打开了NPC打对话框。
系统的设定是当你再一次打开对话框时,默认就是关了之前的对话框,所以你自定义OK框中的东西就会自动回到包裹。
因此,你只要做到两条就不会出现这种现象:①确保OPENMERCHANTBIGDLG的第10个个参数是1,这样才能保证内容会始终显示在这个自定义的大对话框里。②重新显示内容时,就只单纯的显示内容,不要再使用到OPENMERCHANTBIGDLG命令就可以。
比如你的脚本可以这么改:
()
%100
[@MAIN]
#IF
#ACT
OPENMERCHANTBIGDLG 29 1796 1 4 0 0 1 390 2 1
goto @修复界面
;这里就是把打开对话框和显示部分分开,确保下次只需要显示,不用再打开对话框
[@修复界面]
#IF
#SAY
<> <≮残 剑 修 复≯/SCOLOR=215> \\ \\
<> <修复进度:/AUTOCOLOR=253>
:0:251:0:0:%p/%m>\\ \\ \\
<> 精炼石
#ACT
GAMEGOLD - 2000000
DELBOXITEM 12 1
UpdateItem boxitem12
INC U100 5
SENDMSG 7 修复成功,增加5点修复进度!
GOTO @修复界面
break 新做一个新界面,@这个新界面 SENDMSG 7 修复成功,增加5点修复进度!
GOTO @MAIN2222
break
[@MAIN2222]
#SAY
<> <≮残 剑 修 复≯/SCOLOR=215> \\ \\
<> <修复进度:/AUTOCOLOR=253>
:0:251:0:0:%p/%m>\\ \\ \\
<> czy7812 发表于 2021-10-4 08:11 东西会自动反弹回包裹的原因是:当你使用goto @main跳转回@main时,事实上是再一次执行了OPENMERCHANTBIGDL ...
谢谢大佬了,回答的很详细了。。。。
页:
[1]