む式おくだけver.2.21

む式ライブラリ ver.lua おくだけ(仮公開) - 永字八法の続き。
完全に検証はしていない人身御供版です。

更新履歴

  • 20100215に、2.0→2.1にバージョンアップしました。フォルダ指定をした場合にカレントディレクトリが移動するバグの修正です。動作はほとんど変わっていませんが、内部的には大きな変更だったためです。
  • 20100219に、2.1→2.11にバージョンアップしました。キャッシュ機能の追加と、フォルダ指定周りのこれでもしかしたらバグが取れたかなと思われる修正です。それと、system.luaに書く内容が少し変わりました。その他の動作は変わっていません。
  • 20111004に、2.11→2.2にバージョンアップしました。文字列スプライトによるバグをフィックスしました。また、ini.txtに彼岸花の咲く夜にを追記しました。
  • 20111024に、2.2→2.21にバージョンアップしました。set_defaultのバグをフィックスしました。他は変わっていません。

ダウンロード→http://www.eiji8pou.pics/download/mushiki20111024.zip

む式おくだけver.2.21ついて(2011-10-24版)

どういうものか

07th-Expansionの同人ゲーム、「うみねこのなく頃に」「ひぐらしのなく頃に」「彼岸花の咲く夜に」(そしておまけとして)TYPE-MOONの同人ゲーム「歌月十夜」の素材を利用したオリスク(二次創作)のお手伝いをするものです。

入っているもの

・mushiki(フォルダ)
・readme.txt(このファイル)
・ini.txt
・okudake.lua
・dialog.dll
・current.dll

使い方1(初めての人向き)
  • ステップ1

・nscr.exe
・nslua.dll
・system.lua
の三つと同じ場所に、解凍してできたフォルダ(mushiki)を置いてください。前二つは最新版が好ましいです。

  • ステップ2

system.luaの中、できるだけ早いうちに、

NL_dofile("mushiki\\okudake.lua")

の一文を加えてください。これで準備は終了です。

  • ステップ3

00.txtは普通に書いてください。
画像や音楽ファイルの指定は、オリジナルと同様の指定をしてください。
このライブラリがそのファイル指定を内部で変更したり、自動的にハードディスクの中からファイルを見つけ出して読み込めるようにします。

たとえば、あなたが以下のような命令を00.txtに書いたとします。

ld l,":a;bmp\TATI\ber\1\ber_akuwaraia1.bmp",0

そうすると、ライブラリが「bmp\TATI\ber\1\ber_akuwaraia1.bmp」を、ハードディスクの中から順番に探していきます。
探す順番は、「彼岸花」の1→「うみねこ翼」→「うみねこ散」の8から5→「うみねこ」の4から1→「ひぐらし礼」→「ひぐらし解」の8から5→「ひぐらし」の4から1→「歌月十夜」です。
もし、見つかればそれを読み込みます。

(わかる人向け:具体的な順番は、ini.txtに記述しています。この中身を変更すれば、順番や探す場所を変更できます。他のNScripter製ゲームも追加できます)

なお、このライブラリは以下の命令を上書きします。
画像関係:bg, ld, lsp, lsph, lsp2, lsph2, lsp2add, lsph2add, lsp2sub, lsph2sub
音楽関係:bgm, bgmonce, loopbgm, dwave, dwaveload, dwaveloop
※print文への対応はしていません。

使い方(以前から使っていた人)

chnsa、music_setは削除しました。

追加される命令

四つあります。
このうち、recommend命令とset_default命令は、start節の早い内と、loadgosub先でも実行してください。

・recommend命令

recommend umineko4

このように指定します。
こうすると、その実行環境に「うみねこ4」が入っているかどうかを調べます。
入っていれば何も起こりません。
入っていなければ、「うみねこ4」のarc.nsaがどこにあるかを別窓を開いて聞いてきます。
ここでarc.nsaを指定すると、以後は、そのディレクトリを「うみねこ4」と認識して動作します。
ここでも指定をしなければ、NScripterが終了するようになっています。

正規インストールをしていないユーザーへの対応策としてお使いください。

また、オプションで第2引数も指定できます。

recommend umineko8,$1000

このように指定すると、結果を第二引数に指定した文字列変数に格納します。
あなたのスクリプトのdefine節でglobalonした上で、格納先の文字列変数をグローバル変数にしておくと、一度指定したディレクトリが記憶され、起動する度に別窓を開かなくします。

・set_default命令
探し始めを指定します。

set_default higurasi4

たとえばこのようにすると、「ひぐらし4」からそれ以下しか探さなくなります。
その環境の最大値にするには、

set_default default

と実行してください。
古いバージョンの画像を使用したりする時は、このset_defaultをうまく使ってください。

set_defaultで使われるIDは、以下のものが登録されています。

singingmoon sm
higurasi1 h1
(中略)
higurasi9 h9
umineko1 u1
(中略)
umineko9 u9
higanbana1 f1

ini.txtに記述されています。ini.txtを書き換えることで設定の変更ができます。

・getnsadir
このライブラリでは、内部的にaddnsadirが頻繁に使われます。
そこで、現在どのディレクトリが追加ディレクトリにされているかを調べるため、この命令を追加しました。

getnsadir $0

このようにすれば、現在設定されているディレクトリを取得できます。あまり意味はないとは思いますが。

・game_list
開発用命令です。
その環境で使えるゲームのリストをポップアップで表示します。

既存の命令への注意

bg命令の引数にID(ダブルクォートで囲っていない文字列)を使う場合、アンダーバーを使ってください。

_bg black,1

このようにしてください。
luasubで上書きした命令は、引数の種類を読み込む前に判別できないことが起因するエラーです。これはnslua.dllの仕様ですので、今後修正される見込みは薄いと思われます。

御意見御要望エラー等があれば、下記へ。

http://d.hatena.ne.jp/eiji8pou/20100213/1266049260