Project1

标题: XP的奇怪现象...(有可能我还不完全了解RGSS) [打印本页]

作者: 失去的记忆    时间: 2011-4-16 16:27
标题: XP的奇怪现象...(有可能我还不完全了解RGSS)
今天在写一个脚本,从头到尾很顺利,但是到最后测试的时候发现个很是奇怪的现象
那就是:自定义一个全局变量$bianliang,然后判断
  1. $bianliang = false
  2. if $bianliang
  3.    p 888
  4. end
复制代码
类似于这样的,但是 不完全是!
测试发现没反应.........


然后无奈 改为
  1. if $game_switches[1]
  2.    p 888
  3. end
复制代码
嘿!这次可以了!各位大大看看有什么见解吗?

你可能不明白我在说啥,举个简单的例子:
就是在事件中插入一句脚本“$bianliang = false”,然后发现事件卡那了!!!!


但是直接操作开关就没事,不知道这是怎么会事!!!

PS:事件脚本把事件卡住了是什么原因造成的???
     顺便问一下,如果一个变量:$a = 3,如果我想在这个变量发生改变的时候执行一句脚本应该怎么写??
类似于:if $a.changed? 这样的代码有吗??

作者: 沙漠点灰    时间: 2011-4-16 17:07
回复 失去的记忆 的帖子

1.解释器bug(也不能算)
    result = eval(script)
   # 返回值为 false 的情况下
    if result == false
      # 结束
      return false
    end
      # 尝试执行事件列表、返回值为 false 的情况下
      if execute_command == false
        return
      end
      # 推进索引
      @index += 1

没有"推进索引"会反复执行 $bianliang = false
解决方法:

$bianliang = false
true

让其返回true即可
2:
先$b = $a
若在事件里,加个独立开关,让它不再执行

用的时候
if $b != $a
XXXXXXXXX
end就好了
作者: 忧雪の伤    时间: 2011-4-16 17:53
  1. $bianliang = false
  2. return
复制代码
= = ……如果不对的话无视我吧。
作者: 禾西    时间: 2011-4-17 01:28
本帖最后由 禾西 于 2011-4-17 01:30 编辑

這個是bug來的,以前說過了。事件使用的腳本最後一行一定要是
  1. true
复制代码
沉影還是wy做過討論的- -
作者: 「旅」    时间: 2011-4-17 11:37
0 0各位可以告诉我那个到底有什么用途嘛?有时被那个烦到都是直接选择消灭它的~~
作者: 忧雪の伤    时间: 2011-4-17 11:59
禾西 发表于 2011-4-17 01:28
這個是bug來的,以前說過了。事件使用的腳本最後一行一定要是沉影還是wy做過討論的- - ...

不是一定吧?……
有时候也不会死掉的……
我试过的只有改窗口的visible的时候……
加了个return true就可以了(II说的……)
然后又改成了return也可以……
作者: 禾西    时间: 2011-4-17 12:20
回复 忧雪の伤 的帖子

啊,應該說,最後一行不能是 false 比較準確= =
作者: 后知后觉    时间: 2011-4-17 15:42
这个问题只出现于 1 行脚本的情况下.
1.
事件里插入脚本指令
p 123
@wait_count = 80
false
再插入一个脚本指令
p 456

然后运行 先出现 123  过一会就出现 456

2.
事件指令插入脚本
p 123;@wait_count = 80;false
再插入一个脚本指令
p 456

然后运行.只会出现 123

事件指令的BUG我记得谁总结过 忘记了 好像是 DeathKing ? 记不太清楚了
作者: 失去的记忆    时间: 2011-4-17 18:11
感谢各位的捧场,至于原因我想我已经明白了,解释器BUG。。。
大不了以后不用事件脚本,或者事件脚本叫上true吧...嘿嘿
作者: 精灵使者    时间: 2011-4-18 07:57
我都是果断的插入等待1帧来继续让脚本运行……
作者: DeathKing    时间: 2011-4-19 18:41
我也来掺一脚,Tips讨论过:http://rpg.blue/forum.php?mod=re ... 8&fromuid=11686
作者: 小传子    时间: 2012-1-12 15:15
精灵使者 发表于 2011-4-18 07:57
我都是果断的插入等待1帧来继续让脚本运行……

某柳好像在录像里有说过这事- -。。。




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1