2016年11月22日火曜日

RunBatchScript:OBSEからバッチファイルを実行する関数

OBSEスクリプトからコンソールコマンドバッチを実行
偶然2chを覗いてたときの話である。
実は、変な人(まあどこにでもいるけど2chには棲息数が多い)が居てあまり見に行かなくなっていた2ch。
Mount and Blade Warbandを見に行く機会ができたのでたまに覗くようになった。それでもOblivion系は気分が悪いのであまり見には行かない(そもそもスレッドに活気もないしSteamやRedditで忙しいし)のに何故か質問スレッドを覗いてしまった(運の尽きってやつだナ)

その上質問スレッドで付けなくても良いコメントをつけてしまい深みにハマってしまった。元々出来損ないのMODがNEXUSにあって、それが動かないって話だった。
Consoleコマンドをテンキーにマップするだけの簡単なモノだった。
実装の方法がコンナンデイイノカナ的な疑問もある。
まあ、それ自体を直すのは簡単だったんだけど機能に対する希望があって…

『バッチファイル実行できるように出来るか?』って聞かれて
へえ?バッチファイル???って思ったわけ
多分、日本のプレイヤーさんには馴染み深い方法なんだろうなと検索したらWikiやなるびりおんさんという人のブログにも記述があり。
一般的に知られた方法なのだなと理解した(私は知らなかったけども)

OBSEのレファレンス を調べる羽目に
RunBatchScript - runs a specified text file under the Oblivion directory as a script.
Works the same as the console function bat. The optional second parameter causes the script to execute on the calling object, if any.
The optional third parameter prevents any output from appearing in the console while the script executes.
(nothing) reference.RunBatchScript bRunOnRef:bool  bSuppressOutput:bool

おまけ、これってMOOでOOOがインスコされてたらとかの判定に使ってそうな関数だなとオモタ
IsPluginInstalled - returns whether a given plugin is installed
(isInstalled:bool) IsPluginInstalled pluginName:string

GetPluginVersion - returns the version of the specified plugin
(version:int) GetPluginVersion pluginName:string
たまにはReferenceをじっくり読んだほうが良いのかな

で、まあ一応完成はした。

問題はそもそもクエストスクリプトでキー押下を見張るという行為
これは間違ってる(笑)
暇ができたらどうするのが正解なのかは調べるかな(調べなさそうだけど)



0 件のコメント:

コメントを投稿