SkriptでワールドごとのDeathMessageの作成を教えていただきたいです

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

SkriptでワールドごとのDeathMessageの作成を教えていただきたいです

投稿記事by 浮浪者のおっさん » 2017年1月29日(日) 14:02

SkriptでワールドごとのDeathMessageを作成しているのですが
コード: 全て選択
on death:
   if player is in "ワールド名":
      set death message to "メッセージ"
   if player is in "ワールド2"
      set death message to "メッセージ2"
   else if:
      set death message to " "#表示させないので空白

このようなコードでやっています。ですがこれですと設定されているメッセージしか流れません。
そのワールドごとの、誰かにkillされたや奈落に落ちたなどのメッセージを表示させたいです。
さらに設定されたワールドだけメッセージが表示されるようにしたいと考えております。
上記の2つをどのようにすればいいのかを教えていただきたいです。
浮浪者のおっさん
ID:e007b1d1
木を殴ってる
 
記事: 35
登録日時: 2017年1月14日(土) 13:39

  • (PostNo.294508)

Re: SkriptでワールドごとのDeathMessageの作成を教えていただきたいです

投稿記事by mcgo » 2017年1月29日(日) 14:19

damage causeを使ってダメージの種類ごとにやってみましょう。
コード: 全て選択
on death:
  loop all players:
    if loop-player is in "ワールド名":
      if damage caused by void:
        send "%loop-victim%は奈落に落ちました" to loop-player

その場で書いたコードなので書き方ミスがあると思いますがご了承ください。
もしかしたらif damage cause is voidかも知れないです。
サーバー関係の分からないことは英語で検索したら案外出ててくるで!
だってMinecraftって海外生まれやで!
最近はSkriptを使って色々自作してサーバー作ってます。
もしよければSkript作成してもいいゾ(激ムズは拒否するかも・・・)
詳しくはPMで!
【Skript自作コード公開中】
アバター
mcgo
ID:ea154448
石炭掘り
 
記事: 202
登録日時: 2016年11月04日(金) 00:05

  • (PostNo.294586)

Re: SkriptでワールドごとのDeathMessageの作成を教えていただきたいです

投稿記事by Dotoo » 2017年1月30日(月) 03:14

コード: 全て選択
on death of player:
   set death message to ""
   if player is in "world":
      loop all players in "world":
         if attacker is set:
            send "%victim%は%attacker%に倒されました(world)" to loop-player
         else if y coordinate of location of victim <= 0:
            send "%victim%は奈落に落ちました(world)" to loop-player
         else:
            send "%victim%は死にました(world)" to loop-player
   if victim is in "world":
      loop all players in "world_nether":
         if attacker is set:
            send "%victim%は%attacker%に倒されました(world)" to loop-player
         else if y coordinate of location of victim <= 0:
            send "%victim%は奈落に落ちました(world)" to loop-player
         else:
            send "%victim%は死にました(world)" to loop-player


そのワールドごとの、誰かにkillされたや奈落に落ちたなど


死亡した時のメッセージはこれだけの種類があるので、「など」の部分をリスティングしておきましたのでご自分で好きなチェックを入れて下さい。

コード: 全て選択
   if attacker is a player:
   if attacker is a zombie:
   if attacker is a spider:
   if attacker is a cave spider:
   if attacker is a skeleton:
   if attacker is a witch:
   if attacker is a wither:
   if attacker is a slime:
   if attacker is a blaze:
   if attacker is a ghast:
   if attacker is a wolf:
   if attacker is a ender dragon:
   if attacker is a magma cube:
   if attacker is a iron golem:
   if attacker is a zombie pigman:
   if attacker is a enderman:
   if attacker is a snow golem:
   if attacker is a wither skeleton:
   if attacker is a silverfish:
   if attacker is a creeper:
   if damage was caused by void:#voidチェックが出来ない場合は"if y coordinate of location of victim <= 0:"等で代用
   if damage was caused by lava:
   if damage was caused by fall:
   if attacker is a cactus:
   if damage was caused by fire, burning or melting:
   if damage was caused by drowning:
   if damage was caused by potion:
   if damage was caused by lightning:
   if damage was caused by block explosion:
   if damage was caused by entity explosion:
   if damage was caused by starvation:
   if damage was caused by unknown:
   if damage was caused by suicide:
   if damage was caused by projectile:
アバター
Dotoo
ID:d4078ac9
金掘り
 
記事: 406
登録日時: 2012年11月21日(水) 15:20

  • (PostNo.295163)

Re: SkriptでワールドごとのDeathMessageの作成を教えていただきたいです

投稿記事by 浮浪者のおっさん » 2017年2月06日(月) 18:52

返信ありがとうございます、参考しにして少し作成してみたのですが
特定のワールドで死亡してもメッセージが全ワールドに表示されてしまう、そもそも死亡メッセージが変わっていない。という問題が発生しました。コードを載せて置くので間違いがあれば教えていただきたいです。

コード: 全て選択
on death:
   if player is in "PVPLobby":
      loop all players in "PVPLobby":
      if attacker is set:
         send "%victim%は%attacker%に倒されました" to loop-player
      else if y coordinate of location of victim <= 0:
         send "%victim%は奈落に落ちました" to loop-player
      else:
         send "%victim%は死にました" to loop-player
   if player is in "MainLobby"
   set death message to "死亡"
   else if:
      set death message to ""


エラーメッセージ
コード: 全て選択
>sk reload all
[18:47:37 INFO]: [Skript] Reloading the config and all scripts...
[18:47:37 INFO]: Loaded a total of 11504 english aliases
[18:47:37 WARN]: There are no aliases defined for the following ids: 165, 166, 167, 168, 169, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 409, 410, 411, 412, 413, 414, 415, 416, 423, 424, 425, 427, 428, 429, 430, 431
[18:47:37 WARN]: Empty configuration section! You might want to indent one or more of the subsequent lines to make them belong to this section or remove the colon at the end of the line if you don't want this line to start a section. (DeathMessage.sk, line 3: loop all players in "PVPLobby":')
[18:47:37 INFO]: All scripts loaded without errors.
浮浪者のおっさん
ID:e007b1d1
木を殴ってる
 
記事: 35
登録日時: 2017年1月14日(土) 13:39

  • (PostNo.295167)

Re: SkriptでワールドごとのDeathMessageの作成を教えていただきたいです

投稿記事by Dotoo » 2017年2月06日(月) 19:02

4行目~9行目のインデントが変です。タブ(ないしはスペースをつかってインデントしているならスペース)を4~9行目に加えてインデントを揃えて下さい。
10行目、"if player is in "MainLobby"の後に":"がありません。ifで始めた行は必ず":"で閉じる必要があります。
12行目は以前解説した通り、「上のifやelse ifに当てはまらない全ての場合」としたい場合はelse:と書きます。else if:で止まる表現は存在しません。

http://pastebin.com/caQ1uHc1

これで動きます。ワールド名は適当な物に移し替えてください。
アバター
Dotoo
ID:d4078ac9
金掘り
 
記事: 406
登録日時: 2012年11月21日(水) 15:20


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

x