SHARE
TWEET

Untitled

a guest Dec 15th, 2019 63 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. options:
  2.  
  3.     #Config
  4.     #以下の範囲は編集しても大丈夫です。但し自己責任ですので、失敗して動かなくなっても責任は負いません。(復旧方法はお教えします。)
  5.     #----------------------------------------------------------
  6.     infepre: &7[&cInfection&7]&r   #ゲームのメッセージのprefix
  7.     systpre: &7[&6System&7]&r      #コマンド等のメッセージのprefix
  8.     pre: &e[&aserver&e]&r          #その他のメッセージのprefix
  9.     #----------------------------------------------------------
  10.  
  11.     #これより下の範囲は編集しないで下さい。システムに影響します。
  12.  
  13.  
  14.  
  15. #プレイヤー参加/退出処理
  16. on join:
  17.     set the join message to "{@pre} &e%player% がサーバーに接続しました。"
  18.     wait 1 tick
  19.     set slot 0 of player's tool to nether star named "&aゲームに参加する"
  20.  
  21. on quit:
  22.     set the quit message to "{@pre} &e%player% がサーバーから切断しました。"
  23.  
  24.  
  25.  #ゲーム参加処理
  26. on right click with nether star:
  27.     if name of clicked item is "&aゲームに参加する":
  28.         set {_infe.number} to 0
  29.         loop {infe..stages::*}:
  30.             if {infe::stages::%loop-index%::enabled} is true:
  31.                 add 1 to {_infe.number}
  32.         if {_infe.number} is 0:
  33.             send "{@infepre} &c有効化されているステージがないので遊べません。"
  34.             stop
  35.         if {infe.game} is not set:
  36.             send "&9》 &eゲームに参加しました。"
  37.             if {infe::member::*} contains player:
  38.                 stop
  39.             else:
  40.                 add player to {infe::member::*}
  41.                 if size of {infe::member::*} is 3:
  42.                     start()
  43.  
  44.  
  45. #ゲームスタート関数
  46. function start():
  47.     broadcast "{@infepre} &aプレイヤーが集まったためまもなくゲームを開始します..."
  48.     set {_timer} to 30
  49.     while {_timer} is not 0:
  50.         send action bar "&c&lゲーム開始まで &6&l%{_timer}%秒" to all players
  51.         wait 1 second
  52.         remove 1 from {_timer}
  53.     set {_stage} to nextStage()
  54.     broadcast "&e〇●〇●〇●〇●〇●〇●〇●〇●〇●〇●〇●〇●〇●〇●〇●〇●〇●〇●"
  55.     broadcast ""
  56.     broadcast "&6&l      抽選の結果ステージが決定しました!"
  57.     broadcast ""
  58.     broadcast "             &6Stage&r         %{_stage}%"
  59.     broadcast ""
  60.     broadcast "&e〇●〇●〇●〇●〇●〇●〇●〇●〇●〇●〇●〇●〇●〇●〇●〇●〇●〇●"
  61.     wait 7 second
  62.     teleport {infe::member::*} to {infe::stages::%{_stage}%}
  63.  
  64.  
  65. #ステージ抽選関数
  66. function nextStage() :: string:
  67.     while {_infe.stage} is not set:
  68.         set {_infe.string} to random element out of indexes of {infe::stages::*}
  69.         if {infe::stages::%{_infe.string}%::enabled} is true:
  70.             set {_infe.stage} to {_infe.string}
  71.     return {_infe.stage}
  72.  
  73.  
  74. #ステージ登録コマンド
  75. command /infestage [<text>] [<text>]:
  76.     permission: enderK.infection
  77.     aliases: /is
  78.     trigger:
  79.         if arg-1 is set:
  80.             if arg-2 is set:
  81.                 if arg-1 is "add":
  82.                     if {infe::stages::%coloured arg-2%} is set:
  83.                         send "{@systpre} &cそのステージは既に登録されています。"
  84.                     else:
  85.                         set {infe::stages::%coloured arg-2%} to true
  86.                         send "{@systpre} &aステージ&r%coloured arg-2%&aを登録しました!"
  87.                 else if arg-1 is "remove":
  88.                     if {infe::stages::%coloured arg-2%} is set:
  89.                         delete {infe::stages::%coloured arg-2%}
  90.                         send "{@systpre} &aステージ&r%coloured arg-2%&aを削除しました!"
  91.                     else:
  92.                         send "{@systpre} &cそのステージは登録されていません。"
  93.                 else:
  94.                     send "&6----------{@systpre}&6----------"
  95.                     send "&aadd&7           ---     &eステージ登録"
  96.                     send "&aremove&7        ---     &eステージ消去"
  97.                     stop
  98.             else:
  99.                 send "{@systpre} &cステージ名を記述してください。"
  100.         else:
  101.             send "&6----------{@systpre}&6----------"
  102.             send "&aadd&7           ---     &eステージ登録"
  103.             send "&aremove&7        ---     &eステージ消去"
  104.  
  105.  
  106. #ステージ編集コマンド
  107. command /infestageeditor [<text>]:
  108.     permission: enderK.infection
  109.     aliases: /ise
  110.     trigger:
  111.         if arg-1 is set:
  112.             if {infe::stages::%coloured arg-1%} is set:
  113.                 set {infe::mapeditor::%player%} to coloured arg-1
  114.                 delete {infe::tpsetter::%player%}
  115.                 delete {infe::timesetter::%player%}
  116.                 delete {infe::messagesetter::%player%}
  117.                 open chest with 6 rows named "%coloured arg-1% &6編集メニュー"
  118.                 wait 1 tick
  119.                 if {infe::stages::%coloured arg-1%::spawn} is not set:
  120.                     set slot 10 of player's current inventory to glowing compass named "&e&lTP地点設定" with lore "&9現在の設定&8:&c未設定" and "&7このステージが選択された際" and "&7テレポートする場所を一か所設定出来ます。"
  121.                 else:
  122.                     set slot 10 of player's current inventory to glowing compass named "&e&lTP地点設定" with lore "&9現在の設定&8:&a%{infe::stages::%coloured arg-1%::spawn}%" and "&7このステージが選択された際" and "&7テレポートする場所を一か所設定出来ます。"
  123.                 if {infe::stages::%coloured arg-1%::time} is not set:
  124.                     set slot 13 of player's current inventory to glowing clock named "&a&l制限時間設定" with lore "&9現在の設定&8: &c未設定" and "&7このステージの制限時間を設定出来ます。"
  125.                 else:
  126.                     set slot 13 of player's current inventory to glowing clock named "&a&l制限時間設定" with lore "&9現在の設定&8: &a%{infe::stages::%coloured arg-1%::time}%&9秒" and "&7このステージの制限時間を設定出来ます。"
  127.                 if {infe::stages::%coloured arg-1%::message::1} is not set:
  128.                     set slot 16 of player's current inventory to glowing paper named "&d&l表示メッセージ設定" with lore "&9現在の状態&8: &c未設定" and "&7このステージが選択された際" and "&7テレポートしてから表示されるメッセージを設定出来ます。"
  129.                 else:
  130.                     if {infe::stages::%coloured arg-1%::message::1} is "&c未設定":
  131.                         set slot 16 of player's current inventory to glowing paper named "&d&l表示メッセージ設定" with lore "&9現在の状態&8: &c未設定" and "&7このステージが選択された際" and "&7テレポートしてから表示されるメッセージを設定出来ます。"
  132.                     else:
  133.                         set slot 16 of player's current inventory to glowing paper named "&d&l表示メッセージ設定" with lore "&9現在の状態&8: &a設定済み" and "&7このステージが選択された際" and "&7テレポートしてから表示されるメッセージを設定出来ます。"
  134.             else:
  135.                 send "{@systpre} &cそのステージは登録されていません。"
  136.         else:
  137.             send "&6----------{@systpre}&6----------"
  138.             send "&a(ステージ名)&7           ---     &eステージ編集画面を開きます"
  139.  
  140.  
  141. #ステージ編集画面用
  142. on inventory click:
  143.     name of player's current inventory is "%{infe::mapeditor::%player%}% &6編集メニュー"
  144.     if clicked slot is 10:
  145.         close player's inventory
  146.         set {infe.tpsetter.%player%} to true
  147.         send "{@systpre} &aTPする場所を左クリックで壊して下さい。&7(自動修復されます)"
  148.         send "{@systpre} &c床をクリックすると&c&lTP時に地面に埋まるので注意&cしてください。"
  149.     if clicked slot is 13:
  150.         close player's inventory
  151.         set {infe.timesetter.%player%} to true
  152.         send "{@systpre} &a制限時間を&6秒数&aでチャット欄に記述して送信してください。"
  153.         send "{@systpre} &cLunaChat導入済みの場合は&c&l必ず日本語化機能をoffにしてから&cにしてください。"
  154.         send "{@systpre} &7LunaChatの日本語化機能をoffにするには&a/jp off&7と送信してください。"
  155.         send "{@systpre} &aキャンセルするには&dcancel&aとチャットしてください。"
  156.  
  157.  
  158. #ステージTP地点編集
  159. on break:
  160.     if {infe.tpsetter.%player%} is true:
  161.         cancel event
  162.         set {infe::stages::%{infe::mapeditor::%player%}%::spawn} to location of event-block
  163.         send "{@systpre} &aステージ&r%{infe::mapeditor::%player%}%&aのTP地点を&d%location of event-block%&aに設定しました!"
  164.         delete {infe.tpsetter.%player%}
  165.         delete {infe::mapeditor::%player%}
  166.  
  167.  
  168. #ステージ制限時間編集
  169. on chat:
  170.     if {infe.timesetter.%player%} is true:
  171.         cancel event
  172.         if event-message contains "cancel":
  173.             delete {infe.timesetter.%player%}
  174.             send "{@systpre} &a制限時間設定をキャンセルしました。"
  175.         else:
  176.             set {_infe.msg} to event-message parsed as integer
  177.             if {_infe.msg} is not number:
  178.                 send "{@systpre} &c数字で記述してください。やり直してください。"
  179.             else:
  180.                 set {infe::stages::%{infe::mapeditor::%player%}%::time} to {_infe.msg}
  181.                 send "{@systpre} &aステージ&r%{infe::mapeditor::%player%}%&aの制限時間を&d%{_infe.msg}%&a秒に設定しました。"
  182.                 delete {infe.timesetter.%player%}
  183.                 delete {infe::mapeditor::%player%}
  184.  
  185.  
  186. #ステージ表示メッセージ編集
  187. on inventory click:
  188.     name of player's current inventory is "%{infe::mapeditor::%player%}% &6編集メニュー"
  189.     if clicked slot is 16:
  190.         set {_infe.num} to 0
  191.         loop 9 times:
  192.             add 1 to {_infe.num}
  193.             if {infe::stages::%{infe::mapeditor::%player%}%::message%{_infe.num}%} is not set:
  194.                 set {infe::stages::%{infe::mapeditor::%player%}%::message%{_infe.num}%} to "&c未設定"
  195.         close player's inventory
  196.         wait 2 tick
  197.         open chest with 6 rows named "%{infe::mapeditor::%player%}% &6メッセージ編集メニュー"
  198.         wait 1 tick
  199.         set {_infe.num} to 0
  200.         loop 18 times:
  201.             if {_infe.num} > 9:
  202.                 format slot {_infe.num} parsed as number of player with pink stained glass to be unstealable
  203.             else:
  204.                 set slot {_infe.num} parsed as number of player's current inventory to paper named "&eメッセージ&d%{_infe.num} - 8%行&e目" with lore "%{infe::stages::%{infe::mapeditor::%player%}%::message%{_infe.num} - 8%}%"
  205.             add 1 to {_infe.num}
  206.         format slot 18 of player with glowing gold nugget named "&aメッセージプレビュー" with lore "&7ステージ%{infe::stages::%{infe::mapeditor::%player%}%}%" and "&7で表示するメッセージの現在の設定を" and "&7プレビューします。" to close then run [messagepreview(player)]
  207.  
  208.  
  209. on inventory click:
  210.     name of player's current inventory is "%{infe::mapeditor::%player%}% &6メッセージ編集メニュー"
  211.     if clicked slot is 9:
  212.         set {infe::messagesetter::%player%} to 1
  213.         send "{@systpre} &aメッセージ&d1行&a目を設定出来ます。"
  214.         send "{@systpre} &aチャット欄に記述して送信してください。"
  215.     if clicked slot is 10:
  216.         if {infe::stages::%{infe::mapeditor::%player%}%::message1} is "&c未設定":
  217.             wrongmessagenumber(player)
  218.         else:
  219.             set {infe::messagesetter::%player%} to 2
  220.             send "{@systpre} &aメッセージ&d2行&a目を設定出来ます。"
  221.             send "{@systpre} &aチャット欄に記述して送信してください。"
  222.     if clicked slot is 11:
  223.         if {infe::stages::%{infe::mapeditor::%player%}%::message2} is "&c未設定":
  224.             wrongmessagenumber(player)
  225.         else:
  226.             set {infe::messagesetter::%player%} to 3
  227.             send "{@systpre} &aメッセージ&d3行&a目を設定出来ます。"
  228.             send "{@systpre} &aチャット欄に記述して送信してください。"
  229.     if clicked slot is 12:
  230.         if {infe::stages::%{infe::mapeditor::%player%}%::message3} is "&c未設定":
  231.             wrongmessagenumber(player)
  232.         else:
  233.             set {infe::messagesetter::%player%} to 4
  234.             send "{@systpre} &aメッセージ&d4行&a目を設定出来ます。"
  235.             send "{@systpre} &aチャット欄に記述して送信してください。"
  236.     if clicked slot is 13:
  237.         if {infe::stages::%{infe::mapeditor::%player%}%::message4} is "&c未設定":
  238.             wrongmessagenumber(player)
  239.         else:
  240.             set {infe::messagesetter::%player%} to 5
  241.             send "{@systpre} &aメッセージ&d5行&a目を設定出来ます。"
  242.             send "{@systpre} &aチャット欄に記述して送信してください。"
  243.     if clicked slot is 14:
  244.         if {infe::stages::%{infe::mapeditor::%player%}%::message5} is "&c未設定":
  245.             wrongmessagenumber(player)
  246.         else:
  247.             set {infe::messagesetter::%player%} to 6
  248.             send "{@systpre} &aメッセージ&d6行&a目を設定出来ます。"
  249.             send "{@systpre} &aチャット欄に記述して送信してください。"
  250.     if clicked slot is 15:
  251.         if {infe::stages::%{infe::mapeditor::%player%}%::message6} is "&c未設定":
  252.             wrongmessagenumber(player)
  253.         else:
  254.             set {infe::messagesetter::%player%} to 7
  255.             send "{@systpre} &aメッセージ&d7行&a目を設定出来ます。"
  256.             send "{@systpre} &aチャット欄に記述して送信してください。"
  257.     if clicked slot is 16:
  258.         if {infe::stages::%{infe::mapeditor::%player%}%::message7} is "&c未設定":
  259.             wrongmessagenumber(player)
  260.         else:
  261.             set {infe::messagesetter::%player%} to 8
  262.             send "{@systpre} &aメッセージ&d8行&a目を設定出来ます。"
  263.             send "{@systpre} &aチャット欄に記述して送信してください。"
  264.     if clicked slot is 17:
  265.         if {infe::stages::%{infe::mapeditor::%player%}%::message8} is "&c未設定":
  266.             wrongmessagenumber(player)
  267.         else:
  268.             set {infe::messagesetter::%player%} to 9
  269.             send "{@systpre} &aメッセージ&d9行&a目を設定出来ます。"
  270.             send "{@systpre} &aチャット欄に記述して送信してください。"
  271.  
  272.  
  273. on chat:
  274.     if {infe::messagesetter::%player%} is set:
  275.         set {infe::stages::%{infe::mapeditor::%player%}%::message%{infe::messagesetter::%player%}%} to coloured event-message
  276.         send "{@systpre} &7ステージ&r%{infe::mapeditor::%player%}%&7の表示メッセージ&d%{infe::messagesetter::%player%}%行&7目を設定しました。"
  277.         delete {infe::messagesetter::%player%}
  278.         delete {infe::mapeditor::%player%}
  279.  
  280.  
  281. #ステージ編集メッセージプレビュー関数
  282. function messagepreview(infe.p: player):
  283.     close {_infe.p}'s inventory
  284.     set {_infe.num} to 0
  285.     loop 9 times:
  286.         if {infe::stages::%{infe::mapeditor::%{_infe.p}%}%::message%{_infe.num}%} is not "&c未設定":
  287.             send "%{infe::stages::%{infe::mapeditor::%{_infe.p}%}%::message%{_infe.num}%}%" to {_infe.p}
  288.     loop 3 times:
  289.         send "" to {_infe.p}
  290.     send "{@systpre} &a以上が&r%{infe::mapeditor::%{_infe.p}%}%&aのメッセージです。" to {_infe.p}
  291.  
  292.  
  293. #ステージ表示メッセージ編集-設定順番ミス警告関数
  294. function wrongmessagenumber(infe.p: player):
  295.     format slot 26 of {_infe.p} with red dye named "&4一つ前の行数のメッセージが未設定です。" with lore "&71行目から順番に設定していく必要があります。" to be unstealable
  296.     wait 5 second
  297.     format slot 26 of {_infe.p} with air to be unstealable
  298.  
  299.  
  300. #ステージ有効化/無効化コマンド
  301. command /stagemanager:
  302.     permission: enderK.infection
  303.     aliases: /sm
  304.     trigger:
  305.         open chest with 6 rows named "&6ステージマネージャー"to player
  306.         wait 1 tick
  307.         set {_infe.num} to 0
  308.         loop {infe::stages::*}:
  309.             if {infe::stages::%loop-index%::spawn} is set:
  310.                 if {infe::stages::%loop-index%::time} is set:
  311.                     if {infe::stages::%loop-index%::message1} is not "&c未設定":
  312.                         if {infe::stages::%loop-index%::enabled} is true:
  313.                             set slot {_infe.num} of player's current inventory to emerald block named "%loop-index%"
  314.                         else:
  315.                             set slot {_infe.num} of player's current inventory to redstone block named "%loop-index%"
  316.                     else:                        
  317.                         set slot {_infe.num} of player's current inventory to redstone block named "%loop-index%"
  318.                 else:
  319.                     set slot {_infe.num} of player's current inventory to redstone block named "%loop-index%"
  320.             else:
  321.                 set slot {_infe.num} of player's current inventory to redstone block named "%loop-index%"
  322.  
  323.  
  324. #ステージマネージャー
  325. on inventory click:
  326.     name of player's current inventory is "&6ステージマネージャー"
  327.     set {_infe.string} to name of clicked item
  328.     if clicked item is emerald block:
  329.         delete {infe::stages::%{_infe.string}%::enabled}
  330.         close player's inventory
  331.         send "{@systpre} &aステージ&r%{_infe.string}%&aを&c無効化&aしました。"
  332.     if clicked item is redstone block:
  333.         if {infe::stages::%{_infe.string}%::spawn} is set:
  334.             if {infe::stages::%{_infe.string}%::time} is set:
  335.                 if {infe::stages::%{_infe.string}%::message1} is not "&c未設定":
  336.                     set {infe::stages::%{_infe.string}%::enabled} to true
  337.                     close player's inventory
  338.                     send "{@systpre} &aステージ&r%{_infe.string}%&aを&e有効化&aしました。"
  339.                 else:
  340.                     close player's inventory
  341.                     send "{@systpre} &c最低でも1行目のメッセージを設定してください。"
  342.             else:
  343.                 close player's inventory
  344.                 send "{@systpre} &cステージの制限時間を設定してください。"
  345.         else:
  346.             close player's inventory
  347.             send "{@systpre} &cステージのTP地点を設定してください。"
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top