Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- options:
- gamenumber: 1
- function getState(b: boolean = true) :: integer:
- return value of sql var "game::dng{@gamenumber}::state" parsed as integer
- function getPlays(p: offlineplayer) :: integer:
- return value of sql var "stats::dng::gamesplayed::%{_p}%" parsed as integer
- function getWins(p: offlineplayer) :: integer:
- return value of sql var "stats::dng::gameswon::%{_p}%" parsed as integer
- function getReal(i: integer) :: text:
- set {_l} to location at (52*{_i}), 5, 151) of the world "world"
- if block at {_l} is not a sign:
- return "ERROR"
- else:
- return "%line 1 of block at {_l}%"
- on load:
- command "/save-off"
- on projectile hit:
- wait 1 ticks
- delete projectile
- on drop:
- cancel the event
- on item spawn:
- cancel the event
- on spawn:
- cancel the event
- on break:
- cancel the event
- on place:
- cancel the event
- on death of a player:
- clear drops
- set death message to ""
- on weather change:
- set weather to sun
- on damage of a player:
- cancel the event
- if damage is caused by void:
- cancel the event
- teleport victim to location at 1070, 46, -1871 of the world "world"
- on join:
- heal player
- set join message to ""
- clear player's inventory
- set player's gamemode to adventure
- set player's level to 0
- teleport player to location at 1070, 46, -1871 of the world "world"
- if amount of players is less than 2:
- set sql var "game::dng{@gamenumber}::state" to "1"
- delete {game::time}
- else if amount of players is greater than or equal to 2:
- getState() is not 2 or 3
- set sql var "game::dng{@gamenumber}::state" to "2"
- set {game::time} to now
- wipe player's sidebar
- set name of sidebar of player to "&7&a&lDrop n' Guess"
- set id score "&7PLAYERS" in sidebar of player to 3 with id "Players.%player%"
- set id score "&e%amount of players%/10" in sidebar of player to 2 with id "PlayerCount.%player%"
- set id score " " in sidebar of player to 1 with id "Space2.%player%"
- set id score "&ewww.minealot.net" in sidebar of player to 0 with id "Website.%player%"
- if {game::multiplier} is not set:
- set slot 4 of player to a glowing gold ingot named "&7Multipliers"
- while score value of id "Website.%player%" is 0:
- if player is not online:
- stop loop
- wait 15 tick
- update score id "PlayerCount.%player%" to "&e%amount of players%/10" and 2
- on right click holding a gold ingot:
- cancel the event
- open chest with 1 row named "&7Multipliers" to player
- wait 1 tick
- set {_2} to value of sql var "multipliers::double::%player%" parsed as integer
- set {_3} to value of sql var "multipliers::triple::%player%" parsed as integer
- set {_4} to value of sql var "multipliers::quadruple::%player%" parsed as integer
- if "%{_2}%" is "<none>" or "0":
- set slot 2 of player's current inventory to a gold nugget named "&7Double Coins Multiplier:&e 0"
- else:
- set slot 2 of player's current inventory to a gold nugget named "&7Double Coins Multiplier:&e %{_2}%" with lore "&7Click to activate double coins multiplier for this game!"
- if "%{_3}%" is "<none>" or "0":
- set slot 4 of player's current inventory to a gold ingot named "&7Triple Coins Multiplier:&e 0"
- else:
- set slot 4 of player's current inventory to a gold ingot named "&7Triple Coins Multiplier:&e %{_3}%" with lore "&7Click to activate triple coins multiplier for this game!"
- if "%{_4}%" is "<none>" or "0":
- set slot 6 of player's current inventory to a gold block named "&7Quadruple Coins Multiplier:&e 0"
- else:
- set slot 6 of player's current inventory to a gold block named "&7Quadruple Coins Multiplier:&e %{_4}%" with lore "&7Click to activate quadruple coins multiplier for this game!"
- on inventory click:
- cancel the event
- inventory name of player's current inventory is "&7Multipliers"
- clicked item is not air
- set {_2} to value of sql var "multipliers::double::%player%" parsed as integer
- set {_3} to value of sql var "multipliers::triple::%player%" parsed as integer
- set {_4} to value of sql var "multipliers::quadruple::%player%" parsed as integer
- if clicked item is a gold nugget:
- if lore of clicked item does not contain "&7Click":
- send "&7You have no Double Coins Multiplier to activate"
- else:
- broadcast "&e%player%&7 has activated a Double Coins Multiplier"
- command "/playsound random.levelup @a"
- set {game::multiplier} to player
- set {game::multiplier::amount} to 2
- remove all gold ingot from inventory of all players
- set sql var "multipliers::double::%player%" to "%{_2} - 1%"
- send "&7You now have &e%{_2} - 1%&7 Double Coins Multiplier left!"
- loop all players:
- inventory name of loop-player's current inventory is "&7Multipliers"
- close loop-player's inventory
- else if clicked item is a gold ingot:
- if lore of clicked item does not contain "&7Click":
- send "&7You have no Triple Coins Multiplier to activate"
- else:
- broadcast "&e%player%&7 has activated a Triple Coins Multiplier"
- command "/playsound random.levelup @a"
- set {game::multiplier} to player
- set {game::multiplier::amount} to 3
- remove all gold ingot from inventory of all players
- set sql var "multipliers::triple::%player%" to "%{_3} - 1%"
- send "&7You now have &e%{_3} - 1%&7 Triple Coins Multiplier left!"
- loop all players:
- inventory name of loop-player's current inventory is "&7Multipliers"
- close loop-player's inventory
- else if clicked item is a gold block:
- if lore of clicked item does not contain "&7Click":
- send "&7You have no Quadruple Coins Multiplier to activate"
- else:
- broadcast "&e%player%&7 has activated a Quadruple Coins Multiplier"
- command "/playsound random.levelup @a"
- set {game::multiplier} to player
- set {game::multiplier::amount} to 4
- remove all gold ingot from inventory of all players
- set sql var "multipliers::quadruple::%player%" to "%{_4} - 1%"
- send "&7You now have &e%{_4} - 1%&7 Quadruple Coins Multiplier left!"
- loop all players:
- inventory name of loop-player's current inventory is "&7Multipliers"
- close loop-player's inventory
- on quit:
- if amount of players is 0 or 1:
- getState() is 3
- set {_1} to 0
- set {_2} to 0
- set {_3} to 0
- loop {game::points::*}:
- if loop-value is greater than {_1}:
- set {_3} to {_2}
- set {_2} to {_1}
- set {_3t} to {_2t}
- set {_2t} to {_1t}
- set {_1} to loop-value
- set {_1t} to "&e%loop-index% &f- &7%loop-value% points"
- else if loop-value is greater than {_2}:
- set {_3} to {_2}
- set {_3t} to {_2t}
- set {_2} to loop-value
- set {_2t} to "&e%loop-index% &f- &7%loop-value% points"
- else if loop-value is greater than {_3}:
- set {_3} to loop-value
- set {_3t} to "&e%loop-index% &f- &7%loop-value% points"
- broadcast "&7========================="
- broadcast "&7First place: %{_1t}%"
- broadcast "&7Second place: %{_2t}%"
- broadcast "&7Third place: %{_3t}%"
- broadcast "&7========================="
- loop all players:
- if {game::points::%loop-player%} is {_1}:
- set sql var "stats::dng::gameswon::%loop-player%" to "%getPlays(loop-player) + 1%"
- set {_amt} to {game::points::%loop-player%}*4
- $ thread
- addCoins(loop-player, {_amt})
- else if {game::points::%loop-player%} is {_2}:
- set {_amt} to {game::points::%loop-player%}*3
- $ thread
- addCoins(loop-player, {_amt})
- else if {game::points::%loop-player%} is {_3}:
- set {_amt} to {game::points::%loop-player%}*2
- $ thread
- addCoins(loop-player, {_amt})
- else:
- set {_amt} to {game::points::%loop-player%}*1
- $ thread
- addCoins(loop-player, {_amt})
- loop 10 times:
- command "/playsound fireworks.launch @a"
- wait 10 ticks
- loop all players:
- send loop-player to "redirection"
- delete {game::*}
- set sql var "game::dng{@gamenumber}::state" to "0"
- wait 10 seconds
- command "/stop"
- else:
- loop all players:
- delete score id "%loop-player%.%player%"
- delete score id "%player%.%loop-player%"
- on gamemode change:
- wait 1 tick
- set player's gamemode to adventure
- on block damage:
- cancel the event
- on damage of a player:
- cancel the event
- heal victim
- on hunger meter change:
- cancel the event
- set player's food level to 10
- function getPossible(i: integer) :: text:
- set {_l} to location at (52*{_i}), 5, 151) of the world "world"
- if block at {_l} is not a sign:
- return "ERROR"
- else:
- if line 2 of block at {_l} is not "":
- set {_return::2} to "%line 2 of block at {_l}%"
- if line 3 of block at {_l} is not "":
- set {_return::3} to "%line 3 of block at {_l}%"
- if line 4 of block at {_l} is not "":
- set {_return::4} to "%line 4 of block at {_l}%"
- if {_return::*} is not set:
- return "None"
- else:
- return "%join {_return::*} with "",""%"
- on chat:
- loop {game::word::*}:
- "%message%" is "%loop-value%"
- {game::guessed::%player%} is not set
- if size of {game::guessed::*} is 0:
- broadcast "&e%player%&7 has guessed the word first!"
- add 5 to {game::points::%player%}
- send "&7+5 points!"
- else if size of {game::guessed::*} is 1:
- send "&7+3 points!"
- broadcast "&e%player%&7 has guessed the word second!"
- add 3 to {game::points::%player%}
- else:
- broadcast "&e%player%&7 has guessed the word!"
- send "&7+1 point!"
- add 1 to {game::points::%player%}
- command "/playsound random.levelup @a ~ ~ ~ 0.25 2 0.25"
- set {game::guessed::%player%} to "%player%"
- loop all players:
- loop all players:
- update score id "%loop-player-2%.%loop-player-1%" to "&7%loop-player-2%" and {game::points::%loop-player-2%}
- function startDrop(b: boolean = true):
- getState() is 3
- {game::dropping} is not set
- set {game::dropping} to true
- set {game::chat} to true
- add 1 to {game::drops}
- loop blocks within location at 25.5, 4, 25.5 of the world "world" to location at 0.5, 5, 0.5 of the world "world":
- set loop-block to air
- loop all players:
- loop 9 times:
- set slot loop-number - 1 of loop-player to a red stained clay named " "
- set slot {game::drops} - 1 of loop-player to a green stained clay named "&eROUND %{game::drops}%"
- set {_build} to a random element out of {game::drops::*}
- delete {game::drops::%{_build}%}
- set {_real} to getReal({_build})
- set {game::word::%{_real}%} to {_real}
- set {_possible} to getPossible({_build})
- if {_possible} is not "None":
- set {_possible::*} to {_possible} split at ","
- loop {_possible::*}:
- set {game::word::%loop-value%} to loop-value
- set {_l} to location at (52*{_build}), 6, 125) of the world "world"
- loop blocks within {_l} to (location 25 south 25 east {_l}):
- loop-block is not air
- set {_blocksloc::%location at loop-block%} to location at loop-block
- set {_blockstype::%location at loop-block%} to type of loop-block
- set {_blocksamt} to size of {_blocksloc::*}
- set {_length} to length of {_real}
- set {_wordhint} to ""
- loop {_length} times:
- if subtext of {_real} from loop-number to loop-number is " ":
- set {_wordhint} to "%{_wordhint}% "
- else:
- set {_wordhint} to "%{_wordhint}%&f_"
- set {_hints::%loop-number%} to loop-number
- while size of {_blocksloc::*} is not 0:
- if size of {game::guessed::*} is amount of players:
- stop loop
- else:
- set {_letters} to 0 - ((size of {_blocksloc::*} - {_blocksamt})/{_blocksamt})*{_length}
- set {_letters} to floor({_letters})
- if {_letters} is greater than floor({_length}/2):
- set {_letters} to floor({_length}/2)
- if size of {_hints::*} is not (length of {_real} - {_letters}):
- set {_hint} to a random element out of {_hints::*}
- delete {_hints::%{_hint}%}
- set {_wordhint} to ""
- loop {_length} times:
- if {_hints::%loop-number%} is not set:
- set {_wordhint} to "%{_wordhint}%&d%subtext of {_real} from loop-number to loop-number%"
- else if subtext of {_real} from loop-number to loop-number is " ":
- set {_wordhint} to "%{_wordhint}% "
- else:
- set {_wordhint} to "%{_wordhint}%&f_"
- set {_block} to a random element out of {_blocksloc::*}
- set {_offsetx} to difference between {_l}'s x-coordinate and {_block}'s x-coordinate
- set {_offsetz} to difference between {_l}'s z-coordinate and {_block}'s z-coordinate
- spawn undroppable falling block of {_blockstype::%{_block}%} at location at ({_offsetx}, 30, {_offsetz}) of the world "world"
- delete {_blocksloc::%{_block}%}
- delete {_blockstype::%{_block}%}
- loop all players:
- set loop-player's action bar to "&7%{_wordhint}%"
- wait 2 ticks
- loop 50 times:
- wait 2 ticks
- if size of {game::guessed::*} is amount of players:
- stop loop
- else:
- loop all players:
- set loop-player's action bar to "&7%{_wordhint}%"
- if size of {game::guessed::*} is amount of players:
- while size of {_blocksloc::*} is not 0:
- set {_block} to a random element out of {_blocksloc::*}
- set {_offsetx} to difference between {_l}'s x-coordinate and {_block}'s x-coordinate
- set {_offsetz} to difference between {_l}'s z-coordinate and {_block}'s z-coordinate
- spawn undroppable falling block of {_blockstype::%{_block}%} at location at ({_offsetx}, 30, {_offsetz}) of the world "world"
- delete {_blocksloc::%{_block}%}
- delete {_blockstype::%{_block}%}
- broadcast "&7The word was &e%{_real}%&7! All players have guessed the word!"
- else:
- broadcast "&7The word was &e%{_real}%&7! &e%size of {game::guessed::*}%&7/&e%amount of players%&7 players have guessed the word!"
- delete {game::dropping}
- delete {game::word::*}
- delete {game::chat}
- delete {game::guessed::*}
- delete {game::hint}
- if {game::drops} is greater than or equal to 9:
- set {_1} to 0
- set {_2} to 0
- set {_3} to 0
- loop {game::points::*}:
- if loop-value is greater than {_1}:
- set {_3} to {_2}
- set {_2} to {_1}
- set {_3t} to {_2t}
- set {_2t} to {_1t}
- set {_1} to loop-value
- set {_1t} to "&e%loop-index% &f- &7%loop-value% points"
- else if loop-value is greater than {_2}:
- set {_3} to {_2}
- set {_3t} to {_2t}
- set {_2} to loop-value
- set {_2t} to "&e%loop-index% &f- &7%loop-value% points"
- else if loop-value is greater than {_3}:
- set {_3} to loop-value
- set {_3t} to "&e%loop-index% &f- &7%loop-value% points"
- broadcast "&7========================="
- broadcast "&7First place: %{_1t}%"
- broadcast "&7Second place: %{_2t}%"
- broadcast "&7Third place: %{_3t}%"
- broadcast "&7========================="
- loop all players:
- if {game::points::%loop-player%} is {_1}:
- set sql var "stats::dng::gameswon::%loop-player%" to "%getPlays(loop-player) + 1%"
- set {_amt} to {game::points::%loop-player%}*8
- addCoins(loop-player, {_amt})
- send "&e+ %{game::points::%loop-player%}*8% coins &7&o(4 times multiplier for coming in 1st)" to loop-player
- else if {game::points::%loop-player%} is {_2}:
- set {_amt} to {game::points::%loop-player%}*6
- addCoins(loop-player, {_amt})
- send "&e+ %{game::points::%loop-player%}*6% coins &7&o(3 times multiplier for coming in 2nd)" to loop-player
- else if {game::points::%loop-player%} is {_3}:
- set {_amt} to {game::points::%loop-player%}*4
- addCoins(loop-player, {_amt})
- send "& + %{game::points::%loop-player%}*4% coins &7&o(2 times multiplier for coming in 3rd)" to loop-player
- else:
- set {_amt} to {game::points::%loop-player%}*2
- addCoins(loop-player, {_amt})
- send "&e+ %{game::points::%loop-player%}*2% coins" to loop-player
- loop 10 times:
- command "/playsound fireworks.launch @a ~ ~ ~ 1 1 1"
- wait 10 ticks
- loop all players:
- send loop-player to "redirection"
- delete {game::*}
- set sql var "game::dng{@gamenumber}::state" to "0"
- wait 10 seconds
- command "/stop"
- else:
- loop 10 times:
- getState() is 3
- loop all players:
- set loop-player's level to 10 - loop-number
- command "/playsound note.hat @a ~ ~ ~ 1 1 1"
- wait 1 second
- getState() is 3
- startDrop()
- #command /genareas:
- # permission: skript.op
- # trigger:
- # loop 100 times:
- # loop blocks within (location at (52 * loop-number), 5, 125) to (location at (52 * loop-number) + 25, 5, 150):
- # set loop-block to bedrock
- # add 1 to {_blocks}
- # if {_blocks} is 400:
- # wait 1 tick
- # set {_blocks} to 0
- # wait 0.6 second
- # broadcast "Area %loop-number%/100 genned!"
- on block land:
- add 1 to {game::sound}
- 1.8 play 3 of particle happy villager:0 at event-block offset by 0.3, 0.3, 0.3
- if {game::sound} is 3:
- loop all players:
- command "/playsound dig.sand %loop-player% ~ ~ ~ 0.5 1 0.5"
- set {game::sound} to 0
- on skript load:
- delete {game::*}
- set sql var "game::dng{@gamenumber}::state" to "1"
- while true:
- wait 1 second
- if {game::time} is set:
- difference between {game::time} and now is greater than 30 seconds
- delete {game::time}
- getState() is 2
- loop 63 times:
- set {game::drops::%loop-number%} to loop-number
- loop blocks within location at 25.5, 4, 25.5 of the world "world" to location at 0.5, 5, 0.5 of the world "world":
- set loop-block to air
- clear inventory of all players
- set sql var "game::dng{@gamenumber}::state" to "3"
- startDrop()
- loop all players:
- wipe loop-player's sidebar
- set name of sidebar of loop-player to "&a&lDrop n' Guess"
- set id score " " in sidebar of loop-player to -1 with id "Space.%loop-player%"
- set id score "&ewww.minealot.net" in sidebar of loop-player to -2 with id "Website.%loop-player%"
- set sql var "stats::dng::gamesplayed::%loop-player%" to "%getPlays(loop-player) + 1%"
- loop all players:
- set id score "&7%loop-player-2%" in sidebar of loop-player-1 to 0 with id "%loop-player-2%.%loop-player-1%"
- set sql var "game::dng{@gamenumber}::state" to "3"
- loop all players:
- set loop-player's level to 0
- teleport loop-player to location at (a random number between 5 and 15), 38.2, (a random number between 5 and 15) of the world "world"
- set {game::points::%loop-player%} to 0
- set loop-player's gamemode to adventure
- if getState() is 1:
- loop all players:
- set loop-player's action bar to "&7Need at least &e%4 - amount of players%&7 more players to start!"
- else if getState() is 2:
- loop all players:
- set {_time} to difference between {game::time} and now
- set {_time} to "%difference between {_time} and 30 second%"
- set {_time::*} to {_time} split at "."
- set {_time} to {_time::1} parsed as integer
- set loop-player's level to {_time}
- set loop-player's action bar to "&7Starting in &e%{_time}% seconds"
- if {_time} is less than 11:
- command "/playsound random.click @a ~ ~ ~ 1 0.5 1"
- else if getState() is 3:
- wait 1 tick
Advertisement
Add Comment
Please, Sign In to add comment