[Skript]特定のMOBの生死を反別する方法を探してます。

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

[Skript]特定のMOBの生死を反別する方法を探してます。

投稿記事by りくとん2002 » 2017年9月07日(木) 16:44

特定の固有のMOBの生死を反別する方法を探してます。
コード: 全て選択
loop all witches:
  loop-witch has lead
  wait 1 tick

これで何とか判別できないかなとがんばったんですが、無理だったので質問させていただきました。
討伐イベントみたいなのを作っていて、MOBが倒されたらイベントクリアみたいにしたいんです。
具体的には、特定のMOBが死ぬと次の処理に移行するようなものを求めております。
判別方法は出来れば名前がいいですが他の方法でも検知さえできれば構いません!

一応自分なりに作ってみたcode張っておきます
もし軽量化等できるならついでに教えていただけるとありがたいです。
コード: 全て選択
command /eventst avizon:
   permission: eventst.avizon
   trigger:
      execute console command "title @a times 20 300 20"
      execute console command "title @a title §b§l幻§e§l薬§c§l士§4§l《アビジョン》"
      execute console command "title @a subtitle '§e§lEvent Reception Open !'"
      set {event.avizon} to 1
      wait 1 second
      set {event.avizon} to 0
      execute console command "title @a times 20 60 20"
      execute console command "title @a title §b§l幻§e§l薬§c§l士§4§l《アビジョン》"
      execute console command "title @a subtitle '§e§lEvent Reception Close !'"
      broadcast " &d&lSOM &7&l≫ &6&lEvent &7&l≫ &a&lまもなく&6&lイベント&a&lが&9&l開始&a&lされます!"
      wait 1 second
      execute console command "title @a times 20 60 20"
      execute console command "title @a title §b§l幻§e§l薬§c§l士§4§l《アビジョン》"
      execute console command "title @a subtitle '§e§lEvent Start !!!'"
      execute console command "summon Witch 120 87 1957 {CustomName:§b§l幻§e§l薬§c§l士§4§l《アビジョン》,PersistenceRequired:1b,CustomNameVisible:1b,HealF:500000.00f,Attributes:[{Name:generic.maxHealth,Base:500000.00d},{Name:generic.movementSpeed,Base:0d},{Name:generic.knockbackResistance,Base:1.00d}],Equipment:[{id:minecraft:lead,Damage:0s,Count:1b},{},{},{},{}],DropChances:[0f,0f,0f,0f,0f]}"
      set {event.avizon} to 0
      loop all witches:
         loop-witch has lead
         broadcast " &d&lSOM &7&l≫ &6&lEvent &7&l≫ &b&l幻&e&l薬&c&l士&4&l《アビジョン》&a&lが&b&l幻&5&l悪&2&l《プーペ》&a&lを&c&l召喚&a&lした!"
         execute console command "summon Zombie 121 86 1958 {CustomName:§b§l幻§5§l悪§2§l《ゾンビ》,PersistenceRequired:1b,CustomNameVisible:1b,HealF:3000.00f,Attributes:[{Name:generic.maxHealth,Base:3000.00d},{Name:generic.movementSpeed,Base:0.5d},{Name:generic.attackDamage,Base:3000.00d},{Name:generic.knockbackResistance,Base:1.00d}],Equipment:[{id:minecraft:stick,Damage:0s,Count:1b,tag:{ench:[{id:19s,lvl:5s}]}},{},{},{},{}],DropChances:[0f,0f,0f,0f,0f]}"
         execute console command "summon Zombie 120 86 1958 {CustomName:§b§l幻§5§l悪§2§l《ゾンビ》,PersistenceRequired:1b,CustomNameVisible:1b,HealF:3000.00f,Attributes:[{Name:generic.maxHealth,Base:3000.00d},{Name:generic.movementSpeed,Base:0.5d},{Name:generic.attackDamage,Base:3000.00d},{Name:generic.knockbackResistance,Base:1.00d}],Equipment:[{id:minecraft:stick,Damage:0s,Count:1b,tag:{ench:[{id:19s,lvl:5s}]}},{},{},{},{}],DropChances:[0f,0f,0f,0f,0f]}"
         execute console command "summon Zombie 119 86 1958 {CustomName:§b§l幻§5§l悪§2§l《ゾンビ》,PersistenceRequired:1b,CustomNameVisible:1b,HealF:3000.00f,Attributes:[{Name:generic.maxHealth,Base:3000.00d},{Name:generic.movementSpeed,Base:0.5d},{Name:generic.attackDamage,Base:3000.00d},{Name:generic.knockbackResistance,Base:1.00d}],Equipment:[{id:minecraft:stick,Damage:0s,Count:1b,tag:{ench:[{id:19s,lvl:5s}]}},{},{},{},{}],DropChances:[0f,0f,0f,0f,0f]}"
         wait 15 second
      execute console command "title @a times 20 200 20"
      execute console command "title @a title §b§l幻§e§l薬§c§l士§4§l《アビジョン》"
      execute console command "title @a subtitle '§e§lEvent Complete !!!'"
      execute console command "give @a[score_event_min=1] minecraft:emerald 3 0 {display:{Name:'§e§l回復結晶EX',Lore:['§c§lHP§a§lを§6§l全回復§a§lさせる']},ench:[{id:35s,lvl:10s}],HideFlags:1}"
      wait 1 second
      execute console command "scoreboard players reset @a[score_event_min=1] event"
