Skocz do zawartości

Kormic

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

    11014
  • Rejestracja

  • Ostatnia wizyta

  • Wygrane w rankingu

    231

Treść opublikowana przez Kormic

  1. Niestety Skript (a możliwe, że również Bukkit API) ma problemy z usuwaniem konkretnego przedmiotu z inventory. Z tego co widzę to ten papier jednak jest narzędziem gracza, więc możesz usunąć jedną zdrapkę poprzez operowanie na 'player's tool' w następujący sposób: set player's tool to (item amount of player's tool - 1) of player's tool
  2. Kormic

    pomoc z eventami

    Nie zrobiłeś tego tak, jak powiedziałem. Musisz zapętlić wszystkich graczy i użyć loop-player.
  3. Kormic

    pomoc z eventami

    O co chodzi?
  4. Kormic

    pomoc z eventami

    Cały czas nie, ale możesz to zrobić w periodicalu (np. every 5 seconds), w którym zapętlasz wszystkich graczy i operujesz na loop-playerze.
  5. Możesz najpierw sprawdzać czy event-block to tory, a później sprawdzać czy event-block to nie jest 'powered rail'.
  6. Możesz to rozwiązać na dwa sposoby. Albo na końcu każdego kodu od nagrody dajesz 'stop', albo każdy kolejny warunek będzie 'else if' tylko poza pierwszym.
  7. Źle napisałeś 'integer'.
  8. 'parsed as integer' jak już. Zawsze mimo wszystko lepiej parse'ować na 'number'.
  9. Dlatego nie działa, gdyż nie parse'ujesz wyciągniętego tekstu z lore na liczbę. Należy pamiętać, że co prawda to jest liczba, ale jednocześnie jest tekstem.
  10. Musisz ustawić wartość zmiennej globalnej do jakiejś zmiennej lokalnej, a następnie dodajesz do tej zmiennej lokalnej tyle czasu, ile wynosi cooldown. Następnie sprawdzasz różnicę między czasem w zmiennej lokalnej a czasem w zmiennej globalnej. Tym samym otrzymujesz ile czasu pozostało do odczekania.
  11. Nie sprawdzaj czym jest loop-item tylko sprawdź jego nazwę...
  12. Przeczytaj dokładnie koniec mojej pierwszej odpowiedzi.
  13. Możesz sprawdzić samą nazwę loop-item lub jeżeli ci to nie wystarcza, sprawdzić najpierw czy 'type of loop-item' to 'paper', a następnie sprawdzić 'name of loop-item'.
  14. Skrypt nie jest w żaden sposób zachwycający, jedyna jego zaleta to sekcja konfiguracyjna. Jego minusem jest to, że pozwala jedynie na przydzielenie pięciu przedmiotów, a powinien na nieograniczoną ilość. Mógłbyś to osiągnąć za pomocą listy YAML, przy czym należy pamiętać, aby ją po załadowaniu skryptu zapisać do listy zmiennych ze Skripta, gdyż ciągłe odczytywanie listy z pliku nie będzie lekką operacją (szczególnie gdy mówimy o dodatkach do YAMLa innych niż skript-yaml).
  15. Na co ten skrypt miałby się komukolwiek przydać?
  16. 'on place of sign' jest wywoływany przy postawieniu tabliczki, natomiast 'on sign change' aktywuje się wtedy, gdy skończymy ustawiać jej linijki, jej treść. W pierwszym przypadku nie przechwycisz linijek, gdyż nawet nie są ustawione, natomiast w drugim przypadku nie ma najmniejszego problemu.
  17. Czyli w twoim kodzie pierwszy warunek nie przechodzi i to jest przyczyną niedziałającego skryptu. Upewnij się, że jego nazwa nie jest umieszczona w 'display name' tylko w 'name'. Te pierwsze reprezentuje nazwę, która jest zawsze widoczna niezależnie od tego czy patrzymy na entity, czy też nie. Natomiast te drugie to jest jak w przypadku name tagów, widoczne jedynie przy najechaniu na entity. Nie muszę chyba mówić o samej zgodności nazwy.
  18. Dobra, już widzę w czym leży błąd. Użyłeś złego eventu, gdyż powinieneś użyć eventu 'on sign change' zamiast 'on place of sign'.
  19. Zobacz czy wiadomość zostanie wysłana: on left click: send "Test" to player
  20. Co się dzieje przy klikaniu lewym przyciskiem myszy na Hazardzistę? Nie do końca identyczny, gdyż tutaj używasz eventu 'on right click'.
  21. 1. Użyj %location of event-block% w pierwszym przypadku. 2. Nie używaj wielkich liter w kodzie. 3. W drugim evencie użyj %location of clicked block%.
  22. Po prostu użyj tej linijki w kodzie po tych warunkach, ot co.
  23. Musisz wyciągnąć tę wartość z tekstu za pomocą: https://skriptlang.github.io/Skript/expressions.html#ExprSubstring Czyli powinno to wyglądać +/- tak: set {_l} to uncoloured line 1 of player's tool's lore set {_kasa} to subtext of {_l} from character x to (length of {_l} - 3) Za 'x' musisz podstawić indeks litery (którą jest literą w tym tekście). Już ułatwiłem ci znacznie robotę i liczysz znaki (spacja też się liczy!) od lewej aż dojdziesz do procentu przy czym ignorujesz kolory (czyli '&' i liczbę/literę przy kolorze). Na koniec przy dawaniu graczowi tej kasy musisz pamiętać, aby parse'ować ją na typ 'number' (lub możesz też i 'integer' jeżeli jest to liczba całkowita).
  24. Zobacz, że po drugim warunku nie zrobiłeś wcięcia (tabulacji) w kodzie. 'execute console command' służy jak sama nazwa wskazuje, do wykonywania komend. Nie służy do wykonywania linijek ze Skripta.
  25. Kormic

    Rangi sklep gui

    Pokażę ci na przykładzie jednej rangi, a resztę sobie dorzucisz. if arg-1 is "kupvip": if player's groups contains "twoja_ranga_VIP": send "&cJuż zakupiłeś rangę VIP!" to player stop if {coins.%player%} is less than 10.00: send "" to player send "&c&lBŁAD: &4Nie posiadasz wystarczajaco pieniedzy !" to player send "" to player else: execute console command "pex user %player% group set Vip" remove 10.00 from {coins.%player%} send "" to player send "&8» &cZakupiles Rangę &8[&6VIP&8] &7!" to player send "&8» &7Z konta odjeto &610.00 &7zł" to player send "" to player Czyli znaczenie ma fragment między linijkami 2. i 4. Mimo wszystko skrypt brzydko wygląda ze względu na: użycie zbugowanego 'format slot', zalecam użyć 'set slot' pochodzący ze Skripta zły sposób nazewnictwa zmiennych, który uniemożliwia łatwe manipulowanie nimi (zalecam zmienić na listy zmiennych): # Zamiast używania zwykłych zmiennych: {coins.%player%} # Zalecam używac list zmiennych: {coins::%player%} Pozwalają na o wiele łatwiejsze zarządzanie wieloma zmiennymi: # Możesz wyczyścić coinsy wszystkim graczom: clear {coins::*} # Możesz sprawdzić ile wszyscy gracze posiadają coinsów (czyli zapętlić i wykonywać na nich złożone operacje): loop {coins::*}: send "%loop-index% posiada %loop-value% coinsów!" # Możesz sprawdzić rozmiar listy (ilu graczy posiada jakiekolwiek coinsy, 0.00 również będzie się zaliczało, liczy się jedynie, że informacja jest zapisana) send "%size of {coins::*}% graczy posiada coinsy!" wielokrotne wysyłanie pustych linijek pod sobą, a można by to zrobić o wiele prościej: send "" and "" and ""
×
×
  • Dodaj nową pozycję...