搜索
查看: 490|回复: 1

死循环建议

[复制链接]
发表于 2021-8-2 22:22:55 | 显示全部楼层 |阅读模式
BUG反馈
引擎版本号: 2019
登陆器版本号: 2019
BUG描述: GOTO
#CALL [\游戏登陆\私人变量.txt] @私人变量
BUG重现方式: 和脚本本身对错无关,但是这2种都很容易出现死循环或者报错。
修复后应达到的效果: 不报错
联系QQ: 隐藏内容
GOTO  或者  DELAYGOTO 还有#CALL  能不能加个限制次数的,比如  DELAYGOTO 100时间  循环1次 @XXX  不知道这样能不能有效的解决死循环

补充内容 (2021-8-2 22:27):
点击一次执行一次,不是只执行一次
发表于 2021-8-2 23:19:49 | 显示全部楼层
此死循环并非真正的死循环,而是由于引擎处理不过来导致的。
什么意思呢。

比如:
[@标签]
#ACT
GOTO @标签
BREAK
以上为真死循环。

[@标签]
#IF
GAMEGOLD ? 1
#ACT
GAMEGOLD - 1
GOTO @标签
BREAK
#ELSEACT
BREAK
此为假死循环,为什么叫假死循环,因为里面有条件检测,当条件不成立时,就会结束代码,但是,由于引擎在短时间内执行不那么多次goto,所以导致引擎反应不过来,从而崩掉。

在有些脚本里,GOTO @标签  可以改成DELAYGOTO 100 @标签 这样的延时,但在有些功能里,没法做成延时。

比如我之前发的帖子的脚本,这是一个自动计算玩家包里的材料可以将龙啸升多少级的功能,如果改成延时的,这个计算会是一个很长的过程,游戏界面会好多秒以后才会显示出结果,玩家看上去会觉得慢慢的,以为会是卡了。而且,还有其它问题导致。


#IF
CHECKKIMNEEDLE  点星珠 <$N(升1级所需点星珠数量)>
#ACT
GOTO @计算人物龙啸五重可升级级数
BREAK
#ELSEACT
SENDMSG 7 点星珠数量不足<$N(升1级所需点星珠数量)>。
BREAK

[@计算人物龙啸五重可升级级数]
#IF
#ACT
MUL <$N(升多级所需点星珠数量)> <$N(升1级所需点星珠数量)> <$N(可升级级数)>

#IF
CHECKKIMNEEDLE  点星珠 <$N(升多级所需点星珠数量)>
#ACT
INC <$N(可升级级数)> 1
GOTO @计算人物龙啸五重可升级级数
BREAK
#ELSEACT
DEC <$N(可升级级数)> 1
DEC <$N(升多级所需点星珠数量)> <$N(升1级所需点星珠数量)>
INC U21  <$N(可升级级数)>
TAKEKIMNEEDLE 点星珠 <$N(升多级所需点星珠数量)>
#CALL [\新任务系统\炼体系统\龙啸\人物龙啸五重.txt] @读取人物龙啸五重等级
GOTO @人物龙啸属性
BREAK
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|HGEM2论坛

GMT+8, 2024-11-25 06:41 , Processed in 0.566839 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

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