〜 外部ファイル 〜
外部のファイル読み込みに失敗する

exist命令等で存在するはずのパス指定で見つからないとなる原因は下記の様なものが考えられます。
1.フルパスを入れておく変数に十分な領域を確保していないために起こる
2.フォルダ指定時の'\'記号を二つ重ねていない、既に入っている'\'を'\\'に変えている
3.半角スペースの入ったパス時の設定や取得を行う場合
4.exedir(dir_exe)やcurdir(dir_cur)の指す位置を勘違いしている
5.入れても認識されないファイルをPackFileに入れている
6.HSP3ディレクトリにファイルを置いている

1番の十分な領域が確保されていない場合は、alloc命令、sdim命令を使って確保してください。
特に自分がスクリプトに直接書くのではなく、ユーザーに選択させるタイプは注意が必要です。
別ユーザが利用するものはあらゆる場合を想定して対処しなければなりません。

2番は知らなかったと言う人が結構いるかもしれません(HSPのヘルプにはきちんと記載されています)
(例)「C:\WINDOWS\NOTEPAD.EXE」を指定する → 「C:\\WINDOWS\\NOTEPAD.EXE」と書く

3番のmci命令等で上記二つ以外の考えられる要因として、
「半角スペースの入っているパスの場合"(ダブルクォート)」で囲むと言うこともお忘れなく…。
ただダブルクォートで囲んだだけではダメなので、囲んでいることを示すために「\"」とエスケープします。
(例)mci命令を使用し、c:\proglam filesのxyz.wavを開く  mci "open \"c:\\proglam files\\xyz.wav\""

4番はexedir(dir_exe)はスクリプト実行中と実行ファイルで実行している時とで別になることを指してます。
実行ファイルでは、実行ファイルのあるフォルダを指し、
スクリプト実行中ではhsp2.exeまたはhsp3.exeのあるフォルダを指します。

5番はPackFileからはロードできないファイルとできるファイルを覚えておきましょう。
良くあるものとして、midi、mp3、avi、DLL、hpi等は入れても使用できません

6番はHSP3.0で発生する問題として「初期カレントディレクトリが変わった」ことです。
この件についてはコチラに載せています。