改造方法まとめ

2chなどで紹介された改造方法を、初心者に優しくまとめておくページです。
まとめる際は、Nativeへの改造なのか、対象としているModを明記するようにしましょう。

基本的な改造方法はほとんど無印wikiに載ってます。



士気をいじる方法

士気(morale)の変更は、scripts.txtをテキストエディタなどで開いて、get_player_party_morale_values -1という部分を検索。
ずらーっと並んだ数列の中から、以下の数値を探す。

【Native 1.143】
(数列)…144115188075856825 1224979098644774917 【15】 5 0 2122 3 144115188075856825 1224979098644774917 【12】 3 0 2133 2 1224979098644774919…(数列)

【CtA AW v2.1】(MercenaryPlus v2.0も同じ)
(数列)…144115188075856825 1224979098644774917 【20】 5 0 2122 3 144115188075856825 1224979098644774917 【16】 3 0 2133 2 1224979098644774919…(数列)

Native 1.143で【15】の部分が、独立して王様になったときの士気。 【12】はそれ以外の時の士気。
たとえば、【12】【16】の部分を【120】【160】などに変更すると、
士気(morale)が一気に上がって、1000人ぐらいの大部隊でも兵隊さんが満足するようになる。

雇える兵士・傭兵の数を変更する方法

街で雇える傭兵の数……update_mercenary_units_of_towns -1
村で雇える徴兵数……update_volunteer_troops_in_village -1

傭兵の数列だけを書いておくと、
【Native 1.143】
…1224979098644774913 2136 3 1224979098644774914 【3】 【8】 501 3 1224979098644774912 91…
【CtA AW v2.1】
…1224979098644774913 2136 3 1224979098644774914 【3】 【8】 4 0 30 2 144115188075857131…

【3】 【8】の部分を【300】 【800】などに変えると、
一度に400-500とかの傭兵を雇えるようになる。(ただしお金持ちに限る)


女性キャラにチャージ攻撃時の声を追加する方法

まずは、Nativeを例に紹介します。

用意するもの

  • 女性キャラの声ファイル
    • femgrunt1.ogg
    • femgrunt2.ogg
    • femgrunt9.ogg
    • femgrunt10.ogg
※上記の例では、Mod「cRPG」より抽出しました。mountblade warband\Modules\cRPG\Sounds の中に入っています。他にも配布されているファイルがあると思いますので、気にいったものを探してみてください。

編集するファイル

  • module.ini(mountblade warband\Modules\Native\module.ini)
  • skins.txt(mountblade warband\Modules\Native\skins.txt)
  • sounds.txt(mountblade warband\Modules\Native\sounds.txt)

改造手順

  • 音声ファイルの設置
女性キャラの音声ファイルを以下のフォルダに設置します。

mountblade warband\Modules\Native\Sounds\femgrunt1.ogg
mountblade warband\Modules\Native\Sounds\femgrunt2.ogg
mountblade warband\Modules\Native\Sounds\femgrunt9.ogg
mountblade warband\Modules\Native\Sounds\femgrunt10.ogg

  • module.iniのサウンドスキャン設定をオンにする
「scan_module_sounds = 0」になっている行を、「scan_module_sounds = 1」に書き換えて保存します。

  • skins.txtにトリガー追加
59行目あたりの行を以下のように書き換えて保存します。
 3  0 snd_woman_die  1 snd_woman_hit  4 snd_woman_yell 
 5  0 snd_woman_die  1 snd_woman_hit  2 snd_woman_grunt  3 snd_woman_grunt  4 snd_woman_yell 

  • sounds.txtに女性キャラボイスを追加
369行名あたり、行頭に半角スペースの入っている行の最終行に、以下のように追加します。
以下は、場所が分かるよう、上下2行を含めて記載してあります。例で追加するのは「 femgrunt1.ogg 1120 femgrunt2.ogg 1120 femgrunt9.ogg 1120 femgrunt10.ogg 1120」です。

 you_scored_a_point.ogg 2721
 enemy_scored_a_point.ogg 2721
