value)」とか、プログラム開発やって無い人には意味不明ですが、まあ要するに「blifeなんて存在しねえYO!」と言われてると思って問題ありません。ここで、先ほどわざと間違えて記述した命令「blife」が原因である事が判明すると言うわけです。バグの位置と原因が判ったので(今回は最初から判ってたけど)、早速それを修正しましょう。修正できましたか?一応、これでまともに動くようになった事を確認した方が良いかもしれませんね。value)これですが、この部分には色々なパターンがあるようです。追加した武器「wpn_rpg7」を存在しない武器「wpn_rpg77」とかに書き換えて実行すると、やはりクラッシュしますが、その時の「Arguments」の文章はこんなふうになります。'wpn_rpg77'これはやはり「wpn_rpg77なんて存在しねえYO!」と言う意味ですが、この場合は問題のファイルや行番号を教えてもらえません。「wpn_rpg77」と言う手がかりはあるので、それで検索かけて探せば良いと言う事ですね。このタイプのいわゆる「機能やアイテムの名前を間違えた」事が原因のバグの場合には殆どの場合、何が決定的にまずいのかを教えてくれます。他にもパターンはあると思いますが、「blife」や「wpn_rpg77」などのキーワードがあれば、そう苦労せずにバグ位置を特定できるでしょう。これがデバッグの基本ですが、もう一つ、スクリプトを弄ると頻繁にお目にかかるバグがあります。こちらは少々厄介、と言うか面倒臭いです。先ほどわざと間違えて記述したファンクションを、もう一度わざと間違えてみましょう。今度は最初のif条件式を弄ります。thenこれが本来のif条件式ですね。then先頭のカッコだけを消してみました。カッコは“(”と“)”が対になって始めて意味を持つものですが、この文では始まりのカッコが無いのに終わりのカッコだけが存在すると言う状態になっていますね?これで実行してみましょう。クラッシュするので、「Arguments」のエラー内容を見てみると・・・。value)先ほどと様子が違いますね。エラー箇所はファイル「ngc_mod.script」では無く「bind_stalker.script」に、しかもエラー内容は「ngc_modなんて存在しねえYO!」になっています。言うことでしょうか?これはつまり、ファイル「ngc_mod.script」がそもそもファンクションとして機能していないと言う事なのです。知っての通りファンクションを記述する際には文法を守る必要がありますが、その文法に致命的な誤りがある場合、そもそもそのファイルをファンクションとして認めてもらえないのです。この場合、「そのファイルのどこかに致命的な文法ミスがあるよ」と言う曖昧な形でしか情報を得る事ができません。行数や単語によってバグ位置を知る事ができないのです。よって、どこかにカッコ抜けや文法ミスが無いか、穴が開くほど探すしかありません。テキストエディタによってはカーソルをカッコに合わせると、対になるカッコを強調表示してくれたりする機能を持っている物もあるので、そう言った機能があったらフル活用するとこの作業は楽になる事があります。厄介な事に文法ミスは“(”だけではないのです。要するに、「ファンクションとして文法が間違っていたらアウト」なので、if条件式の「then」を書き忘れていたり、「if」と対になる「end」が抜けていたり、原因は様々であり、カッコの場合のようにテキストエディタの機能に手伝ってもらえる例は、むしろ少ないと言えます。なると、むしろ重要なのは「いかにバグを取るか」ではなく、「いかにバグを見つけやすい形でスクリプトを書くか」になってきますね。endこう記述しても文法的には問題ありません。endこうなってるのでは、明らかに前者の方が「end」の記述忘れを発見しやすいですね。このように、予めデバッグしやすい形でスクリプトを記述するのも、デバッグのテクニックの一つと言えるのです。デバッグとは、スクリプトを作っている時に既に始まっていると言っても過言ではないのです。何だか上手い事言って綺麗にまとめた気がしますが、こんなのは実はプログラム開発では一番最初に覚える基本中の基本なんです。偉そうに言うこっちゃありません。小規模なMODを作っていて目にするのはこんなところでしょうか?このブログで紹介している程度のMODでは関わり無いと思いますが、大規模MODではたまに、フォルダ「gamedata\config\」内のファイル「localization.ltx」でエラーが発生する事があります。現象としては「そもそも起動しない」「S.T.A.L.K.E.Rロゴ表示後、そのままクラッシュ」などと言う形で発生して精神的ダメージを与えていくものが多いです。ファイル「localization.ltx」では使用言語や読み込むべきXMLファイル一覧などを指定しているので、大方は「XMLファイル一覧と実際のフォルダ内のXMLファイルが一致していない」などが原因だとは思いますが、「へー。言うパターンもあるんだー」程度にでも覚えておくと、何かの時に慌てずに済むかもしれません。重要なのは、クラッシュしたらまずはエラー内容を見る事。他人のMODでクラッシュした時にも一応目を通すようにしておくと、色々と得るものもあると思います。それで解決する場合もあるし、解決しない場合もあります。メモリ関係でどうしようもなくクラッシュが起きる事もあります。Message:」の記述がありません。あっても、「自分のMODが原因である可能性は低いな」と言う類の情報として知る事が出来るのです。クラッシュしても、溜息と共に「Close」を押す前に、やれる事はやっておく癖を付けたいものです。