Glicz 246 Opublikowano 18 sierpnia 2020 Udostępnij Opublikowano 18 sierpnia 2020 (edytowane) Dzień dobry! Chciałbym do mojego skryptu dodać, że jak w ciągu 10 minut gracz nie wykona pewnej komendy to się coś wykona, tylko nie wiem jak sprawdzić czy w ciągu 10 minut nie użył tej komendy. Z góry dziękuję! Edytowane 18 sierpnia 2020 przez Michix Cytuj Odnośnik do komentarza https://skript.pl/temat/41134-sprawdzanie-uzycia-komendy/ Udostępnij na innych stronach Więcej opcji udostępniania...
0 Kormic 1951 Opublikowano 18 sierpnia 2020 Udostępnij Opublikowano 18 sierpnia 2020 42 minuty temu, Michix napisał: Dzień dobry! Chciałbym do mojego skryptu dodać, że jak w ciągu 10 minut gracz nie wykona pewnej komendy to się coś wykona, tylko nie wiem jak sprawdzić czy w ciągu 10 minut nie użył tej komendy. Z góry dziękuję! on command "/twojakomenda": if {odliczanie::%player%} is set: set {komenda::%player%} to true Musisz sobie dostosować w tym komendę. set {odliczanie::%player%} to now while player is online: if difference between {odliczanie::%player%} and now is greater than or equal to 10 minutes: exit loop clear {odliczanie::%player%} if {komenda::%player%} is not set: #twój kod wait 1 second Natomiast to jest pętla odmierzająca czas, wrzuć ją sobie w kod tam, gdzie ma się zaczynać te odliczanie. Cytuj Odnośnik do komentarza https://skript.pl/temat/41134-sprawdzanie-uzycia-komendy/#findComment-257004 Udostępnij na innych stronach Więcej opcji udostępniania...
0 kiroxtv 3 Opublikowano 18 sierpnia 2020 Udostępnij Opublikowano 18 sierpnia 2020 (edytowane) Ja bym zrobił coś takiego: every 10 second: loop all players if {czas.%loop-player%} > 0: remove 10 from {czas.%loop-player%} if {czas.%loop-player%} <= 0: tutaj cos sie wykonuje sobie napisz co chcesz command /tatwojakomenda [<text>]: trigger: if {czas.%player%} > 0: clear {czas.%player%} send "Costam bo nie wiem o co chodzi" to player I teraz dopisujesz wartość {czas.%player%} do Twojej komendy, ktora bedzie wymagała wpisania komendy w przeciągu 10 minut, czyli ustawiasz tą wartość na 600 Czyli: set {czas.%player%} to 600 Edit: Kolega wyżej zrobił to lepiej Edytowane 18 sierpnia 2020 przez kiroxtv Cytuj Odnośnik do komentarza https://skript.pl/temat/41134-sprawdzanie-uzycia-komendy/#findComment-257005 Udostępnij na innych stronach Więcej opcji udostępniania...
0 Kormic 1951 Opublikowano 18 sierpnia 2020 Udostępnij Opublikowano 18 sierpnia 2020 (edytowane) 13 minut temu, kiroxtv napisał: Ja bym zrobił coś takiego: every 10 second: loop all players if {czas.%loop-player%} > 0: remove 10 from {czas.%loop-player%} if {czas.%loop-player%} <= 0: tutaj cos sie wykonuje sobie napisz co chcesz command /tatwojakomenda [<text>]: trigger: if {czas.%player%} > 0: clear {czas.%player%} send "Costam bo nie wiem o co chodzi" to player I teraz dopisujesz wartość {czas.%player%} do Twojej komendy, ktora bedzie wymagała wpisania komendy w przeciągu 10 minut, czyli ustawiasz tą wartość na 600 Czyli: set {czas.%player%} to 600 Edit: Kolega wyżej zrobił to lepiej Przewaga pętli while nad periodicalem jest taka, że tą pierwszą można w każdej chwili wstrzymać, natomiast tej drugiej już niezbyt (nie mówię o sprawdzaniu warunków). Poza tym zdefiniowałeś nową komendę, a tymczasem lepiej jest po prostu sprawdzać eventem czy tę komendę wykonał. Edytowane 18 sierpnia 2020 przez Kormic Cytuj Odnośnik do komentarza https://skript.pl/temat/41134-sprawdzanie-uzycia-komendy/#findComment-257007 Udostępnij na innych stronach Więcej opcji udostępniania...
0 Glicz 246 Opublikowano 18 sierpnia 2020 Autor Udostępnij Opublikowano 18 sierpnia 2020 (edytowane) 30 minut temu, Kormic napisał: on command "/twojakomenda": if {odliczanie::%player%} is set: set {komenda::%player%} to true Musisz sobie dostosować w tym komendę. set {odliczanie::%player%} to now while player is online: if difference between {odliczanie::%player%} and now is greater than or equal to 10 minutes: exit loop clear {odliczanie::%player%} if {komenda::%player%} is not set: #twój kod wait 1 second Natomiast to jest pętla odmierzająca czas, wrzuć ją sobie w kod tam, gdzie ma się zaczynać te odliczanie. Chyba nie zrozumiałeś o co mi chodzi. Chce, że jak gracz nie zapłaci "rachunków za dom" (jak kolwiek to nie brzmi) to wykonuje komende na usuniecie domu. Narazie mam coś takiego: command /plot [<text>]: trigger: if arg 1 is "auto" or "claim": if {dom::%player%} is "false" or not set: if %player's balance% >= 50 execute player command "plot %arg 1%" set {dom::%player%} to true remove 50 from %player's balance% send "2Pomyslnie zakupiono dom!" stop send "&cNie masz wystarczajacej ilosci monet na koncie! /warp praca" else: if {dom::%player%} is "true": stop send "&2Juz posiadasz dom!" send "&cWystapil nieznany blad! Przepraszamy!" else: execute player command "plot %arg 1%" comamnd /zr trigger: if %player's balance% >= 25 remove 25 from %player's balance% send "&2Pomyslnie zaplacono rachunki za dom!" stop send "&cNie masz wystarczajacej ilosci monet na koncie! /warp praca" every 10 hours: if {dom::%player%} is "true" send "<command:/zr>&cMusisz zaplacic rachunki za dom! Kliknij na ta wiadomosc aby zaplacic!" i chce do tego "every 10 hours" zrobić, że jak gracz nie użyje komendy /zr w ciągu 10 minut to wykonuje komendę na usunięcie działki (sam ją ustawie) Edytowane 18 sierpnia 2020 przez Michix Cytuj Odnośnik do komentarza https://skript.pl/temat/41134-sprawdzanie-uzycia-komendy/#findComment-257008 Udostępnij na innych stronach Więcej opcji udostępniania...
0 Gość MsMaciek Opublikowano 18 sierpnia 2020 Udostępnij Opublikowano 18 sierpnia 2020 comamnd /zr trigger: if %player's balance% >= 25 remove 25 from %player's balance% send "&2Pomyslnie zaplacono rachunki za dom!" delete {dom.niezaplacony::%player%} stop send "&cNie masz wystarczajacej ilosci monet na koncie! /warp praca" every 10 hours: if {dom::%player%} is "true" set {dom.niezaplacony::%player%} to true send "<command:/zr>&cMusisz zaplacic rachunki za dom! Kliknij na ta wiadomosc aby zaplacic!" wait 10 minutes if {dom.niezaplacony::%player%} is true: send "&cNiezaplaciles rachunkow!" Gdy wysyła się wiadomość, ustawia się też specjalna zmienna {dom.niezaplacony} która po dziesięciu minutach jest sprawdzana. Jeżeli wartość tej zmiennej się nie zmieniła, oznacza że gracz nie zapłacił rachunków. Wartość tej zmiennej zmienia się po użyciu komendy /zr Jednak twój kod nie wygląda na działający (w every 10 hours nie ma player'a, używasz %player's balance% w miejscach gdzie nie ma "", wartości "true" i "false" to nadal tekst, nie zmienna prawda/fałsz) Cytuj Odnośnik do komentarza https://skript.pl/temat/41134-sprawdzanie-uzycia-komendy/#findComment-257020 Udostępnij na innych stronach Więcej opcji udostępniania...
0 Kormic 1951 Opublikowano 18 sierpnia 2020 Udostępnij Opublikowano 18 sierpnia 2020 23 minuty temu, MsMaciek napisał: comamnd /zr trigger: if %player's balance% >= 25 remove 25 from %player's balance% send "&2Pomyslnie zaplacono rachunki za dom!" delete {dom.niezaplacony::%player%} stop send "&cNie masz wystarczajacej ilosci monet na koncie! /warp praca" every 10 hours: if {dom::%player%} is "true" set {dom.niezaplacony::%player%} to true send "<command:/zr>&cMusisz zaplacic rachunki za dom! Kliknij na ta wiadomosc aby zaplacic!" wait 10 minutes if {dom.niezaplacony::%player%} is true: send "&cNiezaplaciles rachunkow!" Gdy wysyła się wiadomość, ustawia się też specjalna zmienna {dom.niezaplacony} która po dziesięciu minutach jest sprawdzana. Jeżeli wartość tej zmiennej się nie zmieniła, oznacza że gracz nie zapłacił rachunków. Wartość tej zmiennej zmienia się po użyciu komendy /zr Jednak twój kod nie wygląda na działający (w every 10 hours nie ma player'a, używasz %player's balance% w miejscach gdzie nie ma "", wartości "true" i "false" to nadal tekst, nie zmienna prawda/fałsz) Nie odmierzaj czasu poprzez delaye, to jest jeden z najgorszych sposobów. Jeśli serwer wywali, to delay zostanie wycofany i całkiem możliwe, że gracz uniknie zapłacenia rachunku przez następne 10 godzin. Co do kodu, spróbuj tak, ale nie mam pewności co do tej pętli 'while' czy aby przypadkiem nie spowoduje spowolnienia pętli 'every 10 hours:'. W każdym bądź razie, sprawdź: command /plot [<text>]: trigger: if arg 1 is "auto" or "claim": if {dom::%player%} is "false" or not set: if player's balance >= 50 execute player command "plot %arg 1%" set {dom::%player%} to true remove 50 from player's balance send "&2Pomyslnie zakupiono dom!" stop send "&cNie masz wystarczajacej ilosci monet na koncie! /warp praca" else: if {dom::%player%} is "true": send "&2Juz posiadasz dom!" stop send "&cWystapil nieznany blad! Przepraszamy!" else: execute player command "plot %arg 1%" on command "/zr": if {odliczanie::%player%} is set: set {komenda::%player%} to true command /zr: trigger: if player's balance >= 25 remove 25 from player's balance send "&2Pomyslnie zaplacono rachunki za dom!" stop send "&cNie masz wystarczajacej ilosci monet na koncie! /warp praca" every 10 hours: loop all players: if {dom::%loop-player%} is "true": send "<command:/zr>&cMusisz zaplacic rachunki za dom! Kliknij na ta wiadomosc aby zaplacic!" set {odliczanie::%loop-player%} to now while loop-player is online: if difference between {odliczanie::%loop-player%} and now is greater than or equal to 10 minutes: exit loop clear {odliczanie::%loop-player%} if {komenda::%loop-player%} is not set: execute console command "/dom usun %loop-player%" else: clear {komenda::%loop-player%} wait 1 second Cytuj Odnośnik do komentarza https://skript.pl/temat/41134-sprawdzanie-uzycia-komendy/#findComment-257023 Udostępnij na innych stronach Więcej opcji udostępniania...
Pytanie
Glicz 246
Dzień dobry!
Chciałbym do mojego skryptu dodać, że jak w ciągu 10 minut gracz nie wykona pewnej komendy to się coś wykona, tylko nie wiem jak sprawdzić czy w ciągu 10 minut nie użył tej komendy.
Z góry dziękuję!
Edytowane przez MichixOdnośnik do komentarza
https://skript.pl/temat/41134-sprawdzanie-uzycia-komendy/Udostępnij na innych stronach
6 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ą.