407
edits
(状態異常付与は状態異常のページに移動) |
|||
Line 482: | Line 482: | ||
ダメージを表示するオプションがONになっている際のダメージ表記を行っています。 | ダメージを表示するオプションがONになっている際のダメージ表記を行っています。 | ||
===死を回避する=== | |||
void EvadeDeath() | |||
{ | |||
hp = 0; | |||
if (Evalue(1421) > 0 && isChara && Chara.mana.value < 0) | |||
{ | |||
Chara.mana.value = 0; | |||
} | |||
} | |||
HPを0にし(HPがマイナスにならないとキャラクターは死亡しない)、マナの体を持っているキャラならば、MPを0にします。 | |||
===スタミナ消費による=== | |||
else | |||
{ | |||
if (attackSource != AttackSource.Finish && IsPCParty && Chara.host == null) | |||
{ | |||
if (EClass.pc.ai is GoalAutoCombat && !EClass.player.invlunerable && (EClass.pc.ai as GoalAutoCombat).listHealthy.Contains(Chara)) | |||
{ | |||
EClass.core.actionsNextFrame.Add(delegate | |||
{ | |||
Msg.Say(IsPC ? "abort_damage" : "abort_damgeAlly"); | |||
}); | |||
EClass.player.invlunerable = true; | |||
EClass.player.TryAbortAutoCombat(); | |||
EClass.pc.stamina.Mod(-EClass.pc.stamina.max / 5); | |||
} | |||
if (EClass.player.invlunerable) | |||
{ | |||
EvadeDeath(); | |||
goto IL_0a8f; | |||
} | |||
} | |||
受けた攻撃がFinishでなく、かつPCに騎乗も寄生もしていないペットのとき、スタミナを消費して耐えます。 | |||
===運命の誓約による即死回避=== | |||
if (IsPC && Evalue(1220) > 0 && Chara.stamina.value >= Chara.stamina.max / 2) | |||
{ | |||
Chara.stamina.Mod(-Chara.stamina.max / 2); | |||
Chara.AddCondition<ConInvulnerable>(); | |||
EvadeDeath(); | |||
} | |||
} | |||
もし、運命の誓約モードかつ、スタミナが最大値の半分以上残っているなら、 | |||
スタミナを最大値の半分減らし、死を回避します。 | |||
==状態異常付与== | ==状態異常付与== |
edits