Skocz do zawartości

Ranking

Popularna zawartość

Treść z najwyższą reputacją w 02/13/21 uwzględniając wszystkie działy

  1. Właśnie odpisałem w temacie SkyWars - Obszar bogaty post na temat jak zrobić regenerację światów. Myślę, że może się to przydać wielu osobom. Omówię tutaj dwa znane rozwiązania regeneracji, oraz podam nowy - najlepszy. Będę podawać referencję do kodu mojego pluginu Arcade2, ponieważ tam właśnie taki system "regeneracji" istnieje. Zapis zmiany stanu bloków - BŁĄD! Przy słowie "regeneracja" rozumiemy przede wszystkim powrót stanu bloków do takiego, jakie były w punkcje pierwotnym. Pierwsze rozwiązanie takiego problemu przychodzi nam rejestracja zmiany stanu wszystkich bloków. Stawiamy dirt? Informujemy, że na koordynatach X, Y oraz Z nowy blok to dirt. Na pierwszy rzut oka może się to wydawać działające, ale to nie prawda. Nigdy nie ma pewności, że wszystkie bloki zostaną zregenerowane, dodatkowo taki zapis brudzi tylko naszą pamięć RAM (jeżeli mam to robić in-memory). Musielibyśmy nasłuchiwać każdą jedną możliwą zmianę bloku w serwerze oraz ją rejestrować. Drugi problem z tego się rodzi - kiedy i jak to zregenerować? Moc obliczeniowa do wykonania tak dużego zadania jak podmiana dużej ilości bloków zużyje nam dużo CPU. Kolokwialnie rzecz ujmując regeneracja można wpłynąć znaczenia na działanie serwera, więc najlepiej byłoby to zrobić podczas gdy jest on wyłączony, lub nie ma na niej żadnych graczy. Tworzenie rzutu stanu bloków - BŁĄD! No dobrze, skoro nie działa rejestracja bloków, to może przy starcie gry zapiszmy stan wszystkich bloków świata, a potem przywróćmy je do tej wartości? Pobieranie oraz zapisanie stanu bloków będzie bardzo podobne do ich podmiany - kosztuje bardzo mocnym zużyciem zasobów serwera, więc należałoby zrobić go poza jego normalnym działaniem. Ostatecznie takie rozwiązanie odpada, ponieważ jest to także w dużej mierze powielenie rozwiązania pierwszego. Ładowanie - wyładowywanie światów - ROZWIĄZANIE! Silnik Bukkit oferuje nam możliwość ładowania i wyładowywania światów w czasie jego trwania działania. Wyładowanie świata następuje natychmiastowo, polega jedynie na usunięciu go z pamięci RAM. Ładowanie natomiast może znaczenia wpłynąć na działanie logiki serwera. Generalnie rzecz biorąc ładowanie i wyładowywanie światów jest najlepszym rozwiązaniem, ponieważ i tak będzie kosztować zużyciem mniejszej ilości zasobów, niż rzeczywista regeneracja. Wprowadzenie No dobrze - zacznijmy. Na początku prosiłbym abyśmy ustanowili w tym poście kilka słów stałych, aby nie było problemów ze zrozumieniem. Świat (world) - tym słowym mam na myśli Minecraftowy świat ładowany do serwera. W plikach świata musi znajdować się plik level.dat; tam zapisane są informacje o generatorze, ziarnie (seed), miejscu spawna, obecny spawnpoint oraz masa innych rzeczy. Mapa - tym słowem mam na myśli zbiór bloków które tworzą jakąś strukturę. Znajdują się one w chunkach, czyli dużych zbiornikach 16x16 bloków (na koordynatach X oraz Z) na pełnej wysokości świata - koordynat Y. Ładowanie świata Świat do serwera ładujemy metodą createWorld(...) z interfejsu Server. W parametrze podajemy nowy obiekt klasy WorldCreator - jest to builder, czyli budowniczy innego obiektu, gdzie jego stworzenie wykonujemy po woli wykonując po kolei jej metody. Załadowanie nowego świata można także wykonać w samym WorldCreatorze. WorldCreator jest świetnym narzędziem do wypełnienia znacznej większości ustawień świata. Zaczynami od ich ustawienia. environment(...) - ustawiamy typ świata - może to być NORMAL, THE_END lub NETHER. Dzięki temu zmienimy dużo w jego działaniu. Na przykład niebo (w netherze jest czerwone, w the endzie jest czarne z gwiazdami), oraz fizykę (w netherze nie można wylewać wody, w the endzie spawnują się tylko ender-dragony i endermany). generateStructures(...) - w parametrze podajemy wartość true/false, gdzie true ustawi nam, że na tym świecie będą się generować struktury - wioski, opuszczone kopalnie, piramidy, studnie, ... - false je wyłączy. generator(...) - ustawiamy generator z jakiego nasz nowy świat będzie korzystać. Proszę spojrzeć na metody poniżej - mamy tutaj wiele możliwości wyboru. Możemy tutaj stworzyć swój własny generator podając nasz ChunkGenerator, lub pobrać domyślny generator pluginu podając jego nazwę w Stringu. Proszę poczytać więcej o generatorach w poście niżej - to bardzo ważne! generatorSettings(...) - ustawiamy dodatkowe ustawienia generatora - nie znam do końca jego działania - nigdy z tego nie korzystałem. name(...) - podajemy nazwę naszego świata - UWAGA: nazwa świata musi znajdować się w przedziale A-Z, a-z, 0-9 oraz _ i - żadne inne znaki nie są wspomagane! seed(...) - podajemy seed - ziarenko z którego będzie korzystać nasz generator. Działa tylko przy korzystaniu z generatora vanilla! type(...) - podajemy typ naszego świata. Podajemy WorldType gdzie możemy podać świat płaski, duże biomy, oraz masę innych typów. Pozwolę sobie jeszcze pokazać jak to działa w pluginie Arcade2: https://github.com/ShootGame/Arcade2/blob/f91c4d0c2b44157ad1816c999823b7828df30161/src/main/java/pl/themolka/arcade/map/MapManager.java#L84-L90 Następnie wykonujemy metodę createWorld(), a rezultat zapisujemy w obiekcie World. W tym momencie nasz świat zostanie załadowany do pamięci serwera. Może to zająć moment, zależnie od wielkości świata. Teraz należy ustawić ostatnie ustawienia gdzie dokładniej ustawimy ten świat pod nasz serwer. setAutoSave(false) - dzięki temu nasz świat nie zapisze się przy jego wyładowaniu, oraz wyłączymy auto-save, który domyślnie wykonuje się co 5 minut (do ustawienia w bukkit.yml). setKeepSpawnInMemory(false) - domyślnie w Minecraft chunki na spawnie oraz wokół niego nie są wyładowywanie z pamięci, oraz zawsze znajdują się w pamięci podręcznej serwera. Jest to zbędny zabieg, ponieważ spawnpoint świata nie koniecznie jest spawnem mapy. setSpawnFlags(potwory, zwierzęta) - może być przydatne na mapie typu SkyWars. Dzięki temu wyłączymy możliwość spawnowania się potworów i/lub zwierząt na całym świecie. Jak to działa w Arcade2: https://github.com/ShootGame/Arcade2/blob/f91c4d0c2b44157ad1816c999823b7828df30161/src/main/java/pl/themolka/arcade/map/MapManager.java#L84-L90 I gotowe! Teraz mamy załadowany świat gotowy do gry! Wyładowywanie świata Wyładowywanie świata jest bardzo proste. Wystarczy użyć metody unloadWorld(świat, zapis). Możemy podać nazwę świata, lub obiekt World. Drugi parametr ustawiamy na false, dzięki czemu nasz świat nie zostanie zapisany. Optymalizacja światów Jak wiemy generowanie świata zużywa drastycznie dużo zasobów serwera. Aby temu zaradzić należy zrobić prosty generator który wygeneruje nam tak zwany "void", czyli pusty świat. Tutaj istnieje taki generator, który generuje nam całkowicie pusty świat -> https://github.com/ShootGame/Arcade2/blob/f91c4d0c2b44157ad1816c999823b7828df30161/src/main/java/pl/themolka/arcade/generator/VoidGenerator.java Należałoby także zoptymalizować pliki świata. Klient, serwer, mody oraz różne programy (np MCEdit) generują nam dodatkowe, zbędne pliki które możemy spokojnie usunąć. level.dat - pozostaw - tutaj zapisane są wszystkie podstawowe informacje na temat świata. region (folder) - pozostaw - tutaj znajdują się pliki, w których zapisane są chunki świata. data (folder) - pozostaw - tutaj zapisane są wszystkie wioski na mapie, oraz mapy (te które wskazują nam jakiś punkt, lub po prostu mamy w niej grafikę). Wszystko inne należy usunąć! Usuwanie zbędnych chunków Przy budowie mapy Minecraft generuje nam wszystkie chunki dookoła nas. Wiele z nich jest zbędnych ponieważ nie znajduje się na nich żaden element naszej mapy. Jest to kolejny krok naszej optymalizacji, która będzie miała wpływ na przyspieszenie ładowania świata. Ten krok należy wykonać przed powyższym "Optymalizacja światów". Przy ładowaniu świata serwer będzie nam czytał chunki które znajdują się na mapie. Odczytanie ich z pliku zajmie znacznie więcej czasu niż pobranie pustej tablicy w naszym generatorze. Zupełnie inaczej jest w generatorze vanilla - tam pobranie zapisanego świata zajmie znacznie mniej czasu, niż wygenerowanie nowego! Pamiętaj o tym! Pobieramy sobie programik MCEdit - http://www.mcedit-unified.net/ Otwieramy go Po otwarciu pokaże nam się menu główne programu Klikamy "Load Level" Wybieramy plik level.dat świata w którym chcemy usunąć zbędne chunki Klikamy "otwórz" Nasz świat zostanie załadowany Klikamy na górze programu "Chunk View"; przełączymy się dzięki temu z widoku gracza na widok z lotu ptaka. Na ekranie pojawi nam się siatka (możemy przybliżyć/oddalić świat scrollując myszką) Zaznaczamy myszką te chunki (kratki) na których znajduje się nasza mapa Po lewej stronie pokazuje nam się okienko - klikamy na nim przycisk "Prune" Wyskoczy nam okienko potwierdzające usunięcie wszystkich chunków które nie zostały zaznaczone. Proszę się upewnić czy na pewno zaznaczyliśmy te chunki na których znajduje się mapa. Następnego punktu nie da się cofnąć! Klikamy OK, chunki zostaną usunięte Gotowe, zamykamy program i przechodzimy do punktu "Optymalizacja światów"! Zakończenie Tak o to mamy całkowcie zoptymalizowany świat oraz system "regeneracji". Dobre praktyki Jest jeszcze jedna rzecz którą chciałbym zaznaczyć. Folder twojego świata w głównym folderze serwera nie zostanie usunięty. Zalecam otworzyć plik bukkit.yml, oraz w sekcji settings, dopisać world-container: '/worlds' - dzięki temu wszystkie nasze światy będą zapisywane w folderze worlds, podobnie jak pluginy w plugins. Jest to dość ukryta funkcja w Bukkicie, ponieważ nie jest domyślnie zapisane w YAMLu. Przykład: settings: world-container: '/worlds' Drugie zagadnienie to 100% pewność, że nasza mapa nie zostanie uszkodzona. zalecam w głównym folderze serwera, obok logs, plugins i worlds zrobić folder maps. Tam będziemy trzymać wszystkie światy na których znajdują się mapy. Podczas ładowania tej mapy będziemy kopiować jej pliki do folderu worlds z poziomu pluginu. Dzięki temu mamy 100% pewność, że naszej mapie (która może być wykorzystywana przez wiele serwerów jednocześnie) na pewno się nic nie stanie! Mam nadzieję, że pomogłem
    1 punkt
  2. Kormic

    regeneracja żyć i śmierć

    Proszę. # 1. on heal: heal reason is satiated cancel event # 2. on damage of player: final damage > victim's health cancel event
    1 punkt
  3. Kormic

    skrypt na kase za granie

    Proszę. Znalazłem jakiś stary skrypt, ale powinien działać. every 1 minute: loop all players: if {time::%loop-player%} is not set: set {time::%loop-player%} to 0 add 1 to {time::%loop-player%} if {time::%loop-player%} is greater than or equal to 30: set {time::%loop-player%} to 0 add 50 to loop-player's money send action bar "&aOtrzymales &650&a$ za grę na serwerze!" to loop-player
    1 punkt
  4. Kormic

    problem z %player%

    Zamień 'execute console command' na 'execute player command'.
    1 punkt
  5. W czystym Skript, nie. Z pomocą dodatków, tak. Za przykład może tutaj posłużyć dodatek SkRayFall. Poradnik dotyczący bossbarów znajdziesz na YouTube na kanale Minehut.
    1 punkt
  6. Kormic

    Jak dodać kolor do 'argumentu'

    Zamień 'arg-1' na 'coloured arg-1'. Argumenty od komend nie parse'ują kolorów, musisz to zrobić samemu.
    1 punkt
  7. Kormic

    Spawnowanie mobow

    Operator z pojedynczym pipe-line (czyli |) to tzw. "bitwise OR". Ty powinieneś użyć double pipe-line'a do zwykłego "OR", czyli ||.
    1 punkt
  8. tak np.: of %enchant%, %enchant% and %enchant%
    1 punkt
  9. %item% named %nazwa% of %enchant% %poziom enchantu% Czyli np.: set slot 1 of player's current inventory to dirt named "nazwa" of sharpness 5 Jeżeli nie działa, spróbuj zamienić kolejnością dodawanie enchantu i nazwy, gdyż nie jestem pewien, czy podałem Ci odpowiednią kolejność.
    1 punkt
  10. Kormic

    Problem

    Wystarczy usunąć 'if' oraz dwukropek na końcu warunku.
    1 punkt
  11. Kormic

    Poprawa zmiennej w tabliczkach

    Co ma robić ten efekt 'append'? Dopisywać nową linijkę, tak? Z jakiego on jest dodatku?
    1 punkt
  12. Kormic

    Nazwany protection

    Najprawdopodobniej na tym przedmiocie są nałożone domyślne zaklęcia z Minecraft, ale dodatkowo jest nałożona na przedmiot flaga HIDE_ENCHANTS i dopisane są w lore własne nazwy enchantów.
    1 punkt
  13. Kormic

    Plugin na działki

    Upewnij się, że wszystko robiłeś dobrze. Autor oferuje wsparcie w przypadku problemów technicznych na Discordzie, link jest w opisie pluginu.
    1 punkt
  14. Kormic

    Plugin na działki

    Możesz użyć albo PlotSquared v5 (płatny), albo ProtectionStones (bezpłatny).
    1 punkt
  15. Kormic

    Perła zadaje antylogout

    Jeżeli plugin nie posiada takiej możliwości w pliku konfiguracyjnym, tym bardziej wątpię w to, aby posiadał jakiekolwiek API. Daj linka do tego pluginu, zobaczymy. Wyszukałem sobie "pimpeekcombatlog" i nic nie znalazłem.
    1 punkt
  16. Kormic

    Zapisywanie Ekwipunku

    Zapis: Najprościej sobie stworzyć pętle iterująca 41 razy (czyli 'loop 41 times') i w niej zapisujemy do zmiennej z listy gracza slot (loop-number - 1) z ekwipunku gracza. set {saveInv::%player%::%loop-number - 1%} to slot (loop-number - 1) of player's inventory Odczyt: Tutaj znowu tworzymy sobie pętlę odtwarzającą się 41 razy i w niej ustawiamy slot (loop-number - 1) ekwipunku gracza na ten slot zapisany w zmiennej z listy. set slot (loop-number - 1) of player's inventory to {saveInv::%player%::%loop-number - 1%} Jeżeli nadal nie wiesz, poszukaj sobie takich skryptów na forum.
    1 punkt
  17. Kormic

    ekran powitalny

    Tak. on join: send title "&aWitaj na serwerze" with subtitle "&e%player%" to player Jeżeli nie zadziała, spróbujmy tak. on join: wait 10 ticks send title "&aWitaj na serwerze" with subtitle "&e%player%" to player
    1 punkt
  18. Kormic

    ekran powitalny

    I w tym niby nie ma błędów? Przecież tutaj nie ma nigdzie eventu 'on join'.
    1 punkt
  19. Bardzo fajny poradnik, właśnie tego szukałem!
    1 punkt
  20. Kormic

    ekran powitalny

    Ponowię moją prośbę. Pokaż ten skrypt.
    1 punkt
  21. Kormic

    ekran powitalny

    Pokaż ten skrypt i pokaż co nie działa. Podaj również: wersję serwera silnik serwera wersję Skripta listę dodatków do Skripta wraz z wersjami błędy przy przeładowaniu błędy w konsoli
    1 punkt
  22. Kormic

    ekran powitalny

    Zamiast poszukać samemu skryptu na 3 linijki to wolisz czekać na skrypt od kogoś ponad godzinę. Nie powiem, dziwne podejście. Pokaż 3 przykładowe skrypty na ekran powitalny i wskaż co ci w nich nie pasuje. Co do skryptu kolegi wyżej, używa dodatku do Skripta, a nawet sam autor nie jest tego świadom.
    1 punkt
  23. Kormic

    ekran powitalny

    Masz rację, jest ich mnóstwo, ale wystarczy sobie podmienić wiadomości.
    1 punkt
  24. Kormic

    Poprawa skryptu na dzwieki

    1. Na co to 'convert text'? Według mnie to jest zbędne. 2. Drugie nie działa, gdyż nie podałeś przed ścieżką 'file path'. set {_zmienna} to file name of file path {_sciezka}
    1 punkt
  25. PakerP

    PreCase - Skrypt na Premium Case

    Chciałbym zaprezentować skrypt na Premium Case na server! Permisje: case.op do skryptu można dodawać własne itemy(drop ze skrzynki)! Link: https://code.skript.pl/5szWCAee/raw/ Nie podszywać się pod autora! Jeśli są błędy albo coś do poprawienia pisać! Polecam przetestować! 1. Nie spamuj linkami. 2. Linki wstawiaj na code.skript.pl @PakerP
    1 punkt
  26. piratjsk

    Funkcje

    Funkcje Możliwość tworzenia własnych funkcji w skryptach do tej pory oferowały tylko dodatki (WS i skQ). Od momentu wydania developerskiej wersji Skript 2.2 można z nich korzystać bez żadnych dodatkowych pluginów. Skąd wziąć Skript w wersji 2.2? Najnowszą wersję Skript można pobrać stąd, warto też rozważyć skorzystanie z wersji zawierającej poprawki autorstwa Mirreducki'ego. Składnia Istnieją dwa podstawowe typy funkcji: taka, która coś zwraca, jakąś wartość, oraz taka, która tylko wykonuje kod i nie zwraca żadnej wartości. # Funkcja, która zwraca wartość function nazwa_funkcji(nazwa_argumentu: %typ_argumentu%, ...) :: %typ_zwracanej_wartości%: # kod_funkcji return %coś% # Funkcja, która tylko wykonuje swój kod i nie zwraca żadnej wartości function nazwa_funkcji(nazwa_argumentu: %typ_argumentu%, ...): # kod_funkcji Argumenty są opcjonalne, można ich użyć ale nie trzeba. Definiowanie obydwu rodzaji funkcji zaczynamy od słowa kluczowego function, następnie po spacji podajemy nazwę, z której bedziemy później korzystać aby wywołać naszą funkcję. Po tym w nawiasach podajemy argumenty, jeśli nasza funkcja nie będzie z nich korzystać należy wstawić tylko nawiasy (). Argumenty podajemy według wzoru: nazwa: %typ%, np. gracz: player albo p: player, w: world. W przypadku funkcji zwracającej jakąś wartość trzeba w tym momencie podać typ tej wartości (np. number, text, player, location). Na końcu linijki definniującej funkcję należy umieścić dwukropek, a następne linijki (kod funkcji) wciąć o jedną jednostkę. Podając liczbę mnogą typu argumentu (np. players, entities, worlds) umożliwimy sobie podawanie wielu wartości (o podanmy typie). Tak samo sprawa ma się w przypadku typu zwracanej wartości, gdy podamy jego liczbę mnogą będziemy mogli zwracać listy wartości. Np. function podpal(g: players): function ktoWygral(mecz: text) :: players:. Argumenty Wiesz już jak zdefiniować argumenty, teraz czas nauczyć się z nich korzystac. Jest to naprawdę proste. W kodzie naszej funkcji odwołujemy się poprostu do zmiennych lokalnych (zaczynających się od znaku _) o takich nazwach jak podane argumenty. # np. function dajDiamenta(gracz: player): give 1 diamond to {_gracz} Korzystanie z funkcji Gdy już zdefiniowaliśmy naszą funkcję przyszedł czas aby ją wykorzystać. # np. command /daj: trigger: dajDiamenta(player) send "Oto twój diament :)" Jeśli nasza funkcja zwraca jakąś wartość to możemy ją np. zapisać do zmiennej. command /punkty: trigger: set {_punkty} to ileMaPunktow(player) send "&eMasz &6%{_punkty}% &epunktow." Definicja funkcji nie musi być w pliku, w którym z niej korzystamy. Funkcje zdefiniowane w jednym skrypcie będziemy mogli używać w każdym innym. Jak znajdę chwilę czasu to dodam tu jeszcze kilka przykładowych funkcji. function dodajWarpa(nazwa: text, lokacja: location) :: boolean: if {warpy::%{_nazwa}%} is set: return false else: set {warpy::%{_nazwa}%} to {_lokacja} return true
    1 punkt
  27. Helios1993

    Tworzenie GUI w Skript - Poradnik

    GUI w Skript Czym jest GUI? Jest to skrzynia z wcześniej ustalonymi przedmiotami, z której nie możesz wyciągać przedmiotów, lecz możesz np. przenieść się na inny serwer klikając w odpowiedni przedmiot. Przykładowe GUI: Dlaczego nie powinieneś korzystać z SkQuery do tworzenia GUI? SkQuery posiada sporo błędów, jednym z nich jest ukryta możliwość wyciągania przedmiotów z GUI robionego za pomocą tego addonu. Jakie addony są potrzebne do zrobienia GUI? Nie potrzebujesz żadnych addonów, wystarczy sam Skript. Jak zrobić GUI w Skripcie? Jak w każdym skrypcie, na początku musi być jakiś event. W przykładzie użyję komendę: (Zapamiętaj, że przy dodawaniu komendy zawsze musi być 'trigger' w następnej linijce.) command /gui [<text>]: trigger: Gdy już masz komendę, musisz stworzyć swoje GUI. Robisz to w ten sposób: (3 to ilość linijek, "Nazwa" to nazwa twojego gui.) set {_gui} to chest inventory with 3 rows named "Nazwa" Teraz musisz ustawić slot. Pamiętaj, że są one liczone od 0. Żeby ustawić pierwszy slot w swoim GUI, zrób to: set slot 0 of {_gui} to diamond Twoje GUI jest już gotowe! Najwyższy czas je otworzyć dla gracza, który wykonał komendę: open {_gui} to player Cały kod powinien wyglądać tak: command /gui [<text>]: trigger: set {_gui} to chest inventory with 3 rows named "Nazwa" set slot 0 of {_gui} to diamond open {_gui} to player Aktualnie z twojego GUI można wyciągać przedmioty i nic się nie dzieje, jak to zmienić? Przyda ci się event 'on inventory click': on inventory click: Sprawdzaj czy naciśnięty slot nie jest ekwipunkiem gracza: event-inventory is not player's inventory Teraz musisz sprawdzić nazwę GUI: if name of event-inventory is "Nazwa": Jeśli chcesz zablokować wyciąganie przedmiotów, dodaj teraz 'cancel event': cancel event Sprawdź kliknięty slot: if clicked slot is 0: I wykonaj co chcesz wykonać: add diamond to player's inventory Cały kod powinien wyglądać tak: on inventory click: event-inventory is not player's inventory if name of event-inventory is "Nazwa": cancel event if clicked slot is 0: add diamond to player's inventory Teraz połącz te dwa kody i przeładuj skrypt. Gratulacje! Zrobiłeś swoje pierwsze GUI w Skripcie!
    0 punktów
  28. Kormic

    Blokowanie tabowania komend z permisjami

    Dziękuję serdecznie za kopiowanie mojego posta. Poszukaj sobie na Spigot'cie czegoś w stylu 'tab complete' albo 'block commands'. Nie wiem, użyj wyszukiwarki.
    0 punktów
  29. Czesc, chcialbym otrzymac skrypt pod poczekalnie, mam na mysli tam gdzie gracze dolaczaja i czekaja az sie arena rozpocznie jak na hypixel, po pierwsze mam poczekalnie gotowe jest to mapa (Arena1), chcialbym zeby mozna bylo do niej dolaczyc przez /minigame dolacz arena1, no i tak jest limit 16 osob, jak juz bedzie 6 osob zaczyna sie automatyczne odliczanie do startu, chcialbym otrzymac wraz z scoreboard na scoreboard powinno byc nazwa mapy w ktorej jest gracz, liczba osob na mapie/16, Start: (gdy nie ma min 6 na arence osob jest tutaj, Czekamy na graczy....) gdy jest start za 10 sekund, jest title konczoncy sie doopiero na 0, na chat jest “Rozgrywka rozpocznie sie za... 10, 9 itp...” oraz z title “(czas do startu areny) oraz druga linia “Juz rozpoczynamy!” gdy ktos wychodzi z arenki po przez komende /opusc, jest komunikat (gracz) wyszedl z arenki, oraz jak ktos dolaczy (gracz) dolaczyl do areny ({liczba graczy w arence}/16} Przyklad scoreboarda; Minigra Poczekalnia Graczy: (gracze na arence)/16 Rozpoczymy za: (status czasu/odliczanie) Mapa: (swiat w ktorym jest gracz) Dziekuje
    0 punktów
Ten Ranking jest ustawiony na Warszawa/GMT+02:00
  • Najwięcej postów w tygodniu

    Fendi
    Fendi
    3 posty
    xSebixx1
    xSebixx1
    2 posty
    0j_12
    0j_12
    1 post
    Kormic
    Kormic
    1 post
    karepas
    karepas
    1 post
    kinimod5021
    kinimod5021
    1 post
    bug128
    bug128
    1 post
    F3lip3za
    F3lip3za
    1 post
    Nieaktywny
    Nieaktywny
    1 post
  • Najwięcej tematów w tygodniu

    bug128
    bug128
    1 temat
    Nieaktywny
    Nieaktywny
    1 temat
    LusiaMC
    LusiaMC
    1 temat
    Antychryst
    Antychryst
    1 temat
    MICHALBEZSKINOW
    MICHALBEZSKINOW
    1 temat
    artur9010
    artur9010
    1 temat
    0j_12
    0j_12
    1 temat
    xSebixx1
    xSebixx1
    1 temat
    karepas
    karepas
    1 temat
  • Aktywni użytkownicy

×
×
  • Dodaj nową pozycję...