179
snd_click 257 1 0 0 
 you_scored_a_point.ogg 2721
 enemy_scored_a_point.ogg 2721
 femgrunt1.ogg 1120
 femgrunt2.ogg 1120
 femgrunt9.ogg 1120
 femgrunt10.ogg 1120
178
snd_click 257 1 0 0 
※「1120」と書いてある数値が、当該音声ファイルのグループIDになります。

次に、一番上から2行目に行頭に半角スペースの入っている行の数があるので、追加分の4行を加算して、デフォルトの366から370に書き換えます。

soundsfile version 3
366
soundsfile version 3
370

上記、作業後、373行目あたりにきている「178」の行数をついでに「179」へと、先に書き換えておきます。
ここの行数は、行頭に半角スペースのないデータの行数です。
次の作業で一行追加するので、先に追加しておきます。

 femgrunt10.ogg 1120
178
snd_click 257 1 0 0 
 femgrunt10.ogg 1120
179
snd_click 257 1 0 0 

最後に、sounds.txtの最終行に以下のように追加して、ファイルを保存します。

snd_team_scored_a_point 2721 1 364 0 
snd_enemy_scored_a_point 2721 1 365 0 
snd_team_scored_a_point 2721 1 364 0 
snd_enemy_scored_a_point 2721 1 365 0 
snd_woman_grunt 1120 4 367 0 368 0 369 0 370 0 

以上で、セーブデータをロードしたゲームでも、女声キャラがチャージ攻撃をする際に気合いの入った声を発するようになります。

補足

snd_woman_grunt 1120 4 367 0 368 0 369 0 370 0 

※「1120」の部分は、挿入したサウンドファイルのグループIDを入れてください。
※「4」の部分は、挿入したサウンドファイルの行数合計を入れてください。
※「 367 0 368 0 369 0 370 0 」の部分は、挿入したサウンドファイルの行数値を「0」と「半角スペース」で区切って入れてください。
※「367」の部分の数字は、はじめの手順で追加したサウンドファイルの行番号を挿入するのですが、テキストエディタに表示されている行番号から「マイナス3」差し引いた数値を指定してください。マイナス3するのは、ファイル内1行目と、合計行数を書いたの2行、合計の3行分はゲームシステム内では除外してカウントされているからです。


アイテム(エクリカリバー)の追加

140 :名無しさんの野望:2010/10/14(木) 09:03:32 ID:m1o8yAiy
装備アイテムを新しく入れたいんですが。
wikiは見たんですがいまいちよく分からなかったのでこちらで質問します。

Mount & Blade Warband Mod Toolsを使って↓のエクスカリバーをTEWEに追加したいんですが
ttp://ux.getuploader.com/MnB/download/51/fate_excalibur_v2.zip

147 :名無しさんの野望:2010/10/14(木) 10:30:12 ID:IfF+A6U1
Resorceにfate_excaribar.brfを入れる

Texturesに三つのテクスチャファイルを入れる

module.iniの一番下
load_mod_resource = fate_excaliburと入れる

ファイルに入ってた追加内容例のtxtを元にitem_kind.txtに移植する

または、
Mod Tools追加の際txt_editor使うなら
Meshsの名前fate_excaliburと入れ
itm_ID:itm_fate_excalibur Singlu,PurlarにExcaliburとでも書いとけばいい
Flags,Capabilities,modfiersはHeavy_Basterd_sowrdあたりを参考にするべし
能力値は追加内容例txtを参考に

どうしても入れ方がわからなかったら↓をコピペしてitem_txtに入れる(当てにしないでほしい)。
itm_fate_excalibur fate_excalibur fate_excalibur 2 fate_excalibur 0 fate_excalibur_scabbard 3458764513820540928 6291459 9223635958593749247 920 262164 3.500000 100 0 0 0 11 51200 100 0 115 0 291 50
0
0
その際入れたときにアイテム総数(txt一番上)を一つ増やしとく

pythonなら追加内容例の中身をmodlue_itemの中にコピペして
コンパイルするだけ(一番楽)

全裸になってアイィ!アイィ!と叫ぶ

冷静になる

M&Bを立ち上げて反映されているか確かめる。以上

