Skocz do zawartości

Ranking

Popularna zawartość

Treść z najwyższą reputacją w 06/25/24 uwzględniając wszystkie działy

  1. nnisu

    Wykrycie tradu z villagerem

    Zdarzenie "on player trade" działa bez problemu. Szczerze mówiąc nie wiem dlaczego nie znalazłem tego samemu, przeszukiwałem dokumentacje Skripta i musiało mi to umknąć. Dziękuję za pomoc. Pozdrawiam serdecznie
    1 punkt
  2. Kormic

    Wykrycie tradu z villagerem

    Skript oferuje nasłuchiwanie do zdarzenia 'player trade'. Tak jak dokumentacja mówi, wymagany jest silnik Paper, wersja nie niższa niż 1.16.5. Nie wiem jednak ile informacji udostępnia te zdarzenie w Skript, możliwe, że pozwala ono na pobranie jedynie 'event-player' i 'event-entity'. W tej sytuacji może Pan chcieć nasłuchiwać do zdarzenia PlayerTradeEvent przy pomocy dodatku skript-reflect, które posiada wiele metod, co jest szczególnie widoczne w klasie PlayerPurchaseEvent (klasa PlayerTradeEvent dziedziczy po klasie PlayerPurchaseEvent). Pozdrawiam.
    1 punkt
  3. Kormic

    cooldown

    Jak najbardziej. Podpowiem Panu jak można to zrobić za pomocą pseudokodu, aby nie podawać odpowiedzi na srebrnej tacy. # [...] jeśli {zmienna::cooldown::%gracz%} jest ustawiona: jeśli różnica między {zmienna::cooldown::%gracz%} a teraz jest mniejsza niż <cooldown>: wyślij wiadomość "&cOdczekaj chwilę." do gracza stop ustaw wartość {zmienna::cooldown::%gracz%} na teraz # [...] (dalszy kod) A teraz opiszę po kolei co powyższy fragment kodu robi. Przy okazji będę dodawał załączniki, aby Pan mógł na bieżąco przechodzić do dokumentacji i widzieć o czym tak właściwie mówię. 'jeśli {zmienna::cooldown::%gracz%} jest ustawiona' - na początek sprawdzamy czy zmienna z ostatnim czasem wykonania danej czynności przez gracza posiada jakąkolwiek wartość. Dzięki temu obsługujemy przypadek gdy gracz po raz pierwszy na serwerze wykonuje ów czynność, ponieważ warunek nie jest spełniony, a więc nie ma sensu sprawdzać czy cooldown tego gracza się zakończył. 'jeśli różnica między {zmienna::cooldown::%gracz%} a teraz jest mniejsza niż <cooldown>' - myślę, że linijka jest na tyle szczegółowo opisana, że nie muszę tu zbyt wiele Panu tłumaczyć. Jest to po prostu sprawdzanie różnicy czasu między dwiema datami (czasem zapisanym w zmiennej i czasem obecnym). W miejsce cooldownu może Pan wstawić wartość (zmienna, literał) typu 'timespan', na przykład '10 seconds'. Te przykładowe 10 sekund to jest czas cooldownu. Pomijając linijkę z wysyłaniem wiadomości, gdyż jej sposób działania jest trywialny, dochodzimy do instrukcji 'stop'. Taka też instrukcja istnieje w Skript, więc nie musi Pan szukać jej odpowiednika. Jej rolą jest zakończenie wykonywania skryptu (ściślej mówiąc, triggera (wyzwalacza), w którym ta instrukcja się znajduje), aby kod następujący po niej nie został wykonany. 'ustaw wartość {zmienna::cooldown::%gracz%} na teraz' - ta linijka i cały kod następujący po niej (pod nią) wykonają się jedynie gdy albo gracz nigdy nie wykonał danej czynności, albo też cooldown dobiegł końca. W tej linijce zapisujemy do zmiennej gracza czas obecny, aby można było przy kolejnych wykonaniach czynności przez gracza weryfikować czy cooldown jest aktywny, czy też nie. Gdyby miał Pan jakieś pytania, śmiało. Pozdrawiam.
    1 punkt
Ten Ranking jest ustawiony na Warszawa/GMT+02:00
  • Najwięcej postów w tygodniu

    Quexsu
    Quexsu
    5 postów
    NikoSkript
    NikoSkript
    1 post
    Notro
    Notro
    1 post
    Grabsky
    Grabsky
    1 post
    Nicku
    Nicku
    1 post
    mervi_X
    mervi_X
    1 post
  • Najwięcej tematów w tygodniu

    Quexsu
    Quexsu
    1 temat
    mervi_X
    mervi_X
    1 temat
  • Aktywni użytkownicy

    Nikt jeszcze nie otrzymał reputacji w tym tygodniu.

×
×
  • Dodaj nową pozycję...