Skocz do zawartości

Ranking

Popularna zawartość

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

  1. Kormic

    Skrypt na /friends

    @wikt0r3k Skrypt wygląda całkiem obiecująco, ale znajdują się w nim cztery rzeczy, nad którymi należałoby się pochylić: Komenda /friend [nazwa] nie zadziała w przypadku graczy, którzy mają nazwę add, remove, list, accept i reject. Prawdopodobieństwo, że gracz mający jedną z wymienionych nazw dołączy do serwera jest bardzo małe, jednakże trzeba o tym pamiętać. Aby to nie sprawiało problemu, sugeruję usunięcie tego "skrótu" i używanie pełnej formy, to znaczy /friend add [nazwa]. W przypadku stosowania opóźnień w kodzie należy być ostrożnym i mieć na uwadze to czy skrypt poprawnie będzie działał po restarcie serwera. Od razu mogę powiedzieć, że restart serwera w trakcie oczekiwania na wygaśnięcie zaproszenia sprawi, że nigdy do niego nie dojdzie. W tej sytuacji można zastosować wymienione dalej rozwiązania: horologe.sk - pozwala na tworzenie opóźnień, które są zapisywane przy zatrzymaniu serwera i kontynuowane po jego ponownym starcie, cykliczne zadanie (np. every 1 second) odliczające 60 sekund i zapisujące opóźnienie w zmiennej przypisanej do gracza, można też po prostu unieważnić zaproszenie przy zatrzymaniu serwera (zdarzenie on server stop), co wydaje się najlepsze. Cooldown nie powinien być zmniejszany co sekundę gdy gracz jest na serwerze, ponieważ sprawia to, że nie będzie on aktualizowany gdy gracz jest offline. Powinno być to zastąpione obliczaniem różnicy czasu. Poradnik opisujący to można znaleźć tutaj. Nie wiem czy można ponownie dołączyć do serwera (tzw. rejoin) w czasie krótszym niż sekunda, ale jeśli tak, istnieje ryzyko, że wiele instancji tej samej pętli while może działać dla jednego gracza jeśli wykona on rejoin np. w 0.9 sekundy (18 ticków) i przy okazji "ominie" wykonanie pętli. Jeśli moje obawy tutaj są uzasadnione, należałoby na przykład generować losowe UUID przy każdym rozpoczęciu pętli i zapisywać w zmiennej globalnej, i przy każdym jej wykonaniu sprawdzać czy UUID się zmieniło - jeśli tak, należy wyjść z pętli, czyli zakończyć ją. Pozdrawiam.
    1 punkt
  2. Fendi

    Usuwanie flag

    import: org.bukkit.inventory.ItemFlag org.bukkit.inventory.meta.ItemMeta function hideAll(item: item) :: item: set {_meta} to {_item}.getItemMeta() {_meta}.setAttributeModifiers({_item}.getMaterial().getDefaultAttributeModifiers()) {_meta}.addItemFlags([ItemFlag.HIDE_ATTRIBUTES]) {_item}.setItemMeta({_meta}) return {_item} Albo troche reflecta set {_} to hideAll(diamond sword)
    1 punkt
  3. Kormic

    Usuwanie flag

    @RtSyS W artykule, który poleciłem, autor pokazał kilka różnych rozwiązań (a w zasadzie to obejść, autor określił je jako "workarounds") tego samego problemu. Wystarczy, że wykorzystasz taki, który najlepiej odpowiada Twoim potrzebom. Jeżeli nie masz pewności co będzie dla Ciebie najlepszym rozwiązaniem, proponuję wypróbować je wszystkie i zobaczyć jak działają. Podejrzewam, że pierwszy, opisany jako "Remove Vanilla Atttribute Modifiers", wystarczy jako rozwiązanie Twojego problemu. Pozdrawiam.
    1 punkt
Ten Ranking jest ustawiony na Warszawa/GMT+02:00
  • Najwięcej postów w tygodniu

    Quexsu
    Quexsu
    6 postów
    Grabsky
    Grabsky
    1 post
    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ę...