163 :名無しさんの野望:2010/10/14(木) 16:04:26 ID:m1o8yAiy
ファイルに入ってた追加内容例のtxtを元に
item_kind.txtに移植する

この部分で詰んでますorz

itm_fate_excalibur fate_excalibur fate_excalibur 2 fate_excalibur 0 fate_excalibur_scabbard 3458764513820540928 6291459 9223635958593749247 920 262164 3.500000 100 0 0 0 11 51200 100 0 115 0 291 50
0
0
これを入れてみたんですがエラー吐いてだめでした;しかし丸写しでやっても
次何か入れようと思ったら自分では出来ないんですよね。

164 :名無しさんの野望:2010/10/14(木) 16:11:49 ID:SlrRgrvn
丸コピではなく、そのコピペ部分の各行の頭を、item_kind.txtの他のブロックの形式と合わせて、スペースを合わせて入れてみる。
アイテムのIDがズレルとやっかいなので、最後の方、itm_items_endの上あたりに入れる。
で、item_kind.txtの一番上の方、2行目に書いてある数字を、+1する。

一回覚えてしまえばどうということはない。
英語とか覚えるよりも遙かに簡単。

532 :名無しさんの野望:2011/01/01(土) 19:13:35 ID:enyaymCd(2)
http://img209.imageshack.us/img209/5900/frencharmor01xm5.jpg
この鎧が入ってるMODが何かわかりますか?

545 :名無しさんの野望:2011/01/02(日) 00:10:49 ID:qDdqDhvg
[>>532]
http://ux.getuploader.com/MnB/download/289/item.rar


女兵士(農婦)を雇用する方法

364 :名無しさんの野望:2010/10/16(土) 21:15:16 ID:S+QTleXr
女兵士って、基本捕虜解放でゲットしか無理なの?

382 :名無しさんの野望:2010/10/17(日) 08:19:09 ID:7Amhydtj
略奪捕虜以外でゲットしたいなら、Mod Toolsを使うしかないな。
使うツールは、Morgh's Mount & Blade Warband Mod Tools (v1.05)ね。
1つ目は、賊が連れ歩いている捕虜(農民)に、女性(農婦)を加える方法。

Party template editorを開いて、賊(Looter、…Banditsなど)の項目をクリック。
Membersの部分に、賊の名前、数(Min, Max)が表示されている。
でそこに、「trp peasant woman」を加える。人数の設定はご自由に。
(Prisonerに必ずチェックを入れる。入れないと、農婦が賊の仲間として出現してしまう)

これで賊が、捕虜(女性)を連れ歩いている状態になるので、
賊に戦いを挑む→勝利して農民たちを解放→自軍に女性兵士として編入、という正義の味方プレイができる。

2番目の方法は、村の徴兵ツリーで女性ユニットにアップグレードさせてしまう方法。
同じ Mod Tools→Troop Editorで、村人(…Recruit, …Tribesman)を選択。
Upgrade pathのところに、「trp peasant woman」や「trp follower woman」を加える。

ただしこの方法は、村人のアップグレードツリーが二股になっている国しか使えない。
ツリーの第一段階で、歩兵系と射撃系に分かれてしまう国(Rhodokとか)の場合は、
この方法の徴兵をあきらめるか、その国独自のユニットを犠牲にするしかないので注意。

384 :名無しさんの野望:2010/10/17(日) 08:40:29 ID:7Amhydtj
補足
上の「アップグレードツリーが二股になっている国しか使えない」は、
「村人のアップグレードで、2つのうち1つが空欄になっている国」という意味ね。

スワ、ベージャ、カーギット、サランは空欄があるので、村人から女性兵士へのアップグレードが行える。
ロドック、ノルドは、第一段階で2種類に分かれてしまうので不可。

もしこの2つの国で女性兵士を使いたい場合、
ツリーの第二段階(footman, spearman, crossbowmanなど)で、
上に書いた方法を使えば、女性兵士にアップグレードさせることができる。


Kengekiフェイスの追加

553 名前:名無しさんの野望:2010/07/20(火) 18:49:39 ID:XRDBBDa4
最新バージョンのNativeにKengekiの顔移植した際
skinsはそのまま上書きしてもok?動かしても異常はなかったけど

