Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Problem z niedziałającym skryptem na MiniGames


ironer

Rekomendowane odpowiedzi

Opublikowano

Witam!


Mam pewnie problem. Polega on na tym, że mam skrypt na minigrę skywars. Skrypt nie jest autorski, został napisany przez znanego " skrypciarza ". Problem polega na wyjściu z areny. Oczywiście jeśli gracz wpisze komende /sw leave lub /lobby wychodzi z areny normalnie. Lecz gdy już wyjdzie całkiem z minecrafta, skrypt zachowuje się tak jakby ten gracz cały czas był w grze.


Liczę na szybkie i cenne rady dla mnie :)


 


Komenda /sw leave:



if arg 1 is "leave":
if {skywars::gracz::%player%::dolacz} is true:
if {skywars::gracz::%player%::invite} is true:
set {skywars::gracz::%player%::invite} to false
remove 1 from {skywars::invite::%{skywars::gracz::%player%::arena}%}
display board named "" to player
clear player's inventory
restore inventory of player from {skywars::gracz::%player%::eq}
set {skywars::gracz::%player%::dolacz} to false
teleport player to {spawn}
clear player's inventory
give 1 clock named "&c&lTeleporter" to the player's inventory
set level of player to 0
loop {skywars::gracze::%{skywars::gracz::%player%::arena}%::*}:
set {_num} to (size of {skywars::gracze::%{skywars::gracz::%player%::arena}%::*}) - 1
send "{@prefix} &7Gracz &6%player% &7opuscil gre. &8[&e%{_num}%&8/&6%{skywars::arena::minimumplayers::%{skywars::gracz::%player%::arena}%}%&8]" to loop-value
remove player from {skywars::gracze::%{skywars::gracz::%player%::arena}%::*}
if {skywars::status::%{skywars::gracz::%player%::arena}%} is "w trakcie":
if (size of {skywars::gracze::%{skywars::gracz::%player%::arena}%::*}) = 1:
loop {skywars::gracze::%{skywars::gracz::%player%::arena}%::*}:
clear loop-value's inventory
loop entities in radius 100 around loop-value:
clear dropped items
restore inventory of loop-value from {skywars::gracz::%player%::eq}
add 1 to {skywars::gracz::win::%loop-value%}
loop 10 times:
wait 5 tick
launch flickering trailing ball firework colored green at loop-value timed 1
set level of loop-value to 0
set {skywars::gracz::%loop-value%::dolacz} to false
broadcast "{@prefix} &7Gracz &6%loop-value% &7wygral na arenie &6%{skywars::gracz::%loop-value%::arena}% &7!"
add {@ add} to {skywars::gracz::pkt::%loop-value%}
send "{@prefix} &7Wygrales! &8[&7+&6{@ add} pkt&8]" to loop-value
if {skywars::gracz::%loop-value%::invite} is true:
set {skywars::gracz::%loop-value%::invite} to false
remove 1 from {skywars::invite::%{skywars::gracz::%loop-value%::arena}%}
wait 5 seconds
loop {skywars::gracze::%{skywars::gracz::%player%::arena}%::*}:
teleport loop-value to {spawn}
display board named "" to loop-value
set {skywars::status::%{skywars::gracz::%player%::arena}%} to "niedostepna"
set {skywars::timeout::%{skywars::gracz::%player%::arena}%} to 0
clear {skywars::gracze::%{skywars::gracz::%player%::arena}%::*}
loop {skywars::rebuild::location::%{skywars::gracz::%player%::arena}%::*}:
set block at loop-value to {skywars::rebuild::type::%{skywars::gracz::%player%::arena}%::%loop-index%}
wait 2 tick
delete {skywars::rebuild::type::%{skywars::gracz::%player%::arena}%::*}
delete {skywars::rebuild::location::%{skywars::gracz::%player%::arena}%::*}
set {skywars::status::%{skywars::gracz::%player%::arena}%} to "oczekuje"
else:
send "&8> &7Nie jestes na zadnej arenie."

 Event "on quit" (Mam jeszcze również event on disconnect, wygląda tak samo):



on quit:
if {skywars::gracz::%player%::dolacz} is true:
if player has permission "essentials.build":
if player has permission "essentials.msg":
if {skywars::gracz::%player%::invite} is true:
set {skywars::gracz::%player%::invite} to false
remove 1 from {skywars::invite::%{skywars::gracz::%player%::arena}%}
display board named "" to player
clear player's inventory
restore inventory of player from {skywars::gracz::%player%::eq}
set {skywars::gracz::%player%::dolacz} to false
teleport player to {spawn}
set level of player to 0
loop {skywars::gracze::%{skywars::gracz::%player%::arena}%::*}:
set {_num} to (size of {skywars::gracze::%{skywars::gracz::%player%::arena}%::*}) - 1
send "{@prefix} &7Gracz &6%player% &7opuscil gre. &8[&e%{_num}%&8/&6%{skywars::arena::minimumplayers::%{skywars::gracz::%player%::arena}%}%&8]" to loop-value
remove player from {skywars::gracze::%{skywars::gracz::%player%::arena}%::*}
if {skywars::status::%{skywars::gracz::%player%::arena}%} is "w trakcie":
if (size of {skywars::gracze::%{skywars::gracz::%player%::arena}%::*}) = 1:
loop {skywars::gracze::%{skywars::gracz::%player%::arena}%::*}:
clear loop-value's inventory
loop entities in radius 100 around loop-value:
clear dropped items
restore inventory of loop-value from {skywars::gracz::%player%::eq}
add 1 to {skywars::gracz::win::%loop-value%}
loop 10 times:
wait 5 tick
launch flickering trailing ball firework colored green at loop-value timed 1
set level of loop-value to 0
set {skywars::gracz::%loop-value%::dolacz} to false
broadcast "{@prefix} &7Gracz &6%loop-value% &7wygral na arenie &6%{skywars::gracz::%loop-value%::arena}% &7!"
add {@ add} to {skywars::gracz::pkt::%loop-value%}
send "{@prefix} &7Wygrales! &8[&7+&6{@ add} pkt&8]" to loop-value
if {skywars::gracz::%loop-value%::invite} is true:
set {skywars::gracz::%loop-value%::invite} to false
remove 1 from {skywars::invite::%{skywars::gracz::%loop-value%::arena}%}
wait 5 seconds
loop {skywars::gracze::%{skywars::gracz::%player%::arena}%::*}:
teleport loop-value to {spawn}
display board named "" to loop-value
set {skywars::status::%{skywars::gracz::%player%::arena}%} to "niedostepna"
set {skywars::timeout::%{skywars::gracz::%player%::arena}%} to 0
clear {skywars::gracze::%{skywars::gracz::%player%::arena}%::*}
loop {skywars::rebuild::location::%{skywars::gracz::%player%::arena}%::*}:
set block at loop-value to {skywars::rebuild::type::%{skywars::gracz::%player%::arena}%::%loop-index%}
wait 2 tick
delete {skywars::rebuild::type::%{skywars::gracz::%player%::arena}%::*}
delete {skywars::rebuild::location::%{skywars::gracz::%player%::arena}%::*}
set {skywars::status::%{skywars::gracz::%player%::arena}%} to "oczekuje"

Opublikowano

sprawdź opcję z dodanie czegoś na  styl {gra_%player%}

I podczas wejścia na arenę ustawiasz na true a po disconnect albo leave na false.

 

Przy wchodzeniu sprawdzasz czy gracz ma true jeżeli tak to ustawiasz na false i dajesz teleportację na spawn

 

Nie mam całego skryptu więc tak:

 

on join {jakaś area}:

    set {gra_%player%} to true

    reszta kodu

 

 

on leave (przez komendę):

    set {gra_%player%} to false

 

 

 

on join: (dołączenie do servera)

     if {gra_%player%} is true:

          set{gra_%player%} to false

          execute console command "spawn %player%"

 

I graczy an arenie sprawdzaj options'em {gra_%player%}

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...