Skocz do zawartości

PoweredDragon

Użytkownik
  • Ilość zawartości

    3064
  • Rejestracja

  • Ostatnia wizyta

  • Wygrane w rankingu

    4

Treść opublikowana przez PoweredDragon

  1. Automatycznie wygenerowana wiadomość. Ten temat został przeniesiony z "Skript → Pytania i problemy" do "Skript → Dodatki → SkQuery".
  2. PoweredDragon

    [Dyskusja] Propozycje

    To było proponowane z 15 stron temu ;_; @UP Da się, skoro Yooka to zrobił w CraftYML, to jest to możliwe :*
  3. Po pierwsze, ile ludzi w ekipie, tyle może być wytłumaczeń tego "better than...". Po drugie, skupiliście się na naprawie tego, co w WS nie działało, ale nie dodaliście niczego, co w ws nie działało... Po trzecie, na sam widok tego, że Cookie z wami "pracował", nie dziwię się Dzikiemu, że nie chciał was uczyć Javy od podstaw... Toć to amator jak ich mało Po czwarte, jak już Sopher dopisał, to i ja dopiszę, Dziki nie miał problemów z pomocą mi na PW. Szczególnie, gdy chodziło o WS, nie odsyłał mnie, jak to ty mówisz, do dokumentacji(inna sprawa, że mnie rzeczywiście nikt Skripta nie uczył, sam pisałem, czytałem dokumentację i jakoś tak wyszło ;f Aczkolwiek "douczał mnie" co poniektórych rzeczy z dodatku i nie było żadnych problemów ._.) Po piąte, skąd wiesz, że Dziki nie jest Bogiem, może to taki ukryty Bóg Skripta B). A tak serio, to nikt go tu jak Boga nie traktuje(przynajmniej w tym temacie), po prostu zachowanie ekipy LLC jest co najmniej irytujące... Warto nadmienić, że nie stwierdził, że nie znacie podstaw Javy, tylko będzie was musiał uczyć od podstaw(adycyjnie sam zwrot <zrobić coś od podstaw> oznacza tyle, że zrobić coś albo gdy coś jest zrobione na poziomie podstawowym, albo gdy coś jest w ogóle nie rozpoczęte, tutaj mogło to oznaczać, że uczy was od poziomu, gdy znacie same podstawy). I powtórzę, nie dziwię mu się... A no może dlatego, że nie rozumiesz, że zachowaliście się nie w porządku. Obrona Patka przed tytułem tematu jest wręcz śmieszna... "Jeszcze nie jest najlepszy, ale będzie". To po kiego grzyba pisać, że jest najlepszy? Poczekaj do momentu, gdy będzie, a potem pisz, że jest i nie marnuj cennego czasu ludziom, bo przez wasze wymyślone "tekściki"(m. in. tytuł tematu i "better than...") powodujecie tylko zbędne kłótnie i spamy. No przecież cały czas mówimy o LLC, a nie o WS. Ej no sorry czytanie ze zrozumieniem? Jak mówiłem, dodatek fajny, będę propably korzystał, jak będzie taka potrzeba(chociaż na razie jej nie widzę...). Po prostu irytuje mnie takie dziecinne zachowanie z waszej strony(czego swoją drogą po ciastku bym się spodziewał...), bo "żart" co najmniej niesmaczny. @RaiZeN Bez komendy można postawić/dać komuś czaszkę innego gracza efektem ze skripta na czysto :*
  4. Jak będzie pełna obsługa WG i WE, to dodatek genialny, póki co tylko świetny xD Bardzo przydatne ;f
  5. @UPSzuk asz ID czołgu, nie wiem. załóżmy 5322 -> ID aliases: tank = 5322on rightclick with tank: cancel eventpowinno anulować operację, bo jak robione było z pokeballami z pixel mona to działało ;f
  6. Witam, Jako że większość "świeżych" skrypterów ma często problemy ze skryptami, wynikające z niezrozumienia błędów, postanowiłem napisać ten poradnik, aby łatwiej było wam zrozumieć jakie błędy popełniliście oraz jak łatwo je naprawić 1. Gdzie jest błąd? Często największym problemem w wykryciu błędu potrafi być sam fakt, że egzystuje, a zaraz po nim - miejsce, w którym się znajduje. Pomocna przy tym jest opcja przeładowania(/sk reload nazwa/all). Po jej użyciu wyświetli nam się informacja czy skrypt ma błędy czy nie. a) Zlokalizuj błąd Najważniejsza jest lokalizacja błędu, co zrobi za nas komenda /sk reload. Po przeładowaniu skryptu używając nazwy, musimy sprawdzić w której linijce znajduje się błąd. W tym celu czytamy nasz błąd aż do momentu line: <jakaś liczba> To właśnie linijka, w której znajduje się nasz błąd. Teraz w skrypcie musimy ją tylko znaleźć i zastosować się do poniższych punktów. To samo w wypadku komendy /sk reload all z tym, że musimy również przeczytać nazwę pliku - również mieści się w opisie błędu i zakończona jest .sk Nie będzie więc problemu z jej znalezieniem b) Upewnij się, że poprawnie wpisałeś polecenie Wiele błędów wynika z błędnego wpisania polecenia. Najczęściej jest to literówka, ale często też błędna interpretacja dokumentacji (z której notabene należy korzystać; jeśli jesteście prawie pewni składni, to wpiszcie jej fragment do wyszukiwarki, a na pewno znajdziecie poprawną wersję). Jedne z częstszych błędów: [on] (step|walk)[ing] (on|over) %*item types% Jak widzimy mamy wyraźnie zaznaczone rzeczy obowiązkowe i/lub opcjonalne. Rzecz obowiązkowa znajduje się w nawiasie okrągłym - "()", gdy można jej użyć na różne sposoby lub w ogóle nie nie jest objęta nawiasem. Rzecz opcjonalna to tekst w kwadratowym nawiasie(tu: [on], [ing], etc.). Warto również pamiętać, że znaku "%" używamy tylko w tekście. Nigdy nie używamy więc ich w poleceniach. Należy również wspomnieć o pewnej zależności - jeśli coś jest obowiązkowe, to pominięcie zawsze wyrzuci nam błąd. Nie ważne, że reszta polecenia jest poprawna... Powyższy wyciąg z dokumentacji możemy rozbić na kilka sposobów działających tak samo! on step over dirt: on step on dirt: on steping on dirt: on steping over dirt: step over dirt: step on dirt: steping over dirt: steping on dirt: on walk over dirt: on walk on dirt: on walking on dirt: on walking over dirt: walk over dirt: walk on dirt: walking over dirt: walking on dirt: błędne sposoby: on walking: on steping: on walking on %dirt%: on steping over %dirt%: c) Upewnij się, że nie jest to wina braku dodatku Ludzie często popełniają błędy używając poleceń znajdujących się w dodatkach do Skript takich jak WildSkript czy SkQuery. Musimy mieć 100% pewność, że owe dodatki są zainstalowane i w pełni działają. Pomocna jest tutaj komenda /plugins pokazująca nam pełną listę wtyczek. Gdy wtyczka jest wyłączona, jej nazwa wyświetla się na czerwono, dzięki czemu możemy stwierdzić, czy nasz dodatek "chodzi". Przydatne informacje: Do wyrażenia money potrzebny jest Vault. Bez niego pojawią się błędy! Wydarzenia on region enter/leave wymagają regionów np. z WorldGuard. Nie współpracują z regionami innymi niż te z listy pod owym wydarzeniem w dokumentacji! d) Jeśli nic nie pomaga, przeinstaluj pliki Częstym problemem jest niedziałający Skript lub jego dodatek, lub niezgodne wersje serwera z wtyczkami, które na nim są. Np. błędna wersja Skript/WildSkript/Vault/SkQuery/etc. Dla starszych wersji trzeba trochę szperać za zgodnymi wtyczkami (np. WS 1.7, Skript 2.1.2, Bukkit pod 1.7.10); nowsze są załatwione za nas - wystarczy sprawdzić na SkUnity pod jaki build Skripta utworzony został dodatek. 2. Odstępy Może wiecznie zastanawiasz się, czemu ludzie piszą ci "Tylko sobie wytabuj", "Musisz tylko wytabować" itd. Bardzo częstym błędem skryptów, spowodowanym niedopatrzeniem jest "błąd wcięć". W konsoli/po przeładowaniu skryptu pierwszymi słowami, które go opisują są Indentation error Jednym z błędów, który często wynika z błędnego 'wytabowania' jest również Empty configuration section Mamy również informacje o tym, czego Skript "oczekuje", a co napotkał: expected <ilość> <typ wcięcia> but found <ilość> <typ wcięcia> np. expected 1 tab but found 4 spaces Oznacza to, że 4 spacje powinniśmy zamienić na jeden tab. Warto pamiętać o tym, że wcięcia muszą się zgadzać tylko w danej sekcji, tj. pod jednym wydarzeniem wcięcia muszą być równe po każdym dwukropku. Nic nie stoi na przeszkodzie, aby pod różnymi wydarzeniami były inne odstępy Musimy też wiedzieć, że dwukropek rozpoczyna nową sekcję konfiguracyjną (ale nie pełną sekcję). Oznacza to, że po dwukropku odstępy są obowiązkowe. Jeżeli go nie użyjemy, to efekt wpisujemy linijkę pod nim, ale musimy pamiętać, że jeżeli go wstawimy, to bez dodatkowego odstępu się nie obejdzie. ---->Bledne wydarzenie: warunek: warunek: efekt ---->Prawidlowe wydarzenie: warunek: warunek efekt Należy nadmienić, że powyższy błędny kod nie jest błędny per se. Tak długo jak odstępy są identyczne, puste sekcje konfiguracyjne mogą istnieć i nie powodować większych problemów. Efekt będzie wywołany bezpośrednio po wydarzeniu, bez uprzedniego sprawdzenia warunków - to zaś mija się z celem generowania warunków. Warto o tym pamiętać. 3. Co dwa znaki to nie jeden! Ale liczy się też pole do popisu! W Skripcie istnieją trzy znaki specjalne, które są używane bardzo często i bardzo łatwo jest spowodować błąd, gdy je zapisujemy. Są to cudzysłów ("), klamry "{}" i procent "%", a także znak ":" przy tworzeniu list zmiennych. Owe znaki zawsze muszą mieć parę, ponadto muszą zostać użyte we właściwym miejscu. Błędy z cudzysłowem poprzedzone są Invalid use of quotes błędy z klamrą najczęściej są opisywane niemożliwością zrozumienia wyrażenia Can't understand expression Użycie "%" w wydarzeniu/efekcie spowoduje błąd Can't understand this condition/effect natomiast nieodpowiednie oprocentowanie w cudzysłowie wywali: The percent sign is used for expressions (e.g. %player%). To insert a '%' type it twice: %% Przykłady: send "%{maslo::*}% to player Błędne, bo brakuje cudzysłowa zamykającego 1 spację przed słowem "to" send "%{maslo::*%" to player Błędne, bo brakuje klamry zamykającej zmienną send "%{maslo::*}" to player Błędne, bo brakuje "%" potrzebnego do odczytania zmiennej send "%{maslo:*}% to player Błędne, bo w zmiennej występuje tylko jeden ":" send "%{maslo::*}%" to player 100% poprawny zapis 4. Co ja robię tu? Bardzo częstym błędem są braki danego wyrażenia/typu/obiektu w warunku/efekcie którego użyliśmy. jest to m. in. używanie player w wydarzeniach okresowych takich jak pętla every %timespan% [in %world%] gdzie najpierw graczy musimy zapętlić, loop all players [in %world%] a potem odwołać się do zapętlonego gracza loop-player lub w innych wydarzeniach, w których gracza nie ma (lub występuje pod inną postacią). Np. command /mleko: executable by: console trigger: send "maslo" to player on spawn of zombie: send "Obok ciebie zespawnowal sie zombie!" to player every 3 seconds: send "debug!" to player on damage: set {attacked::%player%} to true Oczywiście tyczy to również bloków jak i innych bytów (zarówno zombie jak i ramka muszą być zapętlone w wydarzeniu, w którym chcemy ich użyć, gdy same w nim nie występują). Jest to bardzo ważne. Charakterystyczne błędy powiedzą nam: There's no <tu wyrażenie, którego użyliśmy> in <typ wydarzenia> event[s] lub w rozszerzonej formie There's no <tu wyrażenie, którego użyliśmy> in <typ wydarzenia> event[s] if no <typ wyrażenia> is given in the event (e.g. like 'przykład wydarzenia z dodatkowym typem') np. There's no player in periodic events There's no world in periodic event if no world is given in the event (e.g. like 'every hour in "world"') oraz Use 'coś', 'coś', ..., and/or 'coś' in <typ wydarzenia> events np. use 'victim' and/or 'attacker' in damage events Szczególnym przypadkiem tego błędu, jest błąd występujący w pętlach: There's no loop that matches 'loop-<typ>' np. There's no loop-that matches 'loop-player' wystąpi on na przykład w tym kodzie: loop {zmienna::*}: loop-player is sneaking: ... Łatwo go naprawić; wystarczy pamiętać, jakie wartości są charakterystyczne dla pętli: loop {zmienna::*}: send "%{zmienna::%loop-index%}% to %loop-value%" send "%loop-index% to wartość porządkowa (najczęściej numer)" loop blocks in radius 5 of {_loc}: send "%loop-block% to zapętlony blok!" loop players in radius 5 of {_g}: send "%loop-player% to zapętlony gracz" loop zombies where [zombie input is named "Kappa"]: send "%loop-zombie% to %loop-entity%, a to z kolei jest zapętlony zombiak!" loop 5 times: send "%loop-number% to raz, który już wykonywana jest pętla; najpierw będzie 1, potem 2 i tak aż do numeru w definicji pętli" Prawie ostatnim już błędem (który ponadto mówi jak się rozwiązać) jest błąd: There are multiple loops that match 'loop-<typ>' np. There are multiple loops that match 'loop-player' Wystarczy to załatwić, poprzez numerowanie, zależnie od pętli, którą chcemy: loop all players: #PĘTLA NR 1 loop-player's helmet slot is leather cap named "&aCzapka niewidka": #Tu nie musimy numerować, bo narazie jest jedna pętla loop players in radius 10 of loop-player: #PĘTLA NR 2 loop-player-2 doesn't have permission "niewidka.zobacz": #Sprawdza graczy z pętli nr 2 hide loop-player-1 from loop-player-2 #Ukrywa gracza z pętli nr 1 przed graczami z pętli nr 2 Przedostatni już błąd na tej liście, to linijka wyjęta z kontekstu - nie występuje pod żadną sekcją ani wydarzeniem invalid line - all code has to be put into triggers "Last stander" punktu czwartego to 'else' has to be placed just after an 'if' or 'else if' section charakterystyczny, jeżeli, tak jak w treści, else wstawiamy po warunku, który nie jest ani "ifem", ani "else ifem"... 5. Konflikty występują nawet w tekstach, czyli sprzeczka pobratymców. Bardzo często dostajemy informację Possible name conflict of variables Później informacja jakie to zmienne. Skąd to się bierze? Technicznie nie jest to błąd, ale informacja ostrzegawcza, że gdzieś może coś się zepsuć (nie jest to błąd techniczny, ale może być błędem praktycznym). Załóżmy, że ktoś tworzy mini grę o nazwie BigBubblesAttack, zmienną zapisuje w ten sposób: on join: set {bigBubblesAttack::%player%} to true No i wszystko spoko. Do czasu, bo gdy ta sama osoba robi np. zmienną grupową dotyczącą rozpoczęcia gry i nazywa ją tak: command /start: trigger: set {bigBubblesAttack::rozpoczeto} to true to całość może się sypnąć przed wpisaniem komendy. Jak? Wystarczy, że zanim jakaś osoba wpisze /start, na serwer wejdzie gracz o nicku "rozpoczeto". Dlatego najprostszym sposobem są dodatkowe dopiski w komendach. Zamiast {bigBubblesAttack::%player%} użyj {bigBubblesAttack::lista::%player%} A zamiast {bigBubblesAttack::rozpoczeto} użyj {bigBubblesAttack::status::rozpoczeto} i konflikt zmiennych zażegnany! 6. Porównanie to ważny środek artystyczny Równie popularnym co poprzednicy błędem jest can't compare <typ> with <częśc kodu> czasem rozszerzone o powód can't compare <typ> with <częśc kodu> because the latter is not an object "Compare", to z angielskiego "porównywać"; skrypt nie widzi danego typu w zastosowanej składni, np. can't compare player with "Edward" Wynika to z różnicy w typach; w dokumentacji zauważamy, że warunki, wydarzenia i efekty mają ściśle określoną składnie (dodatkowy powód oznacza, że to czego użyliśmy nie pasuje do żadnej składni, którą kojarzą Skript lub dodatki). Nie możemy od tak sobie zamienić ich kolejnością. Tam, gdzie jest %player% musimy użyć gracza; tam gzie jest %world% użyć świata itd. Bardzo często wystarczy użyć parse'a na stringu: Poradnik o parse'owaniu tutaj 05.07.2017 Poradnik edytowany; poprawione błędy w stylu, dodana miniaturka poradnika wykonana przez @Norbi oraz dodano punkt 6. 29.12.2019 Poradnik edytowany; poprawione błędy w stylu, wprowadzone drobne poprawki merytoryczne, usunięto powtarzające się fragmenty
  7. @UP Tworzenie plików/folderów, zmiana zawartości plików, mam wymieniać dalej? Oprócz tego sam narzekasz na nadmiar dodatków, ale twój dodatek nie jest godzien nazywania się porównywalnym do tych, które wyżej wymieniłem... Co sprawia, że trzeba ich więcej, dla na prawdę zaawansowanego skryptera, który "nie chce mieć ograniczeń". Osobiście będę korzystał, bo dodatek jest na prawdę fajny, ale takie pysznienie się, gdy w dodatku w rzeczywistości nie ma nic innowacyjnego IMO jest bezsensowne...
  8. Automatycznie wygenerowana wiadomość. Ten temat został przeniesiony z "Skript → Pytania i problemy" do "Minecraft → Ogólne → Tekstury".
  9. @Dziki a to nie miało możliwości zadziałać(gdzieś ktoś mi dał taki kod ;f) command /replace [<text&gt]: trigger: set {_rep} to return of function "function.replaceAllA" { "%arg%" } send "%{_rep}%" to playerfunction "function.replaceAllA" { }: set {_arg} to farg-1 replace all "A" in {_arg} with "." return {_arg}
  10. Wróciłem z zaświatów, tj. wakacji :D

    1. Pokaż poprzednie komentarze  3 więcej
    2. PoweredDragon

      PoweredDragon

      Bodło cię coś? Nie stać mnie. Mam inne wydatki ,_,

    3. tropereks

      tropereks

      Idz, nie wracaj, nie chce cie wiecej znac. ~ (Jakis random)

  11. Kawał dobrej roboty, jak wrócę do domu(dzisiaj!) to wreszcie popiszę sobie skrypty :D
  12. @UP Paredziesiąt opcji* Dodatek w zasadzie nic nowego oprócz tego "sprintowania", otwierania strony, linii z pliku nie dodaje, bo reszta jest już w WS. Ew. te czaszki, które i tak da się położyć bez twojego dodatku ;f IMO Do najlepszego, to on za szybko nie dojdzie, jest gorszy od SkQuery, WildSkript, RandomSk, ExtrasSk również nad nim góruje, "póki co" i nie ma co się chwalić, że członek ekipy potrafi złamać prawo, bo i ja potrafię walnąć przechodnia w nos i dostać 48 :*
  13. PoweredDragon

    [Dyskusja] Propozycje

    @UP Tablista jest w WildSkript -,-
  14. Duh. Kiedyś tam ~Kiedy dinozaury chodziły po ziemi ~ na pewnym portalu dot. minecraft pojawił się poradnik dot. Skripta. Poczytałem sobie i mnie to zainteresowało ;f Stałem się jednym z 'bardziej znanych' ludzi piszących skrypty na innym forum, po czym zobaczyłem Chat+ opublikowane w tamtym miejscu i odnośnik do skript.pl :d
  15. Ludzie? Nudzi się wam. Ja na prawdę nie będę 100 osobom dawał topki na tab -,-

  16. Ten event nie łączy się z regionami WS -,- Sam Dziki o tym pisał. Nie ma raczej innego sposobu niż sprawdzanie zmiennej co mniej więcej 10 ticków (Ile chcesz, byle nie mniej niż 5). To najprostszy sposób. http://skript.pl/index.php/topic/1979-gildie-wchodzenie-oraz-wychodze-z-terenu-gildii-z-intruzem-wildskript/ // Pozwoliłem sobie edytować informacje o częstotliwości (w tickach) xd - Mrs. Panda
  17. PoweredDragon

    Config

    @UP W poprzednich wersjach(przynajmniej u mnie) pojawiał się błąd, w którym tylko ścieżka do pliku ulegała parsowaniu, co pisało, że 'text cannot be parsed as...' czy jakoś tak. Da się to chyba wyeliminować otwierając nawias przed 'value' i zamykając po ostatnim ' " ' :F
  18. PoweredDragon

    Config

    {chanceDiamond} z góry jest zapisywana jako wartość liczbowa, aczkolwiek dla pewności lepiej ją nadpisać jako wartość liczbową(czasami są z tym błędy; nie powiem ;f
  19. @UP Przecież zostało to właśnie ujęte w poradniku -,- ludzie czytajcie ze zrozumieniem. Poradnik taki sobie, mało rozbudowany, w dodatku nie ma tu wszystkiego o potionach ;c
  20. PoweredDragon

    Config

    on load: set {chanceDiamond} to value "chance.diamond" get of "sciezka do pliku" set {chanceDiamond} to {chanceDiamond} parsed as integeron join: chance of {chanceDiamond}%: give 1 diamond to player
  21. Przecież serwer można zrobić 1.7.2-1.7.10. Nie wiem czy do tego można użyć Spigota 1.7.10, ale raczej tak...
  22. Od tego jest poradnik gdzieś wyżej, odnośnie wchodzenia i wychodzenia z regionu ;f
  23. Zamiast nazwanie tego anvil gravity, zmień nazwę na jakąś pasującą do wagi i dodaj np., że nie można chodzić z kilkoma blokami w EQ(jeśli ktoś kapuje, to w EQ można mieć nawet 44x64 bloki złota. Jeden blok złota = 1m^3 złota, a jak ktoś zna gęstość złota to wie ile ton ma się w eq mając chociażby pół stacka ._. Lepsza fizyka rządzi. Nawet fajny skrypt :D
  24. @UP 1.50 jak już. Jak się używa żartobliwych zwrotów, to poprawnie >.< 1.81, ale nie martwcie się. To nie koniec :_: Od początku roku Już trochę przybyło[1.72 w sylwestra] @Patek nie uwierzę, że jeszcze rośniesz ._. Chyba jakiś kurde Gigant :f
  25. @UP Chyba nie umiem czytać, bo nazwa poddziału to Pytania i problemy. Ale co tam. Niedowidzę na starość. Lepiej, żeby było na 1.7.9/10. Większość osób: a) Korzysta z 1.7.9/10(SkQuery, RandomSk) b )Korzysta z optymalniejszej wersji c) Korzystać będzie z przyszłego 1.8, na które łatwiej przeskoczyć będzie zdecydowanie z 1.7.9/10 niż z 1.7.2 :c
×
×
  • Dodaj nową pozycję...