buffs.xml

Last-modified: 2016-08-31 (水) 00:42:58

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要素の効果が無視されます。


*1 効果はここに書くだけでは設定されません。
*2 効果はここに書くだけでは設定されません。
*3 参考までにデフォルト設定の1日50分では125=100tです。
*4 正しくはfloatの最大値3.40282346638529e+38秒ですが、通常は意識する必要はありません。
*5 同時にそのbuffの効果時間はこの値で割った値になります。