设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 2499|回复: 11
打印 上一主题 下一主题

[已经解决] 请问怎么让该方法返回false还不卡死?

[复制链接]

Lv3.寻梦者

梦石
0
星屑
3082
在线时间
205 小时
注册时间
2019-9-16
帖子
224
跳转到指定楼层
1
发表于 2020-1-1 22:23:06 | 显示全部楼层 |只看大图 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
RUBY 代码复制
  1. def self.f                       
  2.     if $game_variables[4]==0
  3.       $game_switches[3886]=false   
  4.     end
  5.     true #测试
  6.     #测试
  7.     return false #测试
  8.     #测试
  9.     true#测试
  10.   end



老手都知道,XP有时候返回false时会卡死。
听大神说加个true或者加个注释就不没事了。可是我加了好多true和注释还是不行,如果非要返回false的话,有没有办法不卡死?
@灯笼菜刀王

评分

参与人数 1+1 收起 理由
taeckle + 1 精品文章

查看全部评分

Lv3.寻梦者

梦石
0
星屑
3082
在线时间
205 小时
注册时间
2019-9-16
帖子
224
2
 楼主| 发表于 2020-1-1 23:40:31 | 显示全部楼层
本帖最后由 寒凌天 于 2020-1-1 23:43 编辑
soulsaga 发表于 2020-1-1 22:48
#--------------------------------------------------------------------------
  # ● スクリプト
  # イ ...


我这个是写在脚本编辑器里的,然后在公共事件里,用脚本指令使用H.f调用这个方法。(H是我自建类的类名)
脚本指令那一行,我除了写了“H.f”以外,再也没写任何其他内容。

代码为了方便看,我删除了一些,但是删了的那些全都是“开关XX = false”的代码,没其他复杂的代码。所以想代码本身应该是没问题的。

如果我使用了你的修复代码,能解决这种脚本调用脚本编辑器代码的BUG吗?
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3082
在线时间
205 小时
注册时间
2019-9-16
帖子
224
3
 楼主| 发表于 2020-1-1 23:57:57 | 显示全部楼层
本帖最后由 寒凌天 于 2020-1-2 15:54 编辑

RUBY 代码复制
  1. def command_355
  2.     # script 设置第一行
  3.     script = @list[@index].parameters[0] + "\n"
  4.     # 循环
  5.     loop do
  6.       # 下一个事件指令在脚本 2 行以上的情况下
  7.       if @list[@index+1].code == 655
  8.         # 添加到 script 2 行以后
  9.         script += @list[@index+1].parameters[0] + "\n"
  10.       # 事件指令不在脚本 2 行以上的情况下
  11.       else
  12.         # 中断循环
  13.         break
  14.       end
  15.       # 推进索引
  16.       @index += 1
  17.     end
  18.     # 评价
  19.     result = eval(script)
  20.  
  21.     $arpg_actor.visible = $game_system.arpg_ing unless $arpg_actor.nil?
  22.  
  23.     # 返回值为 false 的情况下
  24.     if result == false
  25.       # 结束
  26.       @index += 1            #################唯一修改的地方,增加了这行代码
  27.       return false
  28.     end
  29.     # 继续
  30.     return true
  31.   end


感谢两位猫斑竹和二楼三位大神的技术贡献,我把代码重新修改了下,只要加了注释行代码,就不会出此BUG了。
(该BUG会在脚本编辑框内仅有一行代码,且代码返回值为false时无限死循环。经过测试,如果脚本编辑框内拥有两行以上的内容,无论最后一行返回结果是不是false都不会死循环。至于原因,猫斑竹的帖子里也给出了答案。)

评分

参与人数 1+1 收起 理由
taeckle + 1 大神威武!受教了!

查看全部评分

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-5-5 08:30

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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