Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Author: Nawo
- # Presentation: http://skript.pl/topic/7891-case-opening/
- options:
- tag: &8[&6Case&8]
- chance key: 20
- chance chest: 30
- function close(player: player):
- if {case::player::%{_player}%::open} is true:
- set {case::player::%{_player}%::open} to false
- send "{@tag} &7Zamknieto podglad losowania." to {_player}
- if {case::player::%{_player}%::openedit} is set:
- clear {case::%{case::player::%{_player}%::openedit}%::itemlist::*}
- loop 27 times:
- if slot "%loop-number - 1%" parsed as an integer of current inventory of {_player} is not air:
- set {_item} to slot loop-number - 1 of current inventory of {_player}
- add {_item} to {case::%{case::player::%{_player}%::openedit}%::itemlist::*}
- clear {case::player::%{_player}%::openedit}
- send "{@tag} &7Zapisano." to {_player}
- function list(player: player):
- open chest with 6 rows named "&6Lista skrzynek:" to {_player}
- wait 1 tick
- set {_slot} to 0
- loop {case::chestlist::*}:
- if loop-value contains "<none>":
- remove loop-value from {case::chestlist::*}
- set {_lore} to "%{case::%loop-value%}%::itemlist::*}%"
- replace all ", " with "|| &8- &c" in {_lore}
- replace all "and " with "|| &8- &c" in {_lore}
- format slot {_slot} of {_player} with 1 of chest named "&6%loop-value%}%" with lore " || &6W tej skrzyni mozesz zdobyc: || || &8- &c%{_lore}% || " to close then run "case opening %loop-value% %{_player}%"
- add 1 to {_slot}
- command /case [<text="null">] [<text>] [<text>]:
- trigger:
- if player has permission "case.*":
- if arg 1 is not "add" or "remove" or "edit" or "give" or "list" or "debug" or "opening":
- send "{@tag}"
- send "&6/case add <name> &8- &7Dodaje nowa skrzynke."
- send "&6/case remove <name> &8- &7Usuwa skrzynke."
- send "&6/case edit <name> &8- &7Edytuje zawartosc skrzyni."
- send "&6/case give <name> [<player>] &8- &7Daje nam klucz i skrzynie."
- send "&6/case list &8- &7Lista skrzyn w gui."
- send "&6/case debug &8- &7Debug skryptu."
- if arg 1 is "add":
- if arg 2 is set:
- loop {case::chestlist::*}:
- if loop-value is arg 2:
- send "{@tag} &7Taka skrzynia juz istnieje!"
- stop
- add arg 2 to {case::chestlist::*}
- send "{@tag} &7Dodano skrzynie o nazwie &6%arg 2%&7."
- else:
- send "&6/case add <name>"
- if arg 1 is "remove":
- if arg 2 is set:
- loop {case::chestlist::*}:
- if loop-value is arg 2:
- remove arg 2 from {case::chestlist::*}
- delete {case::%arg 2%::itemlist::*}
- send "{@tag} &7Usunieto skrzynie o nazwie &6%arg 2%&7."
- stop
- send "{@tag} &7Taka skrzynia nie istnieje!"
- else:
- send "&6/case remove <name>"
- if arg 1 is "edit":
- if arg 2 is set:
- loop {case::chestlist::*}:
- if loop-value is arg 2:
- open chest with 3 rows named "&6Edytujesz: &c%arg 2%" to player
- wait 1 tick
- set {_slot} to 0
- loop {case::%arg 2%::itemlist::*}:
- set slot {_slot} of current inventory of player to loop-value
- add 1 to {_slot}
- set {case::player::%player%::openedit} to "%arg 2%"
- send "{@tag} &7Edytujesz zawartosc skrzyni &6%arg 2%&7."
- while inventory name of player is "&6Edytujesz: &c%arg 2%":
- set {case::player::%player%::openedit} to "%arg 2%"
- wait 5 tick
- stop
- send "{@tag} &7Taka skrzynia nie istnieje!"
- else:
- send "&6/case additem <name>"
- if arg 1 is "give":
- if arg 2 is set:
- loop {case::chestlist::*}:
- if loop-value is arg 2:
- if arg 3 is set:
- set {_player} to arg 3 parsed as offlineplayer
- else:
- set {_player} to player
- if {_player} is online:
- set {_lore} to "%{case::%arg 2%::itemlist::*}%"
- replace all ", " with "|| &8- &c" in {_lore}
- replace all "and " with "|| &8- &c" in {_lore}
- add 64 chest named "&6%arg 2%" with lore " || &6W tej skrzyni mozesz zdobyc: || || &8- &c%{_lore}% || " to {_player}'s inventory
- add 64 tripwire hook named "&6Klucz do skrzyni &c%arg 2%" to {_player}'s inventory
- else:
- send "{@tag} &7Tego gracza nie ma na serwerze!"
- stop
- send "{@tag} &7Taka skrzynia nie istnieje!"
- else:
- send "&6/case give <name> <player>"
- if arg 1 is "list":
- list(player)
- if arg 1 is "debug":
- send "{@tag} &7Opcja tymczasowo niedostepna."
- if arg 1 is "opening":
- set {_player} to arg 3 parsed as player
- if {_player}'s inventory contains tripwire hook named "&6Klucz do skrzyni &c%arg 2%":
- set {_lore} to "%{case::%arg 2%::itemlist::*}%"
- replace all ", " with "|| &8- &c" in {_lore}
- replace all "and " with "|| &8- &c" in {_lore}
- if {_player}'s inventory contains chest named "&6%arg 2%" with lore " || &6W tej skrzyni mozesz zdobyc: || || &8- &c%{_lore}% || ":
- wait 3 tick
- if {case::player::%{_player}%::openwait} is true:
- send "{@tag} &7Juz otwierasz skrzynie!" to {_player}
- else:
- set {_size} to size of {case::%arg 2%::itemlist::*}
- if {_size} > 0:
- remove 1 tripwire hook named "&6Klucz do skrzyni &c%arg 2%" from {_player}'s inventory
- set {_lore} to "%{case::%arg 2%::itemlist::*}%"
- replace all ", " with "|| &8- &c" in {_lore}
- replace all "and " with "|| &8- &c" in {_lore}
- remove 1 chest named "&6%arg 2%" with lore " || &6W tej skrzyni mozesz zdobyc: || || &8- &c%{_lore}% || " from {_player}'s inventory
- set {case::player::%{_player}%::openwait} to true
- set {case::player::%{_player}%::open} to true
- open chest with 6 rows named "&6Skrzynia &c%arg 2%" to {_player}
- wait 1 tick
- loop {case::%arg 2%::itemlist::*}:
- set {_skin%loop-index%} to loop-value
- replace all " " with " of " in {_skin%loop-index%}
- loop (size of {case::%arg 2%::itemlist::*}) times:
- format slot loop-number + 26 of {_player} with {_skin%loop-number%} to be unstealable
- loop 9 times:
- set {_item%loop-number%} to random element out of {case::%arg 2%::itemlist::*}
- replace all " " with " of " in {_item%loop-number%}
- format slot loop-number + 8 of {_player} with {_item%loop-number%} to be unstealable
- format slot loop-number - 1 of {_player} with 1 of black stained glass pane to be unstealable
- format slot loop-number + 17 of {_player} with 1 of black stained glass pane to be unstealable
- format slot 4 of {_player} with 1 of hopper to be unstealable
- set {_random} to random integer between 20 and 25
- wait 1 seconds
- loop {_random} times:
- if loop-number > 15:
- loop loop-number - 12 times:
- wait 1 tick
- else:
- wait 3 tick
- play raw sound "mob.skeleton.death" at {_player} with pitch 8 volume 1
- loop 8 times:
- set {_item%loop-number-2%} to {_item%loop-number-2 + 1%}
- if {case::player::%{_player}%::open} is true:
- format slot loop-number-2 + 8 of {_player} with {_item%loop-number-2%} to be unstealable
- set {_item9} to random element out of {case::%arg 2%::itemlist::*}
- replace all " " with " of " in {_item9}
- if {case::player::%{_player}%::open} is true:
- format slot 17 of {_player} with 1 of {_item9} to be unstealable
- set {case::player::%{_player}%::open} to false
- wait 3 seconds
- open chest with 1 rows named "&6Wygrales:" to {_player}
- send "{@tag} &7Odbierz swoja nagrode." to {_player}
- wait 1 tick
- set slot 4 of current inventory of {_player} to {_item5}
- play raw sound "mob.endermen.portal" at {_player} with pitch 0.1 volume 1
- set {case::player::%{_player}%::openwait} to false
- else:
- send "{@tag} &7W tej skrzyni nie mozna nic wylosowac!" to {_player}
- else:
- send "{@tag} &7Nie posiadasz tej skrzyni!" to {_player}
- else:
- send "{@tag} &7Nie posiadasz klucza do tej skrzyni!" to {_player}
- on inventory close:
- close(player)
- on quit:
- close(player)
- on death:
- close(player)
- on right click:
- if player's tool is chest:
- loop {case::chestlist::*}:
- if loop-value is uncolored name of player's tool:
- cancel event
- set {_lore} to "%{case::%loop-value%::itemlist::*}%"
- replace all ", " with "|| &8- &c" in {_lore}
- replace all "and " with "|| &8- &c" in {_lore}
- set lore of player's tool to " || &6W tej skrzyni mozesz zdobyc: || || &8- &c%{_lore}% || "
- execute player command "case opening %uncolored name of player's tool% %player%"
- if player's tool is tripwire hook:
- if name of player's tool contains "Klucz do skrzyni":
- cancel event
- list(player)
- on mine of stone:
- chance of {@chance chest}%:
- set {_element} to random element out of {case::chestlist::*}
- set {_lore} to "%{case::%{_element}%::itemlist::*}%"
- replace all ", " with "|| &8- &c" in {_lore}
- replace all "and " with "|| &8- &c" in {_lore}
- drop chest named "&6%{_element}%" with lore " || &6W tej skrzyni mozesz zdobyc: || || &8- &c%{_lore}% || "
- play raw sound "mob.endermen.portal" at player with pitch 0.1 volume 1
- send "{@tag} &7Zdobyles skrzynie &6%{_element}%&7!"
- chance of {@chance key}%:
- set {_element} to random element out of {case::chestlist::*}
- drop tripwire hook named "&6Klucz do skrzyni &c%{_element}%"
- play raw sound "mob.endermen.portal" at player with pitch 0.1 volume 1
- send "{@tag} &7Zdobyles klucz do skrzyni &6%{_element}%&7!"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement