Skocz do zawartości

Kormic

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

    11015
  • Rejestracja

  • Ostatnia wizyta

  • Wygrane w rankingu

    231

Treść opublikowana przez Kormic

  1. Cóż, najprościej byłoby rzecz jasna ustawiać wartość 'final damage' na wartość 'damage'. Problem w tym, że 'final damage' nie można modyfikować. W takim wypadku masz trzy wyjścia: 1. Stworzenie kodu (najlepiej funkcji) sprawdzającej zbroję atakowanego, następnie przeliczałaby wszystkie modyfikatory ochronne itp., a na końcu zwracała ilość obrażeń wymaganą do zadania, aby zbroja była "ignorowana". 2. Możesz użyć również takiego kodu: on damage of player: cancel event damage victim by damage set last damage cause to player # Nie jestem pewien co do tego czy istnieje last damage cause jako player, zobacz w dokumentacji Co prawda nie jest to najlepszy sposób, ale nie zaszkodzi spróbować. 3. Poszukać czegoś w Bukkit/Spigot API, być może znajdzie się jakiś przelicznik modyfikatorów obrażeń. Następnie mógłbyś to zastosować w kodzie przy pomocy dodatku skript-reflect.
  2. Widzę, że używasz zmiennej lokalnej przy attackerze, czy to jest zamierzone?
  3. Usuń dwukropek w drugiej linijce przy przechwytywaniu wartości.
  4. 1. To jest dział Skript, tego typu pytania powinieneś zamieścić w dziale Gry komputerowe > Wszystko o Minecrafcie. 2. Masz pewność, że to jest plugin, a nie skrypt? 3. Jeżeli jest to na pewno plugin, to czy masz pewność, że jest w ogóle upubliczniony, a nie przykładowo autorski?
  5. Musiałbyś najpewniej zrobić jakąś zmienną, która sprawdzałaby czy odliczanie się zakończyło. Przy jego rozpoczęciu zmienna byłaby ustawiana, a po zakończeniu byłaby czyszczona. Jeżeli odliczanie trwa (czyli jeżeli zmienna jest ustawiona), a gracz został uderzony, to w takim wypadku nie będzie go wypychało w ogóle.
  6. Jeżeli nie napisałeś do czego jest ci potrzebny taki skrypt, to nie mam czego ci doradzać. Opisiz jaki efekt chcesz osiągnąć, a będę w stanie cię nakierować.
  7. Dlatego, że przy każdym uderzeniu tworzysz nowe odliczanie i popychanie w dół nakłada się w wypychaniem w górę.
  8. Co próbujesz zrobić z tym kodem?
  9. Nie rozumiem dlaczego ludzie używają formy 'typ-arg numer_argumentu'. Wystarczy odnosić się do danego argumentu poprzez 'arg numer_argumentu'. Tak też zrobiłbym w twoim przypadku. 3. błąd nawiązuje do tego, że w event'cie 'on damage' użyłeś 'arg 1'.
  10. No okej. Nie podałeś dokładnie w czym leży problem, więc nikt ci tego nie naprawi, a skrypt jak nie działa, tak dalej nie będzie działał.
  11. Kormic

    Mingry Skrypt

    W takim razie słabo szukasz. Wystarczyło wyszukać "skywars plugin". https://dev.bukkit.org/projects/skywars
  12. Niepotrzebnie sprawdzasz wielokrotnie czy arg 1 jest ustawiony. Wystarczyłoby to raz sprawdzić, a nawet właściwie niewymagane jest sprawdzanie tego. Możesz sprawdzić czy argument nr 1 nie jest ustawiony, bądź posiada jakąś wartość. if arg 1 is not set: # Kod nr 1 if arg 1 is "1": # Kod nr 2 else if arg 1 is "2": # Kod nr 3 # I tak dalej... Musisz zmienić typ argumentu 1 na 'integer' w pierwszej linijce komendy (zamieniasz 'text' na 'integer') i wtedy porównywać arg 1 do liczby. Przed porównywaniem do liczb musisz sprawdzić czy arg 1 jest większy bądź równy 6, za pomocą warunku: if arg 1 is greater than or equal to 6: send "Zbyt duża wartość!" stop
  13. Proszę. W linijce nr 2 ustawiasz nazwę świata, w którym gracze mają mieć stały pasek głodu. on hunger meter change: event-world is "world" cancel event
  14. Kormic

    zamkniete

    W takim razie ustaw {_tymcz} na (loop-index parsed as integer) + 1 i użyj tej zmiennej tak jak wcześniej to robiłeś.
  15. Kormic

    Zbugowane bloki

    Należy pamiętać o tym, że spadający blok to entity, nie blok. Możliwe również, że masz jakieś lagi na serwerze albo uchwyciłeś blok w dziwnym momencie.
  16. Proszę. Wymagany Skript 2.3+. on command: full command is "g baza" loop 5 times: send action bar "&6Teleportacja za &e%6 - loop-number% &6sekund!" to player wait 1 second send "&aTeleportacja przebiegła pomyślnie!" to player
  17. Po prostu sprawdź w evencie 'on damage of player' czy zmienna {ochrona::czas::%attacker%} jest ustawiona. Jeżeli tak, to anulujesz event.
  18. Ile trwa te odliczanie?
  19. Przepisywanie innych jest jedynie dobre gdy przepisujesz kod skryptera, który wie co robi. Szczerze ciężko zapisać kilka porad, mógłbym jedynie napisać czego NIE należy robić w kodzie. Tutaj fragment naszej forumowej wiki dot. Skripta: https://wiki.skript.pl/Kategoria:Skript Tutaj natomiast znajdziesz w miarę pomocne poradniki na Bukkit'cie (masz spis treści po prawej stronie poradnika): https://dev.bukkit.org/projects/skript/pages/custom-commands
  20. Kormic

    zamkniete

    Niech zgadnę. Operujesz na jakiejś starej wersji Skripta, mam rację?
  21. Kormic

    zamkniete

    Zauważ, że używasz loop-index od "Obrazenia:", a powinieneś użyć {_lore::%{_tymcz} + 1%}.
  22. Pokaż cały skrypt.
  23. No to chyba problem zażegnany. Skoro masz numeryczne ID i Skript pozwala ci na użycie go, nie ma problemu. Pamiętaj tylko, że na nowszych wersjach numeryczne ID jest już porzucone i niewspierane.
  24. Ten przedmiot jest z pixelmonów, tak? Najlepiej byłoby ustawiać go w jakiś sposób do zmiennej, a następnie w tej zmiennej go nazywać. Mimo wszystko, działanie na przedmiotach z modów w Skript'cie jest dosyć uciążliwe, gdyż w pluginie nie ma przystosowanych do nich aliasów. Testowo możesz użyć tego kodu: set {_i} to pixelmon:green_rug set {_i}'s name to "Test" give player {_i} Szczerze wątpię, aby zadziałał, ale spróbować nie zaszkodzi. Owszem, można ustawić nazwę narzędzia gracza, ale przy dawaniu graczowi tego itemu niekoniecznie znajdzie się on w łapce gracza. Jeżeli wiesz, w którym slocie znajdzie się ta kasa, proszę bardzo. set name of slot 45 of player's current inventory to "Test"
  25. Użyj wyrażenia 'player's tool'.
×
×
  • Dodaj nową pozycję...