※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。


アイテム作成の基本




使うファイル(一例)

SoC
gamedata\config\misc\
アイテムの性能など。
新規作成なら、(マージ難易度的な意味で)新規ファイルへの記述を推奨。
既存ファイルを使う(名前の改変など)場合は、以下を参照すること。
artefacts.ltx・・・アーティファクト
items.ltx・・・一般アイテム
monster_items.ltx・・・ミュータントパーツ
outfit.ltx・・・スーツ
quest_items.ltx・・・クエストアイテム
unique_items.ltx・・・ユニークアイテム(改造された銃器やスーツ)

gamedata\config\weapons\
銃器の性能を扱う場合はこちら。
どの銃がどのファイルに当たるかは、各自で適当に確認してください。

gamedata\config\text\eng\
アイテムの名称や説明文。
新規作成なら、(マージ難易度的な意味で)新規ファイルへの記述を推奨。
既存ファイルを使う(名前の改変など)場合は、以下を参照すること。
string_table_enc_equipment.xml・・・一般アイテム
string_table_enc_mutants.xml・・・ミュータントパーツ
string_table_enc_weapons.xml・・・銃器
string_table_enc_zone.xml・・・アーティファクト
string_table_items.xml・・・クエストアイテム
string_table_outfit.xml・・・スーツ

CS/CoP
保留。だいたい同じだと思う。

今回の目的

アイテムといっても色々あるので、適当に1,2例挙げて終わり、というパターンで行きます。
テキストとテクスチャの改変は別に行うので、今回はパラメータの改変のみ。
改変したものにID付けてコピペすれば新規アイテムとして実装出来ます。
また、各アイテムをゲーム内に実装する手法は色々あるので今回はスルー。

消耗品の性能を改変する

まずは、消耗品であるパンの性能を確認。
gamedata\config\misc\items.ltxを開いて、[bread]の項を確認。[bread_a]はたぶん食べられないほうのアレです。
重要そうなポイントとしては、
class				= II_FOOD
アイテム作成時に意外と見落としがちなのがこの項目。
このclassがパラメータとして何を必要とするか/設定可能かを決定しているので、
食べ物であればII_FOODにする、ということだけ。基本的に改変元があるはずなのでそれを変えないこと。

次に、アイテムの性能。
; eatable item
eat_health = 0.05
eat_satiety = 0.2
eat_power = 0
eat_radiation = 0	
wounds_heal_perc = 0
eat_portions_num = -1
上から順番に、
eat_health:ヘルス回復量(1.0を100%とする)、
eat_satiety:満腹感
eat_power:スタミナ回復量
eat_radiation:放射能除去量
wounds_heal_perc:出血回復量
eat_portions_num:使用した時に増減する量
となります。
要するに、eat_healthとeat_satiety、wounds_heal_percを1.0にすれば、
食べただけで満腹・全回復する仙豆的アイテムの出来上がりです。
逆に、eat_satiety以外のステータスを0にしたリアル志向の食料や、
食べたら放射能汚染される食料、みたいなものも良く見かける例です。

ここで重要なのは、"食料とウォッカの場合は"eat_portions_numを-1に設定することです。
医薬品の場合は、eat_portions_numは1に設定されています。
おそらくclassによってパラメータの扱いが逆になっているようなので、
うっかり逆にすると無限に増え続けるアイテムを抱え込むことになります。

アーティファクトの性能を改変する

これも比較的反映の楽なアイテムです。
完全に新規のアーティファクトとして実装するのは案外難易度の高い代物ですので、
今回はパラメータの改変のみです。
今回の例はJellyfish。
gamedata\config\misc\artefacts.ltxを開いて、[af_medusa]の項を確認。[af_medusa_absorbation]も必要です。

classはARTEFACTのみなので端折って、基本性能を。
health_restore_speed		= 0.0			
radiation_restore_speed		= 0.0005
satiety_restore_speed		= 0.0
power_restore_speed			= 0.0
bleeding_restore_speed		= 0.0
hit_absorbation_sect		= af_medusa_absorbation
上から順番に、
health_restore_speed:体力回復速度(+で増え、-で減る)
radiation_restore_speed:放射能(+だと被曝する)
satiety_restore_speed:空腹回復速度(-だと空腹になる)
power_restore_speed:スタミナ回復速度(+で回復)
bleeding_restore_speed:出血回復速度(+で回復)
hit_absorbation_sect:耐性系パラメータの参照先
となります。耐性系は以下の通り。
burn_immunity = 1.0
strike_immunity = 1.0
shock_immunity = 1.0
wound_immunity = 1.0		
radiation_immunity = 1.0
telepatic_immunity = 1.0
chemical_burn_immunity = 1.0
explosion_immunity = 1.0
fire_wound_immunity  = 0.98
上から順に、
burn_immunity:火炎耐性
strike_immunity:衝撃耐性
shock_immunity:電撃耐性
wound_immunity:動物攻撃耐性	
radiation_immunity:放射能耐性
telepatic_immunity:PSY耐性
chemical_burn_immunity:薬品耐性
explosion_immunity:爆発耐性
fire_wound_immunity:銃弾耐性
となります。
回復速度は±での記述で、耐性は1.0を基準とした割合で表記している点に注意。
こちらはひたすらメリットとデメリットのバランスを弄る作業になるんじゃないでしょうか。
超回復と無敵の耐性を備えたデバッグ用Jerryfish、みたいなモノを作ると案外重宝します。


出来上がったものは

ございません。
基本的には、どこをいじればどのパラメータが変動するのか、を覚えるだけです。
classによって設定項目が変わるので、"弾が出てしかも食べられる銃"はたぶん作れませんが、
"見た目銃だけど食べられるアイテム"や"見た目パンだけど構えると弾が出るアイテム"は作れるはずです。

パラメータの変更程度なら、自分で試しながらいじくり回す作業がメインになります。