Skocz do zawartości

Ranking

Popularna zawartość

Zawartość, która uzyskała najwyższe oceny od 02.02.2014 w Odpowiedzi

  1. bnnyDrop - najlepszy skrypt na drop ze stone? Funkcje wypadanie przedmiotów włączanie/wyłączanie ich wypadania między jakimi wysokościami może wypaść przedmiot wybór kilofów (drewniany, kamienny, żelazny, złoty, diamentowy) czy przedmiot ma wypadać także z rudy jeżeli nie, zamienianie rudy na wybrany blok menu spis dropu statystyki top10 obsługa zaklęć szczęście (fortune) 1-3 jedwabny dotyk (silktouch) turbo drop exp system punktów pisanie na czacie od danej ilości punktów kamień blokowanie wypadania kamienia/bruku otrzymywanie expa po wykopaniu generatory kamienia ustawianie szybkości regeneracji ustawianie craftingu generatora pełna konfiguracja wiadomości i wyglądu GUI obsługa UUID dodatkowe punkty procentowe przy posiadaniu wybranego uprawnienia bardzo krótki kod jak na możliwości skryptu Komendy i uprawnienia komendy drop: komenda: /bnnyDrop:drop aliasy: /drop, /kamien, /kamień, /stone, /stown uprawnienie: bnnyDrop.drop statystyki komenda: /bnnyDrop:statistics [gracz] aliasy: /statistics, /stats, /statystyki, /staty uprawnienia: własne statystyki: bnnyDrop.statistics kogoś statystyki: bnnyDrop.statistics.others top10 komenda: /bnnyDrop:top10 [coal|iron|lapis|gold|diamond|redstone|emerald|stone|points] aliasy: /top, top10, topka uprawnienie: bnnyDrop.top10 uprawnienia pełne uprawniena: bnnyDrop.* super-drop: bnnyDrop.super-drop włączanie/wyłączanie turbo dropu/expa turbo drop: bnnyDrop.turbo.drop turbo exp: bnnyDrop.turbo.experience omijanie blokady pisania na czacie: bnnyDrop.bypasschat TODO i changelog todo: [klik] changelog: [klik] Pobieranie i wymagania Pobieranie: [klik] Serwer do testowania skryptu: [klik] (skan) Wymagania: [Skript by bensku] (wersja dev26b) [WildSkript] wersja minecraft [1.7-1.8] lub [1.9-1.11] [SkQuery] wersja minecraft [1.7-1.10] lub [1.11] Informacje Wszelkie błędy proszę zgłaszać w [zakładce "issues" na GitHubie].
    38 punktów
  2. Siemka, chciałbym pokazać proces tworzenia pliku .yml. Napisałem ten tutek bo stary nie jest pełny a autor go olau. Spis zawartości: 1. Co to jest plik .YML? 2. Tworzenie folderu z plikiem. 3. Zapisywanie wartości i komentarzy. 4. Odczytywanie z pliku .yml 5. Przykładowe skrypty. 1. Co to i po co? W pliku .yml możemy zapisać np. wiadomości, różne ustawienia itp. Skrypt będzie bardziej estetyczny. Random nie będzie musiał "grzebać" w kodzie. Możesz zrobić autodownload bez obawy o ustawienia użytkownika. Możesz zaciemnić obfuscatorem skrypt, a random dalej będzie mógł pozmieniać to, na co zezwolisz. 2. Tworzenie pliku: Najlepiej robić pliki swojego skryptu w osobnym folderze. Może to być dowolne miejsce, lecz najczęściej albo folder /plugins/ albo /Skript/ albo /scripts/. No więc tworzymy kod: on script load: # najlepiej nazwac folder wstepna nazwa skryptu # if folder "plugins/Skript/mojsuperskrypt" doesn't exists: # tworzymy folder # send "Nie odnaleziono folderu ""mojsuperskrypt""!" to console send "Tworzenie..." to console create folder "plugins/Skript/mojsuperskrypt" send "Folder ""mojsuperskrypt"" zostal pomyslnie utworzony!" to console # teraz tworzymy sam plik .yml # if file "plugins/Skript/mojsuperskrypt/config.yml" doesn't exists: send "Nie znaleziono pliku ""config.yml""!" to console send "Tworzenie..." to console create file "plugins/Skript/mojsuperskrypt/config.yml" Gzgz, właśnie stworzyłeś folder z pustym plikiem! 3. Zapisywanie do pliku (3 sposoby) a] WriteFile - do logów, komentarzy, value list, itp. b] Set - do zapisywania wartości. Przykłady: # komentarz # wf "## fajny komentarz sol macz ##" to "plugins/Skript/mojsuperskrypt/config.yml" # 1 wersja # set "jakasnazwa" to "jakaswartosc" in yaml file "plugins/Skript/mojsuperskrypt/config.yml" set "jakasnazwa2" to "jakaswartosc2" in yaml file "plugins/Skript/mojsuperskrypt/config.yml" # 2 wersja # wf "cos:" to "plugins/Skript/mojsuperskrypt/config.yml" wf " jakasnazwa:" "to plugins/Skript/mojsuperskrypt/config.yml" wf " - 'jakaswartosc'" to "plugins/Skript/mojsuperskrypt/config.yml" wf " - ' jakaswartosc2'" to "plugins/Skript/mojsuperskrypt/config.yml" # 3 wersja # wf "cos:" to "plugins/Skript/mojsuperskrypt/config.yml" wf " jakasnazwa: 'jakaswartosc'" to "plugins/Skript/mojsuperskrypt/config.yml" wf " jakasnazwa2: 'jakaswartosc2'" to "plugins/Skript/mojsuperskrypt/config.yml" 4. Odczytywanie z pliku (2 części): I najpierw do zmiennych: a] Single Value b] Value List c] Configuration Section # 1 wersja # set {jakaszmienna} to single value "jakasnazwa" get of "plugins/Skript/mojsuperskrypt/config.yml" set {jakaszmienna2} to single value "jakasnazwa2" get of "plugins/Skript/mojsuperskrypt/config.yml" # 2 wersja # set {jakaslista::*} to value list "cos/jakasnazwa" get of "plugins/Skript/mojsuperskrypt/config.yml" # 3 wersja # set {jakaslista::*} to configuration section "cos/jakasnazwa" get of "plugins/Skript/mojsuperskrypt/config.yml" II odczyt ze zmiennych: command /testyml: trigger: # 1 wersja # send "%{jakaszmienna}%" # 2 wersja # set {_x} to random element of {jakaslista::*} give player 1 {_x} # 3 wersja # send "%{jakaslista::jakasnazwa}%" send "%{jakaslista::jakasnazwa2}%" Jeżeli chcemy wsadzić zmienną do configu która nie pasuje do "on skript load:" mamy 2 możliwości: a] Niby-zmienna, np (NICK) b] zmiana eventu Wersja a] Plik YML: wiad.wegiel: '&6Brawo &c(NICK)&6, wykopales &0&lWEGIEL&6!' Plik SK: on skript load: set {wiad.wegiel} to single value "wiad.wegiel" get of "plugins/Skript/mojsuperskrypt/config.yml" on mine of coal: set {_wiad} to {wiad.wegiel} replace all "(NICK)" with "%player%" in {_wiad} send "%{_wiad}%" Wersja b]: Plik YML jak wyżej Plik SK: on mine: set {_wiad} to single value "wiadomosc.wegiel" get of "plugins/Skript/mojsuperskrypt/config.yml" replace all "(NICK)" with "%player%" in {_wiad} send "%{_wiad%}" 5. Przykłady: Wersja 1: Plik YML: Plik SK: tag: '&8[&6Tut&2YML&8]' on skript load: set {tag} to single value "tag" get of "plugins/Skript/mojsuperskrypt/config.yml" command /tutek: trigger: send "%{tag}% &6Gz, ogarniasz!" Wersja 2: Plik YML: Plik SK: itemyskyblock:- '1 diamond sword named "&3Mieczyk"'- '1 golden apple'- '64 dirt' on skript load: set {itemy.skyblock::*} to value list "itemyskyblock" get of "plugins/Skript/mojsuperskrypt/config.yml" command /wyspa daj itemy: trigger: loop {itemy.skyblock::*}: give loop-value to player Wersja 3: Plik YML: motda: motd1: '&6Zapraszamy' motd2: '&cFajny serwer Sv+Gildie' motd3: '&2Nasze IP: s182.hostingnajlepszywprzeluj.pl.tk.com.net:12345' Plik SK: variables: {nr.motda} = 1 on skript load: set {motda::*} to configuration section "motda" get of "plugins/Skript/mojsuperskrypt/config.yml" on server list ping: set motd to "{motda::%{nr.motda}%}%" add 1 to {nr.motda} {nr.motda} is 4: set {nr.motda} to 1 Wiem że pogmatwane, kilka razy poprawiałem, bo było jeszcze gorsze (tak, to możliwe). Widzisz jakiś błąd? Napisz! Skryptów nie testowałem, w teorii powinny działać. Za rozpisanie się walnij lajka xD
    31 punktów
  3. Norbi

    [SkQuery] Cząsteczki na serwerze.

    Particles Witajcie! W tym poradniku przedstawię wam jak stworzyć efekty wizualne! 1. Pokazywanie cząsteczek spawn [Ilosc] of particle [Nazwa]:[Szybkosc] offset by [X], [Y], [Z] at [Lokacja] [Ilosc] - zamieniamy na ilosc cząsteczek. [Nazwa] - zamieniamy na nazwę cząsteczki. [szybkosc] - zamieniamy na szybkość poruszania się cząsteczek. [X] - zamieniamy na zasięg rozchodzenia sie czastęczek w dlugosci koordów X. [Y] - zamieniamy na zasięg rozchodzenia sie czastęczek w wysokosci koordów Y. [Z] - zamieniamy na zasięg rozchodzenia sie czastęczek w dlugosci koordów Z. [Lokacja] - zamieniamy na miejsce, w którym mają się pojawić cząsteczki. 2. Tworzymy komendę, która pokaże cząsteczki. command /particles: trigger: spawn 10 of particle angry villager:1 offset by 0.5, 1, 0.5 at player 3. Ciekawostki Dzięki cząsteczce kroków nie widać wody Particlesy są półprzezroczyste jeżeli za nimi jest woda Ciekawostki podsyłajcie na PW/W tym temacie Informacje Do stworzenia cząsteczek potrzebujemy pluginu SkQuery. Spis cząsteczek: Klik Niektóre nazwy cząsteczek inaczej nazywają się w Skript. Np. zamiast happyVillager damy happy villager To już koniec poradnika! Jeżeli poradnik się spodobał, nie zapomnij go ocenić. Pozdrawiam Norbi.
    29 punktów
  4. Norbi

    GUI

    SkQuery Wirtualny ekwipunek Wyświetlanie ekwipunku Kod: open chest with [Ilosc] rows named "[Nazwa menu]" to [Gracz] Opis: [Ilosc] - ilość linijek w inventory. Maksymalnie jest ich 6, a minimalnnie 1. [Nazwa menu] - nazwa inventory. [Gracz] - osoba, której ma otworzyć inventory. Ustawianie itemów Kod: format slot [Numer slotu] of [Gracz] with [Ilosc itemu] of [Item] to [Akcja] Opis: [Numer slotu] - numer slotu w którym ma się pojawić item. [Gracz] - osoba, której ma wyświetlić item w inventory [ilosc itemu] - ilośc itemu. [item] - nazwa lub ID itemu. [Akcja] - są cztery możliwe 'akcje': be unstealable - bie da się zabrać itemu z menu. run "[Komenda]" - wykonuje komendę po kliknięciu. Też nie da się zabrać itemu z menu. WAŻNE! Komenda jest wykonywana przez konsole. close - zamyka menu. close then run "[Komenda]" - zamyka menu, wykonuje komendę WAŻNE! Komenda jest wykonywana przez konsole. run %lambda% Dodam, że jak w innych rzeczach - można dodawać nazwę oraz opis itemu. Komenda otwierająca inventory command /menu: trigger: open chest with 1 rows named "Menu - Poradnik" to player wait 1 tick #//Bez tego mogą występować bugi i będzie dało się wyciągać itemy. format slot 0 of player with 1 of head named "%player%" with lore "To jest twoje glowa." to be unstealable Komenda ta otworzy nam menu nazwane: Menu - Poradnik, a w nim na pierwszym miejscu będzie głowa nazwana imieniem gracza wpisującego komendę. Opis tej głowy to będzie: To jest twoja glowa. command /menu2: trigger: open chest with 1 rows named "Menu - Poradnik" to player wait 2 tick #//Bez tego mogą występować bugi i będzie dało się wyciągać itemy. format slot 0 of player with 1 of cookie named "&6CIACHO! MNIAM! :)" with lore "&7Kliknij, aby dostac &61 ciastko&7." to run [give player 1 cookie] Komenda ta otworzy nam menu nazwane: Menu - Poradnik, a w nim na pierwszym miejscu będzie ciastko nazwane CIACHO! MNIAM! . Opis tego ciastka to będzie: &7Kliknij, aby dostac &61 ciastko&7.. Gdy klikniemy w nie, skrypt da nam 1 ciastko. Tworzenie dwóch stron. command /otworz: trigger: execute console command "menu %player% 1" Ta komenda wykona za konsolę komendę: /menu GRACZ 1. command /menu [<player>] [<integer>]: executable by: console trigger: if arg 2 is 1: wait 1 tick #//Bez tego (i innych 'wait 1 tick`) mogą występować bugi i będzie dało się wyciągać itemy. open chest with 1 rows named "Menu - Poradnik (1/2)" to player-arg wait 1 tick format slot 0 of player-arg with 1 of head named "%player-arg%" with lore "To jest twoja glowa." to be unstealable format slot 8 of player-arg with 1 of nether star named "Strona: 1" with lore "Kliknij, aby przejsc na 2 strone." to run "menu %player-arg% 2" if arg 2 is 2: wait 1 tick open chest with 1 rows named "Menu - Poradnik (2/2)" to player-arg wait 1 tick format slot 1 of player-arg with 1 of arrow named "Strzala bez kakala" with lore "Ta strzala nie ma kakala." to be unstealable format slot 8 of player-arg with 2 of nether star named "Strona: 2" with lore "Kliknij, aby przejsc na 1 strone." to run "menu %player-arg% 1" Jako iż komendy są wykonywane przez konsole, musimy zrobić komendę, która będzie pokazywać menu graczowi. W tym celu zrobiłem komendę: menu GRACZ <strona>. Gdy w komendzie /otworz konsola wykona komendę: /menu GRACZ 1 konsola otworzy menu graczowi wpisanym w pierwszym argumencie. Warto przypomnieć, że w tej komendzie aby odwołać się do gracza któremu otwieramy menu zamiast player używamy player-arg (Wiem jest to ciężkie do zrozumienia, ale nie umiem jaśniej tego wytłumaczyć) Informacje Ten poradnik wykorzystuje plugin: SkQuery. Wersja poradnika jest stara, są już nowsze sposoby ale mi się nie chce pisać na nowo poradnika
    27 punktów
  5. herhor67

    BestScripts!

    W tym temacie znajduje się spis najlepszych/ciekawych/niepowtarzalnych skryptów. Legenda: [nazwa skryptu* + link] - [autor(rzy)] | [iD tematu] * - Lista tematów jest uporządkowana alfabetycznie. Zabawa: aAirDrop - astranaar | 9277 CasinoGame - boleknowak | 1942 Chat+ - PiratJaskiniowy, sebafudi, warpath124 | 403 Chest&Keys - Hydorax | 3347 CookieClicker - #Parrot | 2874 EpicParkour - Shooterowy | 2660 Farm+ - PrzypalonyOmlet | 343 FireWork - herhor67 | 4085 GrandTheftMinecraft - XziomekX | 378 Great Fountains - herhor67 | 1325 HappyEvents - SzymnYo ~ KoYGeR, Drake | 602 IWeaponWar - FejminTV | 413 myBackPack - Norbi | 5055 RAINBOW - mcwnuq | 4106 Parkour+ - adek1990, Slupik98, RaiZeN | 2635 Tchest - yooka | 773 Tparkour - RekitHD | 2960 WereWolf - herhor67 | 5422 xQuestSk - GlobooX | 8775 Minigry: 1vs1 - adek1990, RaiZeN | 2671 FlappyCraft - boleknowak | 2389 SkyWars - Nawo | 6478 Zarządzanie serwerem: CleverServer - ziemniaczek320 | 4492 dnBans - Dinekkk | 1487 Etools - Mr. Edgarsz | 7202 McAuth - yooka | 669 nBase - Norbi | 1883 ncAuth Reloaded - Derpy Hooves | 9636 Random Teleport - yooka | 141 xPandomTpSk - GlobooX | 9074 ServerOptions - Drake | 691 SimplyRaports - Qevix | 6432 SurvivalEssentials - #Parrot | 475 TabApi - MrxJoint | 2755 TablistYML - Mr. Edgarsz | 2729 TextBuilder - herhor67 | 5480 Time Ranks - ShroN | 10165 uniTab - Xayanix | 3014 PvP: DeathHologram - DePixel | 3385 dnAlly - Dinekkk | 2502 GuildsBattles - | 7220 psRanking - DonFallingCookie | 7777 PVPGuild - Patek | 1261 SkGuilds - Adamek | 3490 Drop: nDrop - Norbi | 4574 Stone++ - Anastair | 2729 SuperDrops - herhor67 | 7555 Ekonomia: aShop - astranaar | 9794 Aukcje - | 6490 EXPmanagement - #Aperture | 2122 ncHandel - Derpy Hooves | 6684 Podatki - ziemniaczek320 | 3333 Zgłoszenia: Zgłoś swój skrypt do listy: [b]Kategoria:[/b] [b]Link:[/b] Oznacz swój skrypt: Twój skrypt znajduje się na liście? Oznacz go plakietką: [url="http://skript.pl/topic/3097-"][img=http://i.imgur.com/B6D3PZl.jpg][/url] Plakietka by @Arturro43
    27 punktów
  6. O co chodzi? SSCC "Standard Skript Code Conventions" jest zestawem reguł pisania skryptów stworzonym przez destroyer'a4017. Określa on styl kodowania, który zapewnia kompatybilność z innymi skryptami, łatwość utrzymania/modyfikowania kodu oraz sprawia, że skrypt jest prosty do odczytania. Nazwy plików Nazwy plików kończących się na ".sk" nie powinny zawierać następujących znaków: # ` $ % { } (spacji) Jeśli w nazwie chcesz zawrzeć wersję skryptu powinna ona znaleźć się na końcu, za nazwą skryptu: skrewards-v1.2.3.sk Nazwy zmiennych Poniższe zasady odnoszą się tylko do zmiennych globalnych, nie do lokalnych (zaczynających się od _). Nazwy zmiennych powinny być zapisane według konwencji camelCase, gdzie nie występują spacje oraz pierwsza litera każdego słowa (wyłączając pierwsze) zaczyna się z wielkiej litery. Zmienne tworzone przez skrypt powinny być definiowane w sposób {<nazwa skryptu>::<nazwa zmiennej>}, co ułatwia usuwanie danych danego skryptu albo aktualizowanie zmiennych z wcześniejszej wersji skryptu, na przykład: # Zamiast takiej zmiennej {current.reward} # Użyj następującego wzoru {skrewards::currentReward} Zmienne dynamiczne oraz listy powinny być stopniowane, co jest bardziej obiektowym podejściem i umożliwia zapętlanie danych. # Zamiast takich zmiennych {reward.level.modifier.1} {reward.level.modifier.2} {reward.level.modifier.3} {rewardstatus.%player%} {info.%player%.mined.diamonds} {info.%player%.mined.emeralds} # Użyj następujących wzorów {skrewards::rewardLevelModifier::1} {skrewards::rewardLevelModifier::2} {skrewards::rewardLevelModifier:: 3} {skrewards::rewardStatus::%player%} {skrewards::info::%player%::minedDiamonds} {skrewards::info::%player%::minedEmeralds} # Lub {skrewards::info::%player%::mined::diamonds} {skrewards::info::%player%::mined::emeralds} Jeśli piszesz API, powinieneś wpisać dane do zarezerwowanych nazw zmiennych {<nazwa skryptu>::api::<output ID>}. Jeśli używasz skQuery, możesz zapisywać dane do tych zmiennych gdy podprogram/funkcja jest wykonywany/a. W zwykłym Skript powinieneś zdeklarować komendy możliwe do użycia tylko z konsoli, które wpisują dane do tych zmiennych. Schemat ten pozwala twórcom skryptów tworząc własny skrypt pozyskiwać informacje z innych. Jeśli Twój skrypt jest BIBLIOTEKĄ, której jedynym celem jest udostępnienie funkcji, należy wtedy pominąć fragment ::api i używać {<nazwa skryptu>::<output ID>}. Zmienne API powinny być usunięte zawsze gdy serwer jest wyłączany. Porządkowanie kodu Stworzony kod musi być uporządkowany w określony sposób. Nie powinieneś wpisywać zdarzeń i komend w losowej kolejności; muszą być czytelnie oddzielone. Każdy z elementów może być pominięty, o ile są one w odpowiedniej kolejności. script options (jeśli używasz skQuery) aliasy [aliases:] zmienne [variables:] opcje [options:] podprogramy/funkcje (jeśli używasz skQuery) nowe komendy [command /komenda:] on script load: on script unload: okresowe zdarzenia (np. every 10 seconds, at 10:00) inne zdarzenia Zdarzenia i Warunki Zdarzenia zawsze powinny zaczynać się od słówka "on", mimo, że będą działać bez niego. Kiedy tylko to możliwe, powinieneś unikać używania selektorów w linii definiującej zdarzenie, np.: on right click with porkchop: on left click on tnt: on damage of cow: Należy uogólnić takie zdarzenia i skorzystać z warunków: on right click: if tool of player is porkchop: # dalszy kod on left click: if clicked block is tnt: # dalszy kod on damage: if victim is a cow: # dalszy kod Stosując warunki, NIGDY nie powtórzysz tego samego zdarzenia kilka razy w jednym skrypcie. Warunki powinny ZAWSZE zaczynać się od słówka "if" i kończyć dwukropkiem. NIGDY nie używaj warunków bez wprowadzenia dalszego kodu do ich wnętrza. To pozwoli twórcom skryptów w łatwy sposób dodać kod przed i po warunku albo dodać "else:". # Zamiast on damage: if victim is a player: {skrewards::info::%victim%::isInvincible} is true cancel event set {skrewards::info::%victim%::isInvincible} to false # Użyj takich warunków on damage: if victim is a player: if {skrewards::info::%victim%::isInvincible} is true: cancel event set {skrewards::info::%victim%::isInvincible} to false Specyfikacja Lambdy Lambdy są nową funkcją skQuery i mogą być używane we wszystkich wersjach powyżej 1.17.0. Pozwalają sporą ilość kodu skompresować do kilku linii. Lambdy, tak długo jak długo będą używane rozsądnie, będą spełniać wymagania SSCC. Lambdy mogą być brane pod uwagę jeśli: [*]Użyte są zamiast funkcji do wykonania POJEDYNCZEGO zadania [*]Użyte są do zaciemnienia kodu przez stworzenie bardzo skompresowanego kodu [*]Lepiej opisują ciąg zadań - - - Jeśli stosujesz się do tych zasad, umieść w publikacji swojego skryptu plakietkę: Kod z linkiem do oryginalnego tematu: [url=http://dev.bukkit.org/bukkit-plugins/skript/forum/tutorials/69108/][img=https://i.imgur.com/BZ8lAno.png][/url] Kod z linkiem do tego tematu: [url=http://skript.pl/index.php/topic/1877-][img=https://i.imgur.com/BZ8lAno.png][/url] Źródło: http://dev.bukkit.org/bukkit-plugins/skript/forum/tutorials/69108
    26 punktów
  7. Norbi

    nBase - skrypt typu essentials

    nBase v. 1.2 (25-10-2014) Funkcje » Większość funkcji z pluginu Essentials » Plik z configiem » Inne komendy » Pasek życia stworzeń nad głową » Wiadomość powitalna (motd) Błędy » Gdy uderzymy Magma Cream, to pasek życia się zbuguje Dodać » Opcję nie ingerowania nBase w wiadomości na chacie » Anty join bot » Ekonomia » Przenośny crafting » Więcej informacji w komendzie: /whois » Łatwiejszy kod » System teleportacji (/tpa) (nie jestem pewnien czy będzie) » System banów (nie jestem pewnien czy będzie) » Podstawowy system antycheata (sprawdzanie, czy gracz shiftuje podczas otwierania ekwipunku) Pobieranie » Kliknij, aby pobrać. Skrypt wymaga dodatków takich jak: » SkQuery » WildSkript
    25 punktów
  8. Cześć Chciałbym wam przedstawić pewien system funkcji. Mianowicie chodzi o system zarządzania cooldownem. Funkcje udostępniam ponieważ wiele użytkowników nie wie jak poprawnie stworzyć cooldown a ten system funkcji powinien im to ułatwić. Funkcje są dostępne tutaj Wymagania: - skript min 2.2 Jak używać? Najpierw trzeba stworzyć nasz cooldown funckją createCooldown(nazwa cooldowna, czas) np: on load: createCooldown("heal", 10 second) Następnie w kodzie musimy sprawdzić status cooldowna gracza funkcją: getCooldown(gracz, "nazwa cooldowna") np: command /heal [<text>]: trigger: if getCooldown(player, "heal"): Nastepnie gdy wykonamy kod musimy ustawic cooldown gracza funkcją: setCooldown(gracz, "nazwa cooldowna") np: setCooldown(player, "heal") Opis wszystkich funkcji: createCooldown(%string%, %time span%, %boolean-2%) - Tworzy cooldown deleteCooldown(%string%) - Usuwa cooldown setCooldown(%player%, %boolean%) - Ustawia status cooldownu getCooldown(%player%, %string%) - Zwraca status cooldownu w booleanie (np true) getCooldownBoolean(%player%, %string%) - Zwraca status cooldownu w booleanie (np false) getCooldownDate(%player%, %string%) - Zwraca date wygaśnięcia cooldownu (np 22.08.19 15:00) getCooldownTime(%player%, %string%) - Zwraca czas wygaśnięcia cooldownu (np 10 second) getCooldownText(%player%, %string%) - Zwraca przetłumaczony czas cooldownu (np 10 minut i 2.34 sekund) Małe wyjaśnienie: %string% - nazwa cooldownu (np "poradnik") %time span% - czas cooldownu (np 10 second) %player% - gracz (np player) %boolean% - status cooldownu (np true) %boolean-2% - Włączenie bypassa do ominięcia cooldownu (np false) Przykładowe skrypty z użyciem tych funkcji: Automatyczna aktualizacja Jeżeli chcesz aby ten skrypt aktualizował ci się automatycznie pobierz skrypt AxAutoUpdate
    24 punktów
  9. Paczka nie jest już dostępna do pobrania, osoby zainteresowane plikami pod tryb RealLife zapraszam
    24 punktów
  10. jahumen

    jSignSpy - szpieguj tabliczki!

    Śmieszne rozporządzenie. BUNT, post skasowany.
    24 punktów
  11. Funkcje Automatyczne dawanie nagród za wgranie reklamy (traileru) na kanał youtube. Sprawdzanie ilości wyświetleń, polubień, opisu, czasu trwania. Łatwa konfiguracja wszystkiego w yml. Komendy /reklama sprawdz <id filmu> Changelog v1.0 - https://code.skript.pl/CKxtTTSG/ - wydanie pierwszej wersji skryptu. ZAWIERA BŁĄD v2.0 - https://code.skript.pl/T8NTbeSE/ - dodanie zapisywanie reklam w pliku, dodano sprawdzanie czy reklama nie została już użyta. Od teraz trzeba wpisywać id filmu, nie link. Jak zaktualizować? Co ze zmiennymi? Aby zaktualizować skrypt trzeba usunąć folder niReklama, zmienić kod skryptu na nowy i go przeładować. TODO Zapisywanie reklam w logach. Blokada linków. Sprawdzanie do 10 minut czy reklama istnieje. Sprawdzanie ilości subskrybcji dla wymagających. Konfiguracja Download https://code.skript.pl/T8NTbeSE/ Użyto api od użyszkodnika użytkownika @Quaczi za co mu bardzo dziękuję.
    24 punktów
  12. Z dedykacją dla wszystkich tych, którzy wmawiają sobie i innym, że do wysłania na chat klikalnego tekstu lub podpowiedzi po najechaniu potrzebują skryptu json.sk albo jakichś magicznych efektów ze starożytnego dodatku. Ten poradnik pokazuje i tłumaczy w jaki sposób osiągnąć takie efekty jedynie przy pomocy czystego pluginu Skript (od bodajże wersji 2.0). Interaktywny chat: zaznaczam, iż wszystkie poniższe akcje odnoszą się jedynie do efektów które wysyłają wiadomość do gracza (broadcast oraz message); wszystkich akcji jakich możemy użyć jest cztery i dzielą się one na dwie grupy, zapisujemy je dość prosto według poniższego formatu: '<nazwa: treść akcji>tekst do którego będzie się ona odnosić' [GRUPA PIERWSZA] akcje aktywowane po najechaniu na tekst: tooltip - wyświetla dodatkowy tekst (tzw. podpowiedź) w ramce nad wybraną wiadomością, przykładowo: '<tooltip:Wiadomość po najechaniu>Najedź na tą wiadomość' [GRUPA DRUGA] akcje aktywowane po kliknięciu na tekst: url - przenosi gracza do domyślnej przeglądarki i otwiera mu stronę z podanego linku (w większości przypadków wymaga to dodatkowego potwierdzenia przez użytkownika - w celach bezpieczeństwa - czy na pewno chce otworzyć daną stronę, przykładowo: '<url:https://www.youtube.com/watch?v=JnHPN1WsjBo>Kliknij tutaj aby posłuchać' command - wykonuje komendę jako gracz: jeżeli treść akcji zaczyna się od ukośnika - wtedy jest ona traktowana jako komendą wykonywana przez gracza, przykładowo: '<command:/help>Kliknij mnie aby otrzymać pomoc' jeżeli treść nie zaczyna się od ukośnika - wtedy jest ona traktowana jako zwykła wiadomość wysyłana przez gracza na chat, przykładowo: '<command:Dzień dobry>Kliknij tutaj aby się przywitać' suggest command - wpisuje graczowi podaną treść w jego pole tekstowe pod chatem, przykładowo: '<suggest command:Jestem twoją wklejoną wiadomością>Kliknij tutaj, aby wkleić wiadomość do swojego pola tekstowego' Formatowanie i kolorowanie tekstu: myślę że każdy, kto teraz czyta to zdanie doskonale wie jak korzystać z kolorów w minecraft przy użyciu paragrafu (§) lub spójnika (&) - więc nie będę ich tutaj przytaczał, skupię się na osobnej Skriptowej wersji kolorowania i formatowania wiadomości; tak jak powyżej, poszczególne kolory \ efekty dodajemy zapisując je w nawiasach ostrych: '<efekt\kolor>' kolory - wiem, że z tej opcji nikt nigdy nie skorzysta skoro możemy to robić dużo szybciej i krócej przy użyciu spójnika, ale i tak warto o tym wspomnieć, przykładowo: '<red>Ta wiadomość będzie czerwona' lista wszystkich głównych kolorów wraz z ich aliasami: [ 0 ] black - czarny [ 1 ] blue (dark blue) - niebieski [ 2 ] green (dark green) - zielony [ 3 ] cyan (cyanaqua, dark cyan, dark aqua, dark turquoise, dark turquois) - turkusowy [ 4 ] red (dark red) - czerwony [ 5 ] purple (dark purple) - fioletowy [ 6 ] orange (orange, gold, dark yellow) - pomarańczowy [ 7 ] grey (light grey, gray, light gray, silver) - szary [ 8 ] dark grey (dark gray) - ciemny szary [ 9 ] light blue (indigo) - jasny niebieski [ a ] light green (lime, lime green) - jasny zielony [ b ] light cyan (light aqua, turquoise, turquois, light blue) - błękitny [ c ] light red (pink) - jasny czerwony [ d ] light purple (magenta) - jasny fioletowy [ e ] yellow (light yellow) - żółty [ f ] white - biały formatowanie - tak, tak - to też niepotrzebnie piszę, ale co tam, przykładowo: '<bold>Ta wiadomość będzie pogrubiona' lista wszystkich opcji formatowania: [ k ] magic (obfuscated) - mrugające znaki (zwykle zwane - matrixem) [ l ] bold (b) - pogrubienie [ m ] strikethrough (strike, s) - przekreślenie [ n ] underlined (underline, u) - podkreślenie [ o ] italic (italics, i) - pochylenie kolory RGB (hexadecymalne) - nowością w minecraft (dostępną od wersji 1.16) jest wsparcie dla kolorów RGB w formacie hexadecymalnym, jak z nich korzystać i skąd je brać: swoje własne kolory możemy wybierać z np. generatorów online (https://htmlcolorcodes.com/color-picker/) - nas interesuje zawsze wartość z kratką (hashtag), wpisujemy ją identycznie jak wszystkie powyższe kolory - w nawiasy ostre. (kratka również musi być podana), przykładowo: '<#00FF00>Ta wiadomość będzie zielona' Warto wiedzieć: we wszystkich powyższych przykładach, efekt (kolor lub formatowanie) będzie odnosiło się do całej wiadomości; jeżeli jednak będziemy chcieli się go pozbyć, możemy to zrobić na dwa sposoby: korzystając z opcji resetowania tekstu '<reset>', '<r>' lub '&r', przykładowo: '<red>Ta wiadomość będzie czerwona <reset>Ale ta będzie już w domyślnym kolorze białym' wstawiając za tekstem kolejne formatowanie, przykładowo: '<bold>Ta wiadomość będzie biała i pogrubiona <red>Ale ta będzie czerwona i niepogrubiona' jeżeli efekty (kolory lub formatowanie) następują po sobie to się na siebie nakładają, przykładowo: '<tooltip:Wiadomość><red><bold>Ta wiadomość będzie czerwona, pogrubiona i pokaże tekst po najechaniu na nią' tooltip - czyli podpowiedzi opisane na początku poradnika - mogą składać się z wielu linijek. Jeżeli chcemy taki efekt uzyskać musimy każdą nową linijkę oddzielić wyrażeniem nowej linii '%new line%' lub w skrócie '%nl%', przykładowo: '<tooltip: 1 linijka %nl% 2 linijka %nl% 3 linijka %nl% i tak dalej>Mamy tutaj długą podpowiedź' wewnątrz efektów (np. w podpowiedziach) możemy również używać kolorów i formatowania, przykładowo: '<tooltip: <yellow><bold>Żółta podpowiedź>&4&lNajedź tutaj kursorem, aby zobaczyć żółtą podpowiedź' jeżeli wewnątrz naszego efektu (koloru lub formatowania) chcemy umieścić wyrażenie lub zmienną - to jak najbardziej możemy to zrobić, ale: skript podczas wysyłania wiadomości najpierw stara się ją formatować (tj. ustawia kolory, efekty i wszystko co powyżej opisałem), a dopiero po nich wstawia do naszego tekstu zmienne, co skutkuje niepokolorowaną wiadomością wysłaną na chat, przykładowo: set {_pogrubienie} to "bold" send "<%{_pogrubienie}%>nasza wiadomość" niestety, na chacie naszym oczom ukaże się: <bold>Nasza wiadomość z pomocą przychodzi nam wyrażenie '[un] formatted %text%' - sprawia ono, że plugin ponownie (po wczytaniu zmiennych) sprawdza wiadomość w poszukiwaniu formatowania tekstu - dzięki temu możliwe jest umieszczanie zmiennych w tekście (np. z nickami graczy, kolorami rgb lub kolorami pobranymi przez skripta), przykładowo: set {_hex} to "##00FF00" send formatted "<%{_hex}%Ta wiadomość zawiera działającą zmienną z kolorem zielonym" Tylko gdzie pizza zapytacie - a ja na to: *pstryk* średnia hawajska dla wszystkich.
    23 punktów
  13. PoweredDragon

    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 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
    23 punktów
  14. RickPlayingPL

    Odbudowywanie obszaru

    Witam dzisiaj pokaze wam jak w bardzo prosty sposob odbudowac swoja arene po zakonczeniu gry (Mozecie tez tego uzyc w odbudowie calego swiata ale nie polecam tego poniewaz twoj plik ze zmiennymi moze bardzo duzo wazyc. Lepiej uzywac tego to odbudowy areny np w minigrze splegg) Dobra to zaczynamy 1. Na poczatek musimy utworzyc event w ktorym nasze zniszczone bloki beda sie zapisywac do pliku ze zmiennymi on break:2. Nastepnie musimy zapisac lokalizacje tego bloku do grupowej zmiennej zeby potem mozna bylo ta zmienna zapetlic i przywrocic bloki on break: add location of event-block to {rebuild::locationOfBlocks::*}3. Teraz trzeba zapisac typ bloku ktorego lokalizacja zostala zapisana on break: add location of event-block to {rebuild::locationOfBlocks::*} add type of event-block to {rebuild::typeOfBlocks::*}Nasz skrypt jest juz prawie gotowy. A teraz zajmijmy sie odbudowaniem zniszczonych blokow 1. Po pierwsze musimy zapetlic zmienna z lokalizacja zniszczonych blokow. command /rebuild: trigger: loop {rebuild::locationOfBlocks::*}:2. Nastepnie musimy odczytac oraz postawic nasze zniszczone bloki z 2 zmiennej command /rebuild: trigger: loop {rebuild::locationOfBlocks::*}: set block at loop-value to {rebuild::typeOfBlocks::%loop-index%}3. Krok ostatni to usuwanie zmiennych aby oszczedzic miejsce w naszym pliku ze zmiennymi :) command /rebuild: trigger: loop {rebuild::locationOfBlocks::*}: set block at loop-value to {rebuild::typeOfBlocks::%loop-index%} delete {rebuild::locationOfBlocks::*} delete {rebuild::typeOfBlocks::*}CALY KOD: on break: add location of event-block to {rebuild::locationOfBlocks::*} add type of event-block to {rebuild::typeOfBlocks::*}command /rebuild: trigger: loop {rebuild::locationOfBlocks::*}: set block at loop-value to {rebuild::typeOfBlocks::%loop-index%} delete {rebuild::locationOfBlocks::*} delete {rebuild::typeOfBlocks::*}Event z on place: Nie polecam go uzywac (Nie mowie ze nie dziala, ale czasami przez uroki skryptu on sie poprostu buguje) 1. Na poczatek trzeba utworzyc event on place:2. Nastepnie musimy sprawdzic czy nasza zmienna z lokalizacja blokow nie zawiera lokalizacji postawionego bloku on place: {rebuild::locationOfBlocks::*} contains location of event-block: stop3. Jezeli nie posiada to zapisujemy jego lokalizacje oraz jego typ na powietrze (Dlatego bo blok przez postawieniem byl powietrzem) on place: {rebuild::locationOfBlocks::*} contains location of event-block: stop else: add location of event-block to {rebuild::locationOfBlocks::*} add air to {rebuild::typeOfBlocks::*}4. Odnawianie terenu jest takie same jak w przypadku on break Wiem... poradnik krotki ale moze komus sie przyda :) (W razie jakich kolwiek bledow popelnionych przezemnie prosze mnie o tym poinformowac :))
    23 punktów
  15. kKits - zaawansowany system zestawów. Proszę czytać to co jest na samym dole Funkcje: - LPM - odebranie zestawu, PPM - możliwość obejrzenia wnętrza zestawu oraz powrót do głownego menu, - Uprawnienia, włączanie/wyłączanie zestawów poprzez prostą konfigurację w YAML! (config tworzy się w folderze /plugins/Kits), - Automatyczne odliczanie pozostałego czasu do odebrania zestawu, - Możliwość ustawienia co ile dni można wziąć zestaw; Komendy: - /kit - zestawy w GUI; Changelog: - v1.0 - wydanie pierwszej wersji skryptu; - V1.1 - Aktualizacja pozostalego czasu w GUI (można wyłączyć w config.yml), opcję broadcast na dany kit. - V1.2 - Naprawiono błąd z uprawnieniami. Gracze mogli brać każdy zestaw. - V1.2.1 - Gdy gracz nie ma miejsca w ekwipunku na przedmioty to nie może wziąć zestawu. - V1.2.2 - Zaktualizowano do wersji Skript v34 by bensku (działa również na starszych wersjach 1.8.8+) - V1.3 - Dodano opcję wybierania przedmiotów z GUI, wystarczy dodać opcję do danego kitu: guiReceive: true. Dodatkowo zrobiłem automatyzację ścieżki i usunąłem options. Dodałem dodatkową linijkę w lore, czy dany kit leci do eq czy wybieramy se przedmioty. - V1.3.1 - Usunięto poważny błąd z kopiowaniem itemów. - V1.4 - Poprawiono na wersję serwera 1.13+ - V1.4.1 - Naprawiono błąd z enchantami, teraz już są -V1.4.2 - Zaktualizowano skrypt na najnowszą wersję serwera 1.16 (sprawdzano na 1.16.4 i Skript 2.5) -V1.4.3 - Zaktualizowano skrypt na nowsze wersje skript-mirror / skript-reflect! TODO: - Aktualizacja pozostałego czasu do odebrania zestawu w GUI, (Done: V1.1) - Zablokowanie wrzucania przedmiotów do inventory (jeżeli chcecie) - Możliwość konfiguracji zestawów poprzez grę, - Poprawienie znalezionych błędów, - Sugestie dotyczące skryptu; Konfiguracja: Pobieranie: DOWNLOAD V1.0 DOWNLOAD V1.1 DOWNLOAD V1.2 DOWNLOAD V1.2.1 DOWNLOAD V1.2.2 (Stable) DOWNLOAD 1.3 (Unstable) DOWNLOAD 1.3.1 (Najnowsza, na wersje 1.9-1.12) DOWNLAOD 1.4 (Na wersje 1.13+) DOWNLOAD 1.4.1 DOWNLOAD 1.4.2 (Na wersję 1.16.4) DOWNLOAD 1.4.3 (Skript-reflect) Zdjęcia: Wymagania: - Skript 2.2, - SkQuery, - Skript-mirror (kliknij aby pobrać); Skrypt nie wspiera serwerów 1.8.8 i niższych! Pozdrawiam #Knugi Bardzo bym prosił, gdy piszecie, że skrypt nie działa to dodajcie do tego logi (co wam wyskakuje podczas reloadu skryptu, najlepiej z konsoli) I również o wersje serwera, skrypta i dodatków, dwie proste komendy: /ver /ver sk Z góry dziękuję
    22 punktów
  16. Dodatek do Skript dodający obsługę schematów i regionów WorldGuard. Download: kilk (java 8+), klik (java 6+) Wymagania: Skript, WorldEdit (6.x), WorldGuard (6.x) Doc: skUnity [16.04.2016] Nowa wersja (0.6) jest w trakcie tworzenia. Dev build można pobrać z tego miejsca. Kod źródłowy jest dostępny na githubie. //Poprawiam link do download'u, na prośbę użytkowników, jeżeli zaktualizujesz swoje linki możesz usunąć moją notkę Link: PirateSK
    22 punktów
  17. vMCShop.pro to projekt powstający od 2016 roku. Jego głownym założeniem jest dostarczenie wysokiej jakości sklepów internetowych dla gry Minecraft. Z biegiem czasu wyłonione zostały 3 wersje sklepów, różniące się od siebie poziomem zaawansowania oraz możliwościami konfiguracji. Z tego też powodu, każda osoba może wybrać sklep vMCShop, który najbardziej odpowiada jej zapotrzebowaniom.
    21 punktów
  18. Siemka, Jakiś czas temu (z miesiąc) zacząłem pisać skrypt. Funkcje: [*]Pozwala budować (prawie) dowolne napisy z bloków. [*]Łatwe dodawanie swoich znaków. [*]Budowanie z dowolnych bloków. Jak używać: Piszemy komendę /napisz <dowolny tekst> Wady: [*]Jak zawsze przy masowym stawianiu bloków robi małego laga. [*]Na razie tylko litery (z polskimi znakami też) i cyfry (bez kropek, przecinków, slashów, pytajników itp). Pobieranie: GitHub - RAW # nie miałem możliwości przetestowania Code - RAW # jeżeli wersja powyżej nie działa, proszę o użycie tej SS: UWAGA! Nie usuwajcie 1 linijki (potrzebna do HerCORE) Aktualizacja! Do pobrania via HerCORE lub przez link xD HerCORE compatible!
    21 punktów
  19. Witam wszystkich, Zacząłem tworzyć dodatek do Sublime Text 3, dodający kolorowanie składni skryptów oraz podpowiadanie kodu. download: indev (ostatnia aktualizacja: 12:50 - 28.08) (jest to jedna z pierwszych udostępnionych wersji, nie zawiera jeszcze sporej ilości funkcji) (na ten moment dostępny jest tylko ciemny motyw kolorystyczny) instalacja: Pobrany plik umieszczamy w folderze "Installed Packages/". (Aby się do niego dostać klikamy kolejno w menu Preferences > Browse Packages, otworzy się wtedy folder. Przechodzimy do folderu wyżej i wchodzimy do "./Installed Packages/".) Restartujemy SublimeText. kilka obrazków:
    21 punktów
  20. Witaj! W tym poradniku chciałbym Ci przedstawić jak w prosty sposób udostępniać aktualizacje Twojego skryptu. Więc zaczynajmy! Spis treści I Wstęp II Sprawdzanie dostępności aktualizacji III Automatyczne pobieranie aktualizacji IV Ręczne pobieranie aktualizacji III lub IV do wyboru I Wstęp Do działania potrzebny jest WildSkript! Aby aktualizacja działała, cały skrypt trzeba umieścić na Pastebin, GitHub (polecam to drugie), lub innym serwisie oferującym funkcję RAW, tzn. strona udostępnia link do czystego pliku - sam skrypt. Ważne jest, aby założyć tam konto (i zapamiętać login i hasło), aby potem móc edytować wcześniej wysłany skrypt. Aby aktualizacje skrypta pokazała się użytkownikom, 1 linijka skryptu musi ulec zmianie na internecie. A musi ona wyglądać tak: #<wersja># np. #InDev 10.1# Wersja może zawierać nieograniczoną liczbę znaków, lecz musi być rozpoczęta i zakończona # II Sprawdzanie dostępności aktualizacji Można zacząć różnymi eventami... Ja polecam on load:, który działa wtedy gdy skrypt się załaduje. on load: Teraz zaczynamy część skryptu sprawdzający wersję skryptu w plikach serwera: set {_version} to content of file "plugins/Skript/scripts/%skript%.sk" Czyli ustawiamy zmienną {_version} na zawartość całego skryptu. Teraz ustalamy w jakim miejscu jest pierwszy #: set {_v} to index of "##" in {_version} Teraz ustalamy zmienną {_v2} na 1 znak po # do końca skryptu: set {_v2} to subtext of {_version} from character ({_v}+1) to character (length of {_version}) Znowu ustalamy pozycję # tym razem tego 2 tzn. #<wersja># <--tego set {_v3} to index of "##" in {_v2} Jak już mamy w {_v2} skrypt bez pierwszego # i pozycję 2. # możemy ustawić zmienną {version} na prawidłową wersję: set {version} to subtext of {_version} from character ({_v}+1) to character ({_v3}) Jak już mamy wersje w plikach, możemy przejść do sprawdzania najnowszej wersji. Tak na prawdę zmienia się tylko zmienna do której zapisujemy wersję, i miejsce, skąd pobierany jest skrypt, czyli nie pliki serwera, tylko url. Tym kodem będziemy ustawiać zmienną {_version} na cały skrypt - najnowszą wersję, tak powinna wyglądać 1 linijka sprawdzania najnowszej wersji: set {_version} to result of connect to "Link RAW do skryptu" A tak ostatnia, czyli zapisywanie zmiennej {version.new} na wersję najnowszego skrypta: set {version.new} to subtext of {_version} from character ({_v}+1) to character ({_v3}) Reszta, jak już pisałem, pozostaje bez zmian. Teraz zmienna {version} posiada wersję w plikach serwera, a {version.new} posiada aktualną wersje skrypta. Teraz musimy wysłać wiadomość do konsolki, o dostępnej aktualizacji. {version} is not {version.new}: send "Jest dostepna nowa wersja! Pobierz ja /update pobierz" to console Jeżeli użyjemy automatycznej aktualizacji, nie musimy dawać tej wiadomości. III Automatyczne pobieranie aktualizacji Aby skrypt automatycznie się aktualizował trzeba sprawdzić czy jest nowa wersja. Jeżeli jest ona dostępna to jest ona pobierana: {version} is not {version.new}: download "Link RAW do skryptu" to "plugins/Skript/scripts/%skript%.sk" IV Ręczne pobieranie aktualizacji Do tego musimy utworzyć komendę np. /update: command /update [<text>]: trigger: set {_version} to result of connect to "Link RAW do skrypta" set {_v} to index of "##" in {_version} set {_v2} to subtext of {_version} from character ({_v}+1) to character (length of {_version}) set {_v3} to index of "##" in {_v2} set {version.new} to subtext of {_version} from character ({_v}+1) to character ({_v3}) arg 1 is "sprawdz": send "Twoja wersja to %{version}%" send "Najnowsza wersja to %{version.new}%" {version} is not {version.new}: send "Jest dostepna nowa wersja" arg 1 is "pobierz": {version} is not {version.new}: download "Link RAW do skrypta" to "plugins/Skript/scripts/%skript%.sk" send "Pobrano najnowsza wersje!" else: send "Masz juz najnowsza wersje skrypta!" stop Chyba nie muszę tego tłumaczyć, ponieważ wszystkie linijki są opisane powyżej, a reszta to podstawa skripta... Przykładowy kod z automatyczną aktualizacją: on load: set {_version} to content of file "plugins/Skript/scripts/%skript%.sk" set {_v} to index of "##" in {_version} set {_v2} to subtext of {_version} from character ({_v}+1) to character (length of {_version}) set {_v3} to index of "##" in {_v2} set {version} to subtext of {_version} from character ({_v}+1) to character ({_v3}) set {_version} to result of connect to "http://pastebin.com/raw.php?i=pACBwvMh" set {_v} to index of "##" in {_version} set {_v2} to subtext of {_version} from character ({_v}+1) to character (length of {_version}) set {_v3} to index of "##" in {_v2} set {version.new} to subtext of {_version} from character ({_v}+1) to character ({_v3}) {version} is not {version.new}: download "http://pastebin.com/raw.php?i=pACBwvMh" to "plugins/Skript/scripts/%skript%.sk Przykładowy kod z ręczną aktualizacją: on load: set {_version} to content of file "plugins/Skript/scripts/%skript%.sk" set {_v} to index of "##" in {_version} set {_v2} to subtext of {_version} from character ({_v}+1) to character (length of {_version}) set {_v3} to index of "##" in {_v2} set {version} to subtext of {_version} from character ({_v}+1) to character ({_v3}) set {_version} to result of connect to "http://pastebin.com/raw.php?i=pACBwvMh" set {_v} to index of "##" in {_version} set {_v2} to subtext of {_version} from character ({_v}+1) to character (length of {_version}) set {_v3} to index of "##" in {_v2} set {version.new} to subtext of {_version} from character ({_v}+1) to character ({_v3}) {version} is not {version.new}: send "Jest dostepna nowa wersja skryptu! Pobierz ja /update pobierz" to console command /update [<text>]: trigger: set {_version} to result of connect to "http://pastebin.com/raw.php?i=pACBwvMh" set {_v} to index of "##" in {_version} set {_v2} to subtext of {_version} from character ({_v}+1) to character (length of {_version}) set {_v3} to index of "##" in {_v2} set {version.new} to subtext of {_version} from character ({_v}+1) to character ({_v3}) arg 1 is "sprawdz": send "Twoja wersja to %{version}%" send "Najnowsza wersja to %{version.new}%" {version} is not {version.new}: send "Jest dostepna nowa wersja" arg 1 is "pobierz": {version} is not {version.new}: download "http://pastebin.com/raw.php?i=pACBwvMh" to "plugins/Skript/scripts/skrypt.sk" send "Pobrano najnowsza wersje!" else: send "Masz juz najnowsza wersje skrypta!" else: send "/update sprawdz - sprawdza aktualizacje" send "/update pobierz - pobiera aktualizacje" stop [*] Jeżeli znalazłeś jakiś błąd, napisz to pod tym tematem, postaram się poprawić. [*]Jeżeli czegoś nie zrozumiałeś, napisz to pod tym tematem, postaram się wytłumaczyć.
    20 punktów
  21. Witam! W tym poradniku przybliżę wam trochę działanie funkcji z popularnego dodatku WildSkript. Tak więc zaczynajmy! [dupka2]Zastosowania funkcji[/dupka2] Zastosowań funkcji jest bardzo dużo, tutaj wymienię tylko kilka. ~ Łatwiejsza edycja kodu ~ Połączenie z lambdami i ekwipunkiem z SkQuery ~ Skrócenie kodu [dupka2]Jak to wygląda w dokumentacji[/dupka2] Deklarowanie funkcji Method "<nazwa>" {<arg 1>, <arg 2> and <arg 3>}:<nazwa> - Tu wstawiamy nazwę funkcji do której będziemy się odwoływać w dalszej części kodu <arg 1/2/3> - Argument funkcji. W tym miejscu nie jest wymagane podawanie czegokolwiek, jednakże dla orientacji możemy tutaj wpisać polskie nazwy odpowiadające zmiennym Wywoływanie funkcji Function "<nazwa>" {<arg 1>, <arg 2> and <arg 3>};<nazwa> - Tu wstawiamy nazwę funkcji którą wcześniej zadeklarowaliśmy. <arg 1/2/3> - Argument funkcji, tutaj wstawiamy wartości które mają być używane przy wywoływaniu funkcji Pobieranie argumentów (Używamy w deklarowaniu funkcji) Set {<zmienna>} to arg{<numer>};<zmienna> - zmienna w której ma być zapisywana wartość argumentu <numer> - numer argumentu [dupka2]Przykład w kodzie[/dupka2] Chcemy zrobić komendę która będzie otwierała nam ekwipunek z możliwością wymiany cobbla na dirt w różnych ilościach, robimy tak: Deklarujemy Funkcje: Method "wymiana" {ilosc and gracz}:Zapisujemy argumenty do zmiennych: set {_d} to arg{1};set {_g} to arg{2};Ustawiamy ilość cobblestone'a w oparciu o ilość dirta którego chcemy otrzymać: set {_c} to {_d}*64Sprawdzamy czy gracz posiada odpowiednią ilość przedmiotów po czym usuwamy mu bruk z ekwipunku i dajemy dirta. Jeżeli gracz nie ma odpowiedniej ilości bruku wysyłamy wiadomość: if {_g} has {_c} cobblestone: remove {_c} cobblestone from {_g}'s inventory give {_d} dirt to {_g} send "&3Pomyślnie wymieniłeś &6%{_c}% cobbla &3na &6%{_d}% dirtu&3." to {_g} else: send "&cNie masz wystarczającej ilość cobbla!" to {_g}Tworzymy komendę która otworzy nam menu wymiany: command /Wymiana: trigger: open chest with 6 rows to player wait 2 ticks format slot 0 of player to 1 dirt named "&3 64 Cobblestone &6-> &31 Dirt" with lore "||||&6>> &3Kliknij aby wymienić &6<<" to run [function "wymiana" {1 and player}] format slot 1 of player to 5 dirt named "&3 320 Cobblestone &6-> &35 Dirta" with lore "||||&6>> &3Kliknij aby wymienić &6<<" to run [function "wymiana" {5 and player}]Cały kod: Method "wymiana" {ilosc and gracz}: set {_d} to arg{1}; set {_g} to arg{2}; set {_c} to {_d}*64 if {_g} has {_c} cobblestone: remove {_c} cobblestone from {_g}'s inventory give {_d} dirt to {_g} send "&3Pomyślnie wymieniłeś &6%{_c}% cobbla &3na &6%{_d}% dirtu&3." to {_g} else: send "&cNie masz wystarczającej ilość cobbla!" to {_g}command /Wymiana: trigger: open chest with 6 rows to player wait 2 ticks format slot 0 of player to 1 dirt named "&3 64 Cobblestone &6-> &31 Dirt" with lore "||||&6>> &3Kliknij aby wymienić &6<<" to run [function "wymiana" {1 and player}] format slot 1 of player to 5 dirt named "&3 320 Cobblestone &6-> &35 Dirta" with lore "||||&6>> &3Kliknij aby wymienić &6<<" to run [function "wymiana" {5 and player}][dupka2]Słowem zakończenia[/dupka2] To tyle na dzisiaj! Jak zrozumiem jak działa result of function i return zaktualizuje poradnik. Mam nadzieje że wam się spodoba. Pozdrawiam, :edgarsz:
    20 punktów
  22. piratjsk

    [STABILNY] Skript 2.1.2

    Wersja: 2.1.2 Wersja serwera: 1.7.2 Download: Kliknij tutaj, aby pobrać! Zmiany: dodano wyrażenie 'UUID of %player/world%'naprawiono obsługę negatywnych warunków, gdy 'or' lub 'and' jest użyte po warunku, np. 'a is not x or y'day' jest teraz rozumiane jako okres czasu od 6:00 do 18:00 ('1 day', 'a day' nadal odnoszą się do 24h)naprawiona została obsługa addonów, które przestały działać po zmianach dokonanych w poprzedniej wersji (2.1.1)naprawiono błędy związane z komendami w nowszych wersjach bukkitanaprawiono współpracę Skript z wersjami bukkita starszymi niż 1.7.2 R0.4naprawione zostały błędy w zdarzeniu 'on stepping on a pressure plate'naprawione zostały problemy spowodowane zapętlaniem zbyt wielu bloków (regiony WG)naprawiono błąd przez który listy zmiennych czasami traciły swój typ
    20 punktów
  23. Ixidi

    Pliki YAML w SkQuery

    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.
    19 punktów
  24. Patek

    PVPGuild - skrypt na gildie

    Skrypt pozwala nam tworzyć gildię dodawać do niej graczy i wspólnie z przyjaciółmi zwalczać inne gildie.Posiada on także możliwość nadawania wyższej rangi w gildii którą jest Oficer. Oficer posiada podobne możliwości do lidera gildii oprócz jej usunięcia! Brak możliwości uderzenia członków z własnej gildii pozwala swobodnie robić większe bitwy pomiędzy gildiami. Dodatkowo możemy sprawdzić informacje o danej gildii. Znajdują się tam takie rzeczy jak: Nazwa gildii, Lider gildii, Tag gildii, Członkowie gildii, Oficerowie gildii. Istnieje także funkcja sprawdzenia informacji nie tylko swojej gildii! KOMENDY /gildia - Wszystkie komendy dla gildii! /gildia stworz [TAG] [Nazwa] - Tworzy gildie! /gildia usun - Usuwa gildie! /gildia info [Nazwa] - Informacje o gildii! /gildia akceptuj [Nazwa] - Akceptuje zaproszenie od gildii! /gildia zapros [Nick] - Zaprasza gracza do gildii! /gildia wypros [Nick] - Usuwa gracza z gildii! /gildia oficer [Nick] - Nadaje oficera gildii! /gildia degrad [Nick] - Degraduje oficera na gracza! /gildia chat - Wylaczny chat dla członków gildii! /gildia lista - Lista wszystkich gildii! UPRAWNIENIA - pvpguild.admin - Dostep do wszystkich komend - pvpguild.gracz - Komendy dla gracza! POBIERANIE https://code.skript.pl/EDAsj1E2/ WYMAGANIA Skript 2.1.2 , Vault , WildSkript 1.6.1 CHANGELOG v1.0 - Wydanie skryptu v1.1 - Dodano brak możliwości uderzenia członka własnej gildii! v1.5 - Dodanie możliwości wyłączenia i włączenia pvp! - Tag gildijny na chacie! -Naprawiono błąd z <none> przy informacji o gildiach ! v1.5.1 - Dodano sprawdzanie czy oficer/czlonek gildi jest offline/online! - Poprawiono komende /gildia pomoc v1.6 - Poprawiono kod - Poprawa opcji chatu. v.1.7 - Zmieniono cały kod - Dodano cuboidy - Wprowadzono PVPGuildInstaller! v.1.8 - Poprawiono masę bugów! - Dodano tagi nad głową gracza! - Usunieto PVPGuildInstaller - Dodano powiększanie gildii! - Urozmaicono /gildia chat v1.9 - Poprawiono błędy! - Dodano inforamcje o wejscu na teren gildii! - Dodano teleportacje do bazy! - Dodano ustawienie bazy! - Dodano samo aktualizujący się plik! - Do /g info dodano date założenia gildii! -Dodano komendy: /gildia sojusz [Nazwa] , /gildia asojusz [Nazwa] , /gildia neutral [Nazwa] TODO - Ranking gildii - Komendy: /gildia sojusz [Nazwa] /gildia neutral [Nazwa] - Pojedynki między gildiami przy pomocy: /gildia duel [Nazwa] - Tag gildijny nad glowa gracza! - Tworzenie własnych rang gildijnych ! - Możliwośc banowania graczy ,tak aby nie mogli dołączyć do naszej gildii! - Tag gildi na chacie! - Mozliwosc wlaczenia i wylaczenia PVP w gildii. - Lista czlonkow offline i online! - Czekam na wasze pomysły
    19 punktów
  25. Norbi

    [SkQuery] Odtwarzanie dźwięków.

    PlaySound Witajcie! W tym poradniku przedstawię wam jak odtwarzać dźwięki! 1. Odtwarzanie dźwięku play raw sound "[Dzwiek]" at [Lokacja] with pitch [Ton] volume [Glosnosc] [Dzwiek] - zamieniamy na nazwę dźwięku. [Lokacja] - zamieniamy na miejsce, w którym ma się odtworzyć dźwięk. [Ton] - zamieniamy na ton dźwięku. [Glosnosc] - zamieniamy na głośność dźwięku. 2. Tworzymy komendę, która odtworzy dźwięk command /dzwiek: trigger: play raw sound "random.pop" at player with pitch 1 volume 5 Informacje Do odtworzenia dźwięku potrzebujemy pluginu SkQuery. Spis dźwięków: KLIK. To już koniec poradnika! Jeżeli poradnik się spodobał, nie zapomnij go ocenić. Pozdrawiam Norbi.
    19 punktów
  26. FlappyCraft - Graj w flappy birda na swoim serwerze! Funkcje: Tworzenie areny Usuwanie areny Dołączanie do areny Wychodzenie z areny Tworzenie teleportów Mnożniki monet! Talony Tworzenie areny: Tworzysz arenę do flappy birda Jako blok startowy kładziesz wełnę koloru limonkowego (LIME) Koniec oznaczasz wełną koloru czerwonego Blok cofania na lobby jak spadniesz to jest Cyan Staied Clay i deski (Oak Wooden Planks) Tworzysz sektory do skakania Tworzysz regiony od 1 do max. 10 (/rg define f1) zaznaczając CAŁY sektor Wpisujesz /fc create <nazwa> i dalej zostaniesz pokierowany! Uprawnienia: flappycraft.create - pozwala na stworzenie areny flappycraft.delete - pozwala na usunięcie areny flappycraft.setspawn - pozwala na ustawienie spawna flappycraft.setlobby - pozwala na ustawienie lobby flappycraft.join - pozwala na dołączenie do areny flappycraft.leave - pozwala na wyjście z areny flappycraft.shop - pozwala na korzystanie ze sklepu Komendy: /fc - wszystkie komendy /fc create [nazwa] - tworzy /fc delete [nazwa] - usuwa /fc setlobby - ustawia /fc setspawn [nazwa] - ustawia spawn dla danej /fc join [nazwa] - dołącza do /fc leave - opuszcza /fc shop - /fc stats - statystyki Zmiany: Wersja 1.0: Skrypt został wydany (możliwość pobrania: https://code.skript.pl/LojSpCg5/) Wersja 2.0: Dodano polskie komendy Dodano sprawdzanie gracza Dodano konfiguracje Dodano sprawdzanie ile gracz ma monet Poprawiono kilka błędów Wersja 3.0: Dodano mnożniki monet Dodano statystyki Dodano więcej konfiguracji Dodano tabliczki Wersja 4.0: Poprawione wszystko. Dodanie dźwięków Dodanie niewidzialności Talony na monety Więcej rzeczy w sklepie Usunięcie tabliczek Nowy system mnożników Sklep został przeniesiony do skryptu dzięki czemu nie będzie trzeba dodatkowego pluginu Niektóre wiadomości na pasku smoka Muzyka podczas gry Poziomy, punkty Statystyki (nowe) Wersja 5.0 : Poprawione wszystko Dodanie dźwięków Talony na monety zostały zaktualizowane Usunięcie wiadomości na pasku smoka Wiadomości na ActionBar Usunięto muzykę podczas gry Usunięto punkty, poziomy Usunięto konfigurację Wersja: PEŁNA (gra jest zdolna do używania) Autorzy: @boleknowak Wymagania: Skript skQuery WildSkript skRayFall Pobierz: 4.0 5.0 Inne: Ten skrypt ma plakietkę (jest skryptem miesiąca) Skrypt nie jest rozwijany. Pozdrawiam
    19 punktów
  27. piratjsk

    Funkcje

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

    nBackpack - skrypt na plecak

    nBackpack v. 3.0 (28-06-2015) Funkcje Craftowanie plecaka Określona ilość linijek Ustawianie itemu i nazwy plecaka Pobieranie https://raw.githubusercontent.com/xNorbig/nBackpack/master/Skrypt (wymaga SkQuery) [*]Autor: Nicofisi[/*]
    18 punktów
  29. AxPlugManSk (Tak wiem rakowa nazwa, napisz ktoś lepszą to zmienie) Cześć chciałbym wam przedstawić skrypt do zarządzania pluginami i skryptami na serwerze, niby nic a jednak coś fajnego wyszło. Skrypt wymaga tylko jednego dodatku którym jest skript-mirror. Starałem się napisać skrypt jak najkrócej i jak najlepiej, oraz aby posiadał dużo funkcji, aby stworzyć takie api z którego ktoś by mógł korzystać. Uprawnienia: - PlugMan #Dostęp do głównej komendy - PlugMan.plugins #Dostęp do zarządzania pluginami - PlugMan.skript #Dostęp do zarządzania skryptami Główna komenda: AxPlugSkMan: Zamienniki: (plugman, plugskman...) Składnia: /plugman <list/on/off/reload/change> <plugin name> list #Wyświetla liste pluginów i skryptów on <plugin name> #Włącza plugin off <plugin name> #Wyłącza plugin change <plugin name> #Zmienia status pluginu reload <plugin name> #Przeładowywuje plugin np: /plugman on TuSke Napisane na: Skript 2.2 Skript-mirror 0.19.1 Serwer Spigot 1.8.8 Konfiguracja Brak, dlatego wiadomości zostały napisane po angielsku. (No i nie wiem co tu do konfiguracji jest ale mogę dodać) Funkcje do użycia: SS: Zmiany i wydania: 1.5 Napisanie i skrócenie kodu Wszelkie błędy / możliwości poprawy działania / pomysły proszę zgłaszać pod postem lub na pw
    18 punktów
  30. Mr. Edgarsz

    TablistYML

    Witam! Dziś mam do przedstawienia wam pierwszy skrypt który publikuje na tym forum. Jest to skrypt ułatwiający tworzenie tablisty z addonu WildSkript. TablistYML 2.0 Siła w prostocie! Funkcje: - Ranking graczy pod komendą /Top <numer od 1 do 20> - Ustawianie tablisty za pomocą pliku config.yml - Odświeżanie tablisty po zmianie w pliku przez komendę /Tablist reload - Ustawianie slotów tablisty za pomocą komendy /Tablist ustaw - Duża ilość zmiennych - Zmienne z poza skryptu! - Ranking graczy wbudowany w skrypt! - Autorefresh z konfigurowalnym czasem! Lista zmiennych: ->Klik<- Zalety: - Prosta konfiguracja! - Częste aktualizacje! - Niezawodność! - Dobra optymalizacja! - Konfiguracja 1.Wrzuć skopiowany z linku skrypt do pliku tablistyml.sk w folderze Plugins/Skript/scripts 2. Odpal serwer 3. Poczekaj aż wszystko się załaduje a skrypt stworzy odpowiedni folder i plik. 4. Wejdź w plik config.yml znajdujący się w folderze Plugins/Skript/TablistYML 5.Ustawiaj kolejno sloty według tego schematu: (Koniecznie wpisuj treść slotu pomiędzy ' i ' inaczej kolory nie będą działać) 6.Użyj komendy /Tablist odswiez 7.Ciesz się ustawioną tablistą! Wymagane Addony: - WildSkript 1.8 Download: ->Klik<- To Do: - Wasze Propozycje! - Optymalizacja [dupka2] Znalazłeś buga? Masz ciekawą propozycję? Nie możesz sobie poradzić z konfiguracją? Coś nie działa? Pisz na pw lub w temacie! Postaram Ci się pomóc! [/dupka2]
    18 punktów
  31. PoweredDragon

    Custom NPC

    Witam. W tym poradniku przedstawię po kolei jak zrobić naszego własnego NPC od podstaw. W kolejnych częściach będziemy dodawać mu zastosowania :p Na starcie tworzymy naszą komendę! Poradnik będzie składał się z kilku części: 1. Jak w ogóle mam stworzyć NPC?!2. Mój NPC może zostać przeunięty przez gracza i nie atakuje! 3. Ten NPC tylko stoi. Niech on w końcu zacznie coś robić!a ) Handlarz[sprzedaje różne rzeczy...] - Rzeczy ustalane dla każdego NPC o tym samym imieniu - Rzeczy ustalane dla każdego NPC z osobna b ) Rozmówca[Np. Podpowiada o różnych rzeczach] c ) Najemnik[Podróżuje za nami za opłatą] 4. Pomyliłem się! Chciałbym coś zmienić... Prawdopodobnie będę skakał po częściach poradnika(Tj. Podpunkt 2 poradnika 3a może się nie pojawić, a część 4 już będzie :p... Część pierwsza -> Jak w ogóle mam stworzyć NPC?! command /npc [<text>] [<text>] [<text>] [<text>] [<text>] [<text>]: permission: npc.* permission message: Nie masz uprawnien do tworzenia NPC! trigger:Standardową komendę mamy... command /npc [<text&gt] [<text&gt] [<text&gt] [<text&gt] [<text&gt] [<text&gt]: -> Trzeba wpisać komendę, w której moze znaleźć się do sześciu argumentów permission: -> permisja wymagana do wyegzekwowania komendy permission message: -> wiadomoćć, którą otrzyma gracz bez permisji trigger: -> Otwarcie części podrzędnej komendy argument 1 is "create": argument 2 is set: spawn villager at location of player set the name of spawned entity to "%coloured argument 2%"argument 1 is "create" -> Komenda zostanie wyegzekwowana tylko, gdy napiszemy /npc create argument 2 is set: -> Komenda zostanie wyegzekwowana tylko, gdy napiszemy /npc create spawn villager at location of player -> Spawnuje przy nas osadnika set the name of spawned entity to "%coloured argument 2%" - Zmienia nazwe zespawnowanego osadnika na pokolorowany argument drugi. argument 3 is not number: set {movepool.length.%spawned entity%} to 0 apply slowness 100 to spawned entity else if argument 3 is "0": set {movepool.length.%spawned entity%} to 0 apply slowness 100 to spawned entity else: set {movepool.length.%spawned entity%} to argument 3 set {movepool.center.%spawned entity%} to location of spawned entity set {movepool.owner.%{movepool.center.%spawned entity%}%} to spawned entity argument 4 is not set: apply ressistance 100 to spawned entity for 1000000000 days argument 4 is "true" or "tak" or "-": apply ressistance 100 to spawned entity for 1000000000 days argument 5 is not set: set {damaging.%spawned entity%} to true set {damage.%spawned entity%} to 1 stop argument 5 is "true" or "tak" or "-": set {damaging.%spawned entity%} to true argument 6 is set: set {damage.%spawned entity%} to argument 6 else: set {damage.%spawned entity%} to 1 else: set {damaging.%spawned entity%} to falseargument 3 is not number -> Sprawdza, czy argument trzeci jest numerem, czy nie set {movepool.length.%spawned entity%} to 0 -> Ustawia zmienną na domyślną wartość - 0. jest to zakres ruchów naszego NPC else if argument 3 is "0": -> Sprwadza, czy argument 3 nie jest zerem else: - przeciwieństwo powyższego warunku set {movepool.length.%spawned entity%} to argument 3 -> Ustawia zmienną na wartość wpisaną w argumencie trzecim set {movepool.center.%spawned entity%} to location of spawned entity -> Ustawia centrum zakresu ruchow naszego NPC w miejscu jego zespawnowania set {movepool.owner.%{movepool.center.%spawned entity%}%} to spawned entity -> Zmienia wlasciciela centrum movepoolu na NPC przypisanego do centrum movepoolu(Wymagane w pozniejszym etapie!) argument 4/5 is not set: -> sprawdza czy argument 4 lub 5 są ustawione czy nie. Jeśli nie -> Ustawia na domyślną wartość argument 4/5 is "true" or "tak" or "-": -> sprawdza czy argument 4 lub 5 są określone jako true, tak lub -. Zmienia wtedy poniższą zmienną. set {damaging.%spawned entity%} to true/false -> Ustawia możliwość zadawania obrażeń dla naszego npc apply effect to spawned entity for x seconds/minutes/days -> Ustawia efekt na naszego NPC(Domyślnie, po napisaniu /npc create <nazwa> jest to spowolnienie 100 i odpornosc 100 set {damage.%spawned entity%} to argument 6 -> Ustawia wartość obrażeń naszego NPC(1 - jedno serce) argument 6 is set: - Sprawdza czy argument 6 jest ustawiony Tyle w pierwszej części. Nasz NPC egzystuje. Na chwilę obecną nie możemy w niego ingerować Część druga -> Mój NPC może zostać przesunięty przez gracza i nie atakuje! every minute: loop all entities: loop-entity is villager:every minute -> Efekt wywoła się co minutę, przy spełnieniu warunków loop all entities -> Zapętli wszystkie byty loop-entity is villager -> Sprawdza, czy zapętlone byty to osadnicy {movepool.length.%loop-entity%} is 0: {movepool.center.%loop-entity%} is set: location of loop-entity is not {movepool.center.%loop-entity%}: teleport loop-entity to {movepool.center.%loop-entity%}{movepool.length.%loop-entity%} is 0: -> sprawdza, czy nasz NPC może się poruszać {movepool.center.%loop-entity%} is set: -> sprawdza, czy nasz NPC ma zaznaczony swój spawnpoint location of loop-entity is not {movepool.center.%loop-entity%}: -> sprawdza, czy nasz NPC stoi gdzie powinien teleport loop-entity to {movepool.center.%loop-entity%} -> teleportuje NPC na miejsce jego Spawnu else: {movepool.center.%loop-entity-1%} is set: loop entities in radius {movepool.length.%loop-entity-1%} of {movepool.center.%loop-entity-1%} {movepool.owner.%{movepool.center.%loop-entity-1%}%} is loop-entity-2: stop teleport loop-entity-1 to {movepool.center.%loop-entity-1%}else: -> Zaprzeczamy poprzedniemu warunkowi {movepool.center.%loop-entity%} is set: -> sprawdza, czy nasz NPC ma zaznaczony swój spawnpoint loop entities in radius {movepool.length.%loop-entity%} of {movepool.center.%loop-entity%}-> Zapętla byty wokół spawnpointu bytu pierwszego {movepool.owner.%{movepool.center.%loop-entity-1%}%} is loop-entity-2: -> Sprawdza, czy zapętlony byt jest właścicielem spawnpointu bytu pierwszego. Jeśli nie, oznacza to iż nasz byt wyszedł poza granicę swojego movepoolu stop -> Wstrzymuje dalszy kod teleport loop-entity-1 to {movepool.center.%loop-entity-1%} -> Teleportuje naszego NPC do jego spawnpointu, gdyż wyszedł poza swój movepool Teraz sprawa zadawania DMG... on damage: victim is villager: {damaging.%victim%} is true: make victim damage attacker by {damage.%victim%}on damage -> Efekt wywoła się, gdy ktoś otrzyma obrażenia victim is villager -> Efekt wywoła się, gdy tym kimś jest osadnik {damaging.%victim%} is true -> Efekt wywoła się, gdy ta zmienna, którą można przypisać tylko do naszego NPC jest prawdziwa make victim damage attacker by {damage.%victim%} -> Sprawia, że nasz NPC atakuje Atakującego za {damage.%victim%}(zmienna przechowująca numer) serc Część trzecia -> Ten NPC tylko stoi. Niech on wkońcu zacznie coś robić! To już kolejna część poradnika. Ta jedna zostanie podzielona na trzy części: a ) Handlarz[sprzedaje różne rzeczy...] b ) Rozmówca[Np. Podpowiada o różnych rzeczach] c ) Najemnik[Podróżuje za nami za opłatą] a) Handlarz, czyli jak zrobić NPC, który coś sprzedaje! - Rzeczy, które można ustalić dla każdego NPC o tym samym imieniu Zaczniemy od tego, że mamy już naszego NPC. Jak więc wywołać efekt? Na początku skryptu dodajemy: on load: file "plugins/Skript/scripts/NPC/config.yml" is not exists: create file "plugins/Skript/scripts/NPC/config.yml"Otwieramy utworzony po załadowaniu skryptu config i wpisujemy do niego: NPC: nazwaNPC: numeroferty: waluta: przedmiot, ktorym placimy(miedzy apostrofami) towar: przedmiot, za ktory placimy(miedzy apostrofami) numeroferty: waluta: przedmioty, ktorymi placimy(miedzy apostrofami, oddzielone 'AND') towar: przedmiot, za ktory placimy(miedzy apostrofami)np. NPC: Handlarz: 1: waluta: 1 'diamond' towar: 1 'emerald' 2: waluta: 1 'coal and charcoal' towar: 15 'charcoal'Teraz musimy jakoś załadować ową ofertę dla określonego NPC :p on load: set {npc::*} to configuration section "NPC" get of "plugins/Skript/scripts/NPC/config.yml" loop {npc::*} set {_NPC} to "%loop-value%" set {npc.%loop-number%} to {_NPC} set {oferty.%{_NPC}%::*} to configuration section "NPC.%{_NPC}%" get of "plugins/Skript/scripts/NPC/config.yml" set {_ilosc} to size of {oferty.%{_NPC}%::*} loop {_ilosc} times: set {waluta.%{_NPC}%::%loop-number%} to value "NPC.%{_NPC}%.%loop-number%.waluta" get of "plugins/Skript/scripts/NPC/config.yml" set {towar.%{_NPC}%::%loop-number%} to value "NPC.%{_NPC}%.%loop-number%.towar" get of "plugins/Skript/scripts/NPC/config.yml"Ogółem: Pobieramy z configu listę NPC, podpisujemy każdemu z osobna ofertę, walutę dla przypisanej oferty i towar dla przypisanej oferty on rightclick on villager: set {_size} to size of {npc::*} loop {npc::*}: name of clicked entity is {npc.%loop-number%}: stop loop loop-number is {_size}: stop wait 1 second set {_oferta} to size of {oferty.%name of clicked entity%::*} loop {_oferta} times: clear trade of clicked entity add trade {waluta.%name of clicked entity%::%loop-number%} for {towar.%name of clicked entity%::%loop-number%} to clicked entity with 999999999 max uses on rightclick on villager: -> Efekt wywoła się po naciśnięciu PPM na Osadnika set {_size} to size of {npc::*} -> Zamienia zmienną tymczasową {_size} na rozmiar(ilość pozycji w) zmiennej {npc::*} loop {npc::*} -> Zapętla wszystkich NPC utworzonych w configu name of clicked entity is {npc.%loop-number%::*} -> Sprawdza czy dla klikniętego villagera jest przypisane miejsce w configu stop loop -> Jeśli tak, to kończy pętlę i przechodzi do ustawiania mu ofert loop-number is {_size}: -> Sprawdza, czy zapętlono ostatniego NPC(bez znalezienia tego, na którego kliknęliśmy) stop -> Jeśli tak, to zatrzymuje kolejne efekty set {_oferta} to size of {oferty.%name of clicked entity%::*} -> Jeśli nasz NPC znajduje się w configu, to zmienna {_oferta} zmienia się na ilość ofert, które ma on posiadać loop {_oferta} times: -> Tworzy pętlę, aby wyznaczyć do każdej oferty walutę i towar clear trade of clicked entity -> Usuwa oferty naszego NPC add trade {waluta.%name of clicked entity%::%loop-number%} for {towar.%name of clicked entity%::%loop-number%} with 999999999 uses -> Dodaje nieskończoną(W zasadzie to skończoną, ale miliard użyć jest raczej nieosiągalny...) wymianę przedmiotu ustawionego jako walutę pod numerem pętli(czyli za pierwszym razem jeden, za drugim dwa, za trzecim trzy, itd.) za towar pod numerem pętli. Wymagane dodatki: Sk+ RandomSk WildSkript Notatka od autora: Nie wiem jak szybko uda mi się dodać 3b, ale powiem, że to będzie trochę bardziej innowacyjne :p I skomplikowane
    18 punktów
  32. Stone++ to nic innego jak innowacyjny i pierwszy taki skrypt tego typu udostępniony w internecie, przy ocenianiu prosze o wyrozumiałość, to jest mój pierwszy skrypt, który napisałem po przeczytaniu dokumentacji WS oraz Skript, bez waszej pomocy a szczególnie dwóch konkretnych osób skrypt wylądował by w koszu. Stone++ był pisaniy całkowicie z tabletu przy użyciu wirtualnej klawiatury i edytora z możliwością tabowania. Screen zrobiony przez NeXv Funkcje i zalety: - Bardzo rozbudowana konfiguracja. - Dopracowany (zero błędów) - Ranking 15 najlepszych górników na czacie. - Rozbudowane statystyki na tablist. - Ranking 15 najlepszych górników na tablist. - Przystosowany do najnowszego wildskripta. - Informacje wyświetlane za pomocą menu GUI (/drop, /zbiory) - Efekty wizualne po wykopaniu surowca. - Wiadomości na pasku smoka. - Mozliwość ustalenia własnych wiadomości. - Mozliwość ustalenia własnych komend. - Mozliwość ustalenia kilofów. - Nagridy za punkty (chwilowo tylko jedna) - Automatyczne aktulizacje skryptu. - Komendy administracyjne. - Drop na uprawnienia, można ustawić lepszy drop dla rangi VIP. - Mozliwość ustalenia logów. - Lista wykopanych surowców. - Mozliwość zablokowania wypadania bruku z kamienia Komendy i uprawnienia: - Komendy ustala sam gracz w opcjach, nie ma sensu pisać. - Stoneplusplus.* Uprawnienia do wszystkich komend, ale nie do dropu. - Stoneplusplus.vip - Uprawnienie na drop VIP - Stoneplusplus.gracz Uprawnienie na drop gracza. - Stoneplusplus.pomoc - Uprawnienie do spisu komend (default: /gornik) - Stoneplusplus.cobble - Uprawnienie do komendy blokującej wypadnie cobble (default: /cobble) - Stoneplusplus.czysc - Uprawnienie do komendy kasujacej cobble z ew (default: /usuncobble) - Stoneplusplus.drop - Uprawnienie do komendy pokazującej drop. - Stoneplusplus.zbiory.1 - Uprawnienie do 1 strony pokazującej nasze zbiory (default: /zbiory) - Stoneplusplus.zbiory.2 - Uprawnienie do 2 strony pokazującej nasze zbiory (default: /zbiory) - Stoneplusplus.token - Mozliwosc użycia tokenu na VIP. - Stoneplusplus.admin - Uprawnienia do komend administracyjnych. (Default: /stoneadmin) Wymagania: - WildSkript 1.8 - Wymagany, plugin można pobrać na dzikoysk.net - SkQuery 3 - Wymagany, plugin można pobrać na plugins.bukkit.org - Skript 2.1.2 Do dodania: - Uwzglednianie fortuny. - Więcej nagród za punkty. - CobbleX - Tokeny na VIP na losowy czas. - Komenda dla administratora powiększająca drop. - Konfiguracja w pliku .yml (nie umiem) Pseudo licencja: 1. Licencja obowiązuje każdego użytkownika skryptu Stone++. 2. Zabrania sie zmiany autora lub nazwy skryptu. 3. Autor Stone++ nie odpowiada za błędy i szkody powstałe z użytkowania skryptu. 4. Złe odczytanie postanowień licencji użytkowania nie zwalnia z jej przestrzegania. 5. Zakazuje sie podszywania pod autora skryptu lub zmiany go w ustawieniach skryptu. 6. Zakazuje sie zatajniania informacji o prawdziwym autorze skryptu. 7. Zakazuje sie kopiowania fragmentów skryptu i przedstawiania jakk swoje. Podziękowania dla: - Xayanix - Zawsze skutecznie pomógł, bez niego skrypt pozostałby w koszu z błędami. - NeXv - Sam zwrócił sie do mnie bezinteresownie z pomocą. To jemu zawdzięczacie nowy ranking oraz statystyki ma tablist. - Dinekkk - Ciągle przesiaduje na forum i jest chętny do pomocy, bez niego skrypt nie posiadałby tablisty, która aktualnie została zawieszona. - Użytkownicy forum - Ostatnio zadawałem dużo pytań na forum, dziękuje za szybkie odpowiedzi Pobierz już teraz: - RAW: https://code.skript.pl/H3Uo39V3/raw/ - Code.skript.pl: https://code.skript.pl/H3Uo39V3/ Changelog: Wersja pełna 2.6 - Naprawiono tabliste. - Naprawiono błędne czytanie zmiennych. - Dodano opisy poszczególnych części kodu. - Usprawniono działanie GUI. Wersja pełna 2.5 - Częściowa naprawa rankingu na TAB. - Dodanie statystyk na TAB. - Zamieniono wiadomości tekstowe na menu GUI. - Średnia optymilizacja kodu. Wersja pełna 2.4 - Zawieszenie rankingu na tablist. - Dodano ranking 10 najlepszych górników. - Dodano komendy administracyjne. - Poprawiono przejrzystość konfiguracji. - Dodano proste usuwanie skryptu z ftp za pomocą komendy. - Ogólna optymilizacja skryptu. Wersje pelne 2.1-2.3 - Poprawa systemu aktulizacji, od teraz aktulizujemy komendami. Wersja pelna 2.0 - Dodano komende czyszczącą cobblestone z eq. - Dodano oddzielny drop dla VIP i dla gracza. - Dodano wiadomosci o braku uprawien. - Poprawiono kilka błędów Wersja testowa 1.3 - Dodano TOP 10 graczy z najwyższa punktacją na TABlist. Wersja testowa 1.2 - Poprawiono system aktulizacji (co 60 sekund sprawdza czy jest aktualna wersja skryptu) Wersja testowa 1.1 - Poprawiono błąd z nagrodami. Wersja testowa 1.0 - udostępnienie skryptu. Czekam na wyniki głosowania w ankiecie. Wszystkie błędy z TAB naprawione. //Linki ~Myszak
    18 punktów
  33. Witajcie Na internecie, jest wiele poradników o tym, jak rozpocząć swoją przygodę z pisaniem wtyczek do Minecrafta. Jednak zdecydowana większość pokazuje, jak robić to z pomocą IDE o nazwie Eclipse. Dzisiaj, pokażę jak robić to z pomocą innego programu, mianowicie IntelliJ. Zaczynajmy! Minecraft pierwotnie został napisany w języku programowania, który nazywa się Java. Silnik serwera tej gry, również napisany jest w tym języku i to właśnie Javy będziemy używali do tworzenia pluginów. Przed rozpoczęciem, należy jednak zapoznać się z podstawami tego języka, naprawdę, będzie Ci o wiele łatwiej Oto kilka kursów w języku polskim: https://javastart.pl/static/darmowy-kurs-java/ https://kobietydokodu.pl/kurs-javy/ Po zapoznaniu się z kursami i napisaniu kilku podstawowych programów, przejdźmy do części właściwej. 1) Instalacja JRE oraz JDK. Przed rozpoczęciem tworzenia czegokolwiek w Javie, musimy ją zainstalować. JRE (Java Runtime Environmen) to środowisko, które pozwala uruchamiać programy napisane w Javie. Pobieramy je tutaj: https://www.java.com/pl/download/ JDK (Java Development Kit) jest to pakiet, niezbędny do programowania w tym języku. Pobieramy je tutaj: http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html Po pobraniu, po prostu je instalujemy. Instalacja jest bardzo intuicyjna. Sprawdźmy teraz, czy wszystko zrobiliśmy dobrze. Uruchamiamy wiersz poleceń. (Win + R, a następnie wpisujemy cmd i klikamy Enter) W oknie, które się ukaże wpisujemy java. Jeśli dobrze zainstalowaliśmy JRE, powinniśmy ujrzeć coś takiego: Sprawdźmy teraz JDK. Wpisujemy javac. Widzimy coś takiego: Co teraz? Musimy dodać ścieżkę folderu \bin\ dla JDK do zmiennej środowiskowej Path. Jak to zrobić? Na początek, musimy skopiować ścieżkę folderu \bin\. Wchodzimy w Mój Komputer > Dysk C; > Program Files > Java > jdknumer_wersji > bin i kopiujemy ścieżkę: Teraz klikamy PPM na Mój Komputer > Właściwości > Zaawansowane Ustawienia Systemu > Zaawansowane > Zmienne Środowiskowe. Teraz musimy znaleźć zmienną Path. Następnie zaznaczamy ją i klikamy Edytuj. ( Uwaga! Przed jakąkolwiek zmianą radzę zapisać aktualną ścieżkę! ) Teraz, na końcu dopisujemy ; i wklejamy skopiowaną ścieżkę i klikamy Ok > Ok. Tutaj mały schemat: Teraz ponownie uruchamiamy wiersz poleceń i wpisujemy javac. Jeśli zobaczymy coś takiego, to zakończyliśmy instalacje JRE i JDK. 2) Instalacja i uruchomienie IntelliJ. Intellij pobieramy ze strony https://www.jetbrains.com/idea/. (Wybieramy wersje Community) Następnie instalujemy pobrany program, tutaj również instalacja jest bardzo intuicyjna. Po instalacji, przyszła pora na pierwsze uruchomienie. Uruchamiamy nasze IDE. W pierwszym okienku zaznaczamy Do not import settings i klikamy OK. Następnie według własnego upodobania, wybieramy UI, ciemne lub jasne. Ja wybiorę ciemne. Teraz wystarczy kliknąć Next i Start using IntelliJ IDEA. Ukaże nam się takie okno: Brawo! Przejdźmy do następnej części. 3) Tworzenie projektu. Klikamy Create New Project. W następnym okienku wybieramy Java. Teraz musimy wskazać programowi SDK. Klikamy New i podajemy ścieżkę do katalogu z JDK. (C:\Program Files\Java\jdknumer_wersji\) Klikamy dwa razy Next. Teraz wpisujemy nazwę naszego projektu i podajemy ścieżkę, gdzie zostanie zapisany. Ja swój projekt nazwę Poradnik. Klikamy Finish. Ujrzymy takie oto okno. Po lewej stronie znajduje się source tree. To właśnie tu będziemy tworzyć wszystkie pliki. Teraz musimy dodać bibliotekę, będzie nią spigot. Pobieramy go stąd: https://yivesmirror.com/downloads/spigot Wybieramy wersję, pod którą będziemy pisali. Ja wybiorę 1.13.2. Teraz musimy dodać to do naszego projektu. Klikamy File > Project Structure i z menu po lewej stronie wybieramy Libraries. Następnie klikamy na zielony +, wybieramy Java, podajemy ścieżkę do naszej biblioteki i klikamy OK. Jeśli wszystko zrobiliśmy dobrze, będzie wyglądać to tak: Klikamy OK, następnie Apply i OK. Świetnie! Możemy teraz zacząć pisać 4) Pierwsza komenda. Na początek stwórzmy package. Jest to tak jakby połka, na której coś trzymamy - klasy. Każda ma unikalną nazwę. Stwórzmy go. Klikamy PPM na src, New > Package. Package nazywamy małymi literami w następujący sposób. Przypuśćmy, że posiadasz domenę example.com. Twój package będzie nazywał się com.example.poradnik. Jeśli nie posiadasz lub nie chcesz nazywać packagów domeną, nazwij go po prostu me.twojnick.poradnik. Ja posiadam domenę ixidi.pl, więc package nazwę pl.ixidi.poradnik. Wpisujemy nazwę swojego package i kliknij OK. Jak widzisz, w twoim source tree pojawił się nowy package Stwórzmy teraz klasę. Klikamy PPM na nasz package New > Class. Klasy z kolei nazywamy Wielką literą. Istnieją dwie szkoły nazywania głównych klas. Main NazwapluginuPlugin, w moim przypadku PoradnikPlugin Ja nazwę moją główną klasę, PoradnikPlugin. Wpisujemy nazwę, klikamy i OK. Wszystko powinno wyglądać tak: Rozszerzmy teraz naszą klasę główną, o klasę JavaPlugin. W tym celu public class PoradnikPlugin zmieniamy na public class PoradnikPlugin extends JavaPlugin Ale zaraz, czemu słowo JavaPlugin świeci się na czerwono? Znaczy to, że musimy zaimportować klasę JavaPlugin. W tym celu przechodzimy kursorem na czerwone słowo, klikamy LPM, a następnie używamy skrótu ALT + Enter i wybieramy Import class. Tak właśnie importuje się klasy. Skrót ten przydaje się też w wielu innych rzeczach, warto go zapamiętać Dodajmy teraz dwie metody (tak w Javie nazywamy funkcje), dziedziczone z klasy JavaPlugin - onEnable i onDisable. Jak sama nazwa mówi, wykonują kolejno podczas włączenia i wyłączenia pluginu. Zacznijmy pisać onEn i tutaj widzimy jedną z wielu zalet Intellij. Podpowiada nam o jaką metodę może nam chodzić. Wybierzmy public void onEnable() {...} i kliknijmy Enter. Tak samo zróbmy z onDisable. Teraz zróbmy coś wewnątrz metod. Wyślijmy np. wiadomości do konsoli. Służy do tego np. metoda info() klasy Logger. Wywołujemy ją w następujący sposób. this.getLogger().info("Wiadomosc"); Nasz kod powinien wyglądać tak: package twojpackage; import org.bukkit.plugin.java.JavaPlugin; public class PoradnikPlugin extends JavaPlugin { @Override public void onEnable() { this.getLogger().info("Wiadomosc przy wlaczeniu."); } @Override public void onDisable() { this.getLogger().info("Wiadomosc przy wylaczeniu."); } } Ale po co nam plugin, który tylko wysyła wiadomość do konsoli? Dodamy teraz komendę. Przejdźmy kursorem pod metodę onDisable, i zacznijmy pisać onCom. Jak widać, tutaj również nasze IDE pomaga. Metoda o którą nam chodzi to onCommand. Wybierzmy ją. Nasz kod wygląda tak: package twojpackage; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.plugin.java.JavaPlugin; public class PoradnikPlugin extends JavaPlugin { @Override public void onEnable() { this.getLogger().info("Wiadomosc przy wlaczeniu."); } @Override public void onDisable() { this.getLogger().info("Wiadomosc przy wylaczeniu."); } @Override public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { return true; } } Tutaj widzimy, że po słowie public, zamiast void, występuje boolean. Znaczy to, że metoda musi zwracać wartość boolean. (Przybiera ona dwie wartości true lub false) Słowo, które zatrzymuje dalszą część metody to return. Jeśli metoda coś zwraca, po słowie return musi pojawić się zwracana wartość. Metoda onCommand zostanie wywołana gdy ktoś (nie ważne czy gracz, czy konsola) użyje komendy. Powiedzmy, że chcemy sprawdzić, czy wysyłający jest graczem czy konsolą i wysłać odpowiedni komunikat. Najpierw sprawdźmy, czy komenda, którą wpisał gracz, to właśnie ta o którą nam chodzi. Użyjmy do tego metody equalsIgnoreCase() klasy String. Porównuje ona dwa Stringi, bez względu na wielkość liter. Jako parametr, podajemy ciąg znaków (String), z którym chcemy porównać wartość. Nazwijmy więc naszą komendę sprawdz. Nazwę wpisanej komendy uzyskujemy przez command.getName() a więc kod który sprawdzi, czy wpisana komenda to sprawdz będzie wyglądał następujaca if (command.getName().equalsIgnoreCase("sprawdz")) { } Wiemy już że komenda się zgadza, sprawdźmy teraz czy wysyłający jest graczem. Służy do tego słówko instanceof. Aby więc sprawdzić czy wysyłający jest graczem używamy kodu: if (sender instanceof Player) { } Słówko Player świeci się na czerwono. Co musimy zrobić? Zaimportować, tak samo jak robiliśmy to z JavaPlugin. Wiemy już, że komenda się zgadza, a wysyłający jest graczem. Wyślijmy teraz wiadomość informującą. Do wysłania wiadomości służy metoda sendMessage(). Aby wysłać więc wiadomość użyjemy kodu: sender.sendMessage("Jestes graczem!"); Brawo! Chcemy jednak, że jeśli wysyłający jest konsolą, to wyśle się inna wiadomość. Zastosujemy tutaj else. Kod po else wykonuje się, jeśli warunek w if nie jest spełniony. Kod na wysłanie wiadomości do konsoli, wygląda tak samo. Musimy zmienić tylko treść. Nasz kod powinien wyglądać teraz tak: package twojpackage; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import org.bukkit.plugin.java.JavaPlugin; public class PoradnikPlugin extends JavaPlugin { @Override public void onEnable() { this.getLogger().info("Wiadomosc przy wlaczeniu."); } @Override public void onDisable() { this.getLogger().info("Wiadomosc przy wylaczeniu."); } @Override public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { if (command.getName().equalsIgnoreCase("sprawdz")) { if (sender instanceof Player) { sender.sendMessage("Jestes graczem!"); } else { sender.sendMessage("Jestes konsola!"); } } return true; } } Świetnie! Właśnie skończyliśmy pisać kod. Teraz stwórzmy plik plugin.yml. Zawiera on informacje potrzebne serwerowi przy ładowaniu pluginu. Kliknijmy PPM na nasz projekt (nie na src!) New > File i nazwijmy go plugin.yml. Klikamy OK. Plik plugin.yml musi zawierać trzy podstawowe informacje: Nazwę pluginu name Wersje pluginu version Ścieżkę do klasy main main Oprócz wymaganych informacji, może również zawierać informacje dodatkowe. Więcej o tym pliku tutaj: https://bukkit.gamepedia.com/Plugin_YAML/pl Tak więc mój plugin.yml powinien wyglądać tak: name: PoradnikPlugin version: 1.0 main: pl.ixidi.poradnik.PoradnikPlugin Z racji, iż stworzyliśmy komendę, musimy pokazać serwerowni przy ładowaniu pluginu, że takowa istnieje. Dodajemy więc następującą frazę: commands: sprawdz: description: "Plugin pokazujacy czy jestes graczem" aliases: [spr, spraw] permission: sprawdz.sprawdz permission-message: "Nie masz uprawnien!" Wymagana jest tylko część do słowa sprawdz. Dodałem tu jednak często używane elementy. Oznaczają one: description - Opis naszej komendy. aliases - Aliasy komendy, możemy ją wywołać przez wpisanie sprawdz, spr lub spraw. permission - Uprawnienie wymagane do użycia komendy. permission-message - Wiadomość, wysyłana jeśli nie posiada się uprawnienia. Nasz plugin.yml, source tree oraz PoradnikPlugin.java powinny wyglądać tak: 5) Kompilacja Możemy teraz przejść do czegoś, co wiele osób uważa w Intellij za trudne - kompilacji. Najprościej mówiąc jest to zamiana kodu źródłowego, na kod maszynowy. Aby to zrobić, klikamy File > Project Structure. Z menu po lewej stronie wybieramy Artifacts. Następnie klikamy na zielony +, JAR > From modules with dependencies. Wybieramy nasz projekt i klikamy OK. Teraz wybierzmy ścieżkę, gdzie zostanie zapisany nasz skompilowany plugin. Po niżej widzimy dwa okienka: W pierwszym od lewej, widzimy co będzie zawierał nasz skompilowany plik jar. W drugim znajdują się elementy, które możemy dodać. Na początek usuńmy z naszego jara bibliotekę spigota, jest on naszym serwerem, nie potrzebujemy go skompilowanego w projekcie. Klikamy na niego PPM > - Remove. Teraz musimy dodać do projektu nasz plik plugin.yml. Klikamy na zielony + > File i wybieramy nasz plik plugin.yml. Powinno wyglądać to tak: Następnie klikamy Apply i OK. Stworzyliśmy artefakt, teraz pozostaje tylko skompilować. Klikamy Build > Build Artifacts wybieramy nasz projekt i klikamy Build. Teraz musimy chwileczkę poczekać. Kiedy kompilacja dobiegnie końca, w lewym dolnym rogu zobaczymy taki oto napis: Brawo! Teraz wystarczy tylko wrzucić nasz skompilowany plik do katalogu plugins naszego serwera i sprawdzić działanie To by było na tyle, powodzenia
    17 punktów
  34. xFreku

    [SkQuery] JSON Message

    JSON MESSAGE Poradnik o nie typowych wiadomościach :) --------------------------- 1. Możliwości. - Wysyłanie wiadomości bez funkcji, - Wysyłanie wiadomości z unoszącym się tekstem po najechaniu, - Wysyłanie wiadomości, która za pomocą kliknięcia wykonuje się dana komenda, - Wysyłanie wiadomości, która proponuje graczowi wykonać daną rzecz, - Wysyłanie wiadomości, która przenosi gracza na podany adres URL. --------------------------- 2. Wykonie takiej wiadomości. command /json: trigger: send json "Zwykla widomosc." to player send json "Wiadomosc ukazana na chacie." tooltip "Wiadomosc ukazana po najechaniu na text." to player send json "Wiadomosc ukazana na chacie." tooltip "Linia 1 wiadomosci %nl%2 linia wiadomosci." to player send json "Wiadomosc ktora zaproponuje graczowi cos napisac." suggest "Dajcie lajka <3" to player send json "Wiadomosc ktora wykona daną komende" run "/msg %player% Jestem krową!" to player send json "Wiadmosc ktora wykona daną komende, ujawni nam text oraz zaproponuje graczowi cos napisac." tooltip "Zaraz cos wykonasc." run "/msg %player% Pomocy!" then "Daleszy text ktory nic nie robi!" to player send json "Wiadomosc ktora otworzy daną ostrone." tooltip "Text po najechaniu na wiadomosc" open "http://skript.pl" to player (tooltip to wiadomość w ramce, która ukazuje się po najechaniu na dany text) SS: Wiad. z tooltip: Wiad. która zaproponuje graczowi coś: Wiad. z wykonaniem danej komendy: Wiad. z przekierowaniem na strone: --------------------------- 3. Potrzebne pluginy. - SkQuery, - Skript. --------------------------- 4. Dodatkowe rzeczy, które możemy z tego stworzyć. on chat: if player is op: cancel event send json "&a%name of player%" tooltip "&cOperator serwera!" then ": &7%message%" to all players --------------------------- Dzieki, pozdro xFreku. (Pisane na szybko)
    17 punktów
  35. GrandTheftMinecraft Ten skrypt przenosi grę GrandTheftAuto SanAndreas do minecraft'a! Informacje: â—‰ Wgrywając skrypt na serwer akceptuje licencję, która jest w pliku! â—‰ Wymaga: Vault & iConomy & PermissionEx ( coś do uprawnień ) â—‰ Posiada misje ( aktualnie tylko II, potem zrobię więcej ) â—‰ System więzienia ( może nie działać prawidłowo ) â—‰ Za zabicie gracza daje kase â—‰ Posiada system śmierci, tak jak w GTA, gdy umieramy respimy się w szpitalu i usuwa nam konto. â—‰ CJ ma w sobie misje â—‰ Wszystko jest chyba dobrze opisane Komendy & uprawnienia: /gtm help - Lista komend | Brak uprawnień /gtm setjail - Ustawia więzienie | gtm.admin /gtm sethospital - Ustawia szpital | gtm.admin /gtm setcj - Ustawia CJ'a | gtm.admin /gtm jail <czas> <nick> - Wtrąca gracza do więzienia | gtm.mod /gtm mission - Pokazuje ile wykonalismy misji | gtm.default /gtm money - Pokazuje stan konta | gtm.default /gtm removecj - Usuwa CJ'a | gtm.admin /gtm reload - Przeładowuje skrypt | gtm.admin /gtm autor - Informacje o autorze | Brak uprawnień Bugi: Chyba brak xD Do zrobienia: â—‰ Sklep z bronią â—‰ Poprawić jail â—‰ Dodać więcej misji â—‰ Więcej w komentarzach Download: v1.0 Code.skript.pl: https://code.skript.pl/KJs4CpN2/ RAW: https://code.skript.pl/KJs4CpN2/raw/ //Link ~Myszak
    17 punktów
  36. Ostatnio przebywając na forum zaniepokoiła mnie jedna oferta. Nie wiem, czy Was również, ale chciałbym przedstawić Wam jej nieopłacalność. Oto oferta: Niby wszystko fajnie, ale do czasu, gdy się dowiadujemy, że skrypt za 10 zł lub za 3 zł to jest kilka linijek, do których nie trzeba praktycznie nic umieć. Przykładowy skrypt /dajrange [gracz] [ranga] command /dajrange [<player>] [<text>]: permission: rejszpat.dajrange permission message: &cbrak uprawnień trigger: execute console command "pex user %arg 1% group set %arg 2%" broadcast "Gracz %arg 1% otrzymał rangę %arg 2%" Bądźmy szczerzy, czy był on wart 10 złotych? Ja bym na Waszym miejscu za tyle nawet pluginu nie kupił! Kolejny skrypt. Nawet dłuższy od wcześniejszego, a cena jest niższa! Podejrzane. Przykładowy skrypt /helpop [treść] command /helpop [<text>]: permission: rejszpat.helpop.send permission message: &cbrak uprawnień trigger: if arg 1 is set: loop all players: if loop-player has permission "rejszpat.helpop.receive": send "&cHELPOP &7%arg 1%" to loop-player else: send "&ctreść jest pusta" to player Następna komenda. Przykładowy skrypt /stan konta A chwila, po co robić na to skrypt? Przecież mamy plik Commands.yml w głównym katalogu serwera. Możemy go uzupełnić np. tak: command-block-overrides: [] aliases: stankonta: - "money" Ale jak już tak bardzo chcemy zrobić to skryptem, to: command /stankonta: permission: rejszpat.stankonta permission message: &cbrak uprawnień trigger: send "Twój stan konta wynosi %player's money%" to player To jest kilka przykładów. Później może wstawię ich więcej.
    16 punktów
  37. Witam, mam do zaprezentowania kolejny skrypt, jakim jest ElectricFence. Dodaje on płoty pod napięciem na nasz serwer. Crafting: W stole w dowolne miejsce dajemy płot oraz czerwony proszek. Działanie: Po kliknięciu lub podejściu do płotka zostajemy kopnięci błyskawicą, dostajemy Oślepienie i Kręcenie w głowie (Nausea) Download: https://code.skript.pl/1aGUzY32/ Known bugs: Po wyjściu i wejściu nawet nasz płot może nas pokopać Je*ać generator!
    16 punktów
  38. Dinekkk

    [WildSkript] Hologramy, co i jak?

    Witajcie, w tym małym tutku postaram się wytłumaczyć wam jak zrobić hologramy w skript. Przypominam, że do działania hologramów wymagany jest addon "WildSkript". Tak więc, zaczynajmy... 1. Najpierw, musimy zrobić warunek powstania hologramu. U mnie będzie to komenda /ustaw [nazwa]. command /ustaw [<text&gt]: trigger: if argument 1 is set: 2. Sprawdzamy czy nie istnieje już hologram o podanej nazwie. command /ustaw [<text&gt]: trigger: if argument 1 is set: if {holo.%argument 1%} is not set:3. Teraz czas na ustalenie miejsca, gdzie będzie tworzył się hologram. Ustalamy zmienna tymczasową ( u mnie {_loc} ) Hologram będzie tworzył się w miejscu na które wskazujemy kursorem. Ustawiamy również nazwę na lokalizację hologramu . Od teraz zmienna {holo.%argument 1%} będzie przetrzymywać informacje o koordynatach hologramu, aby było go nam łatwiej usunąć. set {_loc} to location of target blockset {holo.%argument 1%} to "%{_loc}%"4. Następnie musimy dodać kod na tworzenie obiektu hologramu w przedtem ustalonej zmiennej. Wygląda on tak: new Hologram "%{_loc}%.holo";5. Nasz kod wygląda teraz tak: command /ustaw [<text&gt]: trigger: if argument 1 is set: if {holo.%argument 1%} is not set: set {_loc} to location of target block set {holo.%argument 1%} to "%{_loc}%" new Hologram "%{_loc}%.holo";6. Nadeszła chwila na nadanie hologramowi jakiegoś tekstu. Będziemy używać do tego argumentu 1. "%{_loc}%.holo".Hologram.change{"%argument 1%"};7. W tej chwili trzeba włączyć nasz hologram. Używamy do tego: "%{_loc}%.holo".Hologram.show{{_loc}};8. Wyświetlanie hologramu jest już skończone. Na chwilę obecną nasz kod wygląda tak: (dodałem wiadomości) command /ustaw [<text&gt]: trigger: if argument 1 is set: if {holo.%argument 1%} is not set: set {_loc} to location of target block set {holo.%argument 1%} to "%{_loc}%" new Hologram "%{_loc}%.holo"; "%{_loc}%.holo".Hologram.change{"%argument 1%"}; "%{_loc}%.holo".Hologram.show{{_loc}}; send "&7Wyswietliles hologram '&3%argument 1%&7' na koordynatach &3%{_loc}%&7!" else: send "&cTaki hologram juz istnieje!" else: send "&7Podaj nazwe hologramu!"9. Teraz tworzymy nową komendę na usuwanie hologramu. U nas, /zniszcz [nazwa] oraz sprawdzamy czy dany hologram już istnieje. command /zniszcz [<text&gt]: trigger: if argument 1 is set: if {holo.%argument 1%} is set: 10. Teraz ustalamy lokalizację hologramu, dzięki przedtem nadanej mu nazwy set {_loc} to {holo.%argument 1%}11. A teraz go niszczymy i usuwamy zmienną przetrzymującą jego nazwę. (abyśmy mogli zrobić jeszcze raz taki sam hologram) "%{_loc}%.holo".Hologram.delete{};delete {holo.%argument 1%}12. Nasz kod wygląda teraz tak: (oczywiście znów dodałem wiadomości) command /zniszcz [<text&gt]: trigger: if argument 1 is set: if {holo.%argument 1%} is set: set {_loc} to {holo.%argument 1%} "%{_loc}%.holo".Hologram.delete{}; delete {holo.%argument 1%} send "&7Zniszczyles hologram '&3%argument 1%&7'!" else: send "&cTaki hologram nie istnieje!" else: send "&7Podaj nazwe hologramu ktorego chcesz zniszczyc!"13. Cały kod prezentuje się tak: command /zniszcz [<text&gt]: trigger: if argument 1 is set: if {holo.%argument 1%} is set: set {_loc} to {holo.%argument 1%} "%{_loc}%.holo".Hologram.delete{}; delete {holo.%argument 1%} send "&7Zniszczyles hologram '&3%argument 1%&7'!" else: send "&cTaki hologram nie istnieje!" else: send "&7Podaj nazwe hologramu ktorego chcesz zniszczyc!"command /ustaw [<text&gt]: trigger: if argument 1 is set: if {holo.%argument 1%} is not set: set {_loc} to location of target block set {holo.%argument 1%} to "%{_loc}%" new Hologram "%{_loc}%.holo"; "%{_loc}%.holo".Hologram.change{"%argument 1%"}; "%{_loc}%.holo".Hologram.show{{_loc}}; send "&7Wyswietliles hologram '&3%argument 1%&7' na koordynatach &3%{_loc}%&7!" else: send "&cTaki hologram juz istnieje!" else: send "&7Podaj nazwe hologramu!"Myślę, że poradnik przyda się osobom początkującym Pozdrawiam ~Dinekkk
    16 punktów
  39. Krótki poradnik jak posortować listę zmiennych od największej wartości do najmniejszej lub odwrotnie. Skript - sortowanie listy zmiennych Uczymy się sortować listę zmiennych, czyli tworzyć ranking. I. O co chodzi? O co w tym wszystkim chodzi? Co chcemy osiągnąć? Założenia. W tym poradniku będziemy dążyć do stworzenia rankingu (dla przykładu: ilości wykopanego kamienia). Poradnik ten jest adresowany do osób posiadających podstawową wiedzę o pisaniu skryptów dla pluginu Skript. II. Tworzymy ... nasz ranking. Na początek musimy stworzyć listę zmiennych przechowującą wartości liczbowe. W praktyce krok ten będzie polegał na przykład na stworzeniu skryptu zliczającego wykopany kamień. on join: {stone::%player%} is not set: set {stone::%player%} to 0 {nick::%player%} is not set: set {nick::%player%} to uncolored display name of player on mine of stone: add 1 to {stone::%player%} Stworzyliśmy więc listę zmiennych w formacie {stone::nazwa_gracza} przechowującą wartość liczbową, w naszym przypadku ilość wykopanego przez gracza kamienia. Dodatkowo stworzyliśmy zmienną przechowującą nick gracza z uwzględnieniem wielkości znaków. Następnym krokiem będzie stworzenie komendy /top, która będzie wyświetlała 5 najlepszych kopaczy kamienia. command /top [<integer=1>]: trigger: set {_strony} to rounded up (size of {stone::*} / 5) arg is between 1 and {_strony}: send "ranking kopaczy kamienia" loop {stone::*}: set {_lista::%loop-index%} to loop-value set {_num} to size of {_lista::*} set {_max} to arg * 5 set {_min} to {_max} - 4 loop {_max} times: loop {_lista::*}: {_wartosc.%loop-number%} is not set: set {_wartosc.%loop-number%} to loop-value-2 set {_nazwa.%loop-number%} to loop-index loop-value-2 is more than {_wartosc.%loop-number%}: set {_wartosc.%loop-number%} to loop-value-2 set {_nazwa.%loop-number%} to loop-index delete {_lista::%{_nazwa.%loop-number%}%} loop {_max} times: loop-number is between {_min} and {_max} loop-number <= {_num}: send "%loop-number%. %{nick::%{_nazwa.%loop-number%}%}% (%{_wartosc.%loop-number%}%)" {_max} is more than {_num}: set {_r} to {_num} loop {_max} - {_num} times: add 1 to {_r} send "%{_r}%. brak" send "Strona: %arg% z %{_strony}%" stop {_strony} is 1: send "Wyniki mieszcza sie na 1 stronie." stop send "Wyniki mieszcza sie na %{_strony}% stronach." Definiujemy komendę uwzględniając argument będący liczbą całkowitą wskazujący na stronę wyników którą chcemy zobaczyć. Zapisujemy do zmiennej {_strony} ilość stron jaką zapełnią wyniki. Sprawdzamy czy podana strona mieści się w przedziale od 1 do wcześniej zdefiniowanej zmiennej {_strony}. Dla bezpieczeństwa kopiujemy naszą listę - tworzymy listę roboczą na której będziemy pracować. Zapisujemy do zmiennej {_num} ilość wyników. (w naszym przypadku kopaczy kamienia) Zapisujemy do zmiennej {_max} nr ostatniego wyniku, który zmieści się na wybranej stronie. (mnożymy stronę razy ilość wyników na stronie) Do zmiennej {_min} zapisujemy nr pierwszego wyniku, który zmieści się na wybranej stronie. (od zmiennej {_max} odejmujemy ilość wyników na stronie minus 1) Sortujemy: Zapętlamy {_max} ilość razy, czyli tyle do jakiego miejsca w rankingu potrzebujemy wyniki. W każdym zapętleniu wykonujemy następujące czynności: - zapętlamy listę - zapisujemy wartość (do {_wartosc.%loop-number%}) i nazwę (do {_nazwa.%loop-number%}) pierwszej zmiennej. %loop-number% jest to numer zapętlenia, czyli pierwsze zapętlenie - 1, drugie - 2 itd... - sprawdzamy wartość każdej zmiennej czy nie jest większa od tej zapisanej - jeśli jest nadpisujemy ją. w ten sposób po sprawdzeniu wartości wszystkich zmiennych w {_wartosc.%loop-number%} mamy zapisaną tą o najwyższej wartości - usuwamy zapisaną zmienną z listy i następne zapętlenie, czyli nasz kod się powtarza z tą różnicą, że zmienna o największej wartości jest już inna gdyż pierwszą usunęliśmy z listy. Efektem naszej dotychczasowej pracy są pary zmiennych: - {_wartosc.1}, {_nazwa.1} - przechowują zmienną o największej wartości - {_wartosc.2}, {_nazwa.2} - przechowują zmienną o mniejszej wartości - {_wartosc.3}, {_nazwa.3} - przechowują zmienną o mniejszej wartości - itd... Wyświetlamy: Ponownie zapętlamy kod tyle razy, do którego miejsca w rankingu potrzebujemy wyniki. W każdym zapętleniu wykonujemy następujące czynności: - sprawdzamy czy numer zapętlenia mieści się w przedziale wyników, które chcemy zobaczyć na danej stronie - sprawdzamy czy numer zapętlenia nie jest większy niż ilość wpisów z listy (w naszym przypadku kopaczy kamienia) - jeśli powyższe warunki są spełniony wyświetlamy wiadomość "%loop-number%. %{nick::%{_nazwa.%loop-number%}%}% (%{_wartosc.%loop-number%}%)", która będzie miała postać np: "1. PiratJaskiniowy (99)" Sortowanie wartości od najmniejszej do największej: Co w przypadku gdy chcemy posortować listę w odwrotnym kierunku? Wystarczy w 12 linii zmienić "more" na "less". Otrzymamy wtedy wyniki w takiej formie jak wcześniej z tą różnicą, że zmienna {_wartosc.1} będzie przechowywać najmniejszą wartość. Co się stanie gdy ostatnia strona nie zostanie zapełniona? - Będzie krótsza od reszty. Możemy jednak temu zaradzić: - Sprawdzamy czy taki stan ma miejsce. (czy maksymalna ilość wyników jest większa niż przechowywana w naszej liście) - Zapisujemy ilość zmiennych w liście do {_r}. - Zapętlamy kod /maksymalna ilość wyników minus liczba wpisów z naszej listy/ razy. - Dodajemy 1 do {_r}. - Wyświetlamy wiadomość "%{_r}%. brak", która będzie miała postać np: "33. brak".
    16 punktów
  40. niWeather Funkcja Pokazywanie temperatury i krótkiego tekstu dot. pogody. Komendy /pogoda - pokazuje temperaturę i pogodę na tą chwilę Changelog Stworzenie skryptu od api do działającego pliku pluginu Skript. Plany Nie widzę perspektyw na rozwój skryptu. Niby mogę dać na kilka dni, ale to za 5 pozytywnych reakcji Download https://code.skript.pl/yFXUpfqd/
    15 punktów
  41. Witam! W tym tutorialu pokażę jak zapisywać i odczytywać ekwipunek do i ze zmiennych. Wymaga : SKRIPT+ Dokumentacja twierdzi: Czyli: Objaśnienie: 1. Aby zapisać ekwipunek gracza w kod wplatamy np. set {ekwipunek.%player%} to serialized inventory of player2. Aby zastąpić ekwipunek gracza zapisanym, w kod wplatamy np. restore inventory of player from {ekwipunek.%player%}Zapisywanie zbroi... set {helm.%player%} to %helmet of the player%set {klata.%player%} to %chestplate of the player%set {gacie.%player%} to %legging of the player%set {buty.%player%} to %boots of the player%i jej wczytywanie: equip the player with {helm.%player%} parsed as itemequip the player with {klata.%player%} parsed as itemequip the player with {gacie.%player%} parsed as itemequip the player with {buty.%player%} parsed as itemWykorzystanie: 1. Skrypt na kopie awaryjne ekwipunku przy wyłączaniu serwera (niekiedy nie zapisuje się właśnie ekwipunek):2. Skrypt na minigrę: variables: {zapisywac.%player%} = false on skript unload: loop all players: set {zapisywac.%loop-player%} to true set {ekwipunek.%loop-player%} to serialized inventory of loop-player set {helm.%player%} to %helmet of the player% set {klata.%player%} to %chestplate of the player% set {gacie.%player%} to %legging of the player% set {buty.%player%} to %boots of the player%on join: if {zapisywac.%player%} is true: set {zapisywac.%player%} to false equip the player with {helm.%player%} parsed as item equip the player with {klata.%player%} parsed as item equip the player with {gacie.%player%} parsed as item equip the player with {buty.%player%} parsed as item restore inventory of player from {ekwipunek.%player%}command /minigra [<text>]: trigger: arg 1 is "dolacz": set {ekwipunek.minigra.%loop-player%} to serialized inventory of player #--- dalszy kod ---# arg 1 is "wyjdz": restore inventory of player from {ekwipunek.minigra.%player%} #--- dalszy kod ---# To na tyle, mam nadzieję ze pomogłem tym mini-poradnikiem :) Weź chociaż walnij strzałke w górę
    15 punktów
  42. Witam! Dziś chciałbym przedstawić wam poradnik dotyczący Obfuscatora. Jest to bardzo przyjemna rzecz jeżeli boimy się o swoje prawa autorskie do kodu. Tak więc zaczynajmy! [dupka2] 1. Tworzenie zaszyfrowanego pliku [/dupka2] Zacznijmy więc teraz od stworzenia sobie kodu który chcemy zaszyfrować. command /test: trigger: send "&2Testujemy &4Obfuscatora" to consoleNo powiedzmy że to nam wystarczy... Teraz Pora się zabrać do szyfrowania tego pliku. Niestety wiąże się to z tworzeniem nowego pliku. Tak więc tworzymy nowy plik po czym wpisujemy do niego jakiś event + linijka obfuscate file [file] to file [file] with power [number]Wyjaśnijmy sobie tą linijkę kodu: obfuscate file [file] - w dosłownym tłumaczeniu "zaciemnij plik". Gdzie [file] podajemy ścieżkę dostępu do pliku który ma być zaszyfrowany. to file [file] - w tłumaczeniu "do pliku". Gdzie [file] podajemy ścieżkę dostępu w której ma pojawić się plik. with power [number] - w tłumaczeniu "z siłą". Gdzie [number] podajemy dowolny numer bez ograniczeń. No więc piszemy w naszym drugim pliku. on load: obfuscate file "pluginsSkriptscriptsTest.sk" to file "pluginsSkriptscriptsTest2.txt" with power 6teraz po załadowaniu naszego drugiego pliku otrzymamy zaszyfrowany plik Test2.txt zawierający to samo co niezaszyfrowany plik Test.sk W zależności w jakim edytorze tekstowym otworzymy nasz plik Test2.txt może on wyglądać inaczej. [dupka2] 2. Ładowanie zaszyfrowanego pliku [/dupka2] ładowanie pliku jest już banalne wystarczy zedytować plik którym szyfrowaliśmy i zamiast: obfuscate file [file] to file [file] with power [number]dać: load obfuscated file [file] by power [number][file] - tutaj wstawiamy ścieżkę zaszyfrowanego pliku który ma zostać załadowany jako skrypt [number] - tutaj wstawiamy siłę z którą plik był szyfrowany czyli w naszym wypadku będzie to wyglądać tak: on load: load obfuscated file "pluginsSkriptscriptsTest2.txt" by power 6Brawo! Załadowaliśmy nasz zaszyfrowany skrypt! Tym samym komenda /test będzie działała na serwerze! [dupka2] 3. Uwagi [/dupka2] 1. NIGDY nie podajemy bezwzględnej ścieżki pliku. To znaczy że ścieżkę do pliku podajemy Tylko od folderu w którym znajduje się serwer, pomijając go. Przykład: c:UsersEdgarszDesktopfolderMinecraftSerwerySkript LabpluginsSkriptscriptsTest.sk - ŹLE pluginsSkriptscriptsTest.sk - DOBRZE 2. Należy uważać z siłą obfuscatora. Ponieważ im większej siły użyjemy tym większy będzie plik a co za tym idzie będzie się dłużej ładował jak i szyfrował. 3. Przy ładowaniu skryptu zawsze należy użyć takiej samej siły z jaką szyfrowaliśmy nasz plik. Mam nadzieję że pomogłem. Pozdrawiam, Edgarsz
    15 punktów
  43. theneuetimes

    Lista eventów

    Siemano! W tym temacie postaram się opisać wszystkie eventy z Skript. Event - Wydarzenie, czyli kiedy ma się dziać ustawiona przez nas czynność. at 18:00send "Jest 18:00!"Czynność zostanie wywołana podczas godziny 18:00. at 7am in "world"send "Juz swit! Do kopalni, diamenty same sie nie wykopią!"Ta czynność wywoła się o 7 rano czasu Minecraft w danym świecie. on bed enter: send "Dobranoc!"Gdy gracz pójdzie spać zostanie wywołana czynność. on bed exit: send "Dobry dzien, dobry dzien... ^^"Gdy gracz wstanie z łóżka. :D on block damage: send "Nie griefuj :D"Wywoływane podczas uderzenia w blok (nie zniszczenia). on mine stone: chance of 1%: drop 1 diamondTa czynność wywoła się tylko wtedy gdy zniszczymy blok (w tym wypadku kamień) kilofem. on break of stone: send "Zeby dropnac diament musisz kopac kilofem :D"A ta gdy zniszczymy kamień jakimkolwiek narzędziem. :) on bucket fill: remove bucket from player add milk bucket to playerGdy nabierzemy czegokolwiek do wiaderka. on burn of wood: broadcast "Las plonie :D"Gdy blok zostanie zniszczony przez ogień (spali się). on chat: {chat} is false: cancel event send "Chat aktualnie wylaczony :)"Podczas pisania wiadomości (nie komendy) na chacie. on drop: cancel eventGdy gracz wyrzuci przedmiot ze swojego ekwipunku. on chunk load: broadcast "Chunk zostal zaladowany"Gdy nowy chunk zostanie załadowany. on chunk unload: broadcast "Chunk zostal usuniety"Gdy chunk zostanie usunięty. on chunk generate: broadcast "Chunk zostal wygenerowany"Gdy wygeneruje się nowy chunk. on click: cancel eventPodczas kliknięcia myszką. Zamiast click można również użyć rightclick (prawy przycisk myszy) i leftclick (lewy przycisk myszy). Wydarzenie on click będzie reagowało na obydwa typy. on command "op": cancel event send "Nope :D"Podczas użycia komendy która nie jest stworzona w skrypcie. on join: send "Witaj na serwerze :)"Podczas wejścia na serwer. :) on quit: broadcast "%player% opuscil serwer"Podczas wyjścia z serwera. on consume: set the player's health to 10Podczas zjedzenia/wypicia czegokolwiek. Aby wywołać to po zjedzeniu danej rzeczy należy użyć on consume apple (gdzie apple należy wstawić przedmiot). on craft: send "Scraftowales cos"Podczas stworzenia jakiegokolwiek przedmiotu. Aby odwołać się do jednego przedmiotu należy użyć on craft diamond sword (gdzie diamond sword należy wstawić przedmiot). :) on damage of <mob>: send "Ataaaaaaaaaaaaaaaaaak"Podczas zaatakowania moba/gracza. <mob> należy zamienić za nazwę moba, w przypadku gracza należy wstawić player. on death of <mob>: send "cos tam"Podczas zabicia moba/gracza. <mob> należy zamienić za nazwę moba, w przypadku gracza należy wstawić player. on dispense of <item>: broadcast "item zostal wyrzucony"Gdy coś zostanie "wyrzucone" z dispensera (dozownika). <item> należy zamienić za przedmiot. on drop of <item>: cancel event send "nie wolno :c"Gdy gracz wyrzuci przedmiot ze swojego ekwipunku. <item> ponownie należy zamienić za przedmiot, dodatkowo jeśli chcemy aby aktywowało się to podczas wyrzucenia dowolnego przedmiotu, dajemy event on drop. on enderman place/pick: cancel eventGdy enderman podniesie/położy jakiś blok. on sheep eat: cancel eventGdy owca zje trawę. :) on xp spawn: world is "world" cancel eventGdy zostaną "zespawnione" kuleczki xp (doświadczenia). on explode: broadcast "booom"Gdy wybuchnie tnt/creeper. on first join: broadcast "Witamy nowego gracza %name of player%"Gdy gracz wejdzie na serwer pierwszy raz. on fishing: send "lowisz :D"Gdy gracz kliknie prawym na wędkę (zacznie łowić). Nie zalecam używania, event jest zbugowany. on form of <blok>: broadcast "banan"Gdy "uformuje się" naturalnie jakaś konstrukcja, np. duży grzyb, drzewo, woda zamarznie itp. <blok> należy zamienić za typ "formy", np. "mushroom". on fuel burn: send "cos tam"Gdy paliwo w piecyku zostanie spalone. on gamemode change: send "zmieniles tryb na %gamemode%"Podczas zmieniania trybu gry (gamemode). on heal: send "cos"Gdy gracz będzie uleczany (dodawanie serc). on hunger meter change: send "twoj poziom glodu spadl/wzrosl"Gdy poziom głodu gracza się zmieni. on <blok> ignition: broadcast "%event-block% plonie"Gdy blok zacznie się palić. <blok> należy zamienić za typ bloku, np. wood (drewno). on player tool break: send "twoj %event-item% sie zniszczyl"Gdy narzędzie gracza się zniszczy (z powody wytrzymałości). on item spawn of <item>: broadcast "..."Gdy przedmiot pojawi się na mapie (w jakikolwiek sposó B). <item> należy zmienić na typ przedmiotu, np. wooden pickaxe (drewniany kilof). on join: send "Witaj na serwerze"Gdy gracz wejdzie na serwer. on kick: set kick message to "%player% zostal wyrzucony z serwera"Gdy gracz zostanie wyrzucony z serwera. on walking on <blok>: send "chodzisz po %event-block%"Gdy gracz chodzi po danym bloku. <blok> zmieniamy na typ bloku, np. grass (trawa). on block physics: block is <blok> cancel eventPodczas fizyki (spadania) bloku. W drugiej linijce <blok> zmieniamy na typ bloku, np. sand (piasek). Poradnik stworzony przez RaiZeN. Zabraniam kopiowania go na inne fora bez mojej zgody! Lista nie jest pełna, jeśli chcesz więcej daj lajka :D
    15 punktów
  44. [ncAuth] Reloaded Zaloguj sie: Login: Login Hasło: Hasło Poprzednia wersja skryptu posiadała wady, których nie wiedziałem jak naprawić. Postanowiłem na nowo zrobić skrypt, który zrewolucjonizuje sposób logowania. 1. Sposób logowania Wszystkie pluginy/skrypty/(cokowiek ma tu być) posiadają standardowy sposób logowania /login <hasło>. Mój nie ma czegoś takiego. Jest to logowanie przez czat. Spokojnie, nikt poza tobą nie widzi, co piszesz. 2. MasPass (Master Password) Ta funkcja została zaprezentowana jeszcze w poprzedniej wersji. MasPass to 32-znakowy ciąg w zakresie 0-9 A-F. Użycie jest wymagane, gdy chcesz włączyć/wyłączyć tryb bezpiecznego logowania, gdy jesteś na innym komputerze/sieci niż skąd się zarejestrowałeś/aś lub w przypadku odzyskania hasła. 3. Niska liczba komend Po co niby jest sterta różnych komend, skoro można to wszystko wsadzić do jednej? 4. Bezpieczeństwo Na każde hasło oraz MasPass przypada stukrotnie powtórzone szyfrowanie SHA256. Ja też nie wiem jak to dokładnie działa, ale mówią, że to jest bezpieczne. (Obrazek zawiera ostatnie 20 wyliczeń pewnego niecenzurowalnego słowa) 5. Kompatybilność z kontami Premium Konta Premium nie muszą wpisywać żadnych danych. (Wymaga instalacji pluginu AutoIn) 6. Zabawa/trolling/(tu wstaw dowolną czynność) Jako hasło może posłużyć cały zestaw znaków z formatu UTF-8, ANSI i innych, które obsługuje Minecraft. Na przykład to. Komendy, uprawnienia i inne pierdoły Dla wszystkich Dla osób z uprawnieniem ncauth.admin /ncauth - Całe menu /authadmin - Panel administracyjny Pobierz skrypt z GitHub [FULL] [LITE] ncAuth Compat (Addon dodający logowanie dla Premium) [KLIK] Galeria screenów [KLIK] Changelog + Dodano, - Usunięto, ! Naprawiono, ? Zmieniono 1.0 > 1.2 - Usunięto możliwość resetu konta przez uzytkownika - Vault nie jest wymagany ? Wzór szyfrowania hasła zmieniony ! Naprawiono błędy z zapisem danych + Blokada interakcji, jeśli użytkownik nie jest zalogowany 1.2 > 1.3 + Dodano panel administracyjny ! Poprzednie błędy naprawione + Dodano kompatybilność z kontami Premium + Dodano wersję LITE 1.3 > 1.4 + Blokada wyświetlania wiadomości, jeśli ona jest hasłem + Powiadomienie o przywróceniu sesji ! Naprawiono błędy anulujące poruszanie się podczas logowania
    14 punktów
  45. zakros222

    OX - skrypt na event ox

    [*] Informacje [*] Witam, mam na imię Piotrek. Jest to mój pierwszy skrypt więc proszę o ulgową opinię. Wcześniej pisałem pluginy. Ten skrypt jest zoptymalizowany i nie używa innych pluginów niż Skript. [*] Komendy [*] /ox tak/nie <pytanie> - Rozpoczyna event OX od pytania. /ox ustaw lobby - Ustawia lobby dla graczy. /ox ustaw zielone/biale/czerwone - Ustawia pole zielone/biale/czerwone /ox reset - Resetuje wszystkie zmienne. permissia do wszystkich komend to admin.ox [*] Instrukcja [*] 1. Wyciągnij z ekwipunku Blaze Rod 2. Zaznacz nim dwie pozycje 3. Ustaw pola komendą /ox ustaw zielone/biale/czerwone 4. Ustaw lobby komendą /ox ustaw lobby 5. Rozpocznij event komendą /ox tak/nie <pytanie> [*] To Do [*] 1. Dołączanie graczy do eventu za pomocą komendy /ox dolacz 2. Wyświetlanie się pytania na życiu Smoka 3. Automatyczny OX (konfiguracja i pytania w config.yml) 4. Przekształcić skrypt w plugin 5. To co proponujecie w komentarzach [*] Download [*] Kod [*] Kuniec [*]
    14 punktów
  46. BetterBoss Jest to mój pierwszy skrypt, który został publicznie pokazany. Zauważyłem, że wszystkim dobrze znany plugin na bossy(EpicBoss) jest po prostu porzucony. Napisałem zatem własną wersję tego pluginu w skrypcie. Dzięki temu skryptowi możesz dowolnie zmodyfikować drop, parametry moba(HP, DMG, imię, zbroje, enchanty), a nawet od czego ma dostawać obrażenia, a od czego ma nie dostawać obrażeń! Może np. nie dostawać żadnych obrażeń od upadku, albo od wilków, podczas, gdy gracz będzie mógł go bić normalnie! Jeżeli nie ma Ciebie często na serwerze, to ten skrypt jest również dla Ciebie, czemu? Posiada on wbudowaną możliwość spawnowania mobów przez graczy! Nie daje im permissions do spawnowania komendą, lecz możesz użyć do tego specjalnej tabliczki. Nie musisz się również martwić, że jakiś griefer zespawnuje 1000 takich mobów. W skrypcie jest zabezpieczenie, przeciwko takim graczom. Ale to nie wszystko. Skrypt pokazuje również aktualny stan zdrowia bossa, a kiedy boss kogoś zabije, pojawia się specjalna informacja o tym na chacie! Dawanie nagród odbywa się natomiast w posób w pełni zebezpieczający przed oszustami, którzy podbiegają, żeby zebrać tylko drop i uciec, nie przykładając nawet ręki do śmierci bossa. Od teraz nagroda jest bezpośrednio dawana do eq zabójcy! Oprócz tego skrypt posiada opcję eventu, a ustawiony przez nas boss może również losowo generować się na mapce! Jeżeli natomiast lubisz zmienić kody innych skrypterów, to od razu lepiej bierz ten skrypt. Dlaczego? Cały kod jest dokładnie opisany w przyjemnych dla oka okienkach. Dodatkowo skrypt posiada ogromną ilość opcji, a co za tym idzie banalną konfigurację. Według Ciebie 2 bossy to za mało? Ja też tak sądze! Docelowo na moim serwerze będzie ich conajmniej 9, a wam dałem tylko 2 jako przykład, pokazujący jak dodawać kolejne bossy. Wszystko opiera się o metodę kopiuj wklej! Tworzenie bossa dzięki temu skryptowi jest naprawdę łatwe, proste i przyjemne Komendy Wszystko jest w pluginie pod komendą: /bb help Permisje Better.Boss.spawn - odblokowuje komendę /bb spawn Better.Boss.check - pokazuje powiadomienie o aktualizacji Better.Boss.* - odblokowuje wszystkie opcje Changelog Beta 4.2.0.4 - poprawiono bład updatera Beta 4.2.0.3 - dodano opcje ventu - dodano opcję randomowego bossa - dodano auto-updatera Beta 2.3.0.2.2 - udoskonalono wcześniejsze opcje Beta v2.3.0.3 - NAPRAWIONO BARDZO POWAŻNE BŁĘDY ZALECANA JEST AKTUALIZACJA - dodano pierwsze opcje nakładanie zbroi(nie dokończyłem, bo musiał szybko wydać ten upate, błąd był poważny i wykrył go Hydorax - wielkie dzięki Beta v2.2.0.3 - dodano komendę /bbc pozwala ona na spawnowanie własnych bossów bezpośrednio z gry - dodano obsługę bossów graczy Beta v2.1.0.3 - naprawa działania spawnu bossa poprzez tabliczkę(dodano tookeny) - naprawa zmieniania zmiennej, odpowiadającej za życie moba - poprawa wyświetlenie ogłoszenia o zabiciu Słowem mini update, ale według mnie potrzebny, bo naprawiał parę waznych dla mnie opcji Beta v2.1.0.0 (2 wbudowane bossy, 1 komenda, 0 supermocy, naprawionych bugów i dodanych opcji) - rozpowszechnienie skryptu To Do List - utworzenie wersji premium (BetterBoss+) - dodanie więcej opcji - dodanie supermocy - naprawa bugów - optymalizacja - auto update - dodanie zewnętrznego configu, jeszcze łatwiejszego niż ten obecny - Czekam na dalsze propozycje i zgłaszanie bugów, które na 100% gdzieś są Instalacja Skryptu 1) Tworzysz nowy dokument w scripts o nazwie "BetterBoss.sk" 2) Wchodzisz w opcje Notepad++ w ten sposób: a) Encoding B) zaznaczasz: Encode in UTF-8 withour BOM to jest ta 2 opcja od góry Jest to bardzo ważne, byś tak zrobił, ponieważ w przeciwnym razie nie zobaczysz w pełnie piękna moich opisów 3) Polecam pobrać kolorową składnie do Notepad++: 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-28/ 4) Pobierasz skrypt z tego linku,a następnie wklejsz go do przygotowywanego wcześniej dokumentu. 5) Instalujesz dodatek WildSkript 6) Uruchamiasz skrypt
    14 punktów
  47. GOLDEN TREE Witam. Jest to mój pierwszy udostepniony skrypt. Na pomysł wpadłem podczas przeglądania forum, kiedy trafiłem na pewien obrazek O SKRYPCIE Skrypt dodaje (jak sama nazwa mówi) złote drzewo. Aby je zrobić potrzebujemy Sadzonki Złotego Drzewa oraz Złotej Mączki Kostnej. Crafting tych oto rzeczy znajdziemy pod komendą /zlotedrzewo. Kiedy juz je mamy, stawiamy sadzonkę na ziemi - tak jak sie sadzi normalne drzewo i klikamy na nie PPM trzymając Złotą Mączkę Kostną. Kiedy już to zrobimy przed nami ukaże się drzewo ze złota. Z jego liści dropi: ruda złota, sztabka złota, blok złota, złote jabłko oraz kox. Kilka bloków pod drzewem tworzy się mały pokój, na środku którego stoi skrzynka z losowymi, cennymi rzeczami oraz dwoma Zombie Strażnikami (uwaga! mają efekty jump boost i speed :)). WYMAGANIA - WildSkript - SkQuery KOMENDY - /zlotedrzewo (aliasy: goldentree, gt, zd) UPRAWNIENIA - goldentree.admin = komendy admina pod /zd (narazie 2 komendy) ZNANE BUGI - niekiedy, przy stawianiu sadzonki, skrypt nie wykrywa tego DO ZROBIENIA - strażnik drzewa / boss - więcej różnych drzew - wieksza trudność w zrobieniu drzewa - ogólna optymalizacja/skrócenie kodu AUTOR TheU5erPL KOD (v1.1) link CHANGELOG v1.1: - dodano Zombie strażnika (dwóch), - poprawa dodawania itemów do skrzynki - dodano system autoupdate - kilka innych rzeczy v1.0: - wydanie skryptu (kod: link)
    14 punktów
  48. «Co dodaje mój skrypt?» # Losowy skin dla gracza nonpremium przy każdym wejściu na serwer. # «Wymagania» # SkinsRestorer # # Skript (najnowsza wersja)* # # SkQuery # # WildSkipt (kiedyś przerobię na SkUtility) # # Wersja serwera 1.8 - 1.12* # *na tej wersji pisałem ten skrypt. «Komendy» /skin <nick> - zmiania skina dla VIPA z uprawnieniem bskins.vip /bskins reload - przeladowywanie listy skinow /bskins add <nickpremium> - dodawanie nicku premium do listy skinow /bskins gen - wyswietla losowy nick z pliku /bskins set <nicknonpremium> - ustawia graczowi losowego skina premium. /bskins reset <nicknonpremium> - przywraca steava graczowi" «Do zrobienia (todo)» # Dodać więcej nicków ze skinami do listy. # # Zrobić możliwość edycji wiadomości YML messages.yml # # AutoUpdate listy + osobny plik z listą własnych nicków # # WASZE PROPOZYCJE: # - Dodanie każdego gracza premium do listy skinów - @Sewer - Komenda do zmiany skina dla VIPA - @LordziaK # ZMIANY # # Naprawienie błędu z dodawaniem własnych nicków # »» KLIKNIJ ««
    14 punktów
  49. Cześć, chciałbym zaprezentować moją bibliotekę napisaną w języku PHP która umożliwia zintegrowanie aplikacji internetowej (strony WWW) z serwerem minecraft. Biblioteka obsługuje łączność Query (lub Ping) i Rcon, dostarcza takie rozwiązania jak: - sprawdzanie czy serwer jest online, - wyświetlenie listy graczy, - wyświetlenie ilości slotów, - wyświetlenie ilości graczy, - sprawdzenie czy gracz jest na serwerze, - innych danych dostępnych w Query, - wysyłanie komend i odbieranie odpowiedzi. - parser dla motd Ponadto opcjonalnie obsługuje protokół ssh który poszerza działanie biblioteki o takie rozwiązania jak: - uruchamianie serwera - zatrzymanie serwera - zabicie procesu serwera - sprawdzenie zużycia CPU - sprawdzenie zużycia przydzielonego RAMu - sprawdzenie przydzielonego RAMu do serwera - sprawdzenie całkowitej pamięci RAM - sprawdzenie zużycia całkowitej pamięci RAM - dokładną datę uruchomienia serwera - pobieranie logów serwera - parser dla server.properties Na aktualnie stan rzeczy projekt jest aktualizowany, stopniowo jest wdrażana dokumentacja, jednakże metody są tak trafnie nazwane że same się opisują i bez tego , również wdrażane jest TDD. Wymogiem do poprawnej implementacji biblioteki jest minimum znajomości programowania, composer, PHP w wersji 7.4 lub wyższej i opcjonalnie linux jeżeli chodzi o całe spektrum wyżej wymienionych rozwiązań do zarządzania serwerem. Projekt znajduje się na GitHub https://github.com/DeveloperLancer/MCPack Pozdrawiam Ja
    13 punktów
  50. herhor67

    [SkQuery] Fajerwerki!

    Siemka, w tym tutku pokażę jak obchodzić się z fajerwerkami xD Dobra, zaczynajmy! [dupka2][infosopher=red]Doc twerdzi:[/infosopher][/dupka2] ORAZ: [dupka2][infosopher=green]O co chodzi:[/infosopher][/dupka2] Pierwszy efekt wystrzeli fajerwerka, a drugi zdetonuje go od razu. W 1 przykładzie zamiast %number% wpisujemy 1, 2 lub 3 - jest to moc/wysokość lotu fajerwerka. W 2 przykładzie zamiast %players% wpisujemy dla kogo ma się to wyświetlić, np. dla attackera. W obu przykładach %fireworkeffects% ma formę [flickering |trailing |flickering trailing |trailing flickering ] <typ> firework colored <kolor>[fadeing <kolor&gt] Trailing to "zostawiający ślad" Flickering to "iskrzenie" Fadeing oznacza "przechodzący (w)" [dupka2][infosopher=pink]Przykłady:[/infosopher][/dupka2] on damage: launch creeper firework colored red at victim timed 1on damage: pop ball large firework colored red at victim to attacker[dupka2][infosopher=yellow]Typy fajerwerków:[/infosopher][/dupka2] ball, ball large, burst, creeper, star BALL: BALL LARGE: BURST: CREEPER: STAR: Obrazki z Minecraft Wiki [dupka2][infosopher=blue]No to przykładowy kod:[/infosopher][/dupka2] command /firework: trigger: set {_czas} to 1 or 2 or 3 launch creeper firework colored green at player timed {_czas} launch ball large firework colored red at player timed {_czas} launch star firework colored yellow at player timed {_czas}Albo: command /firework2 [<text>] [<number>] [<text>]: trigger: arg 1 is "green" or "red" or "blue" or "pink" or "white" or "black" or "gray" or "brown" or "orange" or "yellow": arg 2 is 1 or 2 or 3: arg 3 is "creeper" or "ball" or "ball large" or "star" or "burst": launch arg 3 firework colored arg 1 at player timed number-argMam nadzieję że komuś pomogłem (pewnie teraz masa skryptów z fajerwerkami będzie :/ ). Masz propozycje(ę)? Pisz pod tematem! Walnj lajga za trud! Dzięgi! Skrypty nie były testowane, w teorii powinny działać xD
    13 punktów
Ten Ranking jest ustawiony na Warszawa/GMT+01:00
×
×
  • Dodaj nową pozycję...