-
Ilość zawartości
11012 -
Rejestracja
-
Ostatnia wizyta
-
Wygrane w rankingu
230
Treść opublikowana przez Kormic
-
Proszę pokazać plik plugin.yml. Zalecam również przejrzeć artykuł opisujący w jaki sposób należy go wypełnić. Pozdrawiam.
-
Ten temat został przeniesiony do kosza!
-
Ten temat został przeniesiony.
-
Ten temat został przeniesiony.
-
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.
-
Proszę wkleić ponownie kod, ponieważ strona już wygasła. Zalecam skorzystać z serwisu code.skript.pl. Pozdrawiam.
-
Problem został rozwiązany.
-
jak dodać monety czasu do scoreboard
Kormic odpowiedział(a) na Piterowsky pytanie w Pytania i problemy
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. -
Ten temat został przeniesiony.
-
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.
-
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.
-
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.
-
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.
-
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.
-
jak dodać monety czasu do scoreboard
Kormic odpowiedział(a) na Piterowsky pytanie w Pytania i problemy
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. -
jak dodać monety czasu do scoreboard
Kormic odpowiedział(a) na Piterowsky pytanie w Pytania i problemy
Ten temat został przeniesiony. -
Czy skrypt ma przenieść w miejsce wylądowania trójzębu, czy też ma sprawić, że gracz za nim podąży w locie?
-
Problem został rozwiązany.
-
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.
-
Jak zmienić wiadomość z world guard że nie mam permisji do wyrzucania itemów
Kormic odpowiedział(a) na Naysoo pytanie w Pytania i problemy
Ten temat został przeniesiony. -
Problem został rozwiązany.
-
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.
-
Należy określić adresata wiadomości tuż po samej wiadomości. W tym przypadku wystarczy wykorzystać wyrażenie 'all players'. Na przyszłość zalecam korzystać z dokumentacji. Jest to obowiązkowe narzędzie każdego skryptera ("skriptera"). Co do drugiego zdania - zgadzam się. Tworzenie mało skomplikowanych mechanizmów gdzie pisanie pluginu jest nieefektywne, jest specjalnością Skripta. Jeśli chodzi o pierwsze zdanie, wysyłanie 100 razy wiadomości do każdego gracza jest poprawne, ale mało wydajne. Proszę zauważyć, że dla każdego gracza musi Pan (chyba Pan) wykonać pętlę 100 razy, a więc złożoność obliczeniowa takiej operacji czyszczenia czatu wynosi 100n, gdzie n to liczba graczy obecnych na serwerze. Przykładowo, powyższe rozwiązanie dla 50 graczy będzie tworzyło pętlę wykonującą się 5000 razy, a to już jest dość duża liczba. Jak najlepiej podejść do tego problemu? Radzę stworzyć sobie ciąg znaków (string) składający się z 99 przejść do nowej linii, a następnie zapisać sobie go w jakiejś zmiennej globalnej i wysyłać jedynie tę zmienną do wszystkich graczy. Pokażę przykład poniżej jak można to zrobić. # [...] set {_clearChatText} to "" loop 99 times: set {_clearChatText} to "%{_clearChatText}%%nl%" set {clearChat::emptyLines} to {_clearChatText} # [...] Rzecz jasna, powyższy kod wystarczy wywołać jeden raz, aby móc używać tego napisu służącego do czyszczenia czatu kiedy tylko potrzebujemy. Nie ma potrzeby, a właściwie to nie powinien Pan wywoływać go przy każdym czyszczeniu czatu, gdyż jest to całkowicie zbędne. Następnie, można się odwołać do tej zmiennej. send {clearChat::emptyLines} to all players Pozdrawiam.
-
Proszę uprzejmie. Skrypt nie był testowany. Teraz omówię zwięźle sposób działania poniższego kodu. Jeśli gracz posiada kilof z zaklęciem jedwabnego dotyku (ang. silk touch), nic się nie dzieje. W innym przypadku obliczana jest szansa na podstawie bazowej szansy (opcja 'baseChance' na samej górze skryptu) i stosunku poziomu zaklęcia szczęścia (ang. fortune) do maksymalnego poziomu zaklęcia szczęścia możliwego do uzyskania na serwerze. Wzór na bonus do szansy dla przypadku ogólnego można opisać jak poniżej: bonusowa szansa = (100 - bazowa szansa) * poziom zaklęcia szczęścia / maksymalny poziom zaklęcia szczęścia Na górze skryptu dodałem możliwość zmiany podstawowej szansy otrzymania przedmiotów z rudy i maksymalnego poziomu zaklęcia szczęścia. Jeśli będzie potrzeba, można zwiększyć maksymalny poziom szczęścia na przykład o 1, aby nigdy nie było możliwości 100% szans na drop. options: baseChance: 60 maxFortuneLevel: 3 on mine: event-block is any ore if level of silk touch of player's tool > 0: stop set {_fortuneLevel} to level of fortune of player's tool set {_fortuneLevel} to 0 if {_fortuneLevel} is not set set {_bonusChance} to (100 - {@baseChance}) * {_fortuneLevel} / {@maxFortuneLevel} chance of (100 - {@baseChance} - {_bonusChance})%: cancel item drops send "&6Nie udało się wydropić bloku!" to player Pozdrawiam.
-
Proszę bardzo. Skrypt nie był testowany. Gdyby skrypt nie działał jak należy, proszę zamienić 'type of victim' na 'victim'. Dodam od siebie, że możliwe jest wykorzystanie API pluginu Lib's Disguises, co pozwoli na uniknięcie wykonywania komendy przez gracza. on damage: attacker is a player victim is a living entity victim is not a player make attacker execute command "dis %type of victim%" Pozdrawiam.
