Skocz do zawartości

Ranking

Popularna zawartość

Treść z najwyższą reputacją w 06/25/24 w Odpowiedzi

  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
    6 postów
    Nicku
    Nicku
    1 post
    mervi_X
    mervi_X
    1 post
    Fendi
    Fendi
    1 post
    kinimod5021
    kinimod5021
    1 post
    bug128
    bug128
    1 post
  • Najwięcej tematów w tygodniu

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

    Nikt jeszcze nie otrzymał reputacji w tym tygodniu.

×
×
  • Dodaj nową pozycję...