エディタ内で特定のステートIDが使われている箇所を網羅的にチェックする方法(dataフォルダ内を全文検索)

ツクる上でのちょっとした小ネタや裏ワザなどを紹介してみましょう。
メルサイア
記事: 127
登録日時: 2016年2月22日(月) 10:35
お住まい: 大阪府
連絡を取る:

エディタ内で特定のステートIDが使われている箇所を網羅的にチェックする方法(dataフォルダ内を全文検索)

投稿記事by メルサイア » 2016年11月10日(木) 17:29

ゲーム改良中、エディタ内で、
特定ステートの付与・解除タイミングを一斉に変更したい場合や、バグが有って一斉に修正したい場合、
エディタ内で特定ステートのIDが使われている箇所を特定するのは、なかなか難しいです。
(わたしはこういうことを頻繁にするので、デバッグ中、よく泣きを見ます>M<)

そこで、dataフォルダ内の全文検索を使って、その箇所を網羅的にチェックする方法を紹介します。

8b3c3fbd7e73f15799cc92f57ade3cb2.png

例えば、ステートID:88の「ヒーロー3_3ターン不死身」を、エディタ内で付与・解除された箇所を調べたい場合、
856a7541bf787932a0cfe472f852d24a.png

このように、dataフォルダ内を「, 88] 」と検索することで、該当の箇所をチェックすることが出来ます。
※画面では、例として、VisualStudioCodeの全文検索機能を使っています。

ここの注釈、文章コマンドの文字、行数などを参考に、実際にエディタの内容をチェックしていきます。
コモンイベント番号は「CommonEvents.jsの行数-2」番、です。

この方法では、ステートIDが最後にパラメータで指定されている全てのイベントコマンドが検出されるので、
ステートIDが付与・解除だけでなく、条件分岐で判定されている場合も取得できます。
・付与だけを取りたい場合は「0, 88] 」
・解除だけを取りたい場合は「1, 88] 」・・・・・・・・・・・・・・・・・・・・・・・・・・(1)と(2)はかぶります
・条件分岐の味方のステート判定だけを取りたい場合は「6, 88] 」
・条件分岐の敵のステート判定だけを取りたい場合は「1, 88] 」・・・・・(2)と(1)はかぶります
とやれば、ある程度は絞りこめるようです。
□参考: イベントコード一覧
https://docs.google.com/spreadsheets/d/ ... 1266374350

が、この方法では、
parametersの配列の要素に「88」が入っていたり、ステートIDが「1」や「2」などの簡単なものだと、
他の候補もたくさん引っかかってしまうので、注意が必要です。
また、スクリプト(直打ち or プラグインのパラメータなどで直接or間接的に変数で指定している場合)は検出されません。
このあたりは、各種スクリプトのメモ欄などの表記を確認したり、別途チェックするしかなさそうです。

他にもいい方法をご存じの方は、ここで共有できたら嬉しいです。

追伸: 余談ですが、特定のコモンイベントを呼び出している箇所は
   「 [コモンイベント番号] 」の全文検索で、ある程度はチェックできます。
    が、他にも多くの候補が引っかかるので、もう少しいい方法がないか、検討中です。

“MV:小ネタ・TIPS・講座” へ戻る