options: gameName: poKolei function kGame_poKolei_reloadYaml(t: text="") :: boolean: set {_path} to kGame_getPath("kGame_PoKolei", "mainInventory") set {_nodes::*} to yaml nodes "inventory" from {_path} loop {_nodes::*}: if "%loop-value%" is not "name" or "rows": set {_nodes.%loop-value%::*} to yaml nodes "inventory.%loop-value%" from {_path} loop {_nodes.%loop-value%::*}: if "%loop-value-2%" is not "exit" or "options": set {_nodes2.%loop-value-2%::*} to yaml nodes "inventory.%loop-value-1%.%loop-value-2%" from {_path} loop {_nodes2.%loop-value-2%::*}: set {kGame::{@gameName}::inventory::%loop-value-1%::%loop-value-2%::%loop-value-3%} to yaml value "inventory.%loop-value-1%.%loop-value-2%.%loop-value-3%" from {_path} else: set {kGame::{@gameName}::inventory::%loop-value-1%::%loop-value-2%} to yaml value "inventory.%loop-value-1%.%loop-value-2%" from {_path} return true on script load: kGame_registerGame("{@gameName}", 13, (5 of rail named "&6Po kolei" with lore "&7Uloz liczby od najmniejszej do najwiekszej." and "&7Klikniety przedmiot przechodzi w puste miejsce.")) set {_path} to kGame_getPath("kGame_PoKolei", "mainInventory") if yaml value "inventory.slot.poKolei.3" from {_path} is not set: set yaml value "inventory.name" from {_path} to "&9Po kolei" set yaml value "inventory.rows" from {_path} to 3 set yaml value "inventory.slot.poKolei.1" from {_path} to 2 set yaml value "inventory.item.poKolei.1" from {_path} to "1 of rail named ""&7Rozpocznij gre &8(&eAmator&8)"" with lore ""&7Liczba kolumn: &61""" set yaml value "inventory.slot.poKolei.2" from {_path} to 4 set yaml value "inventory.item.poKolei.2" from {_path} to "2 of rail named ""&7Rozpocznij gre &8(&ePoczatkujacy&8)"" with lore ""&7Liczba kolumn: &62""" set yaml value "inventory.slot.poKolei.3" from {_path} to 6 set yaml value "inventory.item.poKolei.3" from {_path} to "3 of rail named ""&7Rozpocznij gre &8(&eLatwy&8)"" with lore ""&7Liczba kolumn: &63""" set yaml value "inventory.slot.poKolei.4" from {_path} to 12 set yaml value "inventory.item.poKolei.4" from {_path} to "4 of rail named ""&7Rozpocznij gre &8(&eSredni&8)"" with lore ""&7Liczba kolumn: &64""" set yaml value "inventory.slot.poKolei.5" from {_path} to 14 set yaml value "inventory.item.poKolei.5" from {_path} to "5 of rail named ""&7Rozpocznij gre &8(&eTrudny&8)"" with lore ""&7Liczba kolumn: &65""" set yaml value "inventory.slot.poKolei.6" from {_path} to 22 set yaml value "inventory.item.poKolei.6" from {_path} to "6 of rail named ""&7Rozpocznij gre &8(&eExpert&8)"" with lore ""&7Liczba kolumn: &66""" set yaml value "inventory.item.exit" from {_path} to "iron door named ""&6Powrot do gier""" set yaml value "inventory.slot.exit" from {_path} to 26 set yaml value "inventory.item.options" from {_path} to "lever named ""&6&lUstawienia"" with lore ""&fBlokowanie miejsc: |replaceBoolean|""" set yaml value "inventory.slot.options" from {_path} to 18 kGame_stats_registerGame("{@gameName}.1", 2, (1 of rail named "&6PoKolei &8(&eAmator&8)")) kGame_stats_registerGame("{@gameName}.2", 4, (2 of rail named "&6PoKolei &8(&ePoczatkujacy&8)")) kGame_stats_registerGame("{@gameName}.3", 6, (3 of rail named "&6PoKolei &8(&eLatwy&8)")) kGame_stats_registerGame("{@gameName}.4", 12, (4 of rail named "&6PoKolei &8(&eSredni&8)")) kGame_stats_registerGame("{@gameName}.5", 14, (5 of rail named "&6PoKolei &8(&eTrudny&8)")) kGame_stats_registerGame("{@gameName}.6", 22, (6 of rail named "&6PoKolei &8(&eExpert&8)")) kGame_stats_setLore("{@gameName}", "&fRozegrane gry: &e{played}||&fWygrane gry: &e{wins}||&fNajmniejsza ilosc ruchow: &e{count}||&fNajszybszy czas: &e{time}||*top4:{count};&cTop 4 wedlug ilosci ruchow:*") kGame_poKolei_reloadYaml() on script unload: kGame_unregisterGame("{@gameName}") function kGame_poKolei_getInventory(p: player) :: inventory: if {kGame::pokolei::%{_p}%::blockItem} is not set: set {kGame::pokolei::%{_p}%::blockItem} to true set {_path} to kGame_getPath("kGame_PoKolei", "mainInventory") set {_rows} to yaml value "inventory.rows" from {_path} set {_name} to yaml value "inventory.name" from {_path} set {_x} to chest with {_rows} rows named coloured {_name} set {_empty} to kGame_getItemFromText({kGame::mainInventory::inventory::item::empty}) loop {_rows}*9 times: set slot (loop-number) - 1 of {_x} to {_empty} loop {kGame::pokolei::inventory::slot::pokolei::*}: if "%loop-value%" is not "-1": set slot ("%loop-value%") parsed as integer of {_x} to kGame_getItemFromText({kGame::pokolei::inventory::item::pokolei::%loop-index%}) set slot "%{kGame::pokolei::inventory::slot::exit}%" parsed as integer of {_x} to kGame_getItemFromText({kGame::pokolei::inventory::item::exit}) set {_it} to kGame_getItemFromText({kGame::pokolei::inventory::item::options}) if {kGame::pokolei::%{_p}%::blockItem} is true: replace all "|replaceBoolean|" with "&aTak" in lore of {_it} if {kGame::pokolei::%{_p}%::blockItem} is false: replace all "|replaceBoolean|" with "&cNie" in lore of {_it} set slot "%{kGame::pokolei::inventory::slot::options}%" parsed as integer of {_x} to {_it} return {_x} function kGame_PoKolei_getInventoryGame(rows: integer, p: player) :: inventory: kGame_stats_playGame("{@gameName}.%{_rows}%", {_p}) set {_x} to chest with {_rows} rows named "&9Po kolei &8(&e%{_rows}%&8)" loop 9*{_rows} times: loop 1000 times: set {_rand} to random integer between 1 and 9*{_rows}-1 set {_v} to {_rand}-1 if {_item::%{_v}%} is not set: set {_item::%{_v}%} to loop-number-1 exit loop loop {_item::*}: set slot loop-index parsed as integer of {_x} to ("%loop-value%") parsed as integer of rail named "&6%loop-value%" with lore "&7Ten przedmiot musi byc na miejscu &6%loop-value%" set {kGame::{@gameName}::%{_p}%::empty} to 9*{_rows}-1 set {kGame::{@gameName}.%{_rows}%::%{_p}%::count} to 0 set {kGame::{@gameName}.%{_rows}%::%{_p}%::time} to now return {_x} function kGame_PoKolei_checkWin(p: player) :: boolean: set {_r} to {_p}'s current inventory's inventory row loop {_r}*9-1 times: if uncoloured name of slot (loop-number)-1 of {_p}'s current inventory is not "%loop-number%": return false return true on inventory click: if name of player's current inventory is "&9Po kolei": if index of clicked slot is smaller than 0: stop cancel event if slot (index of clicked slot) of player's current inventory is gray glass: stop loop {kGame::{@gameName}::inventory::slot::pokolei::*}: if loop-value is clicked slot: set {_l} to loop-index parsed as integer exit loop if {_l} is not set: if clicked slot is {kGame::{@gameName}::inventory::slot::exit}: close player's inventory wait 2 tick open kGame_getInventory(player) to player stop if clicked slot is {kGame::{@gameName}::inventory::slot::options}: set {_lore::*} to lore of player's current inventory's slot (index of clicked slot) if last 3 characters of {_lore::*} is "tak": set {kGame::{@gameName}::%player%::blockItem} to false else: set {kGame::{@gameName}::%player%::blockItem} to true set {_it} to kGame_getItemFromText({kGame::pokolei::inventory::item::options}) if {kGame::pokolei::%player%::blockItem} is true: replace all "|replaceBoolean|" with "&aTak" in lore of {_it} if {kGame::pokolei::%player%::blockItem} is false: replace all "|replaceBoolean|" with "&cNie" in lore of {_it} set player's current inventory's slot index of clicked slot to {_it} stop close player's inventory wait 2 tick open kGame_PoKolei_getInventoryGame({_l}, player) to player stop if name of player's current inventory contains "&9Po kolei &8(": if clicked slot is smaller than 0: stop cancel event if {kGame::{@gameName}::%player%::empty} is not set: stop set {_it} to slot index of clicked slot of player's current inventory if {_it} is air: stop if type of {_it} is type of powered rail: stop #Przestawianie itemow set {_r} to player's current inventory's inventory row add 1 to {kGame::{@gameName}.%{_r}%::%player%::count} if {kGame::{@gameName}::%player%::blockItem} is true: if uncoloured name of player's current inventory's slot index of clicked slot is "%{kGame::{@gameName}::%player%::empty}+1%": set slot {kGame::{@gameName}::%player%::empty} of player's current inventory to (item stack amount of {_it}) of powered rail named (name of {_it}) with lore (lore of {_it}) else: set {_t} to true else: set {_t} to true if {_t}: set slot {kGame::{@gameName}::%player%::empty} of player's current inventory to {_it} set slot index of clicked slot of player's current inventory to air set {kGame::{@gameName}::%player%::empty} to index of clicked slot if kGame_PoKolei_checkWin(player) is true: clear {kGame::{@gameName}::%player%::empty} set {_time} to difference between now and {kGame::{@gameName}.%{_r}%::%player%::time} send "&8[&7k&fGame&8] &aWygrales!%nl%&7Liczba ruchow: &3%{kGame::{@gameName}.%{_r}%::%player%::count}%" and "&8Czas: &7%kGame_getTime({_time})%" kGame_stats_update("{@gameName}.%{_r}%", player, "count", {kGame::{@gameName}.%{_r}%::%player%::count}) kGame_stats_update("{@gameName}.%{_r}%", player, "time", {_time}) kGame_stats_add("{@gameName}.%{_r}%", player, "wins") set {_its::*} to diamond, iron ingot, gold ingot and emerald loop {_r}*9 times: set slot (loop-number)-1 of player's current inventory to ("%random item out of {_its::*}% of fortune 3" parsed as item type) named "&6Wygrales!!" with lore "&6Liczba ruchow: &c%{kGame::{@gameName}.%{_r}%::%player%::count}%" wait 4 seconds close player's inventory wait 2 tick open kGame_poKolei_getInventory(player) to player