url=https://minecraft.jp/servers/SOMRPG.f5.si]画像[/url]
りくとん2002
ID:f2f4ac0c
水から上がったとこ
 
記事: 9
登録日時: 2016年1月30日(土) 16:08

  • (PostNo.307442)

Re: [Skript]特定のMOBの生死を反別する方法を探してます。

投稿記事by sympholy » 2017年9月07日(木) 18:11

モブが死んだ時に,モブの名前を確認することで可能です
コード: 全て選択
on death of witches:
   if name of witches is "モブの名前":

主にskript関係のページに出没
書いているコードがベストだとは限りません...
「もっといいコードがあるよ」などありましたら教えてください
開発中のFlan'sPvP [ Hide鯖 ] 海戦PVP [Warships鯖]でプラグイン開発を行っています
アバター
sympholy
ID:2c3d7ec3
石掘り
 
記事: 105
登録日時: 2013年10月27日(日) 11:50

  • (PostNo.307443)

Re: [Skript]特定のMOBの生死を反別する方法を探してます。

投稿記事by mcgo » 2017年9月07日(木) 18:18

りくとん2002さんが自分なりに作ったコードですが、あまり省略出来るところは少ないですが多少出来たり、見た目をスッキリさせることが出来ます。
titleコマンドのところをSkriptのコードにします。
コード: 全て選択
send loop-player title "&b&l幻&e&l薬&c&l士&4&l《アビジョン》" with subtitle "&e&lEvent Reception Open!" for 15 seconds

ただしこのコードだとフェードイン・アウトは出来ません。

次にモンスターをコマンドで作るのではなく、MythicMobsというプラグインを使って作るということです。
ご存知かもしれませんが、MythicMobsはファイルにモンスターの色んな情報を書いて、それをスポナーにしたりコマンドで召喚します。
討伐イベントをするのであればイベントモンスターのクオリティは高いほうがいいと思うので、MythicMobsでスキルなどの色んな技を
モンスターが使えるようにしたほうがいいと思います。
MythicMobsでモンスターを召喚するコマンドは下記のようです。
コード: 全て選択
/mm mobs spawn <MOBの名前> <数> <ワールド名,X,Y,Z>




↓↓↓参考までにどうぞ↓↓↓
Skriptのカスタムコマンドについて
カスタムコマンドを使う時にプレイヤーに唱えられたくないコマンドがあると思います。
この場合、パーミッションを付けたり、コマンド名を長くするなどの方法がありますが、パーミッションですと記憶はさだかでないですが
OP権限を持ったプレイヤーなら条件コードを書かない限り使えてしまうということがあります。
またコマンド名を長くしても、タブコンプリートを無効化してないとコマンドがバレてしまいます。
バレても権限がなければ実行することは出来ないですが、気にする人はコマンドの表示もプレイヤーに実行される
危険性を最小限にしたい考えます。(それが僕)
その時に下記のようにすると便利です。
コード: 全て選択
command /test:
   executable by: console
   trigger:
      以下処理

executable by:consoleを入れることでコンソールからのみ実行出来ます。
これを使うことでコンソールを使える人のみ実行が可能になるということです。
説明が非常に長くなってしましすみませんでした。
サーバー関係の分からないことは英語で検索したら案外出ててくるで!
だってMinecraftって海外生まれやで!
最近はSkriptを使って色々自作してサーバー作ってます。
もしよければSkript作成してもいいゾ(激ムズは拒否するかも・・・)
詳しくはPMで!
【Skript自作コード公開中】
アバター
mcgo
ID:b5db9422
石炭掘り
 
記事: 234
登録日時: 2016年11月04日(金) 00:05


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

x