Added a lot of new stuff, some variables,
statistics and stuff like that Started work on the main loop Next TODO: Spawning teams loop Inventory setupmain
parent
7abf8deaa3
commit
05db19814b
|
@ -0,0 +1,263 @@
|
||||||
|
# border, spawny pro 3 různé lokace map, inventář
|
||||||
|
# neomezené blocky
|
||||||
|
|
||||||
|
# skybattle::gaming_players::* - players in IDList1-10 [list of all players]
|
||||||
|
# skybattle::game_status - identifies game status [init, next, playing, end]
|
||||||
|
# skybattle::game_on - identifies if the game is playing [True, False]
|
||||||
|
# skybattle::intro - identifies if intro is playing rn [True, False]
|
||||||
|
# skybattle::stop_players - triggers a function that stops players from moving [True, False]
|
||||||
|
# skybattle::deadplayers::* - stores all dead players in current round [list of players]
|
||||||
|
# skybattle::introlocation - stores intro location [coords] ! must have barrier to stand on !
|
||||||
|
# skybattle::lobbylocation - stores location of lobby [coords]
|
||||||
|
# skybattle::timer - stores timer [int]
|
||||||
|
# skybattle::teams_alive::* - stores list of teams that are alive
|
||||||
|
# skybattle::teams_alive_num - stores number of teams that are alive
|
||||||
|
|
||||||
|
# skybattle::current_arena - stores current round/arena [1-3]
|
||||||
|
|
||||||
|
# ---------------- Variables specific for each arena ----------------
|
||||||
|
|
||||||
|
# skybattle::arena:: - folder for all variables specific to each arena (border center, etc...)
|
||||||
|
# skybattle::arena[1-3]::spectatorlocation - stores location of spectator spawn [coords]
|
||||||
|
# skybattle::arena[1-3]::border - stores center location of border [coords]
|
||||||
|
# skybattle::arena[1-3]::spawn_location::* [1-10] - stores spawner locations [coords]
|
||||||
|
|
||||||
|
# ---------------- Variables specific for each team ----------------
|
||||||
|
|
||||||
|
# skybattle::team[1-10]:: - folders for all variables specific to each team (list of players, etc.)
|
||||||
|
# skybattle::team[1-10]::players - stores every player from team [list of players] - probably implemented on minigame startup
|
||||||
|
# skybattle::team[1-10]::name - stores name of the team
|
||||||
|
#! skybattle::team[1-10]::alive_players - list of players alive
|
||||||
|
#! skybattle::team[1-10]::alive_number - number of players alive in team [int]
|
||||||
|
#! skybattle::team[1-10]::kills - number of kills of the whole team [int]
|
||||||
|
|
||||||
|
# ---------------- Variables specific for each player ----------------
|
||||||
|
|
||||||
|
# skybattle::players::[player_uuid]:: - folder for all variables specific to players (kills, deaths, etc.)
|
||||||
|
#! skybattle::players::[player_uuid]::kills_number - number of kills of a player [int]
|
||||||
|
#! skybattle::players::[player_uuid]::deaths - number of deaths of a player
|
||||||
|
#! skybattle::players::[player_uuid]::kills_names - names of players killed
|
||||||
|
#! skybattle::players::[player_uuid]::survived_count - place at which you survived
|
||||||
|
#! skybattle::players::[player_uuid]::survived_multiplier - inverted count = 40th place -> multiplier 1x
|
||||||
|
|
||||||
|
# 40 za kill
|
||||||
|
# 10 za přežití
|
||||||
|
|
||||||
|
|
||||||
|
command /minigame_skybattle_start:
|
||||||
|
description: Zapni celou minihru skybattle
|
||||||
|
usage: /minigame_skybattle_start
|
||||||
|
executable by: the console and players
|
||||||
|
permission: skript.op
|
||||||
|
trigger:
|
||||||
|
#execute console command "/gamerule doImmediateRespawn true"
|
||||||
|
clear {skybattle::gaming_players::*}
|
||||||
|
loop 10 times:
|
||||||
|
loop entries of team "IDList%loop-number%":
|
||||||
|
add loop-value2 to {skybattle::gaming_players::*}
|
||||||
|
add loop-value2 to {skybattle::team%%loop-number::players::*}
|
||||||
|
broadcast "Načítám minihru Oblačný Souboj"
|
||||||
|
send title "§2Oblačný Souboj" to all players
|
||||||
|
set {skybattle::game_status} to "init"
|
||||||
|
set {skybattle::game_on} to "True"
|
||||||
|
wait 2 seconds
|
||||||
|
send subtitle "Teleportuji" to all players
|
||||||
|
wait 1 second
|
||||||
|
set {skybattle::intro} to "True"
|
||||||
|
set gamemode of {skybattle::gaming_players::*} to survival
|
||||||
|
teleport {skybattle::gaming_players::*} to {skybattle::introlocation}
|
||||||
|
set {skybattle::stop_players} to "True"
|
||||||
|
hide {skybattle::gaming_players::*}
|
||||||
|
wait 1 second
|
||||||
|
send "§e----------- Oblačný Souboj -----------" to {gaming_players::*}
|
||||||
|
send "V této minihře máte za úkol §cpřežít§r a zabít co nejvíce svých §cprotivníků. Můžete zničit a využít celý svět:D Třeba §7Iron Blocky §rjsou docela užitečné." to {gaming_players::*}
|
||||||
|
wait 10 seconds
|
||||||
|
reveal {skybattle::gaming_players::*}
|
||||||
|
set {skybattle::stop_players} to "False"
|
||||||
|
|
||||||
|
while {skybattle::game_on} is "True":
|
||||||
|
if {skybattle::game_status} is "init":
|
||||||
|
execute console command "/scoreboard players set MaxKolo XD 3"
|
||||||
|
|
||||||
|
resetplayers()
|
||||||
|
resetteams()
|
||||||
|
|
||||||
|
set {skybattle::current_arena} to 1
|
||||||
|
clear inventory of {skybattle::gaming_players::*}
|
||||||
|
|
||||||
|
if {skybattle::game_status} is "next":
|
||||||
|
set {skybattle::teams_alive_num} to 10
|
||||||
|
reset_teams_alive()
|
||||||
|
|
||||||
|
|
||||||
|
if {skybattle::game_status} is "playing":
|
||||||
|
send action bar "§4§lČas: §7%{skybattle::timer}%" to all players
|
||||||
|
set {skybattle::timer} to {skybattle::timer} -1
|
||||||
|
wait 1 second
|
||||||
|
|
||||||
|
if {skybattle::timer} is 0:
|
||||||
|
send title "§c§lDošel čas!" to all players
|
||||||
|
set {skybattle::gaming_players::*}'s gamemode to spectator
|
||||||
|
|
||||||
|
set {skybattle::game_status} to "next"
|
||||||
|
|
||||||
|
wait 5 seconds
|
||||||
|
|
||||||
|
if {skybattle::teams_alive_num} is 1:
|
||||||
|
send title "Vyhrál team %{skybattle::teams_alive::*}%" to all players
|
||||||
|
|
||||||
|
if {skybattle::game_status} is "end":
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
make console execute command "/function sky:battle"
|
||||||
|
|
||||||
|
|
||||||
|
command /skybattle_setborder <number>:
|
||||||
|
description: Set center of border for map x
|
||||||
|
usage: /skybattle_setborder <id of border/arena>
|
||||||
|
permission: skript.op
|
||||||
|
trigger:
|
||||||
|
if arg-1 is 1:
|
||||||
|
set {skybattle::arena1::border} to player's location
|
||||||
|
send "Border 1 set to your location" to player
|
||||||
|
else if arg-1 is 2:
|
||||||
|
set {skybattle::arena2::border} to player's location
|
||||||
|
send "Border 2 set to your location" to player
|
||||||
|
else if arg-1 is 3:
|
||||||
|
set {skybattle::arena3::border} to player's location
|
||||||
|
send "Border 3 set to your location" to player
|
||||||
|
else:
|
||||||
|
send "The only valid options for id of border are 1, 2, 3" to player
|
||||||
|
|
||||||
|
|
||||||
|
command /skybattle_setintroloc:
|
||||||
|
description: Set Intro location
|
||||||
|
permission: skript.op
|
||||||
|
trigger:
|
||||||
|
set {skybattle::introlocation} to player's location
|
||||||
|
send "Lokace Intra pro Sky Battle nastavena"
|
||||||
|
|
||||||
|
command /skybattle_setlobbyloc:
|
||||||
|
description: Set Lobby location
|
||||||
|
permission: skript.op
|
||||||
|
trigger:
|
||||||
|
set {skybattle::lobbylocation} to player's location
|
||||||
|
send "Lokace Lobby pro Sky Battle nastavena"
|
||||||
|
|
||||||
|
command /skybattle_setspectatorspawn <number>:
|
||||||
|
permission: skript.op
|
||||||
|
trigger:
|
||||||
|
if arg-1 is 1:
|
||||||
|
set {skybattle::arena1::spectatorlocation} to player's location
|
||||||
|
send "Spectator pro arenu 1 nastaven"
|
||||||
|
if arg-1 is 2:
|
||||||
|
set {skybattle::arena2::spectatorlocation} to player's location
|
||||||
|
send "Spectator pro arenu 2 nastaven"
|
||||||
|
if arg-1 is 3:
|
||||||
|
set {skybattle::arena3::spectatorlocation} to player's location
|
||||||
|
send "Spectator pro arenu 3 nastaven"
|
||||||
|
if arg-1 is not 1 or arg-1 is not 2 or arg-1 is not 3:
|
||||||
|
send "You need to specify arena 1-3"
|
||||||
|
|
||||||
|
command /skybattle_setspawner <number> <number>:
|
||||||
|
description: Set one of the spawn positions
|
||||||
|
usage: /skybattle_setspawner <arena id 1-3> <spawner id 1-10>
|
||||||
|
permission: skript.op
|
||||||
|
trigger:
|
||||||
|
if arg-2 < 11:
|
||||||
|
if arg-1 is 1:
|
||||||
|
set {skybattle::arena1::spawn_location::%arg-2%} to player's location
|
||||||
|
send "Set spawn location %arg-1%" to player
|
||||||
|
if arg-1 is 2:
|
||||||
|
set {skybattle::arena2::spawn_location::%arg-2%} to player's location
|
||||||
|
send "Set spawn location %arg-1%" to player
|
||||||
|
if arg-1 is 3:
|
||||||
|
set {skybattle::arena3::spawn_location::%arg-2%} to player's location
|
||||||
|
send "Set spawn location %arg-2% for Sky Battle" to player
|
||||||
|
if arg-1 is not 1 or arg-1 is not 2 or arg-1 is not 3:
|
||||||
|
send "You must specify arena 1-3"
|
||||||
|
if arg-2 < 0:
|
||||||
|
send "You must specify a number from 1-10"
|
||||||
|
if arg-2 > 10:
|
||||||
|
send "You can only set 10 spawn positions"
|
||||||
|
|
||||||
|
command /skybattle_listspawners <number>:
|
||||||
|
description: List all spawn positions for arena
|
||||||
|
permission: skript.op
|
||||||
|
trigger:
|
||||||
|
loop 10 times:
|
||||||
|
send "Spawn points for arena %arg-1%"
|
||||||
|
send "Spawn point %loop-number%:" to player
|
||||||
|
send {skybattle::arena%arg-1%::spawn_location::%loop-number%} to player
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
function spawnteam(team: integer, spawner: integer):
|
||||||
|
loop entries of team "IDList%{_team}%":
|
||||||
|
teleport loop-value to location at {skybattle::arena%{skybattle::current_arena}%::spawn_location::%{_spawner}%}
|
||||||
|
set loop-value's gamemode to survival
|
||||||
|
|
||||||
|
# !!! POPULATE INVENTORY !!!
|
||||||
|
|
||||||
|
function resetteams():
|
||||||
|
loop 10 times:
|
||||||
|
clear {skybattle::team%loop-value%::*}
|
||||||
|
|
||||||
|
function resetplayers():
|
||||||
|
clear {skybattle::players::*}
|
||||||
|
|
||||||
|
function reset_teams_alive():
|
||||||
|
clear {skybattle::teams_alive::*}
|
||||||
|
set {_team1} to "Karmínová"
|
||||||
|
set {_team2} to "Jantarová"
|
||||||
|
set {_team3} to "Krémová"
|
||||||
|
set {_team4} to "Limetková"
|
||||||
|
set {_team5} to "Smaragdová"
|
||||||
|
set {_team6} to "Azurová"
|
||||||
|
set {_team7} to "Blankytná"
|
||||||
|
set {_team8} to "Nebeská"
|
||||||
|
set {_team9} to "Nachová"
|
||||||
|
set {_team10} to "Švestková"
|
||||||
|
loop 10 times:
|
||||||
|
add {_team%loop-number%} to {skybattle::teams_alive::*}
|
||||||
|
|
||||||
|
function init_team_names():
|
||||||
|
set {_team1} to "Karmínová"
|
||||||
|
set {_team2} to "Jantarová"
|
||||||
|
set {_team3} to "Krémová"
|
||||||
|
set {_team4} to "Limetková"
|
||||||
|
set {_team5} to "Smaragdová"
|
||||||
|
set {_team6} to "Azurová"
|
||||||
|
set {_team7} to "Blankytná"
|
||||||
|
set {_team8} to "Nebeská"
|
||||||
|
set {_team9} to "Nachová"
|
||||||
|
set {_team10} to "Švestková"
|
||||||
|
loop 10 times:
|
||||||
|
set {skybattle::team%loop-number%::name} to {_team%loop-number%}
|
||||||
|
|
||||||
|
|
||||||
|
on death of player: # victim, attacker
|
||||||
|
add victim's uuid to {skybattle::deadplayers::*}
|
||||||
|
launch ball large coloured yellow fading to light green and black at victim's location with duration 0
|
||||||
|
|
||||||
|
on respawn:
|
||||||
|
if {skybattle::deadplayers::*} contains player's uuid:
|
||||||
|
clear player's inventory
|
||||||
|
set player's gamemode to spectator
|
||||||
|
teleport player to {skybattle::arena%{skybattle::current_arena}%::spectatorlocation}
|
||||||
|
wait 20 ticks
|
||||||
|
set player's gamemode to adventure
|
||||||
|
set player's gamemode to spectator
|
||||||
|
execute console command "/scoreboard players add @a[gamemode=survival] Survivalgames 1"
|
||||||
|
|
||||||
|
on player move:
|
||||||
|
if {skybattle::stop_players} is "True":
|
||||||
|
if {skybattle::gaming_players::*} contains player:
|
||||||
|
cancel event
|
||||||
|
|
||||||
|
on food bar change:
|
||||||
|
cancel event
|
|
@ -0,0 +1,310 @@
|
||||||
|
# border, spawny pro 3 různé lokace map, inventář
|
||||||
|
# neomezené blocky
|
||||||
|
|
||||||
|
# skybattle::gaming_players::* - players in IDList1-10 [list of all players]
|
||||||
|
# skybattle::game_status - identifies game status [init, next, playing, end]
|
||||||
|
# skybattle::game_on - identifies if the game is playing [True, False]
|
||||||
|
# skybattle::intro - identifies if intro is playing rn [True, False]
|
||||||
|
# skybattle::stop_players - triggers a function that stops players from moving [True, False]
|
||||||
|
# skybattle::deadplayers::* - stores all dead players in current round [list of players]
|
||||||
|
# skybattle::introlocation - stores intro location [coords] ! must have barrier to stand on !
|
||||||
|
# skybattle::lobbylocation - stores location of lobby [coords]
|
||||||
|
# skybattle::timer - stores timer [int]
|
||||||
|
# skybattle::teams_alive::* - stores list of teams that are alive
|
||||||
|
# skybattle::teams_alive_num - stores number of teams that are alive
|
||||||
|
|
||||||
|
# skybattle::current_arena - stores current round/arena [1-3]
|
||||||
|
|
||||||
|
# ---------------- Variables specific for each arena ----------------
|
||||||
|
|
||||||
|
# skybattle::arena:: - folder for all variables specific to each arena (border center, etc...)
|
||||||
|
# skybattle::arena[1-3]::spectatorlocation - stores location of spectator spawn [coords]
|
||||||
|
# skybattle::arena[1-3]::border - stores center location of border [coords]
|
||||||
|
# skybattle::arena[1-3]::spawn_location::* [1-10] - stores spawner locations [coords]
|
||||||
|
|
||||||
|
# ---------------- Variables specific for each team ----------------
|
||||||
|
|
||||||
|
# skybattle::IDList[1-10]:: - folders for all variables specific to each team (list of players, etc.)
|
||||||
|
# skybattle::IDList[1-10]::players - stores every player from team [list of players] - probably implemented on minigame startup
|
||||||
|
#! skybattle::IDList[1-10]::alive_players - list of players alive
|
||||||
|
#! skybattle::IDList[1-10]::alive_number - number of players alive in team [int]
|
||||||
|
#! skybattle::IDList[1-10]::kills - number of kills of the whole team [int]
|
||||||
|
|
||||||
|
# ---------------- Variables specific for each player ----------------
|
||||||
|
|
||||||
|
# skybattle::players::[player_uuid]:: - folder for all variables specific to players (kills, deaths, etc.)
|
||||||
|
# skybattle::players::[player_uuid]::team - team that the player belongs to
|
||||||
|
# skybattle::players::[player_uuid]::kills_number - number of kills of a player [int]
|
||||||
|
# skybattle::players::[player_uuid]::deaths - number of deaths of a player
|
||||||
|
# skybattle::players::[player_uuid]::kills_names - names of players killed
|
||||||
|
#! skybattle::players::[player_uuid]::survived_count - place at which you survived
|
||||||
|
#! skybattle::players::[player_uuid]::survived_multiplier - inverted count = 40th place -> multiplier 1x
|
||||||
|
|
||||||
|
# 40 za kill
|
||||||
|
# 10 za přežití
|
||||||
|
|
||||||
|
|
||||||
|
command /minigame_skybattle_start:
|
||||||
|
description: Zapni celou minihru skybattle
|
||||||
|
usage: /minigame_skybattle_start
|
||||||
|
executable by: the console and players
|
||||||
|
permission: skript.op
|
||||||
|
trigger:
|
||||||
|
#execute console command "/gamerule doImmediateRespawn true"
|
||||||
|
clear {skybattle::gaming_players::*}
|
||||||
|
loop 10 times:
|
||||||
|
loop entries of team "IDList%loop-number%":
|
||||||
|
add loop-value2 to {skybattle::gaming_players::*}
|
||||||
|
add loop-value2 to {skybattle::IDList%%loop-number::players::*}
|
||||||
|
|
||||||
|
set {skybattle::players::%loop-value2's uuid%::team} to "IDList%loop-number2%"
|
||||||
|
broadcast "Načítám minihru Oblačný Souboj"
|
||||||
|
send title "§2Oblačný Souboj" to all players
|
||||||
|
set {skybattle::game_status} to "init"
|
||||||
|
set {skybattle::game_on} to "True"
|
||||||
|
wait 2 seconds
|
||||||
|
send subtitle "Teleportuji" to all players
|
||||||
|
wait 1 second
|
||||||
|
set {skybattle::intro} to "True"
|
||||||
|
set gamemode of {skybattle::gaming_players::*} to survival
|
||||||
|
teleport {skybattle::gaming_players::*} to {skybattle::introlocation}
|
||||||
|
set {skybattle::stop_players} to "True"
|
||||||
|
hide {skybattle::gaming_players::*}
|
||||||
|
wait 1 second
|
||||||
|
send "§e----------- Oblačný Souboj -----------" to {gaming_players::*}
|
||||||
|
send "V této minihře máte za úkol §cpřežít§r a zabít co nejvíce svých §cprotivníků. Můžete zničit a využít celý svět:D Třeba §7Iron Blocky §rjsou docela užitečné." to {gaming_players::*}
|
||||||
|
wait 10 seconds
|
||||||
|
reveal {skybattle::gaming_players::*}
|
||||||
|
set {skybattle::stop_players} to "False"
|
||||||
|
|
||||||
|
while {skybattle::game_on} is "True":
|
||||||
|
if {skybattle::game_status} is "init":
|
||||||
|
execute console command "/scoreboard players set MaxKolo XD 3"
|
||||||
|
|
||||||
|
resetplayers()
|
||||||
|
resetteams()
|
||||||
|
|
||||||
|
set {skybattle::current_arena} to 1
|
||||||
|
clear inventory of {skybattle::gaming_players::*}
|
||||||
|
|
||||||
|
if {skybattle::game_status} is "next":
|
||||||
|
set {skybattle::current_arena} to {skybattle::current_arena} + 1
|
||||||
|
set {skybattle::teams_alive_num} to 10
|
||||||
|
reset_teams_alive()
|
||||||
|
|
||||||
|
if {skybattle::current_arena} is 1:
|
||||||
|
set {skybattle::stop_players} to "True"
|
||||||
|
|
||||||
|
if {skybattle::current_arena} is 2:
|
||||||
|
set {skybattle::stop_players} to "True"
|
||||||
|
|
||||||
|
if {skybattle::current_arena} is 3:
|
||||||
|
set {skybattle::stop_players} to "True"
|
||||||
|
|
||||||
|
if {skybattle::current_arena} is 4:
|
||||||
|
|
||||||
|
else: # starting loop - stuff like countdowns etc...
|
||||||
|
send title "§c§l%{skybattle::current_arena}%. KOLO" to all players
|
||||||
|
wait 5 seconds
|
||||||
|
send title "§c§l%{skybattle::current_arena}%. KOLO" with subtitle "3" to all players
|
||||||
|
play sound "custom.cas" at volume 50 to all players
|
||||||
|
wait 1 second
|
||||||
|
send title "§c§l%{skybattle::current_arena}%. KOLO" with subtitle "2" to all players
|
||||||
|
play sound "custom.cas" at volume 50 to all players
|
||||||
|
wait 1 second
|
||||||
|
send title "§c§l%{skybattle::current_arena}%. KOLO" with subtitle "1" to all players
|
||||||
|
play sound "custom.cas" at volume 50 to all players
|
||||||
|
wait 1 second
|
||||||
|
send title "GO" with subtitle "" to all players
|
||||||
|
play sound "custom.cas2" at volume 50 to all players
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if {skybattle::game_status} is "playing":
|
||||||
|
send action bar "§4§lČas: §7%{skybattle::timer}%" to all players
|
||||||
|
set {skybattle::timer} to {skybattle::timer} -1
|
||||||
|
wait 1 second
|
||||||
|
|
||||||
|
|
||||||
|
if {skybattle::timer} is 0:
|
||||||
|
send title "§c§lDošel čas!" to all players
|
||||||
|
set {skybattle::gaming_players::*}'s gamemode to spectator
|
||||||
|
|
||||||
|
set {skybattle::game_status} to "next"
|
||||||
|
|
||||||
|
wait 5 seconds
|
||||||
|
|
||||||
|
if {skybattle::teams_alive_num} is 1:
|
||||||
|
send title "Vyhrál team %{skybattle::teams_alive::*}%" to all players
|
||||||
|
|
||||||
|
if {skybattle::teams_alive_num} is 0:
|
||||||
|
send title "Tak prej nevyhrál nikdo lul :D" to all players
|
||||||
|
|
||||||
|
|
||||||
|
if {skybattle::game_status} is "end":
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
make console execute command "/function sky:battle"
|
||||||
|
|
||||||
|
|
||||||
|
command /skybattle_setborder <number>:
|
||||||
|
description: Set center of border for map x
|
||||||
|
usage: /skybattle_setborder <id of border/arena>
|
||||||
|
permission: skript.op
|
||||||
|
trigger:
|
||||||
|
if arg-1 is 1:
|
||||||
|
set {skybattle::arena1::border} to player's location
|
||||||
|
send "Border 1 set to your location" to player
|
||||||
|
else if arg-1 is 2:
|
||||||
|
set {skybattle::arena2::border} to player's location
|
||||||
|
send "Border 2 set to your location" to player
|
||||||
|
else if arg-1 is 3:
|
||||||
|
set {skybattle::arena3::border} to player's location
|
||||||
|
send "Border 3 set to your location" to player
|
||||||
|
else:
|
||||||
|
send "The only valid options for id of border are 1, 2, 3" to player
|
||||||
|
|
||||||
|
|
||||||
|
command /skybattle_setintroloc:
|
||||||
|
description: Set Intro location
|
||||||
|
permission: skript.op
|
||||||
|
trigger:
|
||||||
|
set {skybattle::introlocation} to player's location
|
||||||
|
send "Lokace Intra pro Sky Battle nastavena"
|
||||||
|
|
||||||
|
command /skybattle_setlobbyloc:
|
||||||
|
description: Set Lobby location
|
||||||
|
permission: skript.op
|
||||||
|
trigger:
|
||||||
|
set {skybattle::lobbylocation} to player's location
|
||||||
|
send "Lokace Lobby pro Sky Battle nastavena"
|
||||||
|
|
||||||
|
command /skybattle_setspectatorspawn <number>:
|
||||||
|
permission: skript.op
|
||||||
|
trigger:
|
||||||
|
if arg-1 is 1:
|
||||||
|
set {skybattle::arena1::spectatorlocation} to player's location
|
||||||
|
send "Spectator pro arenu 1 nastaven"
|
||||||
|
if arg-1 is 2:
|
||||||
|
set {skybattle::arena2::spectatorlocation} to player's location
|
||||||
|
send "Spectator pro arenu 2 nastaven"
|
||||||
|
if arg-1 is 3:
|
||||||
|
set {skybattle::arena3::spectatorlocation} to player's location
|
||||||
|
send "Spectator pro arenu 3 nastaven"
|
||||||
|
if arg-1 is not 1 or arg-1 is not 2 or arg-1 is not 3:
|
||||||
|
send "You need to specify arena 1-3"
|
||||||
|
|
||||||
|
command /skybattle_setspawner <number> <number>:
|
||||||
|
description: Set one of the spawn positions
|
||||||
|
usage: /skybattle_setspawner <arena id 1-3> <spawner id 1-10>
|
||||||
|
permission: skript.op
|
||||||
|
trigger:
|
||||||
|
if arg-2 < 11:
|
||||||
|
if arg-1 is 1:
|
||||||
|
set {skybattle::arena1::spawn_location::%arg-2%} to player's location
|
||||||
|
send "Set spawn location %arg-1%" to player
|
||||||
|
if arg-1 is 2:
|
||||||
|
set {skybattle::arena2::spawn_location::%arg-2%} to player's location
|
||||||
|
send "Set spawn location %arg-1%" to player
|
||||||
|
if arg-1 is 3:
|
||||||
|
set {skybattle::arena3::spawn_location::%arg-2%} to player's location
|
||||||
|
send "Set spawn location %arg-2% for Sky Battle" to player
|
||||||
|
if arg-1 is not 1 or arg-1 is not 2 or arg-1 is not 3:
|
||||||
|
send "You must specify arena 1-3"
|
||||||
|
if arg-2 < 0:
|
||||||
|
send "You must specify a number from 1-10"
|
||||||
|
if arg-2 > 10:
|
||||||
|
send "You can only set 10 spawn positions"
|
||||||
|
|
||||||
|
command /skybattle_listspawners <number>:
|
||||||
|
description: List all spawn positions for arena
|
||||||
|
permission: skript.op
|
||||||
|
trigger:
|
||||||
|
loop 10 times:
|
||||||
|
send "Spawn points for arena %arg-1%"
|
||||||
|
send "Spawn point %loop-number%:" to player
|
||||||
|
send {skybattle::arena%arg-1%::spawn_location::%loop-number%} to player
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
function spawnteam(team: integer, spawner: integer):
|
||||||
|
loop entries of team "IDList%{_team}%":
|
||||||
|
teleport loop-value to location at {skybattle::arena%{skybattle::current_arena}%::spawn_location::%{_spawner}%}
|
||||||
|
set loop-value's gamemode to survival
|
||||||
|
|
||||||
|
# !!! POPULATE INVENTORY !!!
|
||||||
|
|
||||||
|
function resetteams():
|
||||||
|
loop 10 times:
|
||||||
|
clear {skybattle::team%loop-value%::*}
|
||||||
|
|
||||||
|
function resetplayers():
|
||||||
|
clear {skybattle::players::*}
|
||||||
|
|
||||||
|
function reset_teams_alive():
|
||||||
|
clear {skybattle::teams_alive::*}
|
||||||
|
set {_team1} to "Karmínová"
|
||||||
|
set {_team2} to "Jantarová"
|
||||||
|
set {_team3} to "Krémová"
|
||||||
|
set {_team4} to "Limetková"
|
||||||
|
set {_team5} to "Smaragdová"
|
||||||
|
set {_team6} to "Azurová"
|
||||||
|
set {_team7} to "Blankytná"
|
||||||
|
set {_team8} to "Nebeská"
|
||||||
|
set {_team9} to "Nachová"
|
||||||
|
set {_team10} to "Švestková"
|
||||||
|
loop 10 times:
|
||||||
|
add {_team%loop-number%} to {skybattle::teams_alive::*}
|
||||||
|
|
||||||
|
function init_team_names():
|
||||||
|
set {_team1} to "Karmínová"
|
||||||
|
set {_team2} to "Jantarová"
|
||||||
|
set {_team3} to "Krémová"
|
||||||
|
set {_team4} to "Limetková"
|
||||||
|
set {_team5} to "Smaragdová"
|
||||||
|
set {_team6} to "Azurová"
|
||||||
|
set {_team7} to "Blankytná"
|
||||||
|
set {_team8} to "Nebeská"
|
||||||
|
set {_team9} to "Nachová"
|
||||||
|
set {_team10} to "Švestková"
|
||||||
|
loop 10 times:
|
||||||
|
set {skybattle::team%loop-number%::name} to {_team%loop-number%}
|
||||||
|
|
||||||
|
|
||||||
|
on death of player: # victim, attacker
|
||||||
|
add victim's uuid to {skybattle::deadplayers::*}
|
||||||
|
launch ball large coloured yellow fading to light green and black at victim's location with duration 0
|
||||||
|
remove victim from {skybattle::%team of victim%::alive_players}
|
||||||
|
set {skybattle::%team of victim%::alive_players_num} to {skybattle::%team of victim%::alive_number} - 1
|
||||||
|
set {skybattle::%team of attacker%::kills} to {skybattle::%team of attacker%::kills} + 1
|
||||||
|
|
||||||
|
set {skybattle::%attacker's uuid%::kills} to {skybattle::%attacker's uuid%::kills} + 1
|
||||||
|
add victim to {skybattle::%attacker's uuid%::kills_names}
|
||||||
|
|
||||||
|
set {skybattle::%victim's uuid%::deaths'} to {skybattle::%victim's uuid%::deaths'} + 1
|
||||||
|
|
||||||
|
if {skybattle::%team of victim%::alive_players_num} is 0:
|
||||||
|
set {skybattle::teams_alive_num} to {skybattle::teams_alive_num} - 1
|
||||||
|
remove team of victim from {skybattle::teams_alive::*}
|
||||||
|
|
||||||
|
on respawn:
|
||||||
|
if {skybattle::deadplayers::*} contains player's uuid:
|
||||||
|
clear player's inventory
|
||||||
|
set player's gamemode to spectator
|
||||||
|
teleport player to {skybattle::arena%{skybattle::current_arena}%::spectatorlocation}
|
||||||
|
wait 20 ticks
|
||||||
|
set player's gamemode to adventure
|
||||||
|
set player's gamemode to spectator
|
||||||
|
execute console command "/scoreboard players add @a[gamemode=survival] Survivalgames 1"
|
||||||
|
|
||||||
|
on player move:
|
||||||
|
if {skybattle::stop_players} is "True":
|
||||||
|
if {skybattle::gaming_players::*} contains player:
|
||||||
|
cancel event
|
||||||
|
|
||||||
|
on food bar change:
|
||||||
|
cancel event
|
|
@ -9,6 +9,9 @@
|
||||||
# skybattle::deadplayers::* - stores all dead players in current round [list of players]
|
# skybattle::deadplayers::* - stores all dead players in current round [list of players]
|
||||||
# skybattle::introlocation - stores intro location [coords] ! must have barrier to stand on !
|
# skybattle::introlocation - stores intro location [coords] ! must have barrier to stand on !
|
||||||
# skybattle::lobbylocation - stores location of lobby [coords]
|
# skybattle::lobbylocation - stores location of lobby [coords]
|
||||||
|
# skybattle::timer - stores timer [int]
|
||||||
|
# skybattle::teams_alive::* - stores list of teams that are alive
|
||||||
|
# skybattle::teams_alive_num - stores number of teams that are alive
|
||||||
|
|
||||||
# skybattle::current_arena - stores current round/arena [1-3]
|
# skybattle::current_arena - stores current round/arena [1-3]
|
||||||
|
|
||||||
|
@ -21,18 +24,19 @@
|
||||||
|
|
||||||
# ---------------- Variables specific for each team ----------------
|
# ---------------- Variables specific for each team ----------------
|
||||||
|
|
||||||
# skybattle::team[1-10]:: - folders for all variables specific to each team (list of players, etc.)
|
# skybattle::IDList[1-10]:: - folders for all variables specific to each team (list of players, etc.)
|
||||||
# skybattle::team[1-10]::players - stores every player from team [list of players] - probably implemented on minigame startup
|
# skybattle::IDList[1-10]::players - stores every player from team [list of players] - probably implemented on minigame startup
|
||||||
#! skybattle::team[1-10]::alive_players - list of players alive
|
# skybattle::IDList[1-10]::alive_players - list of players alive
|
||||||
#! skybattle::team[1-10]::alive_number - number of players alive in team [int]
|
#! skybattle::IDList[1-10]::alive_number - number of players alive in team [int]
|
||||||
#! skybattle::team[1-10]::kills - number of kills of the whole team [int]
|
#! skybattle::IDList[1-10]::kills - number of kills of the whole team [int]
|
||||||
|
|
||||||
# ---------------- Variables specific for each player ----------------
|
# ---------------- Variables specific for each player ----------------
|
||||||
|
|
||||||
# skybattle::players::[player_uuid]:: - folder for all variables specific to players (kills, deaths, etc.)
|
# skybattle::players::[player_uuid]:: - folder for all variables specific to players (kills, deaths, etc.)
|
||||||
#! skybattle::players::[player_uuid]::kills_number - number of kills of a player [int]
|
# skybattle::players::[player_uuid]::team - team that the player belongs to
|
||||||
#! skybattle::players::[player_uuid]::deaths - number of deaths of a player
|
# skybattle::players::[player_uuid]::kills_number - number of kills of a player [int]
|
||||||
#! skybattle::players::[player_uuid]::kills_names - names of players killed
|
# skybattle::players::[player_uuid]::deaths - number of deaths of a player
|
||||||
|
# skybattle::players::[player_uuid]::kills_names - names of players killed
|
||||||
#! skybattle::players::[player_uuid]::survived_count - place at which you survived
|
#! skybattle::players::[player_uuid]::survived_count - place at which you survived
|
||||||
#! skybattle::players::[player_uuid]::survived_multiplier - inverted count = 40th place -> multiplier 1x
|
#! skybattle::players::[player_uuid]::survived_multiplier - inverted count = 40th place -> multiplier 1x
|
||||||
|
|
||||||
|
@ -47,11 +51,14 @@ command /minigame_skybattle_start:
|
||||||
permission: skript.op
|
permission: skript.op
|
||||||
trigger:
|
trigger:
|
||||||
#execute console command "/gamerule doImmediateRespawn true"
|
#execute console command "/gamerule doImmediateRespawn true"
|
||||||
|
set {skybattle::time} to 120
|
||||||
clear {skybattle::gaming_players::*}
|
clear {skybattle::gaming_players::*}
|
||||||
loop 10 times:
|
loop 10 times:
|
||||||
loop entries of team "IDList%loop-number%":
|
loop entries of team "IDList%loop-number%":
|
||||||
add loop-value2 to {skybattle::gaming_players::*}
|
add loop-value2 to {skybattle::gaming_players::*}
|
||||||
add loop-value2 to {skybattle::team%%loop-number::players::*}
|
add loop-value2 to {skybattle::IDList%loop-number%::players::*}
|
||||||
|
|
||||||
|
set {skybattle::players::%loop-value2's uuid%::team} to "IDList%loop-number2%"
|
||||||
broadcast "Načítám minihru Oblačný Souboj"
|
broadcast "Načítám minihru Oblačný Souboj"
|
||||||
send title "§2Oblačný Souboj" to all players
|
send title "§2Oblačný Souboj" to all players
|
||||||
set {skybattle::game_status} to "init"
|
set {skybattle::game_status} to "init"
|
||||||
|
@ -78,7 +85,73 @@ command /minigame_skybattle_start:
|
||||||
resetplayers()
|
resetplayers()
|
||||||
resetteams()
|
resetteams()
|
||||||
|
|
||||||
set {skybattle::current_arena} to 1
|
set {skybattle::current_arena} to 0
|
||||||
|
clear inventory of {skybattle::gaming_players::*}
|
||||||
|
|
||||||
|
set {skybattle::game_status} to "next"
|
||||||
|
|
||||||
|
if {skybattle::game_status} is "next":
|
||||||
|
loop 10 times:
|
||||||
|
clear {skybattle::IDList%loop-number%::alive_players::*}
|
||||||
|
set {skybattle::IDList%loop-number%::alive_number} to 4
|
||||||
|
loop entries of team "IDList%loop-number%":
|
||||||
|
add loop-value2 to {skybattle::IDList%loop-number%::alive_players::*}
|
||||||
|
|
||||||
|
set {skybattle::current_arena} to {skybattle::current_arena} + 1
|
||||||
|
set {skybattle::teams_alive_num} to 10
|
||||||
|
reset_teams_alive()
|
||||||
|
|
||||||
|
if {skybattle::current_arena} is 1:
|
||||||
|
set {skybattle::stop_players} to "True"
|
||||||
|
|
||||||
|
if {skybattle::current_arena} is 2:
|
||||||
|
set {skybattle::stop_players} to "True"
|
||||||
|
|
||||||
|
if {skybattle::current_arena} is 3:
|
||||||
|
set {skybattle::stop_players} to "True"
|
||||||
|
|
||||||
|
if {skybattle::current_arena} is 4:
|
||||||
|
|
||||||
|
else: # starting loop - stuff like countdowns etc...
|
||||||
|
send title "§c§l%{skybattle::current_arena}%. KOLO" to all players
|
||||||
|
wait 5 seconds
|
||||||
|
send title "§c§l%{skybattle::current_arena}%. KOLO" with subtitle "3" to all players
|
||||||
|
play sound "custom.cas" at volume 50 to all players
|
||||||
|
wait 1 second
|
||||||
|
send title "§c§l%{skybattle::current_arena}%. KOLO" with subtitle "2" to all players
|
||||||
|
play sound "custom.cas" at volume 50 to all players
|
||||||
|
wait 1 second
|
||||||
|
send title "§c§l%{skybattle::current_arena}%. KOLO" with subtitle "1" to all players
|
||||||
|
play sound "custom.cas" at volume 50 to all players
|
||||||
|
wait 1 second
|
||||||
|
send title "GO" with subtitle "" to all players
|
||||||
|
play sound "custom.cas2" at volume 50 to all players
|
||||||
|
|
||||||
|
set {skybattle::stop_players} to "False"
|
||||||
|
|
||||||
|
set {skybattle::timer} to {skybattle::time}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if {skybattle::game_status} is "playing":
|
||||||
|
send action bar "§4§lČas: §7%{skybattle::timer}%" to all players
|
||||||
|
set {skybattle::timer} to {skybattle::timer} -1
|
||||||
|
wait 1 second
|
||||||
|
|
||||||
|
|
||||||
|
if {skybattle::timer} is 0:
|
||||||
|
send title "§c§lDošel čas!" to all players
|
||||||
|
set {skybattle::gaming_players::*}'s gamemode to spectator
|
||||||
|
|
||||||
|
set {skybattle::game_status} to "next"
|
||||||
|
|
||||||
|
wait 5 seconds
|
||||||
|
|
||||||
|
if {skybattle::teams_alive_num} is 1:
|
||||||
|
send title "Vyhrál team %{skybattle::teams_alive::*}%" to all players
|
||||||
|
|
||||||
|
if {skybattle::teams_alive_num} is 0:
|
||||||
|
send title "Tak prej nevyhrál nikdo lul :D" to all players
|
||||||
|
|
||||||
|
|
||||||
if {skybattle::game_status} is "end":
|
if {skybattle::game_status} is "end":
|
||||||
|
@ -185,10 +258,51 @@ function resetteams():
|
||||||
function resetplayers():
|
function resetplayers():
|
||||||
clear {skybattle::players::*}
|
clear {skybattle::players::*}
|
||||||
|
|
||||||
|
function reset_teams_alive():
|
||||||
|
clear {skybattle::teams_alive::*}
|
||||||
|
set {_team1} to "Karmínová"
|
||||||
|
set {_team2} to "Jantarová"
|
||||||
|
set {_team3} to "Krémová"
|
||||||
|
set {_team4} to "Limetková"
|
||||||
|
set {_team5} to "Smaragdová"
|
||||||
|
set {_team6} to "Azurová"
|
||||||
|
set {_team7} to "Blankytná"
|
||||||
|
set {_team8} to "Nebeská"
|
||||||
|
set {_team9} to "Nachová"
|
||||||
|
set {_team10} to "Švestková"
|
||||||
|
loop 10 times:
|
||||||
|
add {_team%loop-number%} to {skybattle::teams_alive::*}
|
||||||
|
|
||||||
|
function init_team_names():
|
||||||
|
set {_team1} to "Karmínová"
|
||||||
|
set {_team2} to "Jantarová"
|
||||||
|
set {_team3} to "Krémová"
|
||||||
|
set {_team4} to "Limetková"
|
||||||
|
set {_team5} to "Smaragdová"
|
||||||
|
set {_team6} to "Azurová"
|
||||||
|
set {_team7} to "Blankytná"
|
||||||
|
set {_team8} to "Nebeská"
|
||||||
|
set {_team9} to "Nachová"
|
||||||
|
set {_team10} to "Švestková"
|
||||||
|
loop 10 times:
|
||||||
|
set {skybattle::team%loop-number%::name} to {_team%loop-number%}
|
||||||
|
|
||||||
|
|
||||||
on death of player: # victim, attacker
|
on death of player: # victim, attacker
|
||||||
add victim's uuid to {skybattle::deadplayers::*}
|
add victim's uuid to {skybattle::deadplayers::*}
|
||||||
launch ball large coloured yellow fading to light green and black at victim's location with duration 0
|
launch ball large coloured yellow fading to light green and black at victim's location with duration 0
|
||||||
|
remove victim from {skybattle::%team of victim%::alive_players}
|
||||||
|
set {skybattle::%team of victim%::alive_number} to {skybattle::%team of victim%::alive_number} - 1
|
||||||
|
set {skybattle::%team of attacker%::kills} to {skybattle::%team of attacker%::kills} + 1
|
||||||
|
|
||||||
|
set {skybattle::%attacker's uuid%::kills} to {skybattle::%attacker's uuid%::kills} + 1
|
||||||
|
add victim to {skybattle::%attacker's uuid%::kills_names}
|
||||||
|
|
||||||
|
set {skybattle::%victim's uuid%::deaths'} to {skybattle::%victim's uuid%::deaths'} + 1
|
||||||
|
|
||||||
|
if {skybattle::%team of victim%::alive_number} is 0:
|
||||||
|
set {skybattle::teams_alive_num} to {skybattle::teams_alive_num} - 1
|
||||||
|
remove team of victim from {skybattle::teams_alive::*}
|
||||||
|
|
||||||
on respawn:
|
on respawn:
|
||||||
if {skybattle::deadplayers::*} contains player's uuid:
|
if {skybattle::deadplayers::*} contains player's uuid:
|
||||||
|
|
Loading…
Reference in New Issue