NScripter, Lua, うみねこのなく頃に, オリスク
む式ライブラリver.2 - 永字八法の続き。
技術の進歩はたいしたもので、一部にご好評いただいた「む式」もついにバージョンアップすることができました。
※2009-05-27バージョンにバージョンアップ
次にstart節のできるだけ早い段階で、
「移動が必要」なオリスクが、たったこれだけの手間で「移動が不要」になります。
以下の五つの命令を追加します。
また、音楽系の6種類の命令を上書きします。
さらに、nsaをLuaの中から呼ぶようにしました。これで、define節中に呼び出すのを忘れても安心。
このライブラリの肝。たとえば、「chnsa umineko4」と宣言するだけで、「うみねこのなく頃に Alliance of the golden witch」のarc.nsaと音楽ファイルを余所から使えるようになります。
※機能的には前バージョンと変わっていません。
追加命令。
「get_addnsadir $0」とすると、$0に、今現在参照している余所のディレクトリが入ります。
音楽ファイルに限って、別のディレクトリを参照するためのものです。
music_setで設定されたディレクトリを返します。
追加命令。
「fullpath $0,$1」とすると、$0に、music_getの結果と$1をつなげた内容が入ります。
※oggを扱う時、最初にカッコで繰り返し時間を指定する場合、この命令でファイル名をフルパスにしてから、カッコを頭につけてください。
※もしかして不要かも。
「うみねこのなく頃に」の基本システムとの相性を主眼に置きました。
-- む式 ver.lua 2009-05-27 NSExec("nsa") -- 共通部分 function id2reg(id) local lid = id:lower() local reg_key = "" local reg_var = "" if id == "singingmoon" then reg_key = 'Software\\TYPE-MOON\\歌月十夜' reg_var = 'directory' else if id == "higurasi1" then reg_key = 'Software\\07th_Expansion\\higurasi' elseif id == "higurasi2" then reg_key = 'Software\\07th_Expansion\\higurasi2' elseif id == "higurasi3" then reg_key = 'Software\\07th_Expansion\\higurasi3' elseif id == "higurasi4" then reg_key = 'Software\\07th_Expansion\\higurasi4' elseif id == "higurasi5" then reg_key = 'Software\\07th_Expansion\\higurasi5' elseif id == "higurasi6" then reg_key = 'Software\\07th_Expansion\\higurasi6' elseif id == "higurasi7" then reg_key = 'Software\\07th_Expansion\\higurasi7' elseif id == "higurasi8" then reg_key = 'Software\\07th_Expansion\\higurasi8' elseif id == "higurasi9" then reg_key = 'Software\\07th_Expansion\\higurasi9' elseif id == "umineko1" then reg_key = 'Software\\07th_Expansion\\Umineko1' elseif id == "umineko2" then reg_key = 'Software\\07th_Expansion\\Umineko2' elseif id == "umineko3" then reg_key = 'Software\\07th_Expansion\\Umineko3' elseif id == "umineko4" then reg_key = 'Software\\07th_Expansion\\Umineko4' elseif id == "umineko5" then reg_key = 'Software\\07th_Expansion\\Umineko5' elseif id == "umineko6" then reg_key = 'Software\\07th_Expansion\\Umineko6' elseif id == "umineko7" then reg_key = 'Software\\07th_Expansion\\Umineko7' elseif id == "umineko8" then reg_key = 'Software\\07th_Expansion\\Umineko8' end if reg_key ~= "" then reg_var = 'gamedir' end end if reg_key == "" then NSOkBox("正しいキーワードを指定してください。", "む式。") NSSystemCall("end") end -- 取得してみる。 local temp0 = NSGetStrValue(0) -- 退避 NSExec('_getreg $0,"'..reg_key..'","'..reg_var..'"') local dir = NSGetStrValue(0) NSSetStrValue(0, temp0) -- 復帰 if dir == "" then NSOkBox(id.."はインストールされていません。", "む式。") NSSystemCall("end") end -- 末尾に\がなければ\をつける。 if string.char(dir:byte(dir:len())) ~= "\\" then dir = dir .. "\\" end -- そこにnsaがあるかどうかチェックする。 temp0 = NSGetIntValue(0) -- 退避 NSExec('_fileexist %0,"'..dir..'arc.nsa"') local exist = NSGetIntValue(0) NSSetIntValue(0, temp0) -- 復帰 if exist == 0 then NSOkBox(id.."のarc.nsaがみつかりません。", "む式。") NSSystemCall("end") end return dir end -- nsa関係 local chnsa_dir = "" -- 現在のchnsaディレクトリ NSExec("luasub chnsa") function NSCOM_chnsa() -- IDの取得 local dir = id2reg(NSPopID()) -- ディレクトリを追加する。 NSExec('_addnsadir "'..dir..'"') -- ディレクトリを保存する。 chnsa_dir = dir end NSExec("luasub get_addnsadir") function NSCOM_get_addnsadir() NSSetStrValue(NSPopStrRef(), chnsa_dir) end -- 音楽系 local music_dir = "" NSExec("luasub music_set") function NSCOM_music_set() -- IDの取得 local dir = id2reg(NSPopID()) -- ディレクトリを保存する。 music_dir = dir end NSExec("luasub music_get") function NSCOM_music_get() NSSetStrValue(NSPopStrRef(), music_dir) end NSExec("luasub fullpath") function NSCOM_fullpath() local ref = NSPopStrRef() NSPopComma() NSSetStrValue(ref, music_dir..NSPopStr()) end -- 既存命令の上書き NSExec("luasub bgm") function NSCOM_bgm() NSExec('_bgm "'..music_dir..NSPopStr()..'"') end NSExec("luasub bgmonce") function NSCOM_bgmonce() NSExec('_bgmonce "'..music_dir..NSPopStr()..'"') end NSExec("luasub loopbgm") function NSCOM_loopbgm() local file1 = NSPopStr() NSPopComma() local file2 = NSPopStr() NSExec('_loopbgm "'..music_dir..file1..'","'..music_dir..file2..'"') end NSExec("luasub dwave") function NSCOM_dwave() local ch = NSPopInt() NSPopComma() NSExec('_dwave '..ch..',"'..music_dir..NSPopStr()..'"') end NSExec("luasub dwaveload") function NSCOM_dwaveload() local ch = NSPopInt() NSPopComma() NSExec('_dwaveload '..ch..',"'..music_dir..NSPopStr()..'"') end NSExec("luasub dwaveloop") function NSCOM_dwaveloop() local ch = NSPopInt() NSPopComma() NSExec('_dwaveloop '..ch..',"'..music_dir..NSPopStr()..'"') end
コメント等は基本的に自由ですが、通りすがりとかななしさんとかの場合、いじっても面白くないので放置する可能性があります。
|
|
最新コメント一覧
最新トラックバック一覧
言及URL
言及ISBN/ASIN
言及JAN/EAN