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
gladiolus87895mo 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
gladiolus87895mo ago
send "%damage cause%" send "%custom damage source%" の結果です
Solution
akon
akon5mo 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
gladiolus87895mo ago
そういうことか! 完全に勘違いしてました ありがとうございます!!
Want results from more Discord servers?
Add your server
More Posts
ブロックの向きをプレイヤーの向きによって決める方法私は、今ブロックかくれんぼを作っています。 しかし、**ブロックの向きをプレイヤーの向きによって決める方法**がわからず、困惑しています。 誰か教えてください・「Mobを左クリック」のイベント剣でぶん殴るようなバニラとは違う攻撃方法を作成しており、 ``` on left click: ``` だけだとMobをクリックした場合は動作しないのでMobを左クリックした際に攻撃を行うコードを別にローカル変数の表記非常に初歩的な質問で申し訳ないんですが 変数名の先頭にアンダーバーを付けている場合のみローカル変数になりますよね? 要は ` {_hensuu} -> ローカル変数 {hensuu_%playerこんなエラーが出てskが組めない対処法教えてください。 バージョンは最新です耕して湿った土が乾くのを防ぎたいどのイベントを使えばいいのかわからない! ``` on entity change block: if event-block is wet farmland or soil block: プレイヤーの頭を設置する方法プレイヤーの頭を設置する方法ってありますか?できれば向いている方向も指定できると助かりますパーティクルをプレイヤーを中心とした円状に表示させる方法調べてもでてこない...............エンチャント本のエンチャント名とレベルを個別に取得したいエンチャント本のエンチャント名とレベルを個別にリスト型で取得しようとしたのですがサイト等を探しても見当たらなかったので方法があるなら教えていただきたいです string型に変換しsplitを使用して強トップのみ表示するランキングを作りたい{count.%player'suuid%} という変数に一番数字の入っているプレイヤーのIDと数字をメッセージとして送信したいのですが、どうしたらプレイヤーのIDと数字を同時にメッセージとして送信でアイテム入りリストをsortアイテムが入った`{_items::*}`において `set {_items::*} to sorted {_items::*}` してみたのですが、全く変化がありませんでした sk hub曰くpla