Skocz do zawartości

TrickeyPL

Użytkownik
  • Ilość zawartości

    21
  • Rejestracja

  • Ostatnia wizyta

Aktywność reputacji

  1. Smutny kocur (0)
    TrickeyPL przyznał(a) reputację dla Tymekd w „Sortowanie” czatu   
    Mogę ci napisać taki skrypt jutro, ale chcesz aby czytał rangi z pexa? czy poprostu dasz danej randze permisjie np. chat.vip albo chat.gracz
  2. Super (+1)
    TrickeyPL przyznał(a) reputację dla Crystal_PL w Składnia do Sublime text 3   
    Znalezienie Zarejestruj się lub zaloguj, aby zobaczyć ukrytą treść! nie było trudne.
  3. Super (+1)
    TrickeyPL przyznał(a) reputację dla kerpson w Problem z folderm   
    To dodaj WildSkript
  4. Polubienie (+1)
    TrickeyPL przyznał(a) reputację dla vuxeim w Pomocy!   
    Tak
     
    options: mieczyk: diamond sword of sharpness 5 and unbreaking 3 and fire aspect 3 named "miecz" with lore "fajny jest" on script load: register new shaped for {@mieczyk} using 1, 2, 3, 4, 5, 6, 7, 8, 9 Liczby podmień na itemy według wzoru:
    Układ slotów w craftingu:
    1 2 3
    4 5 6
    7 8 9
  5. Super (+1)
    TrickeyPL przyznał(a) reputację dla sopher w Skript - z czym to się je?   
    Co to jest Skript?
    Wtyczka Skript pozwala nam na bardzo proste tworzenie dodatków na swój serwer minecraft. Nie musimy znać żadnego języku programowania, lecz jakakolwiek wcześniejsza wiedza na temat C++/ Javy nam nie zaszkodzi, a wręcz pomoże zrozumieć funkcje pluginu. Przyda nam się także dobra znajomość języka angielskiego/ niemieckiego, ponieważ wszystkie zdarzenia, efekty, warunki opierają się na tych językach.

    Przydatne informacje.
    Autor wtyczki: Zarejestruj się lub zaloguj, aby zobaczyć ukrytą treść!
    Wersja MC, na której działa wtyczka: 1.1-1.7.4
    Aktualna wersja: 2.1 (1.7.2/1.7.4)
    Polski support: Skr*pt.pl lub Bukk*t.pl
    Dokumentacja: Zarejestruj się lub zaloguj, aby zobaczyć ukrytą treść!
    W dokumentacji są zawarte wszystkie rzeczy,
    które pomogą nam w tworzeniu swoich skryptów.

    Jak to działa?
    Wszystkie skrypty, które stworzyliśmy lub pobraliśmy powinny znajdować się w specjalnym folderze dzięki czemu nasza wtyczka odczyta każdą linijkę ów skryptu, a następnie przetworzy ją na zrozumiały język dla Javy, na którym działa Craftbukkit oraz Minecraft.

    Komendy.
    /skript lub /skript help - wyświetlenie komend wtyczki.
    /skript reload [all, config, aliases, scripts, <script&gt] - przeładowanie pliku konfiguracyjnego, aliasów oraz wszystkich skryptów / pliku konfiguracyjnego / aliasów / wszystkich skryptów / wybranego skryptu.
    /skript enable [all, <script&gt] - włączanie wszystkich skryptów/ wybranego skryptu.
    /skript disable [all, <script&gt] - wyłączanie wszystkich skryptów/ wybranego skryptu.
    /skript update - informacje o aktualizacjach wtyczki.

    Instalacja oraz omówienie plików.
    Instalacja.
    1. Pobierz najnowszą wersje Skript.jar
    2. Wrzuć pobrany plik do folderu plugins.
    3. Włącz serwer, aby wygenerowały się pliki konfiguracyjne, aliasy, katalogi oraz przykładowe skrypty.
    Omówienie plików.
    plugins/Skript.jar - wtyczka obsługująca nasze skrypty.
    plugins/Skript - główny katalog wtyczki, gdzie znajdują się pliki konfiguracyjne, skrypty, logi, aliasy etc.
    plugins/Skript/config.sk - główny plik konfiguracyjny wtyczki.
    plugins/Skript/aliases-english.sk - aliasy przedmiotów w języku angielskim.
    plugins/Skript/aliases-german.sk - aliasy przedmiotów w języku niemieckim.
    plugins/Skript/scripts - katalog do, którego wrzucamy skrypty.
    plugins/Skript/variables.csv - plik przechowujący zmienne.*
    plugins/Skript/logs - katalog, w którym znajdują się zapisane logi wywołane przez skrypty.*
    plugins/Skript/backups - katalog, w którym znajdują się kopie zapasowe plików zmiennych.*
    * - zostanie utworzone tylko wtedy, kiedy będzie konfiguracja tego wymagała.

    Omówienie pliku konfiguracyjnego.
    language: englishWybieramy język, który będzie obsługiwał skrypty. Domyślnie mamy do wyboru język angielski oraz niemiecki - english/ german.
    check for new version: trueSprawdzanie czy jest dostępna nowa wersja. Wybór: true/ false - prawda, fałsz.
    update check interval: 12 hoursCo ile czasu ma sprawdzać dostępność nowej wersji. Tylko wtedy jeżeli check for new version jest ustawione na true.
    automatically download new version: falseAutomatyczne pobieranie nowej wersji. Wybór: true/ false - prawda, fałsz.
    enable effect commands: falseCzy można bezpośrednio używać efektów jako komendy. Wybór: true/ false - prawda, fałsz. Jeżeli jest ustawiona wartość true należy nadać specjalne uprawnienia graczowi/ grupie, aby mógł tego używać - skript.effectcommands. Domyślnie opcja jest wyłączona także dla OPów ze względu na możliwe zniszczenie serwera.
    Nie polecam używania tego. Przykładowe komendy:
    !heal player - leczy gracza.
    !ban all players - banuje wszystkich graczy.
    !create explosion of force 10000 - tworzenie wybuchu o sile 10000.

    Jeżeli opcja enable effect commands jest prawdą możemy ustawić prefiks, dzięki któremu będziemy mogli używać ów komend.
    effect command token: !variables backup interval: 2 hoursCo jaki czas ma być wykonywana kopia zapasowa zmiennych.
    database:Ustawienia dotyczące przechowywania zmiennych.
    type: noneTyp przechowywania zmiennych. Dostępne: MySQL oraz SQLite. Jeżeli jest opcja none to wszystkie pliki będą zapisywane w bazie CSV - variables.csv
    monitor changes: falsemonitor interval: 20 secondsJeżeli opcja monitor changes będzie włączona (true) to zmienne będą wielokrotnie sprawdzane w celu dostępności ich aktualizacji. Wybór: true/ false - prawda, fałsz. Opcja monitor interval odpowiada za sprawdzanie co ile czasu ma działać opcja monitor changes.
    host: localhostport: 3306user: rootpassword: passdatabase: skriptKonfiguracja bazy danych MySQL.
    file: ./plugins/Skript/variables.dbKonfiguracja bazy danych SQLite.
    date format: defaultFormat daty. Przykładowe formaty daty dostępne Zarejestruj się lub zaloguj, aby zobaczyć ukrytą treść!.
    verbosity: normalOkreślenie ile informacji będzie przechowywanych. Dostępne wartości: low, normal, high, very high, debug.
    plugin priority: highPriorytet pluginu. Dostępne wartości: lowest, low, normal, high, highest.
    Opcja przydaje się jeżeli chcemy zastąpić jakąś komendę z innego pluginy, efekt etc.
    log player commands: trueZapisywanie logów używanych komend przez gracza. Wybór: true/ false - prawda, fałsz.
    number accuracy: 2Ile cyfr ma być wyświetlanych po kropce przy wyświetlaniu liczby.
    maximum target block distance: 100Maksymalna odległość od celu.
    case sensitive: falseCzy wtyczka ma zwracać uwagę na wielkość liter przy efekcie replace, warunku contains oraz is/ is not. Wybór: true/ false - prawda/ fałsz.
    disable variable conflict warnings: falseWyłączenie wiadomości przy możliwym konflikcie zmiennych. Wybór: true/ false - prawda/ fałsz.
    version: 2.0.2Wersja wtyczki. NIE ZMIENIAJ TEJ WARTOŚCI.




    Zdarzenia, efekty, warunki, pętle, komendy.
    Zdarzenia.
    Zdarzenia wykorzystujemy zawsze jeżeli chcemy wywołać dany efektów. Przykład:
    on explode: cancel eventJeżeli zdarzeniem będzie wybuch zostanie wykonany efekt cancel event.

    Efekty.
    Efektu możemy używać w zdarzeniach (przykład wyżej) lub w komendach. Przykład:
    heal playerUleczenie gracza.


    Warunki.
    Warunki generalnie są połączone z efektami. Aby został wykonany efekt musi zostać spełniony warunek.
    if player has permission "skript.mpc": damage player by 2 heartsJeżeli gracz ma uprawnienie skript.mpc zostanie odebrane mu 2 serduszka (punkty życia).

    Pętle.
    Pętle jak sama nazwa wskazuje możemy zapętlać coś, aby nie musieć wykonywać efektu dla każdego elementu.
    loop all players: send ":-)" to loop-playerZapętlamy wszystkich graczy, a następnie wysyłamy wiadomość ":-)" do zapętlonego gracza.

    Komendy.
    Możemy stworzyć swoją komendy, która wykona efekt. Do komend zostało dodanych kilka wartości, które mogą nam się przydać. Krótki opis wartości.
    command /nazwakomendy <argumenty>: description: Opis komendy. usage: Użycie komendy. permission: Uprawnienia do komendy. permission message: Wiadomość jeżeli gracz przy wykonaniu komendy nie ma danych uprawnień. executable by: Przez co może być wykonana komenda - players/console/players and console aliases: Aliasy komendy - /nk, /n, /k. trigger: Efekt komendy.Przykładowa komenda:
    command /helloworld [<player>]: permission: hello.world executable by: players aliases: /hw trigger: if arg is not set: send "Hello World!" to player else if argument is online: send "Hellow World!" to argumentOmówię każdą linijkę komendy :-)

    command /helloworld [<player&gt]: - tworzenie komendy.
    permission: hello.world - uprawnienia do użycia komendy.
    executable by: players - kto może użyć komendy.
    aliases: /hw - aliasy komendy.
    trigger: - wywołanie komendy.
    if arg is not set: - jeżeli argument nie jest określony.
    send "Hello World!" to player - wysyłanie wiadomości "Hello World!" to gracza wykonującego komende.
    else if argument is online: - jeżeli argument jest aktywny.
    send "Hellow World!" to argument - wysyłanie wiadomości "Hello World!" to gracza - argumentu.





    Przygotowania do tworzenia swojego skryptu.
    Aby rozpocząć tworzenie skryptu będzie nam potrzebny edytor tekstowy, np. Notatnik. Jeżeli chcemy sobie ułatwić sprawę i skorzystać z dobrego, darmowego edytora tekstowego to polecam skorzystać z Notepad++, do pobrania na stronie:
    http://notepad-plus-plus.org/'>>http://notepad-plus-plus.org/Jeżeli jeszcze bardziej chcemy sobie ułatwić sprawę z tworzeniem skryptów możemy użyć kolorowania składni skryptów w edytorze Notepad++. Szczegółowy poradnik dostępny tutaj:
    http://dev.bukkit.org/bukkit-plugins/skript/forum/misc/54386-release-notepad-udl-for-skript-updated-august-28'>>http://dev.bukkit.org/bukkit-plugins/skript/forum/misc/54386-release-notepad-udl-for-skript-updated-august-28Przykład kolorowania składni:


    Tworzenie swojego skryptu.
    Aby rozpocząć tworzenie swojego skryptu musimy zapoznać się z podstawowymi funkcjami wtyczki, które zostały omówione wyżej.
    Jeżeli chcemy przejść na poziom wyżej to możemy dokładnie przeczytać dokumentacje pluginu.
    Wskazówka:
    Po każdym znaku : musisz dać o jeden tabulator/ lub 8 spacji więcej niż poprzednio. Polecam używanie TABów.
    Omówię teraz kilka prostych skryptów, abyś mógł czegoś się nauczyć i napisać swój własny skrypt!
    Pierwszy skrypt.
    on rightclick holding a sugar: if name of player's tool is "&d&lKokaina": if player has permission "kokaina": send "&f[&bS&f] &7Pamietaj, ze mozesz zginac! Uzyles kokainy na wlasna odpowiedzialnosc." wait 2 seconds broadcast "&f[&bS&f] &7Gracz &6%player% &7byl na tyle odwazny, ze uzyl kokainy." remove 1 sugar named "&d&lKokaina" from player execute console command "/effect %player% 1 40 2" execute console command "/effect %player% 4 40 5" execute console command "/effect %player% 9 40 5" execute console command "/effect %player% 15 40 1" wait 6 seconds send "&f[&bS&f] &7I jak, fajnie sie czujesz? To jeszcze nie koniec." to player wait 10 seconds loop 5 times: damage player by 1 hearts wait 1 seconds send "&f[&bS&f] &7I na co Ci to bylo?" to player wait 10 seconds send "&f[&bS&f] &7Mama wie, ze cpiesz?" to player wait 10 seconds execute console command "/effect %player% clear" send "&f[&bS&f] &7Zabawiles sie? Moze to powtorzysz?" to player stop else: send "&f[&bS&f] &7Nie masz uprawnien, aby uzyc kokainy." stop else: stopon rightclick holding a sugar:Zdarzenie: kliknięcie PPM (Prawy Przycisk Myszy) trzymając cukier.
    if name of player's tool is "&d&lKokaina":Warunek: jeżeli nazwa narzędzia gracza to "&d&lKokaina"
    if player has permission "kokaina" or "sopher":Warunek: jeżeli gracz posiada uprawnienie "kokaina" lub "sopher".
    send "&f[&bS&f] &7Pamietaj, ze mozesz zginac! Uzyles kokainy na wlasna odpowiedzialnosc."Efekt: wysyłanie wiadomości.
    wait 2 secondsEfekt: czekanie 2 sekund.
    remove 1 sugar named "&d&lKokaina" from playerEfekt: usunięcie 1 cukru z nazwą "&d&lKokaina" od gracza.
    execute console command "/effect %player% 1 40 2"Efekt: wykonanie komendy przez konsole.
    loop 5 times:Pętla: zapętlanie efektu 5 razy.
    else:Warunek: jeżeli warunek "wyżej" nie jest spełniony.


    Drugi skrypt.
    command /bug [<text>]: trigger: if argument is not empty: log "%player% zglosil bug o tresci: %argument%" to "bugi" send "&f[&bS&f] &7Zgloszenie buga przebieglo pomyslnie! Pamietaj, ze jedno zgloszenie wystarczy." to player else: send "&f[&bS&f] &7Uzyj dokladnej komendy - &e/bug <tutaj_opisz_bug>" to playercommand /bug [<text>]:Komenda: tworzenie komendy /bug z niewymaganym argumentem tekstowym.
    if argument is not empty:Warunek: jeżeli argument nie jest "pusty".
    log "%player% zglosil bug o tresci: %argument%" to "bugi"Efekt: zapisywanie wiadomości z zmienną gracza (%player%) oraz z zmienną tekstową (%argument%) do pliku "bugi" w folderze plugins/Skript/logs.
    send "&f[&bS&f] &7Zgloszenie buga przebieglo pomyslnie! Pamietaj, ze jedno zgloszenie wystarczy." to playerEfekt: wysyłanie wiadomości do gracza.


    Trzeci skrypt.
    on death of player: strike lightning effect at the playeron death of player:Zdarzenie: przy śmierci gracza.
    strike lightning effect at the playerEfekt: uderzenie piorunem w miejscu gracza.



    Dodatki do wtyczki.
    Uważasz, że Skript ma mało możliwości? To nie problem, możesz użyć gotowych dodatków do wtyczki, aby rozszerzyć sobie pole do tworzenia skryptów. Publiczne rozszerzenia:
    SkriptPlus - Zarejestruj się lub zaloguj, aby zobaczyć ukrytą treść!
    HookSk - Zarejestruj się lub zaloguj, aby zobaczyć ukrytą treść!
    Skinteractions - Zarejestruj się lub zaloguj, aby zobaczyć ukrytą treść!
    SkriptTag - Zarejestruj się lub zaloguj, aby zobaczyć ukrytą treść!
    SpectateHook - Zarejestruj się lub zaloguj, aby zobaczyć ukrytą treść!
    Możesz także stworzyć swoje rozszerzenie do Skript'a wykorzystując dostępne API.
    Wszystko jest wyjaśnione Zarejestruj się lub zaloguj, aby zobaczyć ukrytą treść!!

    Zakończenie.
    Myślę, że dzięki tej prezentacji wiesz już do czego służy wtyczka Skript, nauczyłeś się podstawowych elementów do tworzenia skryptów oraz stworzyłeś swój pierwszy skrypt! :)



    W miarę moich możliwości temat będzie rozwijany :)
    Zakaz kopiowania treści tematu, użytych grafik.
    Wszystkie skrypty użyte w tym temacie są mojego autorstwa i zezwalam na ich dowolne używanie.
  6. Polubienie (+1)
    TrickeyPL przyznał(a) reputację dla PoweredDragon w Jak rozumieć błędy?   
    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 Zarejestruj się lub zaloguj, aby zobaczyć ukrytą treść! 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:
    Zarejestruj się lub zaloguj, aby zobaczyć ukrytą treść!

    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. Polubienie (+1)
    TrickeyPL przyznał(a) reputację dla boleknowak w Plik YML!   
    Siema! Chciałbym was 'nauczyć' tworzenia pliku yml. Tworzę ten poradnik ponieważ dużo osób tego nie umie.
     
    Panel punktów:
      1. Co to jest plik YML?
      2. Tworzenie takiego pliku
      3. Zapisywanie do niego czegoś
      4. Odczytywanie z tego pliku
      5. Przykłady
     
    Zaczynamy....
     
    [infosopher]
    1. Co to jest plik YML?
    [/infosopher]
     
    W pliku YML możemy zapisać np. wiadomości, opcje itd.
    Przez plik YML zaoszczędzimy linijek w skrypcie (np. z 500 linijek stworzy się 400) i skrypt będzie bardziej estetyczny
     
    [infosopher]
    2. Tworzenie takiego pliku
    [/infosopher]
     
    Jak stworzyć taki plik?
     
    Musimy sprawdzić czy folder x jest stworzony:
    on load: if folder "plugins/Skript/scripts/Folder" doesn't exists:(Najlepiej nazywać folder nazwą skryptu)
    Jeśli nie jest to musimy stworzyć folder
    send "Nie odnaleziono folderu Folder!" to console    send "Tworzenie...." to console    create folder "plugins/Skript/scripts/Folder"    send "Folder Folder został pomyślnie stworzony!" to consoleTeraz musimy stworzyć sam plik konfiguracyjny (YML)
    if file "plugins/Skript/scripts/Folder/config.yml" doesn't exists:    send "Nie znaleziono pliku config.yml!" to console    send "Tworzenie...." to console    create file "plugins/Skript/scripts/Folder/config.yml"[infosopher]
    3. Zapisywanie do niego czegoś
    [/infosopher] 
    Musimy zrobić takie coś:
    wf "test: 'false'" to "plugins/Skript/scripts/Folder/config.yml"    send "Pomyślnie stworzono plik konfiguracyjny!" to console    Wait 10 ticks    execute console command "/sk reload %script%"wf - tworzenie pliku w czymś
    "test: 'false'" jest to fraza która będzie w pliku yml
    .... Przeładowywujemy skrypt
     
    [infosopher]
    4. Odczytywanie z pliku YML
    [/infosopher]
     
    Jak odczytać coś z niego?
     else:    set {test} to single value "test" get of "plugins/Skript/scripts/Folder/config.yml"Teraz tak, musicie wiedzieć że te else: dajemy pod tym
    if file "plugins/Skript/scripts/Folder/config.yml" doesn't exists:i mamy tam set {test} ({test} - zmienna do której zapisujemy)
    i potem te test dajemy do np. komendy
    command /testing:  trigger:    send "%{test}%"To co będzie napisane w test: '<tutaj>' to się to wyświetli
     
    [infosopher]
    5. Przykłady
    [/infosopher]
     
    Tworzenie komendy motd:
    Musimy zamiast tego: test: 'false' dać wiadomość
    test: '§6Witaj na serwerze {PLAYER} !'
    i komenda:
    command /motd:   trigger:   set {_msg} to "%{test}%"   replace all "{PLAYER}" with "%player%" in {_msg}   send "%{test}%"Koniec! Myślę że pomogłem ;)
  8. Super (+1)
    TrickeyPL przyznał(a) reputację dla Ezx w skriptnode   
    Oto skriptnode czyli edytor bazujacy na blokach.
    Ogolny zamysl polega na tym ze uzytkownik programu ustawia i laczy odpowiednio wezly co jest graficzna reprezentacja generowanego w locie kodu.
    Caly edytor wyglada nastepujaco:Zarejestruj się lub zaloguj, aby zobaczyć ukrytą treść!
    Workspace podzielony jest na 4 sekcje:
    Lista blokow Edytor blokow Edytor kodu (nie wiem co dac. najprawdopodobniej zrezygnuje z tej sekcji, ale czekam na propozycje) Changelog:
    Todo:
    Sygnatura buildu:
     
    Stary temat:
  9. Polubienie (+1)
    TrickeyPL przyznał(a) reputację dla mateuszeqq13212 w Dlaczego to nie działa?   
    Mogę +?
  10. Polubienie (+1)
    TrickeyPL przyznał(a) reputację dla Usunięty#10689 w Skrypt na przełączanie rang w gui lub komendą   
    Napisze mi ktoś skrypt na zmienianie rang dla graczy komendą i żeby mogli tylko dla siebie zmieniać?
    P.S. dam +
  11. Polubienie (+1)
    TrickeyPL otrzymał(a) reputację od Usunięty#10689 w Skrypt na przełączanie rang w gui lub komendą   
    Proszę bardzo : Zarejestruj się lub zaloguj, aby zobaczyć ukrytą treść!
    (Potrzebny jest SKQuery)
  12. Super (+1)
    TrickeyPL przyznał(a) reputację dla Usunięty#10689 w Prangi - Skrypt na przełączanie rang   
    Witam, jest to mój pierwszy skrypt. Umożliwia on przełączanie rang, może komuś się przyda. Oto komendy:
    /przelaczrange - otwiera menu do przełączania rang.
    /pgracz - przełączenie na rangę Gracz z pominięciem komendy /przelaczrange
    /pvip - przełączenie na rangę Vip z pominięciem komendy /przelaczrange
    /psvip - przełączenie na rangę Supervip z pominięciem komendy /przelaczrange
    /pmvip - przełączenie na rangę Megavip z pominięciem komendy /przelaczrange
    /puvip - przełączenie na rangę Ultravip z pominięciem komendy /przelaczrange
    /pjrmod - przełączenie na rangę JuniorModerator z pominięciem komendy /przelaczrange
    /pmod - przełączenie na rangę Moderator z pominięciem komendy /przelaczrange
    Skrypt będę aktualizował
    Zabraniam:
    Podszywać się pod autora
    udostępniać skrypt jako swój (tzn. Jak się udostępnia ten skrypt trzeba podać link do profilu autora link do skryptu na tym forum)
    Zarejestruj się lub zaloguj, aby zobaczyć ukrytą treść!
  13. Polubienie (+1)
    TrickeyPL przyznał(a) reputację dla KPX1234 w Skrypt Na Blokade Uciekania   
    Serwer 1.7.2
  14. Polubienie (+1)
    TrickeyPL przyznał(a) reputację dla Ixidi w Problem   
    Nie rozumiem zbytnio o co chodzi.
  15. Polubienie (+1)
    TrickeyPL przyznał(a) reputację dla osenek w Problem   
    zwykly blad:

    Z BŁĘDEM:
    BEZ BŁĘDU:
     
  16. Polubienie (+1)
    TrickeyPL przyznał(a) reputację dla huert2007 w Problem   
    every 10 second:     if player has permission "test.sk":         add 1 to {x.y}         wait 9,9 second         remove 1 from {x.y} every 60 second:     if {x.y} is 0:         broadcast "&cObecnie nie ma zadnych adminow online!" #Cos w tym stylu?
  17. Polubienie (+1)
    TrickeyPL przyznał(a) reputację dla osenek w Problem   
    mógłbyś dokładniej to napisać?
  18. Super (+1)
    TrickeyPL przyznał(a) reputację dla DrevenPl w Logowanie - skrypt na logowanie   
    SKRIPT NA LOGOWANIE
     
     
    AUTORZY:
    HADESV3
     
     
     
    KOMENDY:
     
    REGISTER [HASŁO] [HASŁO] -
    POZWALA NAM SIĘ ZAREJESTROWAĆ
     
    LOGIN [HASŁO] -
    POZWALA NAM SIĘ ZALOGOWAĆ NA SERWERZE
     
    IXUHT -
    POKAZUJE KOMENDY ADMINA
     
    SSPAWN -
    USTAWIA SPAWN GRACZA
     
     
    Uprawnienia do komendy:
     
    GRACZ.SK -
    UPRAWNIENIE DO KOMENDY
    LOGIN ORAZ REGISTER
     
    IXUHT.SK -
    UPRAWNIENIE DO KOMENDY
    IXUTH REGISTER 
    i
    IXUTH CHANGEPASSWORD
     
    ADMIN.SK -
    UPRAWNIENIE DO KOMENDY
    SSPAWN
     
     
     
    POBIERANIE:
     
     
     
     
     
     
    DODANO:
     
    komendę  /unregister [hasło] -
    ta komenda usuwa konto z bazy danych
     
    UPRAWNIENIE DO TEJ KOMENDY TO
    - gracz.sk
     
    komendę /remember [haslo] -
    jak się wpisze ta komendę to nie trzeba się logować
    przez jeden cały dzień
     
    UPRAWNIENIE DO TEJ KOMENDY TO
    - gracz.sk
     
    PLUGIN SKRIPT ZNAJDZIECIE
    TU
     
    Zarejestruj się lub zaloguj, aby zobaczyć ukrytą treść!
     
     
     
    BŁĘDY:
    BRAK BŁĘDÓW
    :myślę: 
  19. Super (+1)
    TrickeyPL przyznał(a) reputację dla DrevenPl w Logowanie - skrypt na logowanie   
    Byście chcieli skript na klasy typu lucznik wojownik zwiadowaca i mag.
    a te klasy by przechodziły na 2 inne.
     
    kazda klasa by miała 5 umiejetności.
    i statystyki typu int siła hp i cos jeszcze
     
    Jak chcecie to napiście tu a będę to robić
     
    -------------------------------------------------
    SORKA ZA MOJE BŁĘDY :D
×
×
  • Dodaj nową pozycję...