Skocz do zawartości

Kormic

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

    11012
  • Rejestracja

  • Ostatnia wizyta

  • Wygrane w rankingu

    230

Treść opublikowana przez Kormic

  1. Kormic

    Szalik kibica

    Ten temat został przeniesiony do kosza!
  2. Ten temat został przeniesiony.
  3. Kormic

    Atak potworów

    Jest to jeden z możliwych wariantów, ponieważ wszystko to, co znajduje się w nawiasach kwadratowych, jest opcjonalne. Najkrótsza wersją będzie 'register team "nazwa"'. Pozdrawiam.
  4. Jeżeli te GUI jest niezmienne w czasie, faktycznie można się pokusić o stworzenie go i zapisanie do zmiennej. Należy jednak pamiętać, że Skript nie jest w stanie zapisać GUI i przechowywać go między kolejnymi uruchomieniami serwera. Można zapisać je w zmiennej, która będzie przechowywana do momentu restartu serwera (wymaga to modyfikacji w pliku konfiguracyjnym Skripta) lub w metadata gracza. Prawdę mówiąc, powyższe rozwiązanie ma sens tylko wtedy gdy GUI jest złożone i jego zawartość nie zależy od gracza, który je otwiera. Pozdrawiam.
  5. Chciałbym dodać, że nie ma powodu, aby korzystać ze Skripta 2.1.2 na wersji 1.8.8. Zdaje się, że któraś z wersji 2.2-dev powinna również zadziałać. Można jeszcze lepiej zrobić i zainstalować fork Skripta od Matocolotoe (znany również jako Skript-1.8), który wprowadza Skripta 2.6.4 działającego na wersji 1.8.x. Wtedy też unikamy potrzeby korzystania z formatowania GUI z SkQuery i TuSKe, które sprawiają, że duplikowanie przedmiotów staje się banalnie proste. Warto przejść na formatowanie GUI ze Skripta. Pozdrawiam.
  6. Zlecenie zostało wykonane.
  7. Ten temat został przeniesiony do kosza!
  8. Kormic

    Atak potworów

    SkBee nie wspiera rejestrowania nowych drużyn, ale można sobie z tym poradzić poprzez stworzenie własnego efektu w skript-reflect. import: org.bukkit.Bukkit effect register [a] [new] team [named] %text%: trigger: set {_sm} to Bukkit.getScoreboardManager() set {_msb} to {_sm}.getMainScoreboard() set {_team} to {_msb}.registerNewTeam(expr-1) Warto byłoby w wyzwalaczu ('trigger') dodać jeszcze sprawdzanie czy podana nazwa nie jest pusta (mowa o "") i nie zawiera spacji, ponieważ nazwa drużyny nie może się składać z więcej niż jednego słowa. Pozdrawiam.
  9. Kormic

    Atak potworów

    Tak jak mówiłem, można wykorzystać w tym celu Bukkit API, a dokładniej to interfejs Scoreboard. Aby pobrać jego implementację, korzystamy z metody Bukkit.getScoreboardManager(), a dalej możemy wykorzystać główny scoreboard serwera lub stworzyć własny. Ja pokażę przykład wykorzystujący pierwszy sposób. Pobieranie głównego scoreboarda i tworzenie nowej drużyny z wyłączonym atakowaniem innych członków drużyny: set {_sm} to Bukkit.getScoreboardManager() set {_msb} to {_sm}.getMainScoreboard() set {_team} to {_msb}.registerNewTeam("exampleteam") {_team}.setAllowFriendlyFire(false) Przywołanie dwóch domyślnie agresywnych względem siebie mobów i dodanie ich do drużyny: set {_sm} to Bukkit.getScoreboardManager() set {_msb} to {_sm}.getMainScoreboard() set {_team} to {_msb}.getTeam("exampleteam") spawn ravager at player: {_team}.addEntity(event-entity) spawn iron golem at player: {_team}.addEntity(event-entity) Oczywiście, do drużyn można dodawać dowolne byty, w tym graczy. Należy jednak pamiętać, że nie wyłącza to obrażeń od sojuszników w obrębie drużyny, a zapobiega jedynie ich atakowaniu siebie wzajemnie. Na przykład po użyciu nieco zmodyfikowanego kodu pokazanego powyżej, szkielety mogą trafiać w siebie strzałami jeżeli będą one wystrzeliwane niecelnie, ale nie będą się z tego powodu skupiały na innych szkieletach. Pozdrawiam.
  10. Ten temat został przeniesiony.
  11. Kormic

    Szukam skryptu

    Ten temat został przeniesiony.
  12. Kormic

    -Skrypt MobManager-

    Chodzi o to, że skrypt nie powstrzymuje wielu graczy przed modyfikowaniem moba jednocześnie. W konsekwencji może dojść do frustrujących sytuacji gdzie na przykład ktoś się namęczy, a jego zmiany zostaną nadpisane dwie sekundy później przez innego gracza, który modyfikował w tym samym momencie. Pozdrawiam.
  13. Kormic

    Atak potworów

    Jeżeli zdarzenie 'on target' nie obsługuje tego przypadku, można spróbować dodać moby do tej samej drużyny w Minecraft'cie. Przykład poniżej. /team add noAttack /team modify noAttack friendlyFire false /team join noAttack @e[type=<skeleton>] Drużynę moba można ustawiać również przy jego spawnowaniu. Można tutaj również wykorzystać Bukkit API wraz ze skript-reflect. Finalnie, można spróbować wyczyścić fragment NBT wskazujący na właściciela pocisku przy pomocy SkBee (zakładam, że stąd te pytanie). Pozdrawiam.
  14. Kormic

    Atak potworów

    Tak. Można w tym celu wykorzystać zdarzenie 'on target', które można anulować. Wystarczy przed jego anulowaniem sprawdzić czy 'event-entity' jak i 'target' są golemem lub dewastatorem (ravager). Pozdrawiam.
  15. Istnieją, ale są ubogie w wiedzę. Przykładem jest strona wiki.skript.pl należąca do tego forum. Warto również przejrzeć dział Skript > Skrypty > Poradniki na forum. Większość sensownych (to znaczy wartych uwagi) poradników do Skripta jest napisana w języku angielskim, ale użycie tłumacza w dzisiejszych czasach to nie problem. Pozdrawiam.
  16. Problem został rozwiązany.
  17. Ten temat został przeniesiony.
  18. Kormic

    skrypt na /lobby

    Ten temat został przeniesiony.
  19. Ten temat został przeniesiony.
  20. Zdaje się, że jedynym rozwiązaniem jest skorzystanie z dodatku Hippo, który pozwoli na stworzenie własnej klasy rozszerzającej klasę InteractionCommand. Oczywiście wymagana jest tutaj znajomość Javy. Wiem, że powstaje właśnie jakiś dodatek do Skripta dodający składnię związaną z Essentials, jednakże raczej nie ma co na niego liczyć. Jeżeli nie da Pan samemu rady tego napisać, może Pan na dole mojego postu (w mojej sygnaturze) wejść w link i zlecić mi napisanie tego skryptu. Pozdrawiam.
  21. Kormic

    Sklep u npc

    Citizens wspiera tworzenie podstawowych sklepów w GUI. https://wiki.citizensnpcs.co/Shops Można ewentualnie poszukać innych wtyczek wspierających NPC z Citizens, które dodają sklepy. Przykładowym pluginem jest dtlTraders. Innym rozwiązaniem byłoby napisanie jakiegoś skryptu w Skript'cie lub Denizenie. Pozdrawiam.
  22. Problem został rozwiązany.
  23. Wyrażenie 'all players...' zwraca listę graczy, a więc możemy sprawdzić jej rozmiar (a więc ilu jest graczy w danym świecie) za pomocą tego wyrażenia i łatwo określić czy możemy kontynuować wykonywanie kodu. size of (all players in "Anni") <= 1 # [...] Zalecam nie zagnieżdżać warunków z wcięciami, ponieważ zmniejsza to czytelność kodu. Proszę sobie porównać dwa poniższe kody. if arg 1 is 1: if arg 2 is 2: if arg 3 is 3: if arg 4 is 4: # Lepsze podejście: arg 1 is 1 arg 2 is 2 arg 3 is 3 arg 4 is 4 Widać różnicę, prawda? Na koniec dodam, że można połączyć pierwszy warunek z samym zdarzeniem. on death of player: # [...] Pozdrawiam.
  24. Kormic

    Particle

    Zamiast wypisywać wszystkie możliwe scenariusze (w tym kodzie i tak nie jest obsługiwane spoglądanie w kierunku wschodnim i zachodnim oraz każdym innym kierunku niepokrywającym się z kierunkami świata), lepiej jest wykorzystać wektory lub współrzędne zależne. # Wektory: set {_l} to player's head location set {_v} to vector in player's direction play explosion at ({_l} ~ (2 * {_v})) # Współrzędne zależne: play explosion at location 2 meters in front of player's head location A więc rozwiązanie może wyglądać tak: on rightclick: if name of player's tool is "&9&lBB": play explosion at location 2 meters in front of player's head location Jeśli efekt wizualny ma się pojawiać przed graczem zawsze tak jakby patrzył prosto przed siebie, a nie dowolnie wysoko lub nisko, można wykorzystać pierwsze rozwiązanie z wektorami i zamienić 'player's direction' na 'player's horizontal direction'. Pozdrawiam.
×
×
  • Dodaj nową pozycję...