jumpf/jumpbと~の罠
すでに発見されている動作かも知れないが、ちょっと読んだ記憶がないので書き記す。
早押し編を作成中に引っかかり苦しんだ状況である。
以下のようなスクリプトをNScripterで実行してみる。
*define game *start jumpf かつてこういう言葉がありました。欲しがりません勝つまでは。 ~ 聞いたことがありますか? \ end
ちょっと読める人ならば、この実行結果はこうなると思うはずだ。
しかし、実際にはそうならない。こうなる。
気になったので、スクリプトをURLエンコードしてみた。
*define
game
*start
jumpf
%82%a9%82%c2%82%c4%82%b1%82%a4%82%a2%82%a4%8c%be%97t%82%aa%82%a0%82%e8%82%dc%82%b5%82%bd%81B%97%7e%82%b5%82%aa%82%e8%82%dc%82%b9%82%f1%8f%9f%82%c2%82%dc%82%c5%82%cd%81B
%7e ; ←チルダ
%95%b7%82%a2%82%bd%82%b1%82%c6%82%aa%82%a0%82%e8%82%dc%82%b7%82%a9%81H
%5c ; ←\マーク
end
これでわかった。"欲"に~(チルダ)のコードが含まれるので、jumpf(とjumpb)がこれに反応してしまうのだ。
ちなみに、チルダを含むShift-JISのコードは以下がある。
×・ミн・・?・円樫救鯨降止淳厨掻蓄冬梅敷盆欲・凭嘸宀恠捫桎毯烝痿窰縷艤蛬諧轜閙驃黯・・筠螵・閖・驂・黥・・・・・禱藭・
これらの文字は同じようなエラーを引き起こす可能性がある。
考えられる回避方法は三つか。
- jumpf近辺でこれらの文字を使わない。
- jumpfを使わない。
- 高橋直樹さんに直訴する。
早押し編では1を採用した訳だが、次からはどうしよう……。