改造テスト

一通り項目の説明が終わったところで実際に改造を施してみましょう。
今回はDesert Eagleに専用の50口径弾薬、12.7x30 Action ExpressとHollow point弾を追加します。

Desert Eagle 改造計画



★0-1 発射弾薬の変更

gamedata\config\weapons\w_desert_eagle.ltxを開き、
ammo_classのammo_11.43x23_fmj, ammo_11.43x23_hydroと記述されてる部分を
ammo_12.7x30_ae, ammo_12.7x30_hpに書き換えて下さい。
これでDEは50AEと50HPを発射出来るようになり、第一段階は終了です。



★1-1 弾薬の作成 【Weapon.ltx】
C:\S.T.A.L.K.E.R\gamedata\config\weapons\weapons.ltxを開いて下さい。
;; Grenades for Attachable grenade launcherという項目を探します。
その直上に
;・胚・・ 碚襃・ 磊 淲魲湜澵隯・:
という文字化けした項目があります。
そこに以下の記述を追加して下さい。



;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;~
[ammo_11.43x23_fmj]:ammo_base~
groupcontrolsection = spawn_group~
discovery_dependency = ~
$spawn = "weapons\ammo\ammo_11.43x23_fmj" ; option for Level Editor~
class = AMMO~
cform = skeleton~
visual = weapons\ammo\ammo_1143x23_fmj.ogf~
description = enc_weapons1_ammo_ammo-11.43x23-fmj~
$prefetch = 64~
~
cost = 200~
~
box_size = 20 ;50~
~
inv_name = ammo-11.43x23-fmj~
inv_name_short = ammo-11.43x23-fmj_s~
inv_weight = .3~
~
inv_grid_width = 2;1~
inv_grid_height = 1~
inv_grid_x = 9~
inv_grid_y = 12~
~
k_dist = 1~
k_disp = 3~
k_hit = 1~
k_impulse = 1~
k_pierce = 1~
impair = 1~
buck_shot = 1~
tracer = off~
wm_size = 0.05~
~
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;~
[ammo_11.43x23_hydro]:ammo_base~
groupcontrolsection = spawn_group~
discovery_dependency = ~
$spawn = "weapons\ammo\ammo_11.43x23_hydro" ; option for Level Editor~
class = AMMO~
cform = skeleton~
visual = weapons\ammo\ammo_1143x23_Hydro.ogf~
description = enc_weapons1_ammo_ammo-11.43x23-hydro~
$prefetch = 64~
~
cost = 215~
~
box_size = 20 ;50~
~
inv_name = ammo-11.43x23-hydro~
inv_name_short = ammo-11.43x23-hydro_s~
inv_weight = .3~
~
inv_grid_width = 2;1~
inv_grid_height = 1~
inv_grid_x = 7~
inv_grid_y = 12~
~
k_dist = 0.95~
k_disp = 3~
k_hit = 1.1~
k_impulse = 1.2~
k_pierce = 1.35~
impair = 1.15~
buck_shot = 1~
tracer = off~
wm_size = 0.05~



これで下地が出来ました。
これはColt1911用の45口径弾薬なので、これを改造して50口径弾薬を作成します。
基本的には小さな記述を50AE用のものに書き換えていくだけです。
レンジの中に完成品があるので、手っ取り早く追加したい方は追加し直して下さい。



;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;~
~
[ammo_12.7x30_ae]:ammo_base~
groupcontrolsection = spawn_group~
discovery_dependency = ~
$spawn = "weapons\ammo\ammo_12.7x30_ae" ; option for Level Editor~
class = AMMO~
cform = skeleton~
visual = weapons\ammo\ammo_1143x23_fmj.ogf~
description = enc_weapons1_ammo_ammo-12.7x30-ae~
$prefetch = 64~
~
cost = 75~
~
box_size = 25 ;50~
~
inv_name = ammo-12.7x30-ae~
inv_name_short = ammo-12.7x30-ae_s~
inv_weight = .05~
~
inv_grid_width = 2;1~
inv_grid_height = 1~
inv_grid_x = 9~
inv_grid_y = 12~
~
k_dist = 1~
k_disp = 3~
k_hit = 1.3~
k_impulse = 4.0~
k_pierce = 1.0~
impair = 1.3~
buck_shot = 1~
tracer = off~
wm_size = 0.05~
~
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;~
[ammo_12.7x30_hp]:ammo_base~
groupcontrolsection = spawn_group~
discovery_dependency = ~
$spawn = "weapons\ammo\ammo_12.7x30_hp" ; option for Level Editor~
class = AMMO~
cform = skeleton~
visual = weapons\ammo\ammo_1143x23_Hydro.ogf~
description = enc_weapons1_ammo_ammo-12.7x30-hp~
$prefetch = 64~
~
cost = 150~
~
box_size = 25 ;50~
~
inv_name = ammo-12.7x30-hp~
inv_name_short = ammo-12.7x30-hp_s~
inv_weight = .05~
~
inv_grid_width = 2;1~
inv_grid_height = 1~
inv_grid_x = 7~
inv_grid_y = 12~
~
k_dist = 1~
k_disp = 3~
k_hit = 1.5~
k_impulse = 5.0~
k_pierce = 1.1~
impair = 1.6~
buck_shot = 1~
tracer = off~
wm_size = 0.05~
~
~

弾の値段は9x18mm_fmjより僅かに高いぐらいですが、一箱で25発入りです。
重量は軽く、威力はスラッグ弾並の威力があり、貫通力と衝撃力があります。
基本となるDEの威力も相まって、アーマーを来たStalkerも数発で射殺出来る威力です。
~
~
★1-2 変更点について

自前で改造が出来るようになるため、どこをどう弄ればいいのか理解しましょう。

★1-3 IDを設定する
[ammo_12.7x30_hp]:ammo_baseがこの弾丸の基本IDです。
他のどこにもここで設定されたIDが割り振られます。

★1-4 発生条件を指定する
$spawn	= "weapons\ammo\ammo_12.7x30_hp"
マップ上でこの弾薬が出現する条件です。
設定上、このアイテムが出現するゾーンは存在しないので、このアイテムはマップ上に出現しません。
アイテムテーブルの問題上、敵が低確率で落とすことがありますが、基本は購入することになります。
敵の死体から入手したい場合、config\misc\death_itemなどを編集しましょう。

★1-5 見た目を決める
visual = weapons\ammo\ammo_1143x23_Hydro.ogf
外見の設定されていないファイルを登録するとエラーが発生します。
新規でグラフィックを書き起こせる根性のある人間でないならば、
とりあえず他の弾薬の外見を流用するといいでしょう。
この場合は45口径弾薬の見た目をそのまま流用しています。

★1-6 名前と説明文を書き起こす
description = enc_weapons1_ammo_ammo-12.7x30-hp
名前や説明文がないと味気ないという人はconfig\text\eng\string_table_enc_weapons.xmlで説明文を書き起こして下さい。
enc_weapons1_ammo_ammo-12.7x30-hp ←の部分をStringDataに追加し、説明文を書き起こすことになります。
これに関しては後述します。

★1-7 性能を変更する
せっかく新しく弾を作ったので、好きな性能を与えて下さい。
Weapon DBに弾の性能を編集する方法が書いてありますので、
k_dist k_disp k_hit k_impulse k_pierce impairを編集しましょう。




★2-1 名前を登録する【string_table_enc_weapons.xml】
作成した弾薬に名前を登録し、説明文を書き足します。
config\text\eng\string_table_enc_weapons.xmlを開いて下さい。
日本語の説明文を追加する場合、SHIFT-JISで変換されたテキストファイルでないと文字化けしてしまいます。
よくわからない人はこのWikiにある日本語化ファイルの中に、
エンコード済みの和訳ファイルが含まれているので、それを使用して下さい。



★2-2
和訳化されたstring_table_enc_weapons.xmlを開くと、すぐに<text>弾薬</text>という部分が見つかります。
ここの直下に以下の追加して下さい。


</string>~
<string id="ammo-12.7x30-ae">~
<text>.50AE 通常弾</text>~
</string>~
<string id="ammo-12.7x30-ae_s">~
<text>.50AE</text>~
</string>~
<string id="ammo-12.7x30-hp">~
<text>.50AE Hollow-Point 弾</text>~
</string>~
<string id="ammo-12.7x30-hp_s">~
<text>.50AE-HP</text>~
</string>~
<string id="enc_weapons1_ammo_ammo-12.7x30-ae">~
<text>IMI Desert Eagle の専用弾薬。自動拳銃の物としては破格の威力を誇る。</text>~
</string>~
<string id="enc_weapons1_ammo_ammo-12.7x30-hp">~
<text>IMI Desert Eagle の為に改良された弾薬。これはホローポイント弾で着弾時に変形し、ただでさえ強力なAEに破壊的な威力を与えている。</text>~


★2-2 書式のチェックを行う
張りつけた後、書式のチェックをします。
全てのテキストが以下の並び順になっていないとエラーが起きます。

</string>
<string id="弾薬・武器のID">
<text>説明文</text>

全ての書式が以上の三つの段落で正常に構成されていればエラーは起きません。
例外として一番上と一番下の段落だけは<string_table>で構成されます。
~
~
最後の仕上げに、DEの仕様弾薬についての記述を変更します。
enc_weapons1_wpn-desert-eagleで検索し、
\n 使用弾薬:\n .45 ACP 通常弾、\n .45 ACP Hydro-Shock 特殊弾~
↑の記述を
\n 使用弾薬:\n .50 AE 通常弾、\n .50 AE Hollow-Point 特殊弾~
↑に書き換えて下さい。

これで12.7x30の弾薬に名前と説明文が追加され、DEの弾薬説明も正常になりました。


★3-1 トレーダーから弾を購入する 【trade_trader.ltx】
最後に弾薬をトレーダーから購入出来るようにします。
config\misc\trade_trader.ltxを開いて下さい。

以下の記述を検索し、その下に以下の記述を張りつけて下さい。
~
[trader_generic_buy]の下に以下を張りつけ。~
ammo_12.7x30_ae = 0.3, 0.1~
ammo_12.7x30_hp = 0.3, 0.1~
~
[supplies_start]の下に以下を張りつけ。~
ammo_12.7x30_ae =20,3~
ammo_12.7x30_hp =20,3~
~
[supplies_after_fabric]の下に以下を張りつけ。~
ammo_12.7x30_ae =20,3~
ammo_12.7x30_hp =20,3~
~
[trader_start_sell]の下に以下を張りつけ。~
ammo_12.7x30_ae =20,3~
ammo_12.7x30_hp =20,3~
~
[trader_after_fabric_sell]の下に以下を張りつけ。~
ammo_12.7x30_ae =20,3~
ammo_12.7x30_hp =20,3~
~
これでトレーダーから50口径弾薬を購入することが出来るようになりました。
以上の手順で50口径弾薬の追加する為の一応の手順は終了です。




★4-X 起動テストをする

この弾薬MODを通常の手順で導入して下さい。
まさかこの段階でMODの導入方法がわからないという人は、最初からなにもかもやり直してください。
そして、導入した後も、発生したエラーについて一切口を閉じて下さい。
悪意のある言葉ではなく、初心者は改造に手を出さない方が全くに無難です。

もし起動時にエラーが発生した場合、すぐにテキストエディタを開いてCtrl+Vでテキストを張りつけて下さい。
システムエンジンがクリップボードにエラー内容を自動的に記録してくれています。
Invaild ~と出てる部分が大抵の場合はエラーです。
以下に起こりやすいエラーを書いておきます。

■Weapon.ltxを編集した際、誤って消してしまった記述があった。
新しい項目を登録するのは非常にデリケートな作業です。
完璧な手順でやったはずなのにエラーが出ることもしばしばあります。
どこかで間違って消した部分がないか、余計な部分がついていないか確認して下さい。
デフォルトの状態からやり直して、最下層の部分に自筆で書き直したり、
時間を掛けてあらゆる手段を試してみましょう。


■重複している項目がある
Duplication ~などと表示された場合、そこに記述された項目が多重登録されている可能性があります。 
多重登録でもエラーとならない場合もありますが、この場合はエラーメッセージに従って下さい。
重複した箇所を消すだけでこの問題は解決します。


■欠損している項目がある
書き忘れている項目があった場合もエラーが発生します。
エラーログに該当項目が記録されるので、その部分を探して書き加えて下さい。


■トレーダーに登録されたアイテム名が間違っている
無事起動してもトレーダーが明後日の方向を向いたまま動かない、
その時はこのエラーが発生しています。
追加したアイテム名とトレーダーに売らせるアイテム名が違っているためこのエラーが起きます。
Ctrl+Gで一括置き換えすれば単純に問題を解決出来ることが多いです。
コンソールにも登録されるので、ゲーム中にコンソールを開いて確認したり、
終了後にログを閲覧してエラー箇所を探して下さい。


■最後に
どんなエラーが発生しても、基本的には自分で解決しましょう。
自作Modは自分の作ったエラーとの戦いです。
間違っているかも知れない部分は全て目を通して、出来ることは全部試し、
調べてなんとかなるかも知れないことは全て調べて、そのうえであと30回は挑戦し、
エラーが起きてから3時間ぐらい格闘したのを目安に人に聞き、
それでも駄目なら一からやり直すか、すっぱりと諦めて下さい。
自分で作ったエラーほど人にわかりづらいものはありません。
どうせ人に聞いてもわからないことのほうが実際に多いので、人に聞くのは事実上最後の手です。
最終更新:2011年11月25日 16:29
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。