function entityHurtHook(attacker, victim, hearts){ }エンティティがダメージを負った時に作動するフック関数。
attackHookはattackerがプレイヤーの場合のみフックするが、
この関数はプレイヤー以外が攻撃した場合もフックする。
また、エンティティはドロップアイテムを含み、恐らくほぼ全てのエンティティが対象だろうと考えられる。
ただし、エフェクトは例外らしく、毒やダメージのエフェクトによるダメージには反応しなかった。
- attackHook→entityHurtHook→ダメージ→死亡した場合→deathHook
- preventDefaultされるとentityHurtHookは呼ばれない
- projectileHitEntityHook→entityHurtHook→ダメージ
- preventDefaultされてもフックする。
このフックの中でpreventDefaultを使うと、攻撃がなかったことになる。
矢が刺さる時にpreventDefaultすると、クリエイティブモードの様に跳ね返る。
爆風などは飛ばされるだけでダメージはなくなる。
モブが炎上している場合、見た目は真っ赤になるがダメージは喰らわなくなる。
矢が刺さる時にpreventDefaultすると、クリエイティブモードの様に跳ね返る。
爆風などは飛ばされるだけでダメージはなくなる。
モブが炎上している場合、見た目は真っ赤になるがダメージは喰らわなくなる。
型 | 引数 | 説明 |
---|---|---|
Number | attacker | 攻撃したエンティティのUUID 存在しない場合は -1 が渡される |
Number | victim | ダメージを受けたエンティティのUUID |
int | hearts | ダメージを受けたエンティティがこれから受けるダメージ量 |
アタッカーの種類は、大きく分けてプレイヤーとそれ以外のモブと、なしの3パターンある。
アタッカー | 説明 |
---|---|
プレイヤー | 通常のエンティティを叩くアクション プレイヤーが投げた雪玉、卵、弓矢 浮きと釣り針のヒット、回収 火打ち石と打ち金で着火させたTNTの爆発 プレイヤーが跳ね返したファイヤーチャージ |
プレイヤー以外 | モブの攻撃 クリーパーの自爆 スノーゴーレムが投げた雪玉 スケルトンの弓 ガストのファイヤーチャージ |
なし( -1 ) | 炎上ダメージ 窒息ダメージ 落下ダメージ 奈落ダメージ 飢餓によるダメージ 落雷 サボテン レッドストーン入力で着火したTNTの爆発 炎で炎上着火したTNTの爆発 TNTトロッコの爆発 |
卵や雪玉、浮きと釣り針といった 0 ダメージの場合もフックする。
Heartsは防御力には関係なく。素っ裸で喰らった場合のダメージの量が渡される。
防御力やエフェクトによるダメージの増減は、この関数が終わった後の、実際にダメージを喰らう段階で計算されるようだ。
Heartsは防御力には関係なく。素っ裸で喰らった場合のダメージの量が渡される。
防御力やエフェクトによるダメージの増減は、この関数が終わった後の、実際にダメージを喰らう段階で計算されるようだ。
タグ
このページへのコメント
Level.spawnMobでスポーンさせた矢が刺さった場合、
attackerには矢のUUIDが渡される。