562 名前:名無しさんの野望:2010/07/20(火) 22:06:27 ID:wUyw84xF
[>>553]
無印とWBのmodule_skins.pyを比較したら
(voice_stun,"snd_man_stun")、(voice_yell,"snd_woman_yell")が増えてる
で、NE-Kengekiでは(voice_yell,"snd_woman_yell")があるから
WBのskins.txtの男音声 "7 0 snd_man_die ~ snd_man_victory"を上書きしたらOKかな?

845:名無しさんの野望:2010/07/23(金) 23:47:05 ID:50WrgrnT
WBネイティブにKENGEKIグラ移植がいまだに出来ないウンコ袋にも方法を教えてくれ・・・

847:名無しさんの野望:2010/07/24(土) 00:29:03 ID:uAhbTyoP
俺の場合WBの顔移植はModulesのNative(移植するmod)に
(kingekiの)TexturesとResourceを↑の空フォルダにぶっこむ
そしてそのままでは反映されないから(kengekiの)skinsを上書き移植
(※完全ではなく詳しくは上のコメで)

あとNPCキャラの顔を移植したければtroopsのtrp_p~(英文数字の羅列)~0をまるこぴペースト
キャラの名前が分からない場合languagesのja内のtroops参照でキャラの顔が変われば成功
間違ってたらすまん

848:842:2010/07/24(土) 00:32:34 ID:dyclkJLV
顔スキンや髪型の移植程度なら、KENGEKIフォルダから↓をコピペして
skins.txt
Resource/y_body.brf
Textures/manface_なんちゃら & womanface_なんちゃら

module.iniのload_resourceの末尾に、load_mod_resource = y_bodyって付け足すだけでいけると思う
Nativeのスキンや髪型を置き換えずに追加するなら、一作業必要だけど

武器防具も、基本的には該当のResourceとTexturesをコピーして
対象のtxtをちょこっと書き換えるだけで追加できますよ

嫁全員美化

104 :名無しさんの野望:2010/12/12(日) 20:36:13 ID:iiZJh4WN
kenngekiフェイスの嫁全員美化(バー弄っただけ)してみたけど需要あるかな
WBのcustom commanderで作ったけどnativeでも同じだと思う
http://ux.getuploader.com/MnB/download/268/yome.zip

やり方
1、wikiのkengekiフェイスとcRPGの髪(4つ全て)を導入(下記参照)
2、yome.txtの中身(嫁部分のみ収録)をtroop.txtの嫁部分と差し替える

アジアンの団子鼻修正テクスチャを使いたい場合
1、kengekiフェイスを入れた後に同梱のwomanface_a.ddsを上書きコピーする

白人の鼻修正(womanface_young.dds)も入ってるけど違いが分からない
似た顔ばかりでも気にしない(一度のゲームで大勢見ることないし)

105:名無しさんの野望:2010/12/12(日) 20:40:42 ID:iiZJh4WN
cRPGの4つってのはwikiで追加したsib_curlyの後ろに sib_leia rensibhair2 rensibhair1
を追加で書き込んで数字を3つ増やせば出てくる(Sibylla_Hairs.brfの中に元から入っている)

ヘアスタイルの追加

44 :名無しさんの野望:2010/10/29(金) 06:42:31 ID:zBjkYSj3
ところで先輩諸兄にお聞きしたいんだが
#ref error :画像を取得できませんでした。しばらく時間を置いてから再度お試しください。
はなんて名前のMODですかい?

うちの嫁をこんな美人にしてみたいんだ・・・

80 :名無しさんの野望:2010/10/29(金) 23:59:32 ID:9YmjLxk+
44にはやり方を説明することを要求するであります

82 :名無しさんの野望:2010/10/30(土) 00:15:44 ID:UrLtGGrn
簡単に書くと
①WikiからMODのcRPGをダウンロード
②ダウンロードしたファイルのResourceからSibylla_Hairs.brfを、追加したいModulesフォルダ内のResourceにコピペ
③追加したいModulesフォルダ内のmodule.iniに
load_mod_resource = Sibylla_Hairs
を書き足す(自分はResourceの他ファイルを引用してる文が多い行に追加。順番の関係性は不明)
④追加したいModulesフォルダ内のskins.txe内のwoman_hair_p woman_hair_n woman_hair_o ...の末尾にsib_curlyを書き足して、上の数字に+1する
具体的には

