Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- options:
- #Config
- #以下の範囲は編集しても大丈夫です。但し自己責任ですので、失敗して動かなくなっても責任は負いません。(復旧方法はお教えします。)
- #----------------------------------------------------------
- infepre: &7[&cInfection&7]&r #ゲームのメッセージのprefix
- systpre: &7[&6System&7]&r #コマンド等のメッセージのprefix
- pre: &e[&aserver&e]&r #その他のメッセージのprefix
- #----------------------------------------------------------
- #これより下の範囲は編集しないで下さい。システムに影響します。
- #プレイヤー参加/退出処理
- on join:
- set the join message to "{@pre} &e%player% がサーバーに接続しました。"
- wait 1 tick
- set slot 0 of player's tool to nether star named "&aゲームに参加する"
- on quit:
- set the quit message to "{@pre} &e%player% がサーバーから切断しました。"
- #ゲーム参加処理
- on right click with nether star:
- if name of clicked item is "&aゲームに参加する":
- set {_infe.number} to 0
- loop {infe..stages::*}:
- if {infe::stages::%loop-index%::enabled} is true:
- add 1 to {_infe.number}
- if {_infe.number} is 0:
- send "{@infepre} &c有効化されているステージがないので遊べません。"
- stop
- if {infe.game} is not set:
- send "&9》 &eゲームに参加しました。"
- if {infe::member::*} contains player:
- stop
- else:
- add player to {infe::member::*}
- if size of {infe::member::*} is 3:
- start()
- #ゲームスタート関数
- function start():
- broadcast "{@infepre} &aプレイヤーが集まったためまもなくゲームを開始します..."
- set {_timer} to 30
- while {_timer} is not 0:
- send action bar "&c&lゲーム開始まで &6&l%{_timer}%秒" to all players
- wait 1 second
- remove 1 from {_timer}
- set {_stage} to nextStage()
- broadcast "&e〇●〇●〇●〇●〇●〇●〇●〇●〇●〇●〇●〇●〇●〇●〇●〇●〇●〇●"
- broadcast ""
- broadcast "&6&l 抽選の結果ステージが決定しました!"
- broadcast ""
- broadcast " &6Stage&r %{_stage}%"
- broadcast ""
- broadcast "&e〇●〇●〇●〇●〇●〇●〇●〇●〇●〇●〇●〇●〇●〇●〇●〇●〇●〇●"
- wait 7 second
- teleport {infe::member::*} to {infe::stages::%{_stage}%}
- #ステージ抽選関数
- function nextStage() :: string:
- while {_infe.stage} is not set:
- set {_infe.string} to random element out of indexes of {infe::stages::*}
- if {infe::stages::%{_infe.string}%::enabled} is true:
- set {_infe.stage} to {_infe.string}
- return {_infe.stage}
- #ステージ登録コマンド
- command /infestage [<text>] [<text>]:
- permission: enderK.infection
- aliases: /is
- trigger:
- if arg-1 is set:
- if arg-2 is set:
- if arg-1 is "add":
- if {infe::stages::%coloured arg-2%} is set:
- send "{@systpre} &cそのステージは既に登録されています。"
- else:
- set {infe::stages::%coloured arg-2%} to true
- send "{@systpre} &aステージ&r%coloured arg-2%&aを登録しました!"
- else if arg-1 is "remove":
- if {infe::stages::%coloured arg-2%} is set:
- delete {infe::stages::%coloured arg-2%}
- send "{@systpre} &aステージ&r%coloured arg-2%&aを削除しました!"
- else:
- send "{@systpre} &cそのステージは登録されていません。"
- else:
- send "&6----------{@systpre}&6----------"
- send "&aadd&7 --- &eステージ登録"
- send "&aremove&7 --- &eステージ消去"
- stop
- else:
- send "{@systpre} &cステージ名を記述してください。"
- else:
- send "&6----------{@systpre}&6----------"
- send "&aadd&7 --- &eステージ登録"
- send "&aremove&7 --- &eステージ消去"
- #ステージ編集コマンド
- command /infestageeditor [<text>]:
- permission: enderK.infection
- aliases: /ise
- trigger:
- if arg-1 is set:
- if {infe::stages::%coloured arg-1%} is set:
- set {infe::mapeditor::%player%} to coloured arg-1
- delete {infe::tpsetter::%player%}
- delete {infe::timesetter::%player%}
- delete {infe::messagesetter::%player%}
- open chest with 6 rows named "%coloured arg-1% &6編集メニュー"
- wait 1 tick
- if {infe::stages::%coloured arg-1%::spawn} is not set:
- set slot 10 of player's current inventory to glowing compass named "&e&lTP地点設定" with lore "&9現在の設定&8:&c未設定" and "&7このステージが選択された際" and "&7テレポートする場所を一か所設定出来ます。"
- else:
- 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テレポートする場所を一か所設定出来ます。"
- if {infe::stages::%coloured arg-1%::time} is not set:
- set slot 13 of player's current inventory to glowing clock named "&a&l制限時間設定" with lore "&9現在の設定&8: &c未設定" and "&7このステージの制限時間を設定出来ます。"
- else:
- 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このステージの制限時間を設定出来ます。"
- if {infe::stages::%coloured arg-1%::message::1} is not set:
- set slot 16 of player's current inventory to glowing paper named "&d&l表示メッセージ設定" with lore "&9現在の状態&8: &c未設定" and "&7このステージが選択された際" and "&7テレポートしてから表示されるメッセージを設定出来ます。"
- else:
- if {infe::stages::%coloured arg-1%::message::1} is "&c未設定":
- set slot 16 of player's current inventory to glowing paper named "&d&l表示メッセージ設定" with lore "&9現在の状態&8: &c未設定" and "&7このステージが選択された際" and "&7テレポートしてから表示されるメッセージを設定出来ます。"
- else:
- set slot 16 of player's current inventory to glowing paper named "&d&l表示メッセージ設定" with lore "&9現在の状態&8: &a設定済み" and "&7このステージが選択された際" and "&7テレポートしてから表示されるメッセージを設定出来ます。"
- else:
- send "{@systpre} &cそのステージは登録されていません。"
- else:
- send "&6----------{@systpre}&6----------"
- send "&a(ステージ名)&7 --- &eステージ編集画面を開きます"
- #ステージ編集画面用
- on inventory click:
- name of player's current inventory is "%{infe::mapeditor::%player%}% &6編集メニュー"
- if clicked slot is 10:
- close player's inventory
- set {infe.tpsetter.%player%} to true
- send "{@systpre} &aTPする場所を左クリックで壊して下さい。&7(自動修復されます)"
- send "{@systpre} &c床をクリックすると&c&lTP時に地面に埋まるので注意&cしてください。"
- if clicked slot is 13:
- close player's inventory
- set {infe.timesetter.%player%} to true
- send "{@systpre} &a制限時間を&6秒数&aでチャット欄に記述して送信してください。"
- send "{@systpre} &cLunaChat導入済みの場合は&c&l必ず日本語化機能をoffにしてから&cにしてください。"
- send "{@systpre} &7LunaChatの日本語化機能をoffにするには&a/jp off&7と送信してください。"
- send "{@systpre} &aキャンセルするには&dcancel&aとチャットしてください。"
- #ステージTP地点編集
- on break:
- if {infe.tpsetter.%player%} is true:
- cancel event
- set {infe::stages::%{infe::mapeditor::%player%}%::spawn} to location of event-block
- send "{@systpre} &aステージ&r%{infe::mapeditor::%player%}%&aのTP地点を&d%location of event-block%&aに設定しました!"
- delete {infe.tpsetter.%player%}
- delete {infe::mapeditor::%player%}
- #ステージ制限時間編集
- on chat:
- if {infe.timesetter.%player%} is true:
- cancel event
- if event-message contains "cancel":
- delete {infe.timesetter.%player%}
- send "{@systpre} &a制限時間設定をキャンセルしました。"
- else:
- set {_infe.msg} to event-message parsed as integer
- if {_infe.msg} is not number:
- send "{@systpre} &c数字で記述してください。やり直してください。"
- else:
- set {infe::stages::%{infe::mapeditor::%player%}%::time} to {_infe.msg}
- send "{@systpre} &aステージ&r%{infe::mapeditor::%player%}%&aの制限時間を&d%{_infe.msg}%&a秒に設定しました。"
- delete {infe.timesetter.%player%}
- delete {infe::mapeditor::%player%}
- #ステージ表示メッセージ編集
- on inventory click:
- name of player's current inventory is "%{infe::mapeditor::%player%}% &6編集メニュー"
- if clicked slot is 16:
- set {_infe.num} to 0
- loop 9 times:
- add 1 to {_infe.num}
- if {infe::stages::%{infe::mapeditor::%player%}%::message%{_infe.num}%} is not set:
- set {infe::stages::%{infe::mapeditor::%player%}%::message%{_infe.num}%} to "&c未設定"
- close player's inventory
- wait 2 tick
- open chest with 6 rows named "%{infe::mapeditor::%player%}% &6メッセージ編集メニュー"
- wait 1 tick
- set {_infe.num} to 0
- loop 18 times:
- if {_infe.num} > 9:
- format slot {_infe.num} parsed as number of player with pink stained glass to be unstealable
- else:
- 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%}%"
- add 1 to {_infe.num}
- 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)]
- on inventory click:
- name of player's current inventory is "%{infe::mapeditor::%player%}% &6メッセージ編集メニュー"
- if clicked slot is 9:
- set {infe::messagesetter::%player%} to 1
- send "{@systpre} &aメッセージ&d1行&a目を設定出来ます。"
- send "{@systpre} &aチャット欄に記述して送信してください。"
- if clicked slot is 10:
- if {infe::stages::%{infe::mapeditor::%player%}%::message1} is "&c未設定":
- wrongmessagenumber(player)
- else:
- set {infe::messagesetter::%player%} to 2
- send "{@systpre} &aメッセージ&d2行&a目を設定出来ます。"
- send "{@systpre} &aチャット欄に記述して送信してください。"
- if clicked slot is 11:
- if {infe::stages::%{infe::mapeditor::%player%}%::message2} is "&c未設定":
- wrongmessagenumber(player)
- else:
- set {infe::messagesetter::%player%} to 3
- send "{@systpre} &aメッセージ&d3行&a目を設定出来ます。"
- send "{@systpre} &aチャット欄に記述して送信してください。"
- if clicked slot is 12:
- if {infe::stages::%{infe::mapeditor::%player%}%::message3} is "&c未設定":
- wrongmessagenumber(player)
- else:
- set {infe::messagesetter::%player%} to 4
- send "{@systpre} &aメッセージ&d4行&a目を設定出来ます。"
- send "{@systpre} &aチャット欄に記述して送信してください。"
- if clicked slot is 13:
- if {infe::stages::%{infe::mapeditor::%player%}%::message4} is "&c未設定":
- wrongmessagenumber(player)
- else:
- set {infe::messagesetter::%player%} to 5
- send "{@systpre} &aメッセージ&d5行&a目を設定出来ます。"
- send "{@systpre} &aチャット欄に記述して送信してください。"
- if clicked slot is 14:
- if {infe::stages::%{infe::mapeditor::%player%}%::message5} is "&c未設定":
- wrongmessagenumber(player)
- else:
- set {infe::messagesetter::%player%} to 6
- send "{@systpre} &aメッセージ&d6行&a目を設定出来ます。"
- send "{@systpre} &aチャット欄に記述して送信してください。"
- if clicked slot is 15:
- if {infe::stages::%{infe::mapeditor::%player%}%::message6} is "&c未設定":
- wrongmessagenumber(player)
- else:
- set {infe::messagesetter::%player%} to 7
- send "{@systpre} &aメッセージ&d7行&a目を設定出来ます。"
- send "{@systpre} &aチャット欄に記述して送信してください。"
- if clicked slot is 16:
- if {infe::stages::%{infe::mapeditor::%player%}%::message7} is "&c未設定":
- wrongmessagenumber(player)
- else:
- set {infe::messagesetter::%player%} to 8
- send "{@systpre} &aメッセージ&d8行&a目を設定出来ます。"
- send "{@systpre} &aチャット欄に記述して送信してください。"
- if clicked slot is 17:
- if {infe::stages::%{infe::mapeditor::%player%}%::message8} is "&c未設定":
- wrongmessagenumber(player)
- else:
- set {infe::messagesetter::%player%} to 9
- send "{@systpre} &aメッセージ&d9行&a目を設定出来ます。"
- send "{@systpre} &aチャット欄に記述して送信してください。"
- on chat:
- if {infe::messagesetter::%player%} is set:
- set {infe::stages::%{infe::mapeditor::%player%}%::message%{infe::messagesetter::%player%}%} to coloured event-message
- send "{@systpre} &7ステージ&r%{infe::mapeditor::%player%}%&7の表示メッセージ&d%{infe::messagesetter::%player%}%行&7目を設定しました。"
- delete {infe::messagesetter::%player%}
- delete {infe::mapeditor::%player%}
- #ステージ編集メッセージプレビュー関数
- function messagepreview(infe.p: player):
- close {_infe.p}'s inventory
- set {_infe.num} to 0
- loop 9 times:
- if {infe::stages::%{infe::mapeditor::%{_infe.p}%}%::message%{_infe.num}%} is not "&c未設定":
- send "%{infe::stages::%{infe::mapeditor::%{_infe.p}%}%::message%{_infe.num}%}%" to {_infe.p}
- loop 3 times:
- send "" to {_infe.p}
- send "{@systpre} &a以上が&r%{infe::mapeditor::%{_infe.p}%}%&aのメッセージです。" to {_infe.p}
- #ステージ表示メッセージ編集-設定順番ミス警告関数
- function wrongmessagenumber(infe.p: player):
- format slot 26 of {_infe.p} with red dye named "&4一つ前の行数のメッセージが未設定です。" with lore "&71行目から順番に設定していく必要があります。" to be unstealable
- wait 5 second
- format slot 26 of {_infe.p} with air to be unstealable
- #ステージ有効化/無効化コマンド
- command /stagemanager:
- permission: enderK.infection
- aliases: /sm
- trigger:
- open chest with 6 rows named "&6ステージマネージャー"to player
- wait 1 tick
- set {_infe.num} to 0
- loop {infe::stages::*}:
- if {infe::stages::%loop-index%::spawn} is set:
- if {infe::stages::%loop-index%::time} is set:
- if {infe::stages::%loop-index%::message1} is not "&c未設定":
- if {infe::stages::%loop-index%::enabled} is true:
- set slot {_infe.num} of player's current inventory to emerald block named "%loop-index%"
- else:
- set slot {_infe.num} of player's current inventory to redstone block named "%loop-index%"
- else:
- set slot {_infe.num} of player's current inventory to redstone block named "%loop-index%"
- else:
- set slot {_infe.num} of player's current inventory to redstone block named "%loop-index%"
- else:
- set slot {_infe.num} of player's current inventory to redstone block named "%loop-index%"
- #ステージマネージャー
- on inventory click:
- name of player's current inventory is "&6ステージマネージャー"
- set {_infe.string} to name of clicked item
- if clicked item is emerald block:
- delete {infe::stages::%{_infe.string}%::enabled}
- close player's inventory
- send "{@systpre} &aステージ&r%{_infe.string}%&aを&c無効化&aしました。"
- if clicked item is redstone block:
- if {infe::stages::%{_infe.string}%::spawn} is set:
- if {infe::stages::%{_infe.string}%::time} is set:
- if {infe::stages::%{_infe.string}%::message1} is not "&c未設定":
- set {infe::stages::%{_infe.string}%::enabled} to true
- close player's inventory
- send "{@systpre} &aステージ&r%{_infe.string}%&aを&e有効化&aしました。"
- else:
- close player's inventory
- send "{@systpre} &c最低でも1行目のメッセージを設定してください。"
- else:
- close player's inventory
- send "{@systpre} &cステージの制限時間を設定してください。"
- else:
- close player's inventory
- send "{@systpre} &cステージのTP地点を設定してください。"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement