Skriptでの武器の詳細について

サーバー運用される方はこちらで情報交換されてはいかがでしょうか?
フォーラムルール
質問関連フォーラムで質問する時は、必ず次のトピックを一読/厳守お願い致します。
viewtopic.php?f=5&t=999
  • (PostNo.307119)

Skriptでの武器の詳細について

投稿記事by RSwww. » 2017年8月29日(火) 19:50

Minecraft Plugin Skript にて 武器を作成しているのですが
on rightclick holding tnt:
name of held item contains "Explosion"
if level of player is more than 29:
set {_cooldown} to difference between {LightningShot.%player%.lastused} and now
if {_cooldown} is less than 20 seconds:
play "entity_ghast_shoot" to player at volume 10
create a circle effect at player with id "ExplosionFailed" with particles SMOKE NORMAL with radius 1
message "<pink>%difference between 20 seconds and {_cooldown}% <gray>後に使用可能"
wait 20 tick
stop effect "ExplosionFailed"
stop
play "entity_generic_explode" to player at volume 10
reduce level progress of player by 30
create a safe explosion of force 5 at player
wait a tick
create a safe explosion of force 5 at player
wait a tick
create a safe explosion of force 5 at player
else:
play "entity_ghast_shoot" to player at volume 10
create a circle effect at player with id "Failed" with particles SMOKE NORMAL with radius 1
message "<pink>このスキルにはMPが30以上必要です"
wait 20 tick
stop effect "Failed"

このように自分を中心とする爆発する武器を作ろうとしているんです
しかし爆発をするときに自分もダメージとノックバックが入ってしまうんですが
それを自分だけなくすということはできるのでしょうか? わかる方がいたら訂正お願いします
RSwww.
ID:4d8be35c
 

  • (PostNo.307121)

Re: Skriptでの武器の詳細について

投稿記事by RSwww. » 2017年8月29日(火) 19:55

コード: 全て選択
on rightclick holding tnt:
   name of held item contains "Explosion"
   if level of player is more than 29:
      set {_cooldown} to difference between {LightningShot.%player%.lastused} and now
      if {_cooldown} is less than 20 seconds:
         play "entity_ghast_shoot" to player at volume 10
         create a circle effect at player with id "ExplosionFailed" with particles SMOKE NORMAL with radius 1
         message "<pink>%difference between 20 seconds and {_cooldown}% <gray>後に使用可能"
         wait 20 tick
         stop effect "ExplosionFailed"
         stop
         play "entity_generic_explode" to player at volume 10
      reduce level progress of player by 30
      create a safe explosion of force 5 at player
      wait a tick
      create a safe explosion of force 5 at player
      wait a tick
      create a safe explosion of force 5 at player
   else:
      play "entity_ghast_shoot" to player at volume 10
      create a circle effect at player with id "Failed" with particles SMOKE NORMAL with radius 1
      message "<pink>このスキルにはMPが30以上必要です"
      wait 20 tick
      stop effect "Failed"


上記のものです codeにするのを忘れていたのでcodeにします
RSwww.
ID:4d8be35c
水から上がったとこ
 
記事: 1
登録日時: 2017年8月29日(火) 19:52

  • (PostNo.307128)

Re: Skriptでの武器の詳細について

投稿記事by mcgo » 2017年8月29日(火) 23:17

コード: 全て選択
on rightclick holding tnt:
   name of held item contains "Explosion"
   if level of player is more than 29:
      set {_cooldown} to difference between {LightningShot.%player%.lastused} and now
      if {_cooldown} is less than 20 seconds:
         play "entity_ghast_shoot" to player at volume 10
         create a circle effect at player with id "ExplosionFailed" with particles SMOKE NORMAL with radius 1
         message "<pink>%difference between 20 seconds and {_cooldown}% <gray>後に使用可能"
         wait 20 tick
         stop effect "ExplosionFailed"
         stop
         play "entity_generic_explode" to player at volume 10
      set {tnt-damage-cancel%player%} to "true"
      reduce level progress of player by 30
      create a safe explosion of force 5 at player
      wait a tick
      create a safe explosion of force 5 at player
      wait a tick
      create a safe explosion of force 5 at player
      clear {tnt-damage-cancel%player%}
   else:
      play "entity_ghast_shoot" to player at volume 10
      create a circle effect at player with id "Failed" with particles SMOKE NORMAL with radius 1
      message "<pink>このスキルにはMPが30以上必要です"
      wait 20 tick
      stop effect "Failed"

on damage:
   {tnt-damage-cancel%victim%} is "true"
   cancel event

とりあえず要望通りに動作するように簡単にコードを付け足してみました。
爆発の前にイベントプレイヤーの{tnt-damage-cancel%player%}という変数にtrueを入れて
ダメージ判定時に{tnt-damage-cancel%player%}という変数がtrueならダメージがキャンセルされ
爆発の処理が終わると変数をクリアするというものです。
これで爆発を起こしたプレイヤーだけがダメージを受けないということになります。
1人で検証のため、本当に自分だけがダメージを受けないのかはご自身で確かめてください。
何かあれば言ってください。
サーバー関係の分からないことは英語で検索したら案外出ててくるで!
だってMinecraftって海外生まれやで!
最近はSkriptを使って色々自作してサーバー作ってます。
もしよければSkript作成してもいいゾ(激ムズは拒否するかも・・・)
詳しくはPMで!
【Skript自作コード公開中】
アバター
mcgo
ID:da59d11e
石炭掘り
 
記事: 227
登録日時: 2016年11月04日(金) 00:05


Return to 質問:マルチサーバー運用

x