(修正前)
7
 woman_hair_p  woman_hair_n  woman_hair_o  woman_hair_q  woman_hair_r  woman_hair_t  woman_hair_s 

(修正後 文字列最初と最後に半角空白が入ってるので注意)
8
 woman_hair_p  woman_hair_n  woman_hair_o  woman_hair_q  woman_hair_r  woman_hair_t  woman_hair_s sib_curly 

⑤レッツエンジョイプレイ!



女でも領地が欲しい!

420 :名無しさんの野望:2010/12/27(月) 23:36:23 ID:eN9F1mqC
ちょい前に女でも仕官したとき村もらえるように出来ないの?
って聞いたけど、思い出して探そうとおもったらすぐ見つかった。

module_dialogs.pyの
(try_begin),

  (troop_get_type, ":is_female", "trp_player"),
  (eq, ":is_female", 0),
  (eq, ":num_centers_owned", 0),
  (call_script, "script_get_poorest_village_of_faction", "$g_talk_troop_faction"),
  (gt, reg0, 0),
  (assign, "$g_invite_offered_center", reg0),
(try_end),

3,4行目をコメントアウトすればとりあえず領土もらえるね。
上の方で仕官時に王様から出される性別選択肢の部分もあったけど関係なさそうだからそのままにした。


Narf's_Transitional_Armour_Pack導入

213 名前:名無しさんの野望:2010/08/14(土) 17:28:40 ID:xDGAflo9
Narf's_Transitional_Armour_Pack
Narf's_Plate_Armour_Pack
を導入したいんだがうまくいかない・・・。
フォーラム見た感じだとファイルそのままコピペすれば良いらしいんだが
Narf's_Plate_Armour_Packは起動時にエラーがでて
Narf's_Transitional_Armour_Packは一部のバニラ装備が表示されなくなるんだよね。

214 名前:名無しさんの野望:2010/08/14(土) 18:01:20 ID:3tHgJgOi
Narf's_Plate_Armour_Packの方はResourceの"chapel-de-fer"がくさいかな
"-"が起動時にちゃんと認識できてないんじゃないかと
OpenBRFでこいつとLODを"chapel_de_fer"にリネームして、item_kinds.txtの方もそれに書き換えてみてはどうか

Narf's_Transitional_Armour_Packの方ちょっとわからんが
item_kinds1.txtがNative最新版とちょっと違うから、その辺で干渉しているのかも

Nativeのitem_kinds1.txtに、両方のitem_kinds1.txtの該当箇所(itm_mail_boots_for_tableauの次からitm_items_endの一つ前まで)をコピぺ
足したアイテム分の数字を二行目の数字に足す
ってのが一般的な手順だけど、その過程でどっか消したりしてないだろうか

220 名前:名無しさんの野望:2010/08/14(土) 19:46:42 ID:xDGAflo9
Narf's_Transitional_Armour_Packそのやり方でできました!
バージョンUPで馬が追加されてたみたいでそこら辺が違ったみたいです。
Narf's_Plate_Armour_Packは今から頑張ります。ありがとうございました。


紋章(バナー)テクスチャ差し替え

913 :名無しさんの野望:2011/01/07(金) 19:46:13 ID:ESx4tv+F
流れぶった切ってすまん
紋章のテクスチャ差し替えたいんだけど、どのファイルいじればいいのかな

927 :名無しさんの野望:2011/01/07(金) 22:34:32 ID:P+3y72U1
詳しいことは知らないがどのみちDDSプラグインが必須だろうからそれを入れて片っぱしから開いてみるとか

928 :名無しさんの野望:2011/01/07(金) 22:36:15 ID:uuyiPKyV
そんなん入れなくてもopenBRFだけ使えば簡単じゃん

930 :名無しさんの野望:2011/01/07(金) 22:59:27 ID:eC7cef6q
http://www5.atwiki.jp/mountandblade/pages/133.html

932 :名無しさんの野望:2011/01/08(土) 00:02:47 ID:MGJDHbcJ
[>>924]
俺のやり方

①GIMP2をDLしてインスコする
②DDSプラグインをDLしてGIMP2に入れる
③GIMP2で移植先、移植元のddsをload midmapを外して開く
④バナーを移植
⑤レイヤーを固定を選択・・したような気がする
⑥CompressionをBC1/DXT1に設定し、Generate mipmapsにチェックを入れて保存

おしまい

ロトの紋章

176 :名無しさんの野望:2010/12/16(木) 01:15:32 ID:X2ImCvFw
1ページ目の紋章をロトの紋章だと言い張りながら
青くして使ってたわけだが結局作ってしまった。
ついでに目に付いた日の丸っぽいのも日の丸にしてみた。
たぶん二番煎じ



アイテム追加しまくったらエラー表示!

465:名無しさんの野望:2010/12/30(木) 16:33:54 ID:TIiqr25N
バトルサイズとかいじくってないけど
アイテム追加しまくってたらUnable to lock vertex bufferが出るようになった・・・
その場に表示されなくても、Module iniで読み込んでるのが多いとこのエラー出るのかな?
とりあえず適当に追加してたbrfファイルからいらないmesh消したら多少改善された気がするけどまだ出る・・・

バトルサイズやラグドール以外で原因や解決法に心当たりある人いますか?

471 :名無しさんの野望:2010/12/30(木) 18:29:13 ID:3TLjzKcj
[>>465]
アイテム追加すればするほどメモリ食うからエラーでるのは当然かと
MODによってはLODが設定してなかったり、テクスチャが大きくて、すごくメモリ食うものもあるから
自分の感覚だと、バトルサイズ大きくするより、アイテム増やす方がメモリ食う気がするな

473:名無しさんの野望:2010/12/30(木) 18:47:43 ID:TIiqr25N
[>>471]
ああ・・・LODって試作かなんかかkと思ってたけど負荷減らす意味あったんですね・・・
消しちゃった。元MODから引っ張ってくりゃなんとかなるけど
ありがとうございます

475 :名無しさんの野望:2010/12/30(木) 18:51:54 ID:p9xwI1CS
[>>473]
相手が遠くにいるときはLODで表示されるんじゃなかったっけ。

476:名無しさんの野望:2010/12/30(木) 18:59:56 ID:TIiqr25N
なるほど。でlodが無いのは負荷が高いと・・・うーん、元のBRF引っ張ってくるか
使わないメッシュを消すことに意味はあるんですかね?

477 :名無しさんの野望:2010/12/30(木) 19:04:45 ID:3TLjzKcj
[>>476]
LoD=Level of Detailってのは、遠くのものはポリゴンを省略したモデルにして負荷を減らす技術のこと
村人が歩いているのをよーく観察してると、一定距離でモデルが切り替わるのがわかるよ
これがあるとないとでは負荷は大違い

ゲーム開始時にBRFは全て読み込まれるみたいだから、
使わないアイテムとか、余計なメッシュを消すのは多少の軽減になるかもね

478:名無しさんの野望:2010/12/30(木) 19:12:57 ID:TIiqr25N
ありがとうございます
エラー出るようになったのはlod消す前だから、やっぱアイテム減らさなきゃだめかなぁ・・・
まあとりあえずできるだけ不必要なもの外すところからやってみますわ


防具の簡易移植方法

objなりのstatic meshの状態で、M&Bのボーンを定規代わりにサイズさえ合わせればとりあえずそれっぽくはなるけど・・・
OpenBRFで適当なrigg済のメッシュをctrl+cして、インポートしたTES4装備のstatic meshにedit→Paste rigging。

自分はボーン弄るのが全然ダメなんで、こんな感じで無理矢理やってますよ
でもこれだと肩の調整が難しいんだよなあ。肩と二の腕の境目が分かりにくい装備だと物凄いトライアンドエラー作業になる…

あとTES4から頂点数多いメッシュを持ってくる場合は、openBRFのUnifi verticsとBackfacing facesでさくっと削れる。
TES4と違って見えない部分の面や頂点は基本的に無駄なので


範囲攻撃の作成法

範囲攻撃の作成法について。
最初はitemのヒットトリガーを使うと簡単で良いです。
module_items.pyを開きます。トリガーはimodbit_xxxの後ろに書きます。ピストルなどが参考になるでしょう。→~imodbit_xxx (ココに挿入する)],
[]の数に注意してください。間違えるとエラーが出ます。また全角スペースを入れないようにも注意です。
例として火矢を作成してみます。他の武器でも要領はほぼ同じです。
#のコメントは打ち込む際は消してください。

["fire_arrows", "fire arrows", [("arena_arrow",0),("flying_missile",ixmesh_flying_ammo),("quiver",ixmesh_carry)], itp_type_arrows|itp_default_ammo|itp_merchandise, itcf_carry_quiver_back, 100, weight(2.25)|abundance(100)|weapon_length(95)|thrust_damage(1,pierce)|max_ammo(30), imodbits_missile,
 [(ti_on_missile_hit,[
  (store_trigger_param_1,":player_agent"),
  (call_script,"script_fire_script",":player_agent",1),#スクリプト名,以下引数:パラメータ1,パラメータ2
 ])]],

module_scriptを開いてサブルーチンを作ります。末尾に]とある手前に挿入します。

  ("fire_script",
   [
     (store_script_param, ":player_agent", 1),#パラメータ1を変数":player_agent"に受け取る
     (store_script_param, ":flag", 2),#パラメータ2を変数":flag"に受け取る
        (try_begin),
           (eq, ":flag",1),#火矢の場合
              (particle_system_burst, "psys_torch_fire", pos1, 50),#火のエフェクト
              (assign, ":range",300),#範囲(単位:cm)
              (assign, ":damage_min",5),#ダメージ最小値
              (assign, ":damage_max",13),#ダメージ最大値(+1の値)
        (else_try),
           (eq, ":flag",2),#爆弾の場合
              (particle_system_burst, "psys_dummy_smoke_big", pos1, 10),#煙のエフェクト
              (play_sound,"snd_pistol_shot"),#爆発音
              (assign, ":range",600),#範囲(単位:cm)
              (assign, ":damage_min",35),#ダメージ最小値
              (assign, ":damage_max",51),#ダメージ最大値(+1の値)
        (try_end),
        (try_for_agents,":enemy_agent"),
           (agent_is_alive,":enemy_agent"),#対象agentが生きてる場合のみ
           (agent_get_position,pos3,":enemy_agent"),#対象agentの位置をpos3へ格納
           (get_distance_between_positions,":distance",pos1,pos3), #着弾点から敵への距離
           (le,":distance",":range"),
           (store_random_in_range,":damage_range", ":damage_min",":damage_max"),
              (try_begin),
                 (eq, ":flag",2),#爆弾の場合、馬に+40のダメージボーナスを加える
                 (neg|agent_is_human,":enemy_agent"),
                 (val_add, ":damage_range", 40),
              (try_end),
           (agent_deliver_damage_to_agent,":player_agent",":enemy_agent", ":damage_range"),#damage値は防具の修正が入ります
        (try_end),
 ]),
アイテムトリガーに書きすぎると重くなりますので、処理はサブルーチンに書いて行うようにしてください。
パラメータ2は1が火矢,2が爆弾となっています。
爆弾なら呼び出し部分の第二引数を2に変えるだけです。

  (call_script,"script_fire_script",":player_agent",2),
":player_agent"は「誰が誰にダメージを与えた」判定に使われています。":enemy_agent"にすると自滅扱いでスコアが-1になります。
position変数は間違えないように注意してください。

また、これらはデバッグの際に便利です。うまく動いていたら削除してください。

     #1: コードが通ったかどうかチェックする
     (display_message,"@[DEBUG] passed code"),

     #2: 値が正しくアサインされているかチェックする
     (assign, reg1, ":your_want_value"),
     (display_message,"@value: {reg1}"),

タグ:

+ タグ編集
  • タグ:

このサイトはreCAPTCHAによって保護されており、Googleの プライバシーポリシー利用規約 が適用されます。

最終更新:2013年08月18日 15:41