Skocz do zawartości
  • 0

Loop player jako grupa.


Nieaktywny

Pytanie

Głowa mnie nakutwia i mam taki kodzik:

 

Spoiler

command /evo-auto-ox-nie:
    permission: Admin.ox.sk
    trigger:
        broadcast "&d[EvoCraft] &e&oPrawidlowa odpowiedz&8:&c&o NIE"
        loop all players:
            set {_range} to the distance between the location at {event::auto::ox} and location at loop-player
            if {_range} <= 30:
                set {ev::ox::ilosc::*} to loop-player
                if loop-player is in region "eot" parsed as region:
                    teleport the loop-player to {event::auto::ox::widownia}
                    send "&d[EvoCraft] &cPrzegrales!" to loop-player
                    remove loop-player from {ev::ox::ilosc::*}
                if loop-player is in region "eos" parsed as region:
                    teleport the loop-player to {event::auto::ox::widownia}
                    send "&d[EvoCraft] &cPrzegrales!" to loop-player
                    remove loop-player from {ev::ox::ilosc::*}
                if loop-player is in region "eon" parsed as region:
                    set {_reszta} to size of {ev::ox::ilosc::*}
                    send "&d[EvoCraft] &bOdpowiedziales dobrze!" to loop-player
                    if {_reszta} is equal to 1:
                        set {evo-auto-ox-tura} to 0
                        broadcast "&d[EvoCraft] &b&l%loop-player% &c&lwygral event ox! Gratulacje! Nastepny event znowu jutro!"
                        execute loop-player command "spawn"
                    if {_reszta} is not set:
                        set {evo-auto-ox-tura} to 0
                        broadcast "&d[EvoCraft] &c&lNikt nie wygral eventu! Eventy sa codziennie o tej samej godzinnie! Powodzenia nastepnym razem!"
                    if {_reszta} is equal to 0:
                        set {evo-auto-ox-tura} to 0
                        broadcast "&d[EvoCraft] &c&lNikt nie wygral eventu! Eventy sa codziennie o tej samej godzinnie! Powodzenia nastepnym razem!"
                    if {evo-auto-ox-tura} is more than or equal to 15:
                        set {evo-auto-ox-tura} to 0
                        broadcast "&d[EvoCraft] &b&l%loop-player% &c&lwygrali event ox!"
                        execute loop-player command "spawn"
                        stop
                    if {_reszta} is more than or equal to 2:
                        wait 2 second
                        broadcast "&d[EvoCraft] &aZa 10 sekund nastepne pytanie!"
                        wait 11 second
                        execute console command "evo-auto-ox-pytanie"
                else:
                    set {evo-auto-ox-tura} to 0
                    broadcast "&d[EvoCraft] &c&lNikt nie wygral eventu! Eventy sa codziennie o tej samej godzinnie! Powodzenia nastepnym razem!"
                    stop

 

Jak zrobić, aby ci co stoją na "eon" byli sprawdzani raz, a nie każdy osobno jako player przez co wykonuje się to inwidualnie dla każdego.

Czyli np jest 5 osób ale zamiast sprawdzać raz to sprawdza 5 razy dla każdej osoby z loop-player

Dorobiłem zmienną {ev::ox::ilosc::*} aby było jak raz grupa, ale głowa mi już nie myśli i na tym stanąłem.

Oraz jeszcze jedna rzecz... jak nie ma osób to nie działa ani is not set ani equal to 0. Nic z tych się nie uaktywnia. Uaktywnia się tylko equal to 1 (dla każdego osobno).

Dobra bo piszę już jak naćpany tak mi się miesza w głowie.

Pomożecie ? :) (To jest fragment kodu na którym występuje błąd) Daje naj i repa ;p

 

Edytowane przez Nieaktywny
Odnośnik do komentarza
https://skript.pl/temat/17804-loop-player-jako-grupa/
Udostępnij na innych stronach

3 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 0

Słuchaj, gdyby się tak dało w Javie zrobić (rzecz jasna za pomocą instrukcji for), to chętnie. Pętle (foreach w tym wypadku) polegają na tym, że na każdym elemencie z kolekcji (lub z mapki, kolejki, stosu, czy cholera wie czego) wykonujemy dane polecenie. I de facto reasumując - nie zapętlisz kilka elementów na raz. Musisz niestety każdy element z listy zapętlić, i na nim osobno wykonać polecenie.

Odnośnik do komentarza
https://skript.pl/temat/17804-loop-player-jako-grupa/#findComment-121869
Udostępnij na innych stronach

  • 0
23 minuty temu, Wizzard napisał:

Słuchaj, gdyby się tak dało w Javie zrobić (rzecz jasna za pomocą instrukcji for), to chętnie. Pętle (foreach w tym wypadku) polegają na tym, że na każdym elemencie z kolekcji (lub z mapki, kolejki, stosu, czy cholera wie czego) wykonujemy dane polecenie. I de facto reasumując - nie zapętlisz kilka elementów na raz. Musisz niestety każdy element z listy zapętlić, i na nim osobno wykonać polecenie.

Jutro po testach może trzeźwo pomyśle. Bo opracowałem już część, ale nadal zostało trochę roboty (<--- Coś się zaimprowizuje). Nawet jak próbuję wyświetlić zmienną grupową bez stopki to źle coś pokazuje. Chyba muszę się poduczyć Javy skoro skrypt ma problem z porozumieniem tego takowych rzeczy.

Temat do zamknięcia.

Edytowane przez Nieaktywny
Odnośnik do komentarza
https://skript.pl/temat/17804-loop-player-jako-grupa/#findComment-121871
Udostępnij na innych stronach

Nieaktywny
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...