Skriptで与えたダメージのdamage causeを変更したい

TCTの地雷を作ってます。 地雷の死因(damage cause)を変えるのに手間取っています。 SkRageのdamagesourceを用いて、クリーパー頭の近くにいるプレイヤーに対し damage loop-entity by 50 with damagesource {_TNTdmg} でダメージを与えています。 この{_TNTdmg}は、set {_TNTdmg} to new damage source with type "ENTITY_EXPLOSION" で設定しています。 これでダメージを与えると、damage causeがattackになってしまいます。 コード:
on place:
if {Chosen_wolf::*} contains player:
if player's tool is creeper head item:
send "{@prefix} &a地雷を設置しました。"
set {_TNTdmg} to new damage source with type "ENTITY_EXPLOSION"
set damage source attacker of {_TNTdmg} to player
loop 1000 times:
wait 5 tick
if "%block at location of event-block%" is "SKULL":
loop all entities in radius 2 around location of event-block:
loop-entity is set
loop-entity is not arrow
{Chosen_wolf::*} does not contain loop-entity
{Chosen_mad::*} does not contain loop-entity
{Chosen_fan::*} does not contain loop-entity
damage loop-entity by 50 with damage source {_TNTdmg}
send "{@prefix} &c地雷が発動しました。"
set block at location of event-block to air
stop loop
else:
stop loop
on place:
if {Chosen_wolf::*} contains player:
if player's tool is creeper head item:
send "{@prefix} &a地雷を設置しました。"
set {_TNTdmg} to new damage source with type "ENTITY_EXPLOSION"
set damage source attacker of {_TNTdmg} to player
loop 1000 times:
wait 5 tick
if "%block at location of event-block%" is "SKULL":
loop all entities in radius 2 around location of event-block:
loop-entity is set
loop-entity is not arrow
{Chosen_wolf::*} does not contain loop-entity
{Chosen_mad::*} does not contain loop-entity
{Chosen_fan::*} does not contain loop-entity
damage loop-entity by 50 with damage source {_TNTdmg}
send "{@prefix} &c地雷が発動しました。"
set block at location of event-block to air
stop loop
else:
stop loop
with type "ENTITY_EXPLOSION"が間違っているのかと思って https://github.com/akon1248/SkRage/blob/2.2/src/main/java/com/akon/skrage/skript/syntaxes/expressions/ExprDamageSources.java ここも覗いてみて、typeをLIGHTNINGにして on damage内でif damage source is 1:を 試したりもしましたが結局attackのままでした。
GitHub
SkRage/src/main/java/com/akon/skrage/skript/syntaxes/expressions/Ex...
Skript Addon. Contribute to akon1248/SkRage development by creating an account on GitHub.
Solution:
typeはdamage causeに影響は与えずに死亡メッセージが変わるだけ でそこに入れるのは翻訳キー 場合によっては独自のものにしてそれに応じて死亡メッセージを変えることもできる 爆発にしたいならこれを使えば爆発判定になります ```ExprDamageSourceExplosion:...
Jump to solution
5 Replies
gladiolus8789
gladiolus8789OP10mo ago
skRage以外の方法でも構わないので、damage %entity% や kill %entity% における死因を変える方法を教えてほしいです。 もしくは、skRageで与えたダメージのdamageSourceを取得する方法を教えてほしいです。 (skRageのページも見ましたが良く分からなかったので) 環境: PR 1.12.2 Skript 2.5.3 Skellett v1.9.11-pr skRage v2.5.0
gladiolus8789
gladiolus8789OP10mo ago
send "%damage cause%" send "%custom damage source%" の結果です
Solution
akon
akon10mo ago
typeはdamage causeに影響は与えずに死亡メッセージが変わるだけ でそこに入れるのは翻訳キー 場合によっては独自のものにしてそれに応じて死亡メッセージを変えることもできる 爆発にしたいならこれを使えば爆発判定になります
ExprDamageSourceExplosion:
ID: ExprDamageSourceExplosion
Description:
爆発のダメージかどうか
Return type: Boolean
Changers:
set
Patterns:
%damagesource%'s damage[ ]source explosion
damage[ ]source explosion of %damagesource%
ExprDamageSourceExplosion:
ID: ExprDamageSourceExplosion
Description:
爆発のダメージかどうか
Return type: Boolean
Changers:
set
Patterns:
%damagesource%'s damage[ ]source explosion
damage[ ]source explosion of %damagesource%
gladiolus8789
gladiolus8789OP10mo ago
そういうことか! 完全に勘違いしてました ありがとうございます!!
Want results from more Discord servers?
Add your server