MOD作成wikiとScript Dragonの新規ID取得コード
・MOD作成wiki
Modder開発支援のためにwiki立ち上げました。
コンテンツがまだ少ないのでちょっとしたことでも編集歓迎です。

SkyrimMOD作成wiki
http://www50.atwiki.jp/skyrim_mod/


・Script Dragonの新規ID取得コード
Script Dragonはスペル使うにしても、モーション再生するにしてもIDから引っ張ってこないといけないんですが、スカイリムのID重複防止機能によって、新規IDだと0xXX000000のようにXXの部分がロードオーダーによって可変します。
人によってロードオーダー違うのでこれを追跡する機能をGenrichさんに頂いてTK Dodgeで使用してます。
ただ人によってはどうも動かないらしく、泣く泣く既存のID置き換えだけで作ったnot working版というのを作ってあって、そこそこDL数があるので無視できない存在ではあったのです。

で、Papyrusのスクリプトリファレンス見てるとGetFormFromFile()っていう関数が…!
どうもespネームとIDを書くと自動でロードオーダーに沿ったIDを返してくれるらしく、まさにぴったりな機能です。ちなみに1.6から追加された関数です。

SDには対応してないので自分で無理やり追加しました。


http://skup.dip.jp/up/up03313.7z

上記ファイル(tkutils.h)をお使いのスクリプトの場所(pluginsrc)に入れて、VC++2010ならソリューションエクスプローラーにドラッグアンドドロップしてください。
そしてコード冒頭に #include "tkutils.h" を追加すれば以下の関数が使えます。

TKForm::GetFormFromFile(ここはFormID,espの名前)




SD作者少ないので需要少ないかもしれませんが、結構役に立つと思います。


関連記事
コメントの投稿


Does not accept comments that are all written in English on this blog for blocking a spam. If you have any questions, send a e-mail: tktk11111[at]gmail.com

コメント

tktk2012.09.16 10:57

>towawot氏
ありがとうございます。

>名無しさん
.vcxprojをテキストで開いて、ItemGroupの.hの並びに以下を加えれば使えると思います。
<ClInclude Include="tkutils.h" />


名無しさん2012.09.16 10:00

開けないなーと思ったら2010でしたか(拙者は2008)
手動でプロジェクト作るべきかなあ


towawot2012.09.15 22:14

昔何処かで見かけた GetFormFromFile papyrus使用例をwikiに貼っておきました