解決済みではありますが情報共有のために別のやり方を提示しておきます。
VXAceで使われているRGSS3はRuby1.9.2をベースにしているためRubyの仕様に従って改行のルールが決まっています。
コードを改行する際に \(バックスラッシュ、または半角¥マーク)を末尾に追加するとコードの途中でも改行可能ですが、それ以外にも演算子などの直後に改行する事でも複数行コードを実行できます。
例えば上記のコードであれば以下のように分解できます。
これらの位置であれば改行してあっても問題なく動きます。
コード: 全て選択
$game_party.
lose_item(
$data_items[
$game_variables[
89]],
$game_variables[
91])
またイベント内のスクリプトが実行されるコードのスコープはGame_Interpreterになります。
なので行数が非常に多くなるような複雑なコードを書く場合、Game_Interpreterに新しいメソッドを追加し、そのメソッドを呼び出すようにすることで、更に自由なコード記述が可能になります。
スクリプトエディタの記述
コード: 全て選択
class Game_Interpreter
def test_code
$game_party.lose_item($data_items[$game_variables[89]], $game_variables[91])
end
end
イベントスクリプトの記述
スクリプトが書けるのであれば後者の方が汎用性は高いです。何度も同じ処理を呼び出すようなスクリプトを書くならコモンイベントよりも便利です。
ちなみにイベントスクリプトや上記のGame_Interpreterにメソッド追加する方法だとコードのデバッグができません。(イベントスクリプトでエラーが出るとcommand_355 の eval(script) のエラーとして扱われてスクリプト内のエラー箇所がわからない)
ですがcommand_355 を少し書き換えることでコードのデバッグが可能になります。
コード: 全て選択
class Game_Interpreter
alias _fix_command_355 :command_355
def command_355
return test if @list[@index].parameters[0] == 'test'
_fix_command_355
end
def test
end
end
スクリプトエディタで上記のように記述し、イベント内からは「test」のスクリプトを呼び出すようにします。
そして実際のコードはtest内に書けば、エラーが出た場合にtestメソッド内でエラーするのでエラー箇所の特定も容易です。
補足
・最後のコードでaliasの第二引数だけシンボル化しているのは、その方がスクリプトエディタで見やすいからです。(オススメ)
・一番最初の投稿でエラーが出ている理由は、最後の部分の区切りミスです。
コード: 全て選択
, $game_variables[91]) #コレが正しい
, $game_\ #エラーが出たコード(変数名を\で区切ったため正常に認識できない)
variables[91])
\で区切る場合は、あくまでも文節の区切りに使えるだけで変数名やメソッド名は区切れません。