何が原因でエラーになっているのか、どうやって直せばいいのかが分からない人向けに、プログラミングの基本を解説します。
基本的に、何かしらの文法や処理エラーが一つでもあるとGearSwapは動きません。
エラーになる要因としてありがちなケースが次のものです。
- 変数名などのスペル間違い
- 括弧によるブロックの間違い
- 記述方法の間違い
- 変数にセットされている(されていない)場合の動作エラー
これらの特定方法と対処方法について説明します。
if文やforなどの制御についてはググった方が早いので、これらについての基礎知識は割愛させていただきます。
GearSwapでエラーが出ているかどうかを確認する方法
Windowerのコンソール(インサートキーで表示非表示切り替え)にエラーの有無は表示されます。
GearSwapファイルをロードした時点でエラーがなければ正常にロードされますが、何かしらのエラーがある場合はGearSwapで着替えることができません。
正常な場合
ジョブチェンジやGearSwapファイルがロードされた際にエラーが起きなければ、上記のようなメッセージが出力されます。
エラーがある場合
何かしらのエラーがある場合、上記のようなメッセージが出力されます。
エラーが起きている原因となっている箇所はメッセージに表示されますので、この場合、該当する箇所を確認します。
今回エラーが起きている箇所は「D:\Windower\addons\GearSwap\data\THF.luaの71行目ですから、該当ファイルの71行目を見てみます。
send_command('input /lockstyleset '..lockstyleset)
lockstylesetは変数です。lockstylesetがnil(値がない)というメッセージが出ていることから、lockstylesetに値をセットしている箇所を確認しなければいけません。
Mote-libsを使っている場合は、ロジックファイルと装備定義ファイルの両方を確認する必要がありまして、今回のケースでは装備定義ファイルにlockstylesetをセットしている箇所がなかったため、起きたエラーでした。
このようにエラー箇所をコンソールに出力されているログから確認して、エラー箇所を修正していきます。
変数名を検索してどういう処理をしているのか辿っていけば原因が分かるかと思います。
nilエラーが起きているのなら、変数にセットしている箇所を探す。構文エラーなら、正しい構文で記述する。
エラーの原因は様々ですが、文法間違いやスペルミスなど考えられる原因はたくさんありますので、エラー原因を一つづつ確認して直していくしかありません。
変数などの中身を確認する方法
print()で変数の中身にセットされているデータを確認してデバッグする方法があります。
printは全角文字の出力ができませんので、日本語で確認したい場合は、windower.add_to_chat(167,変数名や定数)で確認してください。
if文で処理が正しく分岐されていることを確認したり、デバッグする場面は結構多いです。
便利なので覚えておいて損はありません。
コメント