Skocz do zawartości

Kormic

Zasłużony
  • Ilość zawartości

    11015
  • Rejestracja

  • Ostatnia wizyta

  • Wygrane w rankingu

    231

Treść opublikowana przez Kormic

  1. Kormic

    Jshop.tech

    Ten temat został przeniesiony.
  2. Kormic

    TNT Bez Griefu

    Przeniosłem ten temat, ponieważ utworzył go Pan w dziale "Skript > Pytania i problemy", a jest to zlecenie. Proszę bardzo. Skrypt był testowany. Na górze skryptu może Pan modyfikować zasięg odrzutu TNT (to znaczy w jakim promieniu od TNT należy stać, aby zostać odrzuconym) i siłę (wzmocnienie) odrzutu. options: maxExplosionRange: 3 knockbackAmplification: 3 function constantToVector(n: number) :: vector: return vector({_n}, {_n}, {_n}) command /bankatnt: executable by: players permission: deskcraft.perm.tnt permission message: &6Nie posiadasz wystarczających uprawnień do wykonania tej komendy. trigger: spawn tnt at player: set explosive yield of event-entity to 0 set metadata tag "harmlessNoGriefTNT" of event-entity to true on explosion: event is not cancelled metadata tag "harmlessNoGriefTNT" of event-entity is true loop all living entities in radius {@maxExplosionRange} around event-entity: set {_dirV} to vector from event-entity to loop-entity set {_maxV} to constantToVector({@knockbackAmplification}) * (normalized {_dirV}) push loop-entity ({_maxV} - {_dirV}) Opcjonalnie, może Pan sprawdzić czy w przypadku zamiany przedostatniej linijki ('set {_maxV} to...') na poniższą skrypt nadal będzie działał i da mi znać. Jeśli zadziała, może Pan usunąć całą funkcję 'constantToVector' ze skryptu, ponieważ będzie ona już niepotrzebna. Z góry dziękuję za chęci. set {_maxV} to {@knockbackAmplification} * (normalized {_dirV}) Pozdrawiam.
  3. Kormic

    Trident

    W takim razie jest to kwestia dostosowania wektora popchnięcia gracza. Czy trójząb znika? Jeśli nie, postaram się poprawić rzucanie tak, aby to miało więcej sensu, ale najpierw muszę wiedzieć czy sam trójząb nie trafia gracza (a właściwie to nie koliduje z nim).
  4. Kormic

    Ciekawy problem

    Proszę pokazać plik plugin.yml. Zalecam również przejrzeć artykuł opisujący w jaki sposób należy go wypełnić. Pozdrawiam.
  5. Kormic

    TNT

    Ten temat został przeniesiony do kosza!
  6. Ten temat został przeniesiony.
  7. Kormic

    TNT Bez Griefu

    Ten temat został przeniesiony.
  8. Szczerze mówiąc, moim pomysłem było stworzenie rejestru pytań, do którego miałaby dostęp moderacja i administracja. Równolegle, istniałby stworzony dla każdego gracza rejestr odpowiedzi (na przykład ostatnich trzech, gdyż zapis wszystkich zajmowałby dużo miejsca). W ten sposób, nawet po jakimś czasie, moderator/administrator mógłby odpowiedzieć na pytanie gracza, a sam gracz mógłby odczytać odpowiedź po dołączeniu na serwer. Gracze mieliby również możliwość wglądu do rejestru pytań, ale z jedną różnicą - wyświetlałyby im się tylko ich pytania, co jest myślę, że dość oczywistym ograniczeniem. Rozumiem jednak, że wybiegłem wyobraźnią zbytnio do przodu i Pani wystarczy taka wersja skryptu jaką zaprezentował Pan wyżej. Zadziałać, zadziała... Problem leży w tym, że zadziała, ale niezgodnie z planami. Proszę zauważyć, że warunek w pętli spełni się n razy (gdzie n to ilość osób z permisją "odp.perm" obecnych na serwerze), a w jej środku jest obecna również instrukcja wysyłania wiadomości do gracza zadającego pytanie. Niedopatrzeniem jest również wyświetlanie ilości punktów gracza, który wpisał komendę /punkty, a nie gracza podanego jako argument komendy. Niemniej jednak rozumiem, każdemu może się zdarzyć. Pozwolę sobie poprawić Pana kod i nanieść na niego kilka w mojej ocenie sensownych poprawek. Dorzucam jeszcze fragment dotyczący dyżuru. Skrypt wyszedł długi głównie przez konieczność formatowania czasu, ale "klocki" do złożenia skryptu już częściowo posiadałem, więc to nie problem. Zaznaczam, że skrypt nie był testowany. Mogą pojawić się problemy z zakończeniem dyżuru gdy serwer się wysypie - nie wiem czy kod przy wyjściu gracza serwera w takiej sytuacji zostanie wykonany przed wyłączeniem Skripta. W razie czego taki kod można łatwo dodać. Niewielką wadą jest również to, że czas dyżuru jest aktualizowany dopiero po zakończeniu go, a więc informacje pod komendą /czas nie są aktualne. Jeżeli będzie taka potrzeba, to również można poprawić. Pozdrawiam.
  9. Kormic

    Ciekawy problem

    Proszę wkleić ponownie kod, ponieważ strona już wygasła. Zalecam skorzystać z serwisu code.skript.pl. Pozdrawiam.
  10. Problem został rozwiązany.
  11. Co ciekawe, nie znalazłem na wiki PlaceholderAPI informacji o tym placeholderze. Rozwinięcia na stronie eCloud również próżno szukać. Musi on więc być zarejestrowany bezpośrednio w kodzie pluginu, a więc samo użycie go powinno wystarczyć. Jeżeli i to nie działa, w takiej sytuacji najprawdopodobniej nie jest Pan w stanie jakkolwiek uzyskać informację o ilości pieniędzy jaką gracz posiada. Gdyby autor pluginu nie ukrył repozytorium z kodem źródłowym pluginu, niewykluczone, że dałoby się jakoś rozwiązać ten problem. Oczywiście może Pan zdekompilować plugin i znaleźć odpowiednie informacje w kodzie źródłowym, ale warto sobie zadać pytanie czy jest jakikolwiek sens w takim działaniu. Ja na Pana miejscu poszukałbym innego pluginu z tymi samymi funkcjami. Dla pewności - niech Pan pokaże jak Pan używa tego placeholdera. Pozdrawiam.
  12. Ten temat został przeniesiony.
  13. Skrypt strukturalnie nie wydaje się być trudny w napisaniu, ale nasuwa się kilka pytań w związku z Pani zleceniem. Co jeśli kilku graczy wykona komendę /pomoc w krótkich odstępach czasu? Jak w takiej sytuacji ma działać odpowiadanie na poszczególne pytanie? Czy dobrze zrozumiałem? Komenda /dyzur ma naliczać czas od wpisania jej do wyjścia z serwera, tak? Czy pod komendą /czas mają się pokazywać również zdobyte punkty za odpowiadanie? Ile punktów członek administracji ma dostawać za każdą odpowiedź? Co prawda jest to kwestia prostej konfiguracji, ale wolę dopytać. Pozdrawiam.
  14. Kormic

    Trident

    No dobrze. Rozumiem, że Pan kod wyglądał jak poniżej i serwer wyrzucał Pana za zbyt szybkie poruszanie się, tak? on shoot: shooter is a player projectile is a trident wait 1 tick push shooter (velocity of projectile) Opóźnienie warto jakieś dodać (1 tick to pewnie zbyt mało), aby gracz rzucający nie został trafiony przez rzucony trójząb. Można ewentualnie rozważyć dodanie modyfikację metadata trójzębu i nasłuchiwanie do zdarzenia 'on projectile collide' celem anulowania go gdy rzucający będzie trafiony przez ów trójząb. on shoot: shooter is a player projectile is a trident push shooter (velocity of projectile) on projectile collide: event-entity is shooter of projectile cancel event Co prawda w dokumentacji Papera te zdarzenie zostało oznaczone jako "deprecated" (a więc nasłuchiwanie do niego jest niezalecane) i Skript je wykorzystuje, jednakże skrypt powinien zadziałać. Jeżeli nie - będziemy kombinowali z dodatkiem skript-reflect. Pozdrawiam.
  15. W takim razie proszę uprzejmie. Skrypt nie był testowany. Do poprawnego działania wymagany jest dodatek skript-reflect. import: org.bukkit.entity.Animals on damage: attacker is a player attacker has permission "bez.biciaszukajacy" victim is an instance of Animals set {animalHits::%uuid of attacker%} to 0 if {animalHits::%uuid of attacker%} is not set if {animalHits::%uuid of attacker%} >= 5: kill attacker clear {animalHits::%uuid of attacker%} stop add 1 to {animalHits::%uuid of attacker%} Pozdrawiam.
  16. Czy to mogą być dowolne zwierzęta, czy też muszą być unikalne (różne od siebie)? To znaczy, czy skrypt może zliczać uderzenia tego samego zwierzęcia? Pozdrawiam.
  17. Wypróbowywanie różnych składni bez zajrzenia do dokumentacji dokumentacji prawie nigdy nie doprowadzi Pana do poprawnej odpowiedzi. Nawet jeśli doprowadzi, zmarnuje Pan na to mnóstwo czasu, który można było poświęcić na ciekawsze czynności. Pokrótce mówiąc - nawet gdyby istniała taka składnia w dodatku SkBee jakiej Pan użył, jest ona pozbawiona sensu. Pan nie podaje informacji odnośnie tego który argument chce Pan modyfikować (ściślej mówiąc, dodać jego nowe dopełnienia). Odsyłam do artykułu z poradnika dotyczącego dopełnień tabulatorem w SkBee. Znajdzie go Pan tutaj. Pragnę również zauważyć, że zapętlanie wszystkich graczy i zapis ich w postaci tekstu jest zbędny. Wystarczy zapisać listę wszystkich graczy jako dopełnienie argumentu komendy, SkBee dopuszcza taką operację. Przykład poniżej. set tab completions for position 3 to all players Pozdrawiam.
  18. Na stronie pluginu, którą można znaleźć tutaj, znajduje się informacja o placeholderze zwracającym ilość punktów (a więc zapewne monet). Pozdrawiam.
  19. Ten temat został przeniesiony.
  20. Kormic

    Trident

    Czy skrypt ma przenieść w miejsce wylądowania trójzębu, czy też ma sprawić, że gracz za nim podąży w locie?
  21. Problem został rozwiązany.
  22. Kormic

    Problem z wait

    Dokumentacja jednoznacznie stwierdza, że do instrukcji 'wait' musi zostać podany typ 'timespan'. Z punktu widzenia Skripta oba przykładu poniżej są całkowicie czymś innym - de facto pierwszy fragment kodu jest niepoprawnie napisany. set {_number} to 5 wait {_number} ticks # [...] wait 5 ticks Jak można rozwiązać powyższy problem? Z pomocą przychodzi wyrażenie 'parsed as', dzięki któremu możemy połączyć liczbę i jednostkę czasu w jeden ciąg znaków, który z kolei możemy przemianować na obiekt typu 'timespan'. Przykład poniżej. set {_number} to 5 set {_delayTimespan} to "%{_number}% ticks" parsed as timespan wait {_delayTimespan} Szczerze mówiąc, jestem zdumiony faktem, iż druga instrukcja zadziałała Panu - chociaż nie wiem jak rozumieć słowo "działało", bo nierzadko jest ono błędnie używane jako synonim "Skript nie wyświetlił błędów przy przeładowywaniu skryptu", a to są dwie całkiem różne rzeczy. Pozdrawiam.
  23. Problem został rozwiązany.
  24. No dobrze. W takim razie druga opcja 'maxFortuneLevel' jest zbędna. Proszę bardzo. options: baseChance: 60 on mine: event-block is any ore if level of silk touch of player's tool > 0: stop set {_fortunePercentages::*} to {@baseChance}, 65, 70 and 75 set {_fortuneLevel} to level of fortune of player's tool set {_fortuneLevel} to 0 if {_fortuneLevel} is not set set {_index} to min(3, {_fortuneLevel}) + 1 set {_chance} to {_fortunePercentages::%{_index}%} chance of (100 - {_chance})%: cancel item drops send "&6Nie udało się wydropić bloku!" to player Pozdrawiam.
×
×
  • Dodaj nową pozycję...