XMLの位置
7 Days To Die\Data\Config\buffs.xml
概要
様々な環境でEntityが受ける状態異常の内容やその発動条件を記述します。
アイテムやブロックを介してbuffを発動させる場合には、そのアイテムやブロック側で指定します。
<buffs>
<buff id="bleeding" duration="60" type="bleeding">
<modify id="0" stat="stamina" amount="-1" rate="1"/>
<modify id="1" stat="health" amount="-1" rate="1"/>
</buff>
<buff id="cured" duration="3000" stack="reset"/>
</buffs>
注意
variableとstatは明確に区別され、逆の操作を行うことはできません。
beersを含む自作のカウンタはvariableに含まれており初期値は0ですが、何らかの方法で値に変化を与えて初めて定義されるため、それまではbuffifを含む条件文で参照しても無効な参照となります。
buff要素
buff要素では、そのbuffの識別名やプレイヤーに見せる情報の他に、その効果時間と発動する条件、そして効果の一部を属性として記述します。
<buff>~</buff>の記述でmodify要素を子に持つことができます。
id
XML内で使うそのbuff固有の識別名で、ゲーム内の名称ではありません。
コンソールで指定する際にもこの識別名を使用します。
name_key
ゲーム内で表示するbuffの名前を指定します。
実際の名前はLocalization.txtで定義するため、単純で分かりやすい名前にしましょう。
主にidと共通にします。
description_key
ゲーム内で表示するbuffの説明を指定します。
実際の説明はLocalization.txtで定義するため、単純で分かりやすい名前にしましょう。
主にidの後ろに「Desc」を加えたものを使います。
tooltip_key
ゲーム内で表示する発動した時にツールベルト上に表示される、buffの簡単な説明を指定します。
実際の説明はLocalization.txtで定義するため、単純で分かりやすい名前にしましょう。
主にidの後ろに「Tooltip」を加えたものを使います。
notificationClass
buffの発動中に表示するstatを設定します。
icon
そのbuffと一緒に表示されるアイコンの名前を指定します。
アイコンはUIAtlasから読みだしますが、基本はprogression.xmlやwindows.xmlを含むXMLで使われているアイコンが使用可能です。
cures
プレイヤーに表示する治療アイテムを記述します。*1
実際の治療アイテムに合わせてください。
causes
プレイヤーに表示する発動アイテムを記述します。*2
実際の発動アイテムに合わせてください。
duration
効果時間を指定します。
実時間とゲーム内時間の設定が可能で、"1"が実時間1秒"100t"がゲーム内時間1時間です。*3
未設定の場合は0になりますが、0に指定した場合は0秒ではなく時間では解除されません。*4
1日時間設定によらない体験をするために、開発は実時間形式を使っています。
stack
既にbuffが発動している場合に、効果時間をどうするかの設定をします。
未設定の場合はdiscardになります。
- discard
- 効果時間を更新しません。
- reset
- 効果時間をdurationに再設定します。
- extend
- duration分効果時間を延長します。
- stack
- 後述するstacklimitまで効果を重複させます。
stacklimit
stackの設定がstackになっている場合、重複上限を設定します。
buffif
変数の値によって発動する条件を指定します。
それぞれの条件は;(セミコロン)で区切ることでORの条件を追記できます。
使える書式
- 変数 equals 値 (variable = value)
- 変数 greater値 (variable > value)
- 変数 gequal値 (variable >= value)
- 変数 less 値 (variable < value)
- 変数 lequal 値 (variable <= value)
debuffif
変数の値によって解除される条件を指定します。
それぞれの条件は;(セミコロン)で区切ることでORの条件を追記できます。
使える書式はbuffifを参照。
ffcheck
発動時にffcheckを行うかどうかを設定します。
trueにした場合ffcheckを行ったうえでbuffが発動します。
requires
発動に全て必要なbuffのidを指定します。
このbuffを満たしたうえで発動する必要があります。
それぞれの条件は;(セミコロン)で区切ることでANDの条件を追記できます。
mutex
共存できないbuffのidを指定します。
ここに記述したbuffが存在する間は、いかなる方法でもこのbuffは発動できません。
それぞれの条件は;(セミコロン)で区切ることでORの条件を追記できます。
overrides
このbuffが発動するときに少なくとも1つ必要なbuffを記述します。
それぞれの条件は,(コンマ)で区切ることでORの条件を追記できます。
overrideicon
overridesで設定したbuffのアイコンや説明文に上書きして表示するかどうかを設定します。
実際の効果はどちらも発動し続けますが、trueにした場合は上書き前のbuffの説明やアイコン、名称が表示されません。
初期値はfalseです。
type
damageやmodifyでダメージを受ける時にプレイヤーが発する声や、Entityごとの耐性に関係します。
耐性はentityclasses.xmlのImmunityで指定します。
;(セミコロン)で区切ることで複数のtypeを指定できます。
一覧
- bleeding
- disease
- sickness
- drowning
- wellness
- healthup
- healthdown
- staminaup
- staminadown
- armorup
- armordown
hitmask
攻撃によって発生するbuffについて、有効な身体のパーツを指定します。
複数のパーツを指定する際は;(セミコロン)で区切ります。
一覧
- body
- head
- leftarm
- rightarm
- leftleg
- rightleg
ondebuff
効果時間以外でbuffが解除されたときに、自動で発動するbuffをidで指定します。
onexpired
効果時間でbuffが解除されたときに、自動で発動するbuffをidで指定します。
castsound
そのbuffが発動した時に鳴る効果音を指定します。
ondebuffsound
効果時間以外でbuffが解除されたときに鳴る効果音を指定します。
onexpiredsound
効果時間でbuffが解除されたときに鳴る効果音を指定します。
actions属性
ここでは、このbuffが発動した時に同時に起こる効果を記述します。
actionsはbuff要素の行内に記述する属性ですが、多数の子属性を持ちます。それぞれの属性は;(セミコロン)で区切ることで複数記述できます。
記述例
<buff id="bleeding" actions="debuff(fullBuff);damage(0,5,0,0)" />
buff
buff(id)
()の中に書かれたbuffを発動させます。
debuff
debuff(id)
()の中に書かれたbuffを解除させます。
damage
damage(ダメージ量,ダメージ間隔,最大効果時間,最大効果回数)
プレイヤーにダメージを与え、対応する耐性やダメージ音(苦痛や溺れ)を発生させます。
このダメージはプレイヤー側の状態異常説明には表示されません。
最大効果時間や最大効果回数の初期値は0で、このbuffが続く限りダメージが与えられます。
kill
プレイヤーを死亡させます。
addimmunity
addimmunity(types)
buffの効果中、buffごとに設定されたtypeに対する耐性を追加します。
setvalue
setvalue(name,value)
nameで指定したstatをvalueで指定した値に置き換えます。
resetvalue
resetvalue(name)
最大値や最低値の設定を考慮して、statを初期値に一番近い値に戻します。
setvar
setvar(name,value)
nameで指定したvariableをvalueで指定した値に置き換えます。
increment
increment(name,変化量,頻度,最大効果時間,最大効果回数)
nameで指定したvariableを時間経過とともに段階的に変化させます。
buffが解除されるか、後ろ二つの条件のどちらかを満たすと停止します。
条件の初期値は0でこのbuffが続く限り効果が続きます。
max
max(name,最大値)
nameで指定したvariableの最大値を設定します。
min
min(name,最低値)
nameで指定したvariableの最低値を設定します。
attach
attach(prefab,bone[,time])
buff効果中のエフェクトを設定します。
prefabで指定したエフェクトがboneで指定したboneで発生します。
boneに@impactと指定することで、buffが発生する際に攻撃を受けたboneにエフェクトを発生させます。
modify要素
modify要素では、buff発動中のstatに関する設定と、他のbuffの効果時間についての設定をします。
id
modify要素の通し番号を指定します。
0以上の整数を設定し、同じbuff中で番号が重複しないようにしてください。
stat
操作するstatのidを指定します。
amount
statのrate時間当たりの変化量を指定します。
必ずstatとrateと共に記述します。
rate
statが変化する間隔を指定します。
必ずstatとamountと共に記述します。
modifyMaxValue
statの最大値を変更します。この属性はハードコードに優先します。
必ずstatと共に記述します。amountやrateと共に用いることはできないので、要素を分けてください。
modifyValue
statの値にこの値を加算します。最大値を超える場合は最大値になります。
必ずstatと共に記述します。amountやrateと共に用いることはできないので、要素を分けてください。
mulValue
statの値にこの値を乗算します。最大値を超える場合は最大値になります。
必ずstatと共に記述します。amountやrateと共に用いることはできないので、要素を分けてください。
buff
tickrateの対象になるbuffのidを指定します。
tickrate
buffで指定したbuffの進行速度をこの値で乗算します。*5
duration
各modify要素ごとの効果時間を設定します。
初期値は0でbuffが続く限り持続します。
type
各modify要素ごとのtypeを設定します。
buff自体が発動しても、このtypeに耐性がある場合はこのmodify要素の効果が無視されます。