gnomq 223 Opublikowano 11 września 2020 Udostępnij Opublikowano 11 września 2020 Jeśli trafimy gracza łukiem o nazwie '&atest' zostanie on 'zamrożony' tzn. zostanie unieruchomiony na 2 sekundy, po czym go przywróci do pierwotnego stanu. Cytuj Odnośnik do komentarza https://skript.pl/temat/41587-frozen-player/ Udostępnij na innych stronach Więcej opcji udostępniania...
0 xXx_Skrypter_xXx 17 Opublikowano 11 września 2020 Udostępnij Opublikowano 11 września 2020 (edytowane) Nie testowane, pisane z telefonu On damage: If attacker's tool is bow named "&atest": If damage was caused by projectile: If projectile is a arrow: If shooter is a attacker: Set walk speed of victim to 0 Wait 2 second Set walk speed of victim to 1 Wytabuj to sobie Edytowane 11 września 2020 przez xXx_Skrypter_xXx gnomq 1 Cytuj Odnośnik do komentarza https://skript.pl/temat/41587-frozen-player/#findComment-260436 Udostępnij na innych stronach Więcej opcji udostępniania...
0 Kormic 1951 Opublikowano 11 września 2020 Udostępnij Opublikowano 11 września 2020 1 minutę temu, xXx_Skrypter_xXx napisał: Nie testowane, pisane z telefonu On damage: If attacker's tool is bow named "&atest": If damage was caused by projectile: If projectile is a arrow: If shooter is a attacker: Set walk speed of victim to 0 Wait 2 second Set walk speed of victim to 1 Wytabuj to sobie To nie zadziała, gdyż zanim strzała trafi kogoś, to osoba, która strzeliła może już w tym czasie zmienić narzędzie na coś innego. gnomq i xXx_Skrypter_xXx 1 1 Cytuj Odnośnik do komentarza https://skript.pl/temat/41587-frozen-player/#findComment-260439 Udostępnij na innych stronach Więcej opcji udostępniania...
0 xXx_Skrypter_xXx 17 Opublikowano 11 września 2020 Udostępnij Opublikowano 11 września 2020 On shoot: If shooter's tool is bow named "&atest": Set {_zamrozenie} to 1 If damage was caused by projectile: If projectile is a arrow: If shooter is a attacker: If {_zamrozenie} is 1: Set {_zamrozenie} to 2 Set walk speed of victim to 0 Wait 2 second Set walk speed of victim to 1 Delete {_zamrozenie} Nie testowane 14 minut temu, Kormic napisał: gnomq 1 Cytuj Odnośnik do komentarza https://skript.pl/temat/41587-frozen-player/#findComment-260444 Udostępnij na innych stronach Więcej opcji udostępniania...
0 Kormic 1951 Opublikowano 11 września 2020 Udostępnij Opublikowano 11 września 2020 Teraz, xXx_Skrypter_xXx napisał: On shoot: If shooter's tool is bow named "&atest": Set {_zamrozenie} to 1 If damage was caused by projectile: If projectile is a arrow: If shooter is a attacker: If {_zamrozenie} is 1: Set {_zamrozenie} to 2 Set walk speed of victim to 0 Wait 2 second Set walk speed of victim to 1 Delete {_zamrozenie} Nie testowane To również nie zadziała, event 'on shoot' aktywuje się przy wystrzeleniu strzały, rzuceniu śnieżką itp. gnomq 1 Cytuj Odnośnik do komentarza https://skript.pl/temat/41587-frozen-player/#findComment-260445 Udostępnij na innych stronach Więcej opcji udostępniania...
0 ShadowEk 60 Opublikowano 11 września 2020 Udostępnij Opublikowano 11 września 2020 (edytowane) import: org.bukkit.event.entity.EntityShootBowEvent on EntityShootBowEvent: set {_player} to event.getEntity() if {_player} is a player: if name of {_player}'s tool is "&aTest": set {bow.freeze::%{_player}%} to true on damage: projectile exists projectile is arrow attacker != victim if {bow.freeze::%attacker%} is set: delete {bow.freeze::%attacker%} set {_speed} to victim's walk speed if victim's walk speed > 0: set victim's walk speed to 0 wait 2 seconds set victim's walk speed to {_speed} on any movement: set {_location::%player%} to player's location if player's walk speed <= 0.01: remove jump boost from player apply jump boost -10 to player for 0.01 second teleport player to {_location::%player%} Wymagany skript-mirror Edytowane 11 września 2020 przez ShadowEk #attacker != victim gnomq 1 Cytuj Odnośnik do komentarza https://skript.pl/temat/41587-frozen-player/#findComment-260452 Udostępnij na innych stronach Więcej opcji udostępniania...
0 Kormic 1951 Opublikowano 11 września 2020 Udostępnij Opublikowano 11 września 2020 (edytowane) 8 minut temu, ShadowEk napisał: import: org.bukkit.event.entity.EntityShootBowEvent on EntityShootBowEvent: set {_player} to event.getEntity() if {_player} is a player: if name of {_player}'s tool is "&aTest": set {bow.freeze::%{_player}%} to true on damage: projectile exists projectile is arrow attacker != victim if {bow.freeze::%attacker%} is set: delete {bow.freeze::%attacker%} set {_speed} to victim's walk speed if victim's walk speed > 0: set victim's walk speed to 0 wait 2 seconds set victim's walk speed to {_speed} on any movement: set {_location::%player%} to player's location if player's walk speed <= 0.01: remove jump boost from player apply jump boost -10 to player for 0.01 second teleport player to {_location::%player%} Wymagany skript-mirror Twój skrypt jest dość dobry, lecz ma jedną wadę. Jeżeli gracz wystrzeli wiele zamrażających strzał w jednym momencie, to tylko ta pierwsza, która trafi, spowoduje zamrożenie, reszta będzie bez efektu, gdyż zmienna się wyczyści. Próbowałem dodawać tag do NBT projectile'ów (to by było najlepsze), próbowałem również dodawać je do listy, niestety żadne z tych nie poskutkowało. Być może twój skrypt jest najlepszym wyjściem, nie wiadomo. Edytowane 11 września 2020 przez Kormic ShadowEk i gnomq 1 1 Cytuj Odnośnik do komentarza https://skript.pl/temat/41587-frozen-player/#findComment-260454 Udostępnij na innych stronach Więcej opcji udostępniania...
0 ShadowEk 60 Opublikowano 11 września 2020 Udostępnij Opublikowano 11 września 2020 (edytowane) 14 minut temu, Kormic napisał: Twój skrypt jest dość dobry, lecz ma jedną wadę. Jeżeli gracz wystrzeli wiele zamrażających strzał w jednym momencie, to tylko ta pierwsza, która trafi, spowoduje zamrożenie, reszta będzie bez efektu, gdyż zmienna się wyczyści. Próbowałem dodawać tag do NBT projectile'ów (to by było najlepsze), próbowałem również dodawać je do listy, niestety żadne z tych nie poskutkowało. Być może twój skrypt jest najlepszym wyjściem, nie wiadomo. Wydaje mi się, że o to chodzi, żeby zamrożenie nie było możliwe do nabijania się jako efekt, byłoby to za silne (przynajmniej dla mnie). A to przypadkiem nie jest tak, że po wystrzale zmienna ustawia się automatycznie? Przynajmniej tak u mnie działało, gdy testowałem. Można też wrzucić usuwanie zmiennej pod "wait 2 seconds", chociaż to i tak nie ma znaczenia. Ja tam dałem jeszcze takie "ala zabezpieczenie", jeśli szybkość gracza jest większa niż 0, bo po co ustawiać szybkość gracza na 0, kiedy już jest ustawiona, może dlatego? Nie wiem szczerze mówiąc, jak będzie okej to spoko, jak nie to niech autor napisze co poprawić i to się zrobi // EDIT: Rozumiem, no tak, przecież. W jednym momencie to rzeczywiście będzie bez efektu, prawda. Wydaję mi się, że można dodawać 1 do zmiennej co każde wystrzelenie, a potem sprawdzać czy jest ona większa od zera, jeśli tak to wykonuje event, jeśli nie to przerywa i tyle Tylko by trzeba było sprawdzać, czy "entity" został trafiony, a to już jest bardziej ciekawe. Więcej bawienia się i straconego czasu Edytowane 11 września 2020 przez ShadowEk gnomq 1 Cytuj Odnośnik do komentarza https://skript.pl/temat/41587-frozen-player/#findComment-260455 Udostępnij na innych stronach Więcej opcji udostępniania...
0 Kormic 1951 Opublikowano 11 września 2020 Udostępnij Opublikowano 11 września 2020 2 minuty temu, ShadowEk napisał: Wydaje mi się, że o to chodzi, żeby zamrożenie nie było możliwe do nabijania się jako efekt, byłoby to za silne (przynajmniej dla mnie). A to przypadkiem nie jest tak, że po wystrzale zmienna ustawia się automatycznie? Przynajmniej tak u mnie działało, gdy testowałem. Można też wrzucić usuwanie zmiennej pod "wait 2 seconds", chociaż to i tak nie ma znaczenia. Ja tam dałem jeszcze takie "ala zabezpieczenie", jeśli szybkość gracza jest większa niż 0, bo po co ustawiać szybkość gracza na 0, kiedy już jest ustawiona, może dlatego? Nie wiem szczerze mówiąc, jak będzie okej to spoko, jak nie to niech autor napisze co poprawić i to się zrobi // EDIT: Rozumiem, no tak, przecież. W jednym momencie to rzeczywiście będzie bez efektu, prawda. Wydaję mi się, że można dodawać 1 do zmiennej co każde wystrzelenie, a potem sprawdzać czy jest ona większa od zera, jeśli tak to wykonuje event, jeśli nie to przerywa i tyle Tak jak mówiłem, dobra robota z tym skryptem, szczerze ciężko o coś lepszego. Dodanie do listy albo do NBT pewnych informacji byłoby bezcenne, ale niestety działa to dość opornie. ShadowEk i gnomq 2 Cytuj Odnośnik do komentarza https://skript.pl/temat/41587-frozen-player/#findComment-260457 Udostępnij na innych stronach Więcej opcji udostępniania...
0 ShadowEk 60 Opublikowano 11 września 2020 Udostępnij Opublikowano 11 września 2020 3 minuty temu, Kormic napisał: Tak jak mówiłem, dobra robota z tym skryptem, szczerze ciężko o coś lepszego. Dodanie do listy albo do NBT pewnych informacji byłoby bezcenne, ale niestety działa to dość opornie. Z tym NBT nawet dobry pomysł, niech autor zdecyduje, czy ten skrypt mu wystarczy, czy o to mu chodziło gnomq 1 Cytuj Odnośnik do komentarza https://skript.pl/temat/41587-frozen-player/#findComment-260458 Udostępnij na innych stronach Więcej opcji udostępniania...
0 Kormic 1951 Opublikowano 11 września 2020 Udostępnij Opublikowano 11 września 2020 (edytowane) 2 minuty temu, ShadowEk napisał: Z tym NBT nawet dobry pomysł, niech autor zdecyduje, czy ten skrypt mu wystarczy, czy o to mu chodziło Tylko jedno mnie zastanawia, dlaczego importowałeś przez skript-mirrora event 'on shoot'? On już jest w Skript'cie, nie ma potrzeby importowania go (no chyba, że o czymś nie wiem i przykładowo importowany event daje np. więcej wartości w event'cie, do których można się odnosić). Poza tym w mojej ocenie lepszy jest skript-reflect niż skript-mirror. Ten drugi jest już opuszczony, a ten pierwszy oferuje wsparcie. Edytowane 11 września 2020 przez Kormic gnomq 1 Cytuj Odnośnik do komentarza https://skript.pl/temat/41587-frozen-player/#findComment-260459 Udostępnij na innych stronach Więcej opcji udostępniania...
0 ShadowEk 60 Opublikowano 11 września 2020 Udostępnij Opublikowano 11 września 2020 (edytowane) 5 minut temu, Kormic napisał: Tylko jedno mnie zastanawia, dlaczego importowałeś przez skript-mirrora event 'on shoot'? On już jest w Skript'cie, nie ma potrzeby importowania go (no chyba, że o czymś nie wiem i przykładowo importowany event daje np. więcej wartości w event'cie, do których można się odnosić). Poza tym w mojej ocenie lepszy jest skript-reflect niż skript-mirror. Ten drugi jest już opuszczony, a ten pierwszy oferuje wsparcie. O, to dzięki za informacje, miałem jedynie na serwerze skript-mirror, nie używałem nigdy skript-reflect'a. Ale jeśli oferuje wsparcie, to być może się przeniosę. Dopiero po przeczytaniu drugiej raz twojej wypowiedzi, która znajduje się na górze, zrozumiałem dokładniej, bo początkowo myślałem, że event "on shoot" zadziała dopiero jak strzała uderzy wroga, mój błąd. Skrypty to ja piszę raz na rok, dlatego importowałem event. Edytowane 11 września 2020 przez ShadowEk Kormic i gnomq 1 1 Cytuj Odnośnik do komentarza https://skript.pl/temat/41587-frozen-player/#findComment-260460 Udostępnij na innych stronach Więcej opcji udostępniania...
0 gnomq 223 Opublikowano 12 września 2020 Autor Udostępnij Opublikowano 12 września 2020 9 godzin temu, ShadowEk napisał: import: org.bukkit.event.entity.EntityShootBowEvent on EntityShootBowEvent: set {_player} to event.getEntity() if {_player} is a player: if name of {_player}'s tool is "&aTest": set {bow.freeze::%{_player}%} to true on damage: projectile exists projectile is arrow attacker != victim if {bow.freeze::%attacker%} is set: delete {bow.freeze::%attacker%} set {_speed} to victim's walk speed if victim's walk speed > 0: set victim's walk speed to 0 wait 2 seconds set victim's walk speed to {_speed} on any movement: set {_location::%player%} to player's location if player's walk speed <= 0.01: remove jump boost from player apply jump boost -10 to player for 0.01 second teleport player to {_location::%player%} Wymagany skript-mirror gracza nie zamraża, a błędów brak Cytuj Odnośnik do komentarza https://skript.pl/temat/41587-frozen-player/#findComment-260466 Udostępnij na innych stronach Więcej opcji udostępniania...
0 ShadowEk 60 Opublikowano 12 września 2020 Udostępnij Opublikowano 12 września 2020 (edytowane) 9 godzin temu, gnomq2000 napisał: gracza nie zamraża, a błędów brak Dziwne, ja u siebie testowałem to normalnie zamrażało. Jakieś błędy są, czy coś? Ty masz wersję 1.16.1, jeżeli się nie mylę. Ja to testowałem na 1.8.8. Edytowane 12 września 2020 przez ShadowEk Cytuj Odnośnik do komentarza https://skript.pl/temat/41587-frozen-player/#findComment-260586 Udostępnij na innych stronach Więcej opcji udostępniania...
0 gnomq 223 Opublikowano 12 września 2020 Autor Udostępnij Opublikowano 12 września 2020 8 minut temu, ShadowEk napisał: Dziwne, ja u siebie testowałem to normalnie zamrażało. Jakieś błędy są, czy coś? Ty masz wersję 1.16.1, jeżeli się nie mylę. Ja to testowałem na 1.8.8. nie ma żadnych błędów hm.. Cytuj Odnośnik do komentarza https://skript.pl/temat/41587-frozen-player/#findComment-260587 Udostępnij na innych stronach Więcej opcji udostępniania...
0 ShadowEk 60 Opublikowano 12 września 2020 Udostępnij Opublikowano 12 września 2020 (edytowane) 5 godzin temu, gnomq2000 napisał: nie ma żadnych błędów hm.. W konsoli też nic? Dodaj jakąś losową wiadomość po każdym warunku i napisz mi do którego warunku działa skrypt. Edytowane 12 września 2020 przez ShadowEk przed każdym warunkiem -> po każdym warunku Cytuj Odnośnik do komentarza https://skript.pl/temat/41587-frozen-player/#findComment-260599 Udostępnij na innych stronach Więcej opcji udostępniania...
Pytanie
gnomq 223
Jeśli trafimy gracza łukiem o nazwie '&atest' zostanie on 'zamrożony' tzn. zostanie unieruchomiony na 2 sekundy, po czym go przywróci do pierwotnego stanu.
Odnośnik do komentarza
https://skript.pl/temat/41587-frozen-player/Udostępnij na innych stronach
15 odpowiedzi na to pytanie
Rekomendowane odpowiedzi
Dołącz do dyskusji
Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.