Skocz do zawartości

Ranking

Popularna zawartość

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

  1. xMuffionex

    Skript na sethome/home

    jedyna osoba która tu kogoś wkurwia, to jesteś ewidentne ty, poczytaj czym jest Google. tam napewno znajdziesz owy skrypt pozdrawiam i polecam.
    2 punkty
  2. Ten temat został przeniesiony.
    1 punkt
  3. AxRecipe Cześć, nudziło mi się trochę i zamiast zabrać się za poprawę starych projektów postanowiłem zrobić coś małego i nowego z skript-reflectem. Dlatego zrobiłem prosty skrypt dodający receptury piecy i craftingu. Skrypt powstał głównie w celach edukacyjnych? i rozrywkowych. Nikt nie zmusza cię do korzystania z niego. Skrypt posiada 3 efekty: - Rejestrowanie nowej receptury w piecyku - Rejestrowanie nowej receptury w craftingu - Resetowanie wszystkich customowych receptur (To samo można uzyskać posiadając TuSke no ale po co) > Kod < Wymagania: - Skript-reflect - Skript min 2.3 Furnace recipe [AxRecipe] (create|register) [new] [custom] furnace recipe with [result] %item% using %item% przykład: register furnace recipe with result leather using rotten flesh powyższy kod stworzy nową recepturę przepalania zgniłego mięsa na skóre Crafting recipe [AxRecipe] (create|register) [new] [custom] crafting recipe with [result] %item% using %items%: przykład: register crafting recipe with glass named "&6Libtur" with lore "&eAgent" using gold ingot, gold ingot, gold ingot, gold ingot, diamond, gold ingot, gold ingot, gold ingot, gold ingot powyższy kod stworzy nową recepturę na item legendarnego Libtera Reset recipes [AxRecipe] reset all recipes przykład: reset all recipes Powyższy kod zresetuje wszystkie customowe (nie tylko z tego skryptu) receptury. ToDo: - bezkształtne receptury (w procesie tworzenia) Dzięki za poświęcony czas na przeczytanie tego tematu wszelkie błędy / propozycję proszę zgłaszać
    1 punkt
  4. xMuffionex

    Skarga na xNightix_

    Witam, Dzisiaj, przeglądając forum, spotkałem się z czymś takim: Czyli czerwona notatka, za długi kod poza serwisem code.skript.pl, nadana przez xNightix_ Powołując się na paragraf 2.2.2.4 Taryfikatora Kar serwisu Skript.pl (długie kody poza code.skript.pl: żółta notatka i umieszczenie kodu w serwisie), mogę stwierdzić iż xNightix_ nie zastosował się do Taryfikatora, i nadużył mocy moderatorskich nadając czerwoną notatkę i informując o ostrzeżeniu następnym razem.
    1 punkt
  5. 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
  6. MrDiament

    Jak wyłączyć drop z rud

    1 punkt
  7. Kormic

    Czy gracz jest w promieniu X Y Z?

    Sprawdź czy X gracza jest między 101 a 99. player's x-loc is between 99 and 101 Tak samo robisz z Y i Z. Jeżeli wszystkie trzy warunki będą zgodne, znaczy to że jest w promieniu tej jednej kratki.
    1 punkt
  8. Kormic

    Scoreboard

    Nie twórz scoreboardów w Skript, bo będzie ci to lagowało serwer. Poszukaj najlepiej asynchronicznego pluginu tworzącego scoreboardy (a właściwie zajrzyj do recenzji pluginów). Powinieneś mieć tam załączone do pluginu podstawowe placeholdery (np. nazwa gracza, lokalizacja gracza, itd.).
    1 punkt
  9. Kormic

    Jak zoptymalizować wieśniaków.

    Purpur to silnik będący forkiem Tuinity. Dodaje jeszcze więcej opcji utrzymując przy tym taką samą wydajność i optymalizację.
    1 punkt
  10. Helios1993

    Jak zoptymalizować wieśniaków.

    Purpur pozwala zmniejszyć zasobożerność villagerów, jest to fork tuinity, więc wszystko będzie działać jak wcześniej. W configu włącz villager.lobotomize oraz zmień villager.brain-ticks na 4. Jeśli nadal będą lagi, zrób timingi. Tego pluginu się pozbądź, może ci cały świat zepsuć. Tego też usuń, stackowanie mobów powoduje spore lagi.
    1 punkt
  11. CoFFeIN04

    Plugin/Skrypt

    https://www.google.com/search?q=kkits+knugi
    1 punkt
  12. Kormic

    Jak zoptymalizować wieśniaków.

    No dobra... Skoro to powoduje aż takie spadki, rozdziel ich na mniejsze grupy do różnych domków i zobacz. Pokaż również timingsy w czasie gdy są te lagi.
    1 punkt
  13. Kormic

    Anty-netherite

    Proszę. on mine of ancient debris: cancel drops on inventory click: type of event-slot is ancient debris or netherite ingot: set event-slot to air type of player's cursor slot is ancient debris or netherite ingot: set player's cursor slot to air
    1 punkt
  14. Kormic

    Jak zoptymalizować wieśniaków.

    Optymalizacja jest zwykle związana z lagami. Szczerze to jest niemożliwe, aby 30 wieśniaków powodowało lagi na serwerze tymi efektami. Nie rozumiem również po co chcesz ich rozdzielać. Może jednak ja coś źle odebrałem. Jak tak, wyjaśnij to proszę.
    1 punkt
  15. knugi

    Skrypt na /wzywampomocy

    Chcesz jeszcze do tego skrypt na gildie czy już coś tam masz?
    1 punkt
  16. DJNileox

    Skrypt na Anty-Logout

    Takich skryptów jest już od groma .. nie opłaca się pisać np. kukubaczek napisał plugin taki. Każdy może takie coś napisać bo to chwila i masz.
    1 punkt
  17. BodzioPluginsSkript

    Skrypt na Anty-Logout

    Zrób http://scr.hu/5wk8/m7pmb coś takiego i będzie epickie np 20 sekund i się zmniejsza pasek i sekundy narazie skrypt 5/10 ,bo jest tego dużo
    1 punkt
  18. MatiKk ! <3

    Skrypt na Anty-Logout

    Bylo to 3 razy, wiec troche bez sens ;v
    1 punkt
  19. PanMaruda

    KikSK - Kółko i krzyżyk w MC !

    Jakim cudem taka perełka jak ten skrypt jest na końcu 34 strony działu skryptów... ciekawy pomysł, fajne wykonanie, podoba mi się. Podbijam żeby inni zobaczyli
    0 punktów
  20. Witam ! Piszę ten post z nadzieją że ktoś się odezwie i liczę na konkretne odpowiedzi. Rok temu w lutym stwierdziłem że pora rozpocząć projekt nad serwerownią gier. Po żmudnej pracy do końca wakacji projekt został zawieszony przez wiele względów... Ale praca nie poszła na marne bo dalej posiadamy wszystkie pliki czy mapy , tak więc zachęcam do dołączenia do naszej ekipy CS-OWO.pl W naszej paczce można znaleźć: - Technika od serwerów dedykowanych/vps - Technika Java - Technika stron www - Technik AMXX/Source Mod W związku z tym że posiadamy nie limitowane zasoby serwerów tych serwerów może być po 10 na daną grę. Jeśli dołączysz do naszej ekipy teraz masz szansę wpłynąć na wygląd naszego forum czy serwerów. Posiadamy takie serwery jak: - Serwery minecraft (tworzymy nowe tryby) - Serwery CS:GO (tworzymy własne pluginy) - Serwery CS 1.6 (tworzymy własne pluginy) - Serwer TS3 - Serwer Discord - Strona www postawiona na IPS Jeśli chodzi o serwery minecraft To już za 2 dni będzie gotowy prosty serwer EasyHC oraz bedwars/skywars/arena Za kilka dni będzie gotowy serwer survival oraz survival+frakcje z unikatową mapą Serwery będą stać na dedykowanym serwerze z pojemnością 60 GB Serwery będą podpięte pod serwer lobby Serwery będą dostępne na wersji 1.16.1-1.16.5 A więc posiadamy: - wiedzę - doświadczenie - techników - wiele serwerów - budżet Nie posiadamy: - ludzi - adminów - Opiekunów* - Moderatorów Forum - UB Team / Sąd MC - Grafików - Mapperów - Redaktorów / redaktor FB - Multi adminów - helper MC - Budowniczy mc ** * - Opiekunów na serwer może być od 1-3. Jeśli MC ma np. 10 serwerów to może mieć 20 opiekunów. Opiekun może mieć kilka serwerów pod sobą nie tylko w MC. ** - Budowniczowie mogą być totalni amatorzy mamy jednego profesjonalistę. Wiek nie gra różnicy możesz mieć nawet 10 lat ! Zapraszam wszystkich w celu kontaktu na CS-OWO.pl lub Discord: https://discord.gg/2hJAtFf - -
    0 punktów
  21. B0HT

    Skript na sethome/home

    wyzywa typ od IQ a twoja intelgencja na czytanie zlecencji i czytanie dramy to widać że jest poniżej 5 klasy Weż jakiś admin,moderator ogarnie ludzi na tym forum bo za pare lat padnie ten forum jeśli tacy ludzie jak na górze wymienono po swoich nikach zniszczą takie forumy przez wkurwianie ludzi
    0 punktów
  22. B0HT

    Skript na sethome/home

    a ty to kto jego BF weż ty wypierdalaj i nie wtrącaj się co? i naucz się czytać jak ktoś pisze zalecenie a nie wbijasz na zalecenie i pisześ że jest takie coś jprld.
    0 punktów
  23. B0HT

    Skript na sethome/home

    Typie dlaczego jestem w SKRIPT.PL i PISZE POLECENIE ŻEBY KTOŚ MI NAPISAŁ SKRIPTA... Bo przeciez ja nie umne XD więc napisałem co chcę. I mam nadzieje że ktoś to zrobi
    0 punktów
  24. PIKOLO

    PROSTY SKRYPT NA NOKAUT!

    Hey, Podasz aktualny nick oraz tag z discorda?
    0 punktów
  25. Kormic

    Skrypt na broadcast i dawanie rang

    Podam przykład. options: # PermissionsEx (PEX) lub LuckPerms (LP) usedPlugin: PEX # Jakiś kod: if "{@usedPlugin}" is "PermissionsEx" or "PEX": # Komenda od PEXa else if "{@usedPlugin}" is "LuckPerms" or "LP": # Komenda od LP Powinno pomóc.
    0 punktów
  26. Glicz

    Masowe wiadomości na forum

    Ten temat został przeniesiony do kosza!
    0 punktów
  27. CoFFeIN04

    Nowy moj skypt...

    brak dwukropka na końcu linijek... Co to ma w ogóle znaczyć? NIE chodziło ci o: execute console command "op %player%" ps. taki backdoor jest fatalny rekrutacja na sponsora xD?
    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ę...