読者です 読者をやめる 読者になる 読者になる

RPGツクール素材メモ

同人RPGの制作で役立ちそうなスクリプト・プラグイン素材を書き留めておく

イベントコマンドのスクリプトエラーをちょっと快適に

スクリプト 'Game_Interpreter'の1409行目でXXXが発生しました…
ハイうざい、うざいね。

ツクールVXAceのイベントコマンド>スクリプトが間違ってるとメッセージが出て終了しちゃう訳だけど、
「え、なんで今エラー出た?」「いやエラーなのは分かったけど、とりあえず進んで、もう一回検証したいやん…」って時がある。

http://www.whiteflute.org/wfrgss/?mode=view&realmId=1&name=%E5%85%B1%E9%80%9A%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88%E5%B0%8E%E5%85%A5%E6%96%B9%E6%B3%95
とか
★エラーログ出力(VX Ace用)
とかエラーログの支援はあるけど、そこまで大掛かりじゃなく、自分はスクリプトからちょっと命令実行するだけだし…って時にはこれがいいかも。

class Game_Interpreter
  def command_355
    script = @list[@index].parameters[0] + "\n"
    while next_event_code == 655
      @index += 1
      script += @list[@index].parameters[0] + "\n"
    end
    begin
      eval(script)
    rescue ScriptError, StandardError
      $! = 'exception raised' if not $!
      p "ERR: ", $!, "\n"
    end
  end
end

これをセクションの最後辺りに追加。
(要はスクリプト実行のevalを例外で囲っただけだけど)

これでひとまずゲームは終了せず、コンソールにバグの原因が出力されて、続けられる。
(後々にまで影響してくるエラーだったら、結局後のその箇所でエラー出るだろうが)

f:id:gamecome:20150812040419j:plain

f:id:gamecome:20150812040428j:plain
(とりあえずエラー出てもゲームは続く)