Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #Name: EpicParkour
- #Version: 1.1
- #Author: Shooterowy
- #Zakazy:
- #1. Zakaz zmiany autora.
- #2. Zakaz udostepniania przerobionego skryptu.
- #3. Zakaz podszywania sie pod autora.
- #4. Etc.
- #Opcje
- options:
- #Mozna uzyc kilku blokow (Wystarczy dopisac "or" + nazwa bloku.)
- #Przyklad uzycia wielu blokow:
- #failblock: red wool or redstone block or stone brick
- startblock: green wool #Poczatek parkoura.
- failblock: red wool #Spadniecie podczas parkoura.
- endblock: blue wool #Koniec parkoura.
- nextlevel: 100 #Co ile punktow doswiadczenia mozna zdobyc nowy poziom.
- tag: &6[&3Epic&2Parkour&6] #Tytul skryptu
- #Zmienne
- variables:
- {parkour::status::%player%} = false
- {parkour::counter::%player%} = false
- {parkour::time::%player%} = 0
- {parkour::xp::%player%} = 0
- {parkour::level::%player%} = 0
- #Komendy
- command /parkour [<text>] [<text>] [<text>]:
- aliases: p
- trigger:
- if arg 1 is not set:
- send "{@tag} &3Epic&2Parkour &6Commands:"
- if player has permission "parkour.*":
- send "&a/parkour create <arena> - Creates new arena."
- send "&a/parkour setspawn <arena> - Sets spawn of arena."
- send "&a/parkour setxp <arena> <xp> - Set xp for finishing the arena."
- send "&a/parkour remove <arena> - Removes the arena."
- send "&a/parkour list - Displays list of created arenas."
- if {parkour::status::%player%} is true:
- send "&c/parkour join <arena> - Joins to the arena."
- send "&a/parkour leave - Leaves current arena."
- else:
- send "&a/parkour join <arena> - Joins to the arena."
- send "&c/parkour leave - Leaves current arena."
- send "&a/parkour info <player> - Shows statistics of specific player."
- send "&a/parkour reload - Reloads the script."
- stop
- else:
- send "&a/parkour list - Displays list of created arenas."
- if {parkour::status::%player%} is true:
- send "&c/parkour join <arena> - Joins to the arena."
- send "&a/parkour leave - Leaves current arena."
- else:
- send "&a/parkour join <arena> - Joins to the arena."
- send "&c/parkour leave - Leaves current arena."
- send "&a/parkour info - Shows your statistics."
- stop
- if arg 1 is "create":
- if player has permission "parkour.create" or "parkour.*":
- if arg 2 is set:
- if {parkour::arena::%arg 2%} is not set:
- set {parkour::arena::%arg 2%} to arg 2
- send "{@tag} &6Created new arena &b%arg 2%&6."
- stop
- else:
- send "{@tag} &cArena &b%arg 2% &cis already exist."
- stop
- else:
- send "{@tag} &cCorrect usage: &7/parkour create <arena>"
- stop
- else:
- send "{@tag} &cYou do not have required permissions."
- stop
- if arg 1 is "setspawn":
- if player has permission "parkour.setspawn" or "parkour.*":
- if arg 2 is set:
- if {parkour::arena::%arg 2%} is set:
- set {parkour::arena::%arg 2%::spawn} to location of player
- send "{@tag} &6Spawn for the arena &b%arg 2%&6 has been set."
- stop
- else:
- send "{@tag} &cArena &b%arg 2% &cis not exist."
- stop
- else:
- send "{@tag} &cCorrect usage: &7/parkour setspawn <arena>"
- stop
- else:
- send "{@tag} &cYou do not have required permissions."
- stop
- if arg 1 is "list":
- if player has permission "parkour.*" or "parkour.default":
- clear {arenas::*}
- loop {parkour::arena::*}:
- if {parkour::arena::%loop-value%::xp} is set:
- set {_xp} to {parkour::arena::%loop-value%::xp}
- else:
- set {_xp} to 0
- if {parkour::arena::%loop-value%::spawn} is set:
- add "&a%loop-value% &6(&7%{_xp}% xp&6)" to {arenas::*}
- else:
- add "&c%loop-value% &6(&7%{_xp}% xp&6)" to {arenas::*}
- set {_list} to "%{arenas::*}%"
- replace all "<none>" with "" in {_list}
- replace all " and" with "," in {_list}
- send "{@tag} &6Created arenas: &b%{_list}%"
- stop
- else:
- send "{@tag} &cYou do not have required permissions."
- stop
- if arg 1 is "remove":
- if player has permission "parkour.*" or "parkour.remove":
- if arg 2 is set:
- if {parkour::arena::%arg 2%} is set:
- clear {parkour::arena::%arg 2%}
- clear {parkour::arena::%arg 2%::spawn}
- clear {parkour::arena::%arg 2%::xp}
- clear {parkour::arena::%arg 2%::players::*}
- clear {parkour::arena::%arg 2%::done::*}
- clear {parkour::arena::%arg 2%::time::*}
- send "{@tag} &6Removed the arena &b%arg 2%&6."
- stop
- else:
- send "{@tag} &cThe Arena &b%arg 2% &cis not exist."
- stop
- else:
- send "{@tag} &cCorrect usage: &7/parkour remove <arena>"
- stop
- else:
- send "{@tag} &cYou do not have required permissions."
- stop
- if arg 1 is "setxp":
- if player has permission "parkour.*" or "parkour.setxp":
- if arg 2 is set:
- if {parkour::arena::%arg 2%} is set:
- if arg 3 is set:
- set {_xp} to arg 3 parsed as integer
- send "{@tag} &6Set &b%{_xp}% &6xp for finishing the arena &b%arg 2%&6."
- set {parkour::arena::%arg 2%::xp} to {_xp}
- stop
- else:
- send "{@tag} &cCorrect usage: &7/parkour setxp <arena> <xp>"
- stop
- else:
- send "{@tag} &cArena &b%arg 2% &cis not exist."
- stop
- else:
- send "{@tag} &cCorrect usage: &7/parkour setxp <arena> <xp>"
- stop
- else:
- send "{@tag} &cYou do not have required permissions."
- stop
- if arg 1 is "join":
- if player has permission "parkour.*" or "parkour.default":
- if arg 2 is set:
- if {parkour::arena::%arg 2%} is set:
- if {parkour::arena::%arg 2%::spawn} is set:
- if {parkour::status::%player%} is false:
- if {parkour::arena::%arg 2%::done::%player%} is not set:
- set {parkour::arena::%arg 2%::done::%player%} to false
- set {parkour::lastlocation::%player%} to location of player
- set {parkour::arena::%arg 2%::players::%player%} to player
- set {parkour::arena::%arg 2%::allplayers::%player%} to player
- set {parkour::status::%player%} to true
- if {parkour::arena::%arg 2%::time::%player%} is not set:
- set {parkour::arena::%arg 2%::time::%player%} to 0
- if player's gamemode is not survival:
- set player's gamemode to survival
- teleport player to {parkour::arena::%arg 2%::spawn}
- send "{@tag} &6You have joined to arena &b%arg 2%&6."
- stop
- else:
- send "{@tag} &cLeave your current arena first."
- stop
- else:
- send "{@tag} &cSpawn of arena &b%arg 2% &cis not set&c."
- stop
- else:
- send "{@tag} &cArena &b%arg 2% &cis not exist."
- stop
- else:
- send "{@tag} &cCorrect usage: &7/parkour join <arena>"
- stop
- else:
- send "{@tag} &cYou do not have required permissions."
- stop
- if arg 1 is "leave":
- if player has permission "parkour.*" or "parkour.default":
- if {parkour::status::%player%} is true:
- teleport player to {parkour::lastlocation::%player%}
- clear {parkour::lastlocation::%player%}
- loop {parkour::arena::*}:
- if {parkour::arena::%loop-value%::players::%player%} is set:
- set {_arena} to {parkour::arena::%loop-value%}
- clear {parkour::arena::%loop-value%::players::%player%}
- set {parkour::status::%player%} to false
- set {parkour::counter::%player%} to false
- set {parkour::time::%player%} to 0
- set player's level to 0
- send "{@tag} &6You have left the arena &b%{_arena}%&6."
- stop
- else:
- send "{@tag} &cYou are not on any arena."
- stop
- else:
- send "{@tag} &cYou do not have required permissions."
- stop
- if arg 1 is "reload":
- if player has permission "parkour.*" or "parkour.reload":
- execute console command "sk reload %script%"
- send "{@tag} &6Script has been reloaded."
- stop
- else:
- send "{@tag} &cYou do not have required permissions."
- stop
- if arg 1 is "info":
- if arg 2 is not set:
- if player has permission "parkour.*" or "parkour.default":
- send "{@tag} &b%player%'s &6statistics:"
- send "{@tag} &7Level - &c%{parkour::level::%player%}% &7(&c%{parkour::xp::%player%}% xp&7)"
- loop {parkour::arena::*}:
- if {parkour::arena::%loop-value%::done::%player%} is true:
- set {_arena} to {parkour::arena::%loop-value%}
- set {_time} to {parkour::arena::%loop-value%::time::%player%}
- set {_minutes} to rounded down {_time}/60
- set {_seconds} to {_time}-({_minutes}*60)
- if {_time} is not 0:
- add "&c%{_arena}% &7(&c%{_minutes}% min %{_seconds}% sec&7)" to {_arenas::*}
- set {_list} to "%{_arenas::*}%"
- replace all "<none>" with "" in {_list}
- replace all "and" with "," in {_list}
- send "{@tag} &7Completed arenas: &c%{_list}%"
- stop
- else:
- if player has permission "parkour.*" or "parkour.info.others":
- set {_target} to arg 2 parsed as player
- if {_target} is online:
- if {parkour::level::%{_target}%} is not set:
- set {parkour::level::%{_target}%} to 0
- if {parkour::xp::%{_target}%} is not set:
- set {parkour::xp::%{_target}%} to 0
- send "{@tag} &b%{_target}%'s &6statistics:"
- send "{@tag} &7Level - &c%{parkour::level::%{_target}%}% &7(&c%{parkour::xp::%{_target}%}% xp&7)"
- loop {parkour::arena::*}:
- if {parkour::arena::%loop-value%::done::%{_target}%} is true:
- set {_arena} to {parkour::arena::%loop-value%}
- set {_time} to {parkour::arena::%loop-value%::time::%{_target}%}
- set {_minutes} to rounded down {_time}/60
- set {_seconds} to {_time}-({_minutes}*60)
- if {_time} is not 0:
- add "&c%{_arena}% &7(&c%{_minutes}% min %{_seconds}% sec&7)" to {_arenas::*}
- set {_list} to "%{_arenas::*}%"
- replace all "<none>" with "" in {_list}
- replace all " and" with "," in {_list}
- send "{@tag} &7Completed arenas: &c%{_list}%"
- stop
- else:
- send "{@tag} &cThis player is not online."
- stop
- else:
- send "{@tag} &cYou do not have required permissions."
- stop
- if arg 1 is "toptime":
- if arg 2 is set:
- if {parkour::arena::%arg 2%} is set:
- send "{@tag} &6Arena &b%arg 2% &6toptime rank:"
- loop 10 times:
- if {toptime::arena::%arg 2%::%loop-number%::player} is set:
- set {_player} to {toptime::arena::%arg 2%::%loop-number%::player}
- set {_time} to {toptime::arena::%arg 2%::%loop-number%::time}
- send "{@tag} &7%loop-number%. &c%{_player}% &7- &c%{_time}% seconds"
- else:
- send "{@tag} &7%loop-number%."
- stop
- else:
- send "{@tag} &cArena &b%arg 2% &cis not exist."
- stop
- else:
- send "{@tag} &cCorrect usage: &7/parkour toptime <arena>"
- stop
- else:
- execute player command "p"
- stop
- #Poczatkowy etap
- on walking on {@startblock}:
- if block below event-block is command block:
- if {parkour::status::%player%} is true:
- if {parkour::counter::%player%} is false:
- set {parkour::counter::%player%} to true
- send "{@tag} &6Run! Good luck."
- #Upadek z areny
- on walking on {@failblock}:
- if block below event-block is command block:
- if {parkour::status::%player%} is true:
- if {parkour::counter::%player%} is true:
- send "{@tag} &cYou fell out of the track!"
- loop {parkour::arena::*}:
- if {parkour::arena::%loop-value%::players::%player%} is set:
- set {_arena} to {parkour::arena::%loop-value%}
- teleport player to {parkour::arena::%{_arena}%::spawn}
- set {parkour::time::%player%} to 0
- set player's level to 0
- #Koncowy etap
- on walking on {@endblock}:
- if block below event-block is command block:
- if {parkour::status::%player%} is true:
- if {parkour::counter::%player%} is true:
- loop {parkour::arena::*}:
- if {parkour::arena::%loop-value%::players::%player%} is set:
- set {_arena} to {parkour::arena::%loop-value%}
- clear {parkour::arena::%loop-value%::players::%player%}
- if {parkour::arena::%{_arena}%::done::%player%} is false:
- send "{@tag} &6You have completed the arena &b%{_arena}%&6!"
- set {parkour::arena::%{_arena}%::done::%player%} to true
- if {parkour::arena::%{_arena}%::xp} is set:
- set {_xp} to {parkour::arena::%{_arena}%::xp}
- add {_xp} to {parkour::xp::%player%}
- send "{@tag} &6You have gained &b%{_xp}% &6xp. You have &b%{parkour::xp::%player%}% &6xp now."
- set {_lvl} to rounded down {parkour::xp::%player%}/{@nextlevel}
- if {_lvl} is larger than {parkour::level::%player%}:
- send "{@tag} &6You have reached a new level! Your level is now &b%{_lvl}%&6."
- set {parkour::level::%player%} to {_lvl}
- if {parkour::arena::%{_arena}%::time::%player%} is 0:
- set {parkour::arena::%{_arena}%::time::%player%} to {parkour::time::%player%}
- else if {parkour::arena::%{_arena}%::time::%player%} is more than {parkour::time::%player%}:
- set {parkour::arena::%{_arena}%::time::%player%} to {parkour::time::%player%}
- if {toptime::arena::%{_arena}%::1::time} is not set:
- set {toptime::arena::%{_arena}%::1::time} to {parkour::arena::%{_arena}%::time::%player%}
- set {toptime::arena::%{_arena}%::1::player} to player
- else if {parkour::arena::%{_arena}%::time::%player%} is smaller than {toptime::arena::%{_arena}%::1::time}:
- set {toptime::arena::%{_arena}%::1::time} to {parkour::arena::%{_arena}%::time::%player%}
- set {toptime::arena::%{_arena}%::1::player} to player
- if {toptime::arena::%{_arena}%::2::player} is not player:
- set {toptime::arena::%{_arena}%::2::time} to {toptime::arena::%{_arena}%::1::time}
- set {toptime::arena::%{_arena}%::2::player} to {toptime::arena::%{_arena}%::1::player}
- else:
- if {parkour::arena::%{_arena}%::time::%player%} is smaller than {toptime::arena::%{_arena}%::2::time}:
- set {toptime::arena::%{_arena}%::2::time} to {toptime::arena::%{_arena}%::1::time}
- set {_rank} to 3
- set {_previousrank} to 2
- loop 8 times:
- if {parkour::arena::%{_arena}%::time::%player%} is smaller than {toptime::arena::%{_arena}%::%{_rank}%::time}:
- if {toptime::arena::%{_arena}%::%{_rank}%::player} is not player:
- set {toptime::arena::%{_arena}%::%{_rank}%::time} to {toptime::arena::%{_arena}%::%{_previousrank}%::time}
- set {toptime::arena::%{_arena}%::%{_rank}%::player} to {toptime::arena::%{_arena}%::%{_previousrank}%::player}
- add 1 to {_rank}
- add 1 to {_previousrank}
- set {_time} to {parkour::time::%player%}
- set {_minutes} to rounded down {_time}/60
- set {_seconds} to {_time}-({_minutes}*60)
- send "{@tag} &6Your time: &b%{_minutes}% &6minutes &b%{_seconds}% &6seconds."
- teleport player to {parkour::lastlocation::%player%}
- clear {parkour::lastlocation::%player%}
- set {parkour::status::%player%} to false
- set {parkour::counter::%player%} to false
- set {parkour::time::%player%} to 0
- set player's level to 0
- #Mierzenie czasu
- every 1 second:
- loop all players:
- if {parkour::status::%loop-player%} is true:
- if {parkour::counter::%loop-player%} is true:
- add 1 to {parkour::time::%loop-player%}
- set loop-player's level to {parkour::time::%loop-player%}
- #Blokada komend
- on command:
- if {parkour::status::%player%} is true:
- if command is not "parkour" or "p":
- cancel event
- send "{@tag} &cThis command is not allowed on the arena."
- stop
- #Tworzenie tabliczek
- on sign change:
- if line 1 is "[Parkour]":
- if player has permission "parkour.*" or "parkour.createsigns":
- if line 2 is "Join":
- if line 3 is not empty:
- set line 1 to "&1[Parkour]"
- set line 2 to "&3Join"
- if {parkour::arena::%line 3%} is set:
- set line 3 to "&a%line 3%"
- stop
- else:
- send "{@tag} &cArena &b%line 3% &cis not exist."
- cancel event
- stop
- else:
- send "{@tag} &cLine 3 cannot be empty."
- cancel event
- stop
- else if line 2 is "Leave":
- if line 3 is empty:
- set line 1 to "&1[Parkour]"
- set line 2 to "&3Leave"
- stop
- else:
- send "{@tag} &cLine 3 has to be empty."
- cancel event
- stop
- else:
- Send "{@tag} &cLine 2 cannot be other than &aJoin/Leave&c."
- cancel event
- stop
- else:
- send "{@tag} &cYou do not have required permissions."
- cancel event
- stop
- else:
- stop
- #Dolaczanie przez tabliczki
- on rightclick on sign:
- if line 1 of clicked block is "&1[Parkour]":
- if player has permission "parkour.*" or "parkour.usesigns":
- if line 2 of clicked block is "&3Leave":
- execute player command "parkour leave"
- stop
- else if line 2 of clicked block is "&3Join":
- execute player command "parkour join %uncoloured line 3 of clicked block%"
- stop
- on hunger bar change:
- if {parkour::status::%player%} is true:
- cancel event
- on break of sign:
- if line 1 of event-block is "&1[Parkour]":
- send "{@tag} &cYou do not have required permissions."
- cancel event
- stop
Add Comment
Please, Sign In to add comment