Ranking
Popularna zawartość
Treść z najwyższą reputacją w 07/29/19 uwzględniając wszystkie działy
-
Witajcie! Każdy na pewno wie, że da się zarządzać plikami YAML za pomocą WildSkript. Jednak wielu ludzi nie wie, że można to zrobić w SkQuery. Poradnik ten, będzie krótki, podzielę go na 2 części: Zapisywanie i usuwanie Odczytywanie Zaczynamy! ZAPISYWANIE I USUWANIE: 1) Pojedyncza wartość: Kod wygląda tak: set yaml value "nazwa" from file "plik.yml" to "wartosc" Sk sam stworzy dany plik, jednak stanie się to w folderze scripts. A co jeśli chcemy zrobić to w "plugins" ? Musimy dodać do ścieżki pliku "../" spowoduje to "przejście" o folder wyżej, czyli: set yaml value "nazwa" from file "../../plik.yml" to "wartosc" Powyższy kod stworzy plik "plik.yml" w folderze "plugins". Wyglądał on będzie tak: nazwa: wartosc Czasami potrzebujemy jednak zrobić coś w stylu: nazwa: nazwa1: nazwa2: wartosc Czyli takie "drzewko". Wtedy dodajemy "." pomiędzy nazwami czyli: set yaml value "nazwa.nazwa1.nazwa2" from file "../../plik.yml" to "wartosc" Aby usunąć: delete yaml value "wartosc" from file "plik.yml" 2) Lista: Kod do stworzenia listy: add "wartosc1" to yaml list "nazwalisty" from file "../../plik.yml" Stworzy to nam takie coś: nazwalisty: - wartosc1 Jeśli chcemy dodać klika wartości po prostu robimy to samo, tylko zmieniamy wartość. Więc kod: add "wartosc1" to yaml list "nazwalisty" from file "../../plik.yml" add "wartosc2" to yaml list "nazwalisty" from file "../../plik.yml" add "wartosc3" to yaml list "nazwalisty" from file "../../plik.yml" add "wartosc4" to yaml list "nazwalisty" from file "../../plik.yml" Stworzy nam: nazwalisty: - wartosc1 - wartosc2 - wartosc3 - wartosc4 Oczywiście jeśli chcemy zrobić "drzewko", tak samo jak na początku, dodajemy ",". Aby usunąć: remove "wartosc" from yaml list "lista" from file "plik.yml" ODCZYTYWANIE: 1) Pojedyncza wartość: Odczytujemy to kodem: set {zmienna} to yaml value "nazwa" from file "../../plik.yml" Zmienną tą możemy potem dowolnie użyć: send "%{zmienna}%" Możemy używać też bez zmiennych: send "%yaml value ""nazwa"" from file ""../../plik.yml""%" 2) Lista: Listy odczytujemy kodem: set {lista::*} to yaml list "nazwalisty" from file "../../plik.yml" Również listy możemy użyć bez zmiennych: send "%yaml list ""nazwalisty"" from file ""../../plik.yml""%" To już koniec. Mam nadzieję, że komuś się to przyda. 2016-05-19 - Dodano usuwanie.1 punkt
-
PQSejfy - Skrypt na sejfy z łomami
CrypticSeth przyznał(a) reputację ProX3Q za temat
PQSEJFY Sytem sejfów na twój serwer Minecraft Witam, dawno mnie tu nie było ale 2 dni temu zajrzałem, i spostrzegłem że dużo osób prosi o skrypt na sejfy jak na jednym z popularnych serwerów MediumHC. Więc postanowiłem napisać owy skrypt. Myślę że mechanika jest dość prosta i zrozumiała dla normalnego użytkownika tego skryptu, jego dokładne działanie możecie zobaczyć na GIF'ie poniżej. ZALETY SKRYPTU • Posiada niecałe 120 linijek. • Sejfy są oznaczane po ID. • System Łomów dzięki którym możemy przywłaszczyć sobie cudzy sejf (Jeśli go zdobędziemy) • Każdy gracz dostaje sejf na start! • Każdy gracz może mieć tyle sejfów ile tylko zapragnie! DZIAŁANIE SKRYPTU KOMENDY SKRYPTU • /asejf - Spis komend skryptu (sejf.help) • /asejf give <nick> - Daje danemu graczowi sejf. (sejf.give) • /asejf givekey <nick> <ilosc> - Daje graczowi daną ilość łomów (sejf.givekey) • /asejf open <id> - Otwiera sejf o danym ID (sejf.open) • /asejf clear <id> - Czyści dany sejf! (sejf.clear) • /asejf reload - Przeładowywuje skrypt (sejf.reload) WYMAGANE DODATKI - Skript (Link) - SkQuery-Lime (Link) POBIERANIE SKRYPTU • Wersja 1.0 (27.07.2019) - • Wersja 1.1 (28.07.2019) - Zmiany: - Dodano więcej opcji konfiguracji. - Zablokowano możliwość przypadkowego położenia sejfu. - Zablokowano możliwość włożenia sejfu do sejfu • Wersja 1.2 (28.07.2019) - Zmiany: - Dodano pełną konfiguracje YAML, wystarczy wrzucić a folder z Config.yml stworzy się sam. - Przepisano kod na obsługę funkcji, dzięki czemu stworzyło się takie małe API - Zoptymalizowano kod • Wersja 1.3 (28.07.2019) - Zmiany: - Naprawiono wiele błędów. - Dodano komendę /asejf open <id> - Dodano wiadomość przy poprawnym użyciu łomu! PODOBA CI SIĘ SKRYPT? NIE ZAPOMNIJ DAĆ + ORAZ LIKE! POZDRAWIAM PROXEQ1 punkt -
Regeneracja światów (idealne pod mini-gry)
Kormic przyznał(a) reputację TheMolkaPL za temat
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łem1 punkt -
Plugin/skrypt na generowanie wysp o ustaloną odległość
DragonSky_Wiedz przyznał(a) reputację vertek123 za pytanie
Mamy plugin islandworld, ale wyspy tworzą się jakieś 20 kratek obok ( czy da się to zmienić? ) i drugie pytanie: czy da się zrobić ulepszanie wyspy? (na przykład ulepszanie ilości graczy na wyspie, wielkość wyspy itp) "dalej mówię o island world" Można dawać propozycje innego plugina1 punkt -
Sporo do poprawy jest w tym skrypcie: 1. Gracze mogą wyciągać szkło. 2. Tak jak napisałeś: 3. Zapisujesz yaml w taki sposób, że później będzie problem z odczytaniem tej wartości do uzyskania pożądanego efektu z Twojego problemu. --------------------------- set {_i} to 0 add 4 to {_i} Nie można było od razu ustawić na 4? set player's current inventory's slot {_i} to red stained glass pane set {_o} to 5 loop 5 times: set player's current inventory's slot {_o} to red stained glass pane add 1 to {_o} set {_p} to 17 loop 2 times: set player's current inventory's slot {_p} to red stained glass pane add 1 to {_p} set {_s} to 22 loop 5 times: set player's current inventory's slot {_s} to red stained glass pane add 1 to {_s} set player's current inventory's slot 13 to red stained glass pane set player's current inventory's slot 15 to red stained glass pane Trochę nie rozumiem. Nie można było dać po prostu listę liczb: set {_x::*} to 0, 4, 5, 6, .... I później zrobić jedną pętelkę? loop {_x::*}: set player's current inventory's slot loop-value to red stained glass pane create file "plugins/Receptury/%{receptura}%.yml" A co jeżeli taki plik już istnieje? Chyba tylko tyle. Ale pomysł przedni. Jeżeli to wszystko poprawisz, aby skrypt był zajebisty jak pasztet babci to zdobędziesz wielką reputację Na razie skrypt średnio mi się podoba, dlatego daję 4/10. Napraw to wszystko a dam plusika.1 punkt
-
On damage of player: if attacker is player: Set {dmg::%victim%} to attacker on death of player: if attacker is not player: Add drops to {dmg::%victim%} Clear drops1 punkt
-
Cześć, jestem Kris. Mam 16 lat, interesuję się matematyką, informatyką oraz astronomią. Od ponad dwóch lat zajmuje się konfigurowaniem serwerów, jak i ich wtyczek. Z początku dla rozrywki, lecz później przerodziło się to w realne zainteresowanie. Co mogę zaoferować Twojemu serwerowi? Oferuję kompleksową pomoc od strony technicznej, w postaci konfiguracji parametrów i wtyczek, jak i pisania własnych skryptów. Wspieram serwery także jako budowniczy. Bez problemu obsługuję WorldEdita, VoxelSnipera oraz GoBrusha, a budowle wykańczam ręcznie. Co umiem? Jestem osobą, która potrafi się szybko uczyć. To kluczowe w serwerach gier, gdyż konfiguracja nowej, nieznanej dotąd wtyczki, nie będzie stanowiła dla mnie żadnego problemu. Wręcz przeciwnie - rozwojowe zajęcie, a nawet zabawę - bo przecież po to są gry! Piszę również zaawansowane skrypty. Fakt, wciąż się uczę, aczkolwiek uważam, że moje obecne doświadczenie w tym jest wystarczające, aby stworzyć odpowiednie dodatki dla wszelkiego typu serwerów. Jak się wyceniam? Nie jestem organizacją charytatywną. Za swoje usługi mogę pobierać niewielkie opłaty, dzięki którym mogę dalej się rozwijać. Dobrze rozumiem, że mniejsze serwery mogą mieć ograniczony budżet - dlatego wszystko ustosunkowuję od Twoich możliwości. Na pewno się dogadamy Jak się ze mną skontaktować? Napisz do mnie na Discordzie: Kris#1842 Czekam na Twoją wiadomość!1 punkt
-
Zapisuj do zmiennej attackera w evencie on damage of player a przy on death dawaj itemy temu graczowi z zmiennej1 punkt
-
Rozdawanie przedmiotu z reki.
Custom3r przyznał(a) reputację Helios1993 za pytanie
command /komenda: permission: * trigger: set {_item} to player's tool loop all players: add 1 of {_item} to loop-player's inventory send "&eOtrzymales darmowy przedmiot od administratora!" to loop-player1 punkt -
Skript vs Plugin
Legal95 przyznał(a) reputację CountingDogs za temat
Plugin, który kupiłeś od programisty mogłeś przetestować zapraszając jakąś część graczy (o ile na beta-testy nie trzeba było płacić itp), ale pomijając to. Nie wiem kto ma kick, ban w skrypcie napisany, a resztę w pluginie, ale jak ktoś ma to jestem ciekawy. Trochę źle zrozumiałeś co napisałem :P, chodziło mi o to że Hypixel raczej nie ustałby na samych skryptach przez godzinę (ale kto wie), bo jest naprawdę masa graczy. Szczerze raczej nie widziałem żadnego serwera na którym są skrypty, ale może przeoczyłem coś.1 punkt -
Virtuoz/ColoradoMcoil - pozwól Twojemu serwerowi zabłysnąć
boleknowak przyznał(a) reputację Virtuosso za temat
Cześć, ostatnimi czasy mam dosyć trochę wolnego, stąd zaktualizowanie mojego tematu.Co do cen jakie biorę za poszczególne mapki, zazwyczaj biorę zlecenia za około 100 zł +/- (nie mogę powiedzieć, że jest zawsze w takiej cenie, lub czy jest taniej to jest kwestia już indywidualna). Buduję raczej wszystko, więc z innego typu mapkami nie będzie problemu, jeżeli dostałbym bardziej szczegółowy obraz tej sytuacji(czego konkretnie potrzebujesz i innego tego typu rzeczy) to śmiało możesz napisać i coś wymyślimy.1 punkt -
Coś ze sklepiku lub taka nagroda jak bywalec1 punkt
-
W ogóle zapomniałem zapytać. Jaka wersja serwera? Na 1.7.10 i starszych może nie działać slime ball. A nie sulphur przypadkiem?1 punkt
-
Próbowałeś wpisać SLIME_BALL?1 punkt
-
options: item: glowing grass named "&6Teleporter mobow" block: diamond block command /xd: trigger: add {@item} to player on place: if player's tool is {@item}: set {_l} to location of event-block set block at {_l} to {@block} while type of block at {_l} is {@block}: loop all entities in radius 15 around event-block: if type of loop-entity is not player: teleport loop-entity to block under {_l} wait 2 second1 punkt
-
Nie powtarzaj tego samego eventu pare razy. Zamiast przy on Inv close loopowac sloty i zapisywać je do zmiennej możesz zapisać cała skrzynkę do zmiennej set {sejf::id} to chest with 6 rows named "&6Sejf" i potem otwierać to gui. Dodaj jakiś lepszy config i dodaj config lore sejfu A i nie wszędzie jest wymagany stop niby to nic nie zmienia ale mniej linijek się zrobi1 punkt
-
Różni się. Jedyne czego nie mam to zapis ekwipunkow do yaml. Też mógłbyś coś dodać do swoich toolsow bo niczym się nie różnią. W opengui nie zrobisz różnych itemow w gui dla każdego gracza. Gui są stałe i nie możesz później zmieniać itemow dla jednego gracza, typu lore w itemie "Drop: włączony". To też przyczyniło się do stworzenia tego api, chciałem mieć właśnie taka możliwość aktualizowania itemow dla każdego gracza, ale żadne api mi tego nie oferowało. Fajnie byłoby jakbyś uzasadnił czemu jest 'o wiele lepsze'. I tutaj cię zaskocze bo pomysł na te api wziął się właśnie z tego smartinvs. Używałem go ale nie miał wielu funkcji które chciałem, więc zrobiłem własne api. Smartinvs trzyma trochę niepotrzebnych rzeczy i nie ma wielu funkcji fajnych, jakbyś kiedyś tego użył na większym projekcie to sam byś się przekonał1 punkt
-
Wykrywa ci błędy składnijak czegoś źle uzyles. Błędy kodu / pluginu pokazują się jak wlaczysz serwer. Aby napisać dla siebie plugin / skrypt to nie jest wymagany angielski tylko znajomość języka w którym się pisze.1 punkt
-
Omg... Wykrywanie w skrypcie błędów jest proste jeżeli znamy te podstawy w innym przypadku, taka osoba nie napisze zoptymalizowanego skryptu. XD co mają błędy do optymalizacji Wykrywanie w Pluginie błędów mamy od razu kiedy go piszemy. Podczas pisania kodu nie wykrywa nic, lecz gdy odpalisz plugin nagle w konsoli błędy Pomimo że ciężej się piszę pluginy, są one dużo bardziej wydajniejsze To już zależy jak są napisane, bo te 2 kody będą działać tak samo Plugin może napisać każda osoba, która zna Angielski bardzo dobrze. Co ci z tego, że znasz bardzo dobrze angielski, jeżeli nie znasz podstawy javy ? execute console command "kick %arg 1% %arg 2%" Skript posiada wyrażenie kick arg1 due to "%arg 2% Ten kod co napisałeś plugin, to totalna porażka. Nie sprawdziłeś, czy pobierany gracz jest online. Gdy wysyłasz wiadomości zwracasz false, a nie true Po co castujesz playera do sendera, skoro konsola może wykonać tą komendę ? No i pokazujesz tu tylko jedną klasę pluginu....1 punkt
-
SkriptJam/ LudumDareSK
jaku49 przyznał(a) reputację RodgerDodg3r za temat
Może fajnie byłoby zaproponować PSC za wygranę. Mogę zorganizować jakąś nagrodę.1 punkt -
Ogółem nie kupywałem nic u niego, ale widać nawet po odpowiedziach lub swoich projektach, że zna się na tym co robi, w skrócie polecam1 punkt
-
[23:11:32 INFO]: Skript version 2.2-dev31c [23:11:32 INFO]: Customize Minecraft's mechanics with simple scripts written in plain English sentences. [23:11:32 INFO]: Website: https://bensku.github.io/Skript [23:11:32 INFO]: Authors: Njol, Mirreski, bensku, TheBentoBox, tim740, Tuke-Nuke, TheLimeGlass, xXAndrew28Xx, Sashie, RoyCurtis, nfell2009, Syst3ms and Snow-Pyon >ver SkQuery [23:11:36 INFO]: SkQuery version 3.21.4 [23:11:36 INFO]: Author: w00tmast3r > Działa, nie gadaj głupot ;* Ogólnie skrypt, jako tako serwera przed botami nie zabezpiecza, bardziej sobie radzą windowsowskie firewalle Były już podobne skrypty, lecz bez plików YML i komendy. Zliczyłem wady skryptu: [-] Posiadacze SkQuery 3.21.4 (w tym ja) odczują duuuużo błędów w konsoli: spowodowane tym eventem: [-] Nie dałeś wyboru gdzie ma być zapisywany plik yml ze względu na posiadaną wersję SkQuery. Chyba wad już koniec, teraz czas na zalety: [+] Fajnie, że nie dałeś od razu po wejściu gracza zapisywania pliku yml, powiększyło to by wtedy dane na dysku. I niewiadome: [?] Czy jeżeli zamkniesz eq dla gracza, gdy ten trzyma przedmiot, to go nie wyrzuci na ziemię? on inventory click: if inventory name of player's current inventory is "&a&lWeryfikacja &6Anty-Bot": if player's current inventory's slot slot is green wool: set {antybot::session::%player%} to player's uuid delete {antybot::warns::%player%} send "&aDziekujemy za weryfikacje! Zyczymy milej gry!" close player's inventory stop nie widzę cancel event tak samo w przypadku zablokowania konta, a już w linijce 66 ją dałeś. [?] Co tutaj jest takiego, że potrzeba mieć wersję Skript 2.2? Nie ma tutaj funkcji. [?] Nie zapomniałeś o dopisaniu WildSkript? Zobaczmy. Zróbmy serwer gdzie będzie tylko Skript 2.2 i SkQuery (3.21.4) Więc jesteś słaby w wpisywaniu wymagań co do skryptu. Jak widzisz na wyżej wymienionych ss'ach badania wykonywane były bardzo rzetelnie. Pozdrawiam już podchmielony i śpiący #Knugi1 punkt
-
Skript vs Plugin
Rejszpat przyznał(a) reputację CountingDogs za temat
Przecież wszystko dobrze działa, gdybym dał "true" to przecież by wykonało komendę, która nie ma odpowiedniej ilości argumentów :_: Wszystko dobrze działa, poza tym skoro chcesz żebym zrobił drugą część porównania, ok zobaczysz ją :d0 punktów
-
Najwięcej postów w tygodniu
-
Najwięcej tematów w tygodniu
-
Aktywni użytkownicy
Nikt jeszcze nie otrzymał reputacji w tym tygodniu.
