xSebix1 1 Opublikowano 15 kwietnia 2024 Udostępnij Opublikowano 15 kwietnia 2024 command /losuj: cooldown: 1 seconds trigger: chance of 75%: send "&aotrzymales nagrode" jak zrobic zeby w tym skrypcie ktory jest u gory pisalo ze musisz odczekac np 10s zeby uzyc tego ponownie Formatuję kod. Notatka dodana przez GRIERIOR Cytuj Odnośnik do komentarza https://skript.pl/temat/57367-problem-z-cooldown-wiadomoscia/ Udostępnij na innych stronach Więcej opcji udostępniania...
0 makstale 35 Opublikowano 15 kwietnia 2024 Udostępnij Opublikowano 15 kwietnia 2024 cooldown message: Musisz odczekać %remaining time% sekund. Cytuj Odnośnik do komentarza https://skript.pl/temat/57367-problem-z-cooldown-wiadomoscia/#findComment-341700 Udostępnij na innych stronach Więcej opcji udostępniania...
0 xSebix1 1 Opublikowano 15 kwietnia 2024 Autor Udostępnij Opublikowano 15 kwietnia 2024 (edytowane) dodałem wiadomość juz sam ale nie znalem "placeholdera" na czas ktory pozostal do odebrania nagrody dzieki 3 godziny temu, makstale napisał: cooldown message: Musisz odczekać %remaining time% sekund. a dodałbyś jeszcze formatowanie tego bo obecnie pisze czas i seconds a wolałbym np 1 minutes - 1 m Edytowane 15 kwietnia 2024 przez xSebix1 Łączę posty. Notatka dodana przez GRIERIOR Cytuj Odnośnik do komentarza https://skript.pl/temat/57367-problem-z-cooldown-wiadomoscia/#findComment-341701 Udostępnij na innych stronach Więcej opcji udostępniania...
0 CoFFeIN04 696 Opublikowano 15 kwietnia 2024 Udostępnij Opublikowano 15 kwietnia 2024 Dodaj sobie gdzieś funkcję function formatTimespan(t: timespan) :: string: set {_t} to "%{_t}%" replace all " seconds" or " second" with "s" in {_t} replace all " minutes" or " minute" with "m" in {_t} replace all " hours" or " hour" with "h" in {_t} replace all " days" or " day" with "d" in {_t} return {_t} i wykonaj ją przy użyciu argumentu remaining time, nie wiem czy to zadziała ale wydaje mi sie to jedynym sposobem Cytuj Odnośnik do komentarza https://skript.pl/temat/57367-problem-z-cooldown-wiadomoscia/#findComment-341710 Udostępnij na innych stronach Więcej opcji udostępniania...
0 xSebix1 1 Opublikowano 19 kwietnia 2024 Autor Udostępnij Opublikowano 19 kwietnia 2024 W dniu 15.04.2024 o 23:26, CoFFeIN04 napisał: Dodaj sobie gdzieś funkcję function formatTimespan(t: timespan) :: string: set {_t} to "%{_t}%" replace all " seconds" or " second" with "s" in {_t} replace all " minutes" or " minute" with "m" in {_t} replace all " hours" or " hour" with "h" in {_t} replace all " days" or " day" with "d" in {_t} return {_t} i wykonaj ją przy użyciu argumentu remaining time, nie wiem czy to zadziała ale wydaje mi sie to jedynym sposobem Nie było mnie troche w domu ale nie działa command /losujklucz: trigger: cooldown: 1 seconds cooldown message: &4ᴏᴊᴏᴊ &cᴍᴜꜱɪꜱᴢ ᴏᴅᴄᴢᴇᴋᴀᴄ &e&n%remaining time%&f &cᴘʀᴢᴇᴅ ᴘᴏɴᴏᴡɴʏᴍ ᴜᴢʏᴄɪᴇᴍ ᴛᴇᴊ ᴋᴏᴍᴇɴᴅʏ function formatTimespan(t: timespan) :: string: set {_t} to "%{_t}%" replace all " seconds" or " second" with "s" in {_t} replace all " minutes" or " minute" with "m" in {_t} replace all " hours" or " hour" with "h" in {_t} replace all " days" or " day" with "d" in {_t} return {_t} trigger: chance of 75% send "&aOtrzymales Diament" tak wygla teraz skrypt probowalem wiele razy ale zadna nie dziala Cytuj Odnośnik do komentarza https://skript.pl/temat/57367-problem-z-cooldown-wiadomoscia/#findComment-341785 Udostępnij na innych stronach Więcej opcji udostępniania...
0 Kormic 1951 Opublikowano 19 kwietnia 2024 Udostępnij Opublikowano 19 kwietnia 2024 2 minuty temu, xSebix1 napisał: tak wygla teraz skrypt probowalem wiele razy ale zadna nie dziala Funkcja powinna być poza definicją komendy, nie w jej środku. Odsyłam do artykułów objaśniających jak używać funkcji w Skript. Przykładowy artykuł poniżej. Odnosząc się do Pana wcześniejszego pytania, ostatnio na forum pojawiło się podobne pytanie o przekształcenie tekstu wyświetlanego przez %remaining time%. Sam próbowałem wstawić wywołanie funkcji zmieniającej tekst tej zmiennej, jednak skutkowało to nadpisywaniem przez Skripta tej wiadomości jej domyślną wartością ("Sorry, you're using this command [...]" czy jakoś tak). Link do wcześniej wspomnianego wątku poniżej. Cytuj Odnośnik do komentarza https://skript.pl/temat/57367-problem-z-cooldown-wiadomoscia/#findComment-341787 Udostępnij na innych stronach Więcej opcji udostępniania...
0 xSebix1 1 Opublikowano 20 kwietnia 2024 Autor Udostępnij Opublikowano 20 kwietnia 2024 (edytowane) 13 godzin temu, Kormic napisał: Funkcja powinna być poza definicją komendy, nie w jej środku. Odsyłam do artykułów objaśniających jak używać funkcji w Skript. Przykładowy artykuł poniżej. Odnosząc się do Pana wcześniejszego pytania, ostatnio na forum pojawiło się podobne pytanie o przekształcenie tekstu wyświetlanego przez %remaining time%. Sam próbowałem wstawić wywołanie funkcji zmieniającej tekst tej zmiennej, jednak skutkowało to nadpisywaniem przez Skripta tej wiadomości jej domyślną wartością ("Sorry, you're using this command [...]" czy jakoś tak). Link do wcześniej wspomnianego wątku poniżej. dalej tego nie rozumiem i nie pojmę tego w kilka godzin lub dni a poprostu nie możesz napisać tego skryptu a wtedy będę mniej więcej wiedział co źle robię i będę miał wzór na przyszłe formatowanie albo dodawanie poprawnie funkcji tak czyś jak dziękuję za chęć pomocy Edytowane 20 kwietnia 2024 przez xSebix1 Cytuj Odnośnik do komentarza https://skript.pl/temat/57367-problem-z-cooldown-wiadomoscia/#findComment-341796 Udostępnij na innych stronach Więcej opcji udostępniania...
0 Kormic 1951 Opublikowano 20 kwietnia 2024 Udostępnij Opublikowano 20 kwietnia 2024 54 minuty temu, xSebix1 napisał: dalej tego nie rozumiem i nie pojmę tego w kilka godzin lub dni a poprostu nie możesz napisać tego skryptu a wtedy będę mniej więcej wiedział co źle robię i będę miał wzór na przyszłe formatowanie albo dodawanie poprawnie funkcji tak czyś jak dziękuję za chęć pomocy Nie od razu Rzym zbudowano. Każda nauka wymaga praktyki i czasu, każdy tak zaczynał. Nikt na tym forum nie jest wyjątkiem od tej zasady, wliczając Pana. Niemniej jednak mogę pomóc w zrozumieniu jak należy skonstruować taki mechanizm cooldownu. Udostępniam przykładowy kod poniżej. function cooldownMessage(time: timespan, cooldown: timespan) :: text: set {_remainingTime} to "%difference between {_cooldown} and {_time}%" replace all ("minutes" and "minute") in {_remainingTime} with "m" replace all ("seconds" and "second") in {_remainingTime} with "s" replace all " and" in {_remainingTime} with "," return "Odczekaj %{_remainingTime}%." command /komenda: executable by: players trigger: if {cooldowns::komenda::%player%} is set: set {_cooldownTime} to 10 seconds set {_t} to difference between {cooldowns::komenda::%player%} and now if {_t} is less than {_cooldownTime}: send cooldownMessage({_t}, {_cooldownTime}) to player stop set {cooldowns::komenda::%player%} to now # Dalsza część kodu (kod w tym miejscu wykona się tylko wtedy, gdy gracz już nie ma cooldownu (lub nigdy go nie miał)) Wyjaśnię krok po kroku działanie powyższego skryptu. Czas wykonania komendy zapisujemy do zmiennej {cooldowns::komenda::%player%}. Może się ona całkowicie inaczej nazywać, ważne aby to była lista. Komenda ma narzucony warunek możliwego jej wykonania tylko przez graczy. Zapobiega to próbie użycia jej przez konsolę. W sekcji "trigger" komendy sprawdzamy czy zmienna ma ustawioną wartość - to znaczy czy gracz jej kiedykolwiek wcześniej użył. Jeśli nie, warunek nie jest spełniony, i przechodzimy do ostatniej linijki (a więc zapisujemy obecny czas do zmiennej gracza i wykonuje się dalszy kod komendy). Jeśli jednak warunek "if {cooldowns::komenda::%player%} is set:" jest spełniony (a więc gracz już kiedyś wcześniej użył komendy), sprawdzamy różnicę czasu między czasem obecnym a czasem w zmiennej gracza (to znaczy kiedy gracz ostatnio użył ów komendy). Warto zauważyć, że jest to czas od ostatniego użycia komendy. W przypadku gdy ta różnica czasu jest mniejsza niż nasz cooldown (w powyższym przykładzie jest to 10 sekund), wysyłamy graczowi informację ile musi odczekać, aby mógł ponownie wykonać komendę. Sama wiadomość jest tworzona przez naszą funkcję cooldownMessage([...]), która zwraca wiadomość o tym jak długo musi gracz czekać. Tak więc wywołujemy ją i po jej wywołaniu zatrzymujemy skrypt (instrukcja "stop"), aby reszta komendy się nie wykonała. Sama funkcja pobiera dwa argumenty - czas od ostatniego użycia komendy i czas cooldownu. Te dwie informacje wystarczą aby obliczyć czas pozostały do końca cooldownu (odpowiednik %remaining time%). Wynik różnicy tych czasów jest zapisywany jako tekst do zmiennej {_remainingTime}, aby można było na niej dokonać operacji zamiany pewnych fraz (na przykład "minutes" na "m"). Mając czas pozostały do oczekiwania na możliwość ponownego użycia komendy, zamieniamy "minutes", "seconds" i " and" odpowiednio na "m", "s" i " ,". Ostatnia operacja jest po to, aby zastąpić spójnik "and" przecinkiem. Finalnie, gdy już mamy sformatowaną zmienną {_remainingTime} według naszych potrzeb, zwracamy ją w funkcji, co pozwala wysłać wiadomość graczowi. Wydaje mi się, że wyjaśniłem to tak szczegółowo jak tylko potrafiłem. Niemniej jednak i tak zachęcam do lektury wcześniejszych artykułów - pomogą one Panu w nauce Skripta. W ramach Pana edukacji zostawiłem strukturę kodu tak prostą jak to tylko możliwe, aby mógł Pan samemu poeksperymentować i dodać to co jest potrzebne. Cytuj Odnośnik do komentarza https://skript.pl/temat/57367-problem-z-cooldown-wiadomoscia/#findComment-341799 Udostępnij na innych stronach Więcej opcji udostępniania...
0 xSebix1 1 Opublikowano 21 kwietnia 2024 Autor Udostępnij Opublikowano 21 kwietnia 2024 W dniu 20.04.2024 o 11:49, Kormic napisał: Nie od razu Rzym zbudowano. Każda nauka wymaga praktyki i czasu, każdy tak zaczynał. Nikt na tym forum nie jest wyjątkiem od tej zasady, wliczając Pana. Niemniej jednak mogę pomóc w zrozumieniu jak należy skonstruować taki mechanizm cooldownu. Udostępniam przykładowy kod poniżej. function cooldownMessage(time: timespan, cooldown: timespan) :: text: set {_remainingTime} to "%difference between {_cooldown} and {_time}%" replace all ("minutes" and "minute") in {_remainingTime} with "m" replace all ("seconds" and "second") in {_remainingTime} with "s" replace all " and" in {_remainingTime} with "," return "Odczekaj %{_remainingTime}%." command /komenda: executable by: players trigger: if {cooldowns::komenda::%player%} is set: set {_cooldownTime} to 10 seconds set {_t} to difference between {cooldowns::komenda::%player%} and now if {_t} is less than {_cooldownTime}: send cooldownMessage({_t}, {_cooldownTime}) to player stop set {cooldowns::komenda::%player%} to now # Dalsza część kodu (kod w tym miejscu wykona się tylko wtedy, gdy gracz już nie ma cooldownu (lub nigdy go nie miał)) Wyjaśnię krok po kroku działanie powyższego skryptu. Czas wykonania komendy zapisujemy do zmiennej {cooldowns::komenda::%player%}. Może się ona całkowicie inaczej nazywać, ważne aby to była lista. Komenda ma narzucony warunek możliwego jej wykonania tylko przez graczy. Zapobiega to próbie użycia jej przez konsolę. W sekcji "trigger" komendy sprawdzamy czy zmienna ma ustawioną wartość - to znaczy czy gracz jej kiedykolwiek wcześniej użył. Jeśli nie, warunek nie jest spełniony, i przechodzimy do ostatniej linijki (a więc zapisujemy obecny czas do zmiennej gracza i wykonuje się dalszy kod komendy). Jeśli jednak warunek "if {cooldowns::komenda::%player%} is set:" jest spełniony (a więc gracz już kiedyś wcześniej użył komendy), sprawdzamy różnicę czasu między czasem obecnym a czasem w zmiennej gracza (to znaczy kiedy gracz ostatnio użył ów komendy). Warto zauważyć, że jest to czas od ostatniego użycia komendy. W przypadku gdy ta różnica czasu jest mniejsza niż nasz cooldown (w powyższym przykładzie jest to 10 sekund), wysyłamy graczowi informację ile musi odczekać, aby mógł ponownie wykonać komendę. Sama wiadomość jest tworzona przez naszą funkcję cooldownMessage([...]), która zwraca wiadomość o tym jak długo musi gracz czekać. Tak więc wywołujemy ją i po jej wywołaniu zatrzymujemy skrypt (instrukcja "stop"), aby reszta komendy się nie wykonała. Sama funkcja pobiera dwa argumenty - czas od ostatniego użycia komendy i czas cooldownu. Te dwie informacje wystarczą aby obliczyć czas pozostały do końca cooldownu (odpowiednik %remaining time%). Wynik różnicy tych czasów jest zapisywany jako tekst do zmiennej {_remainingTime}, aby można było na niej dokonać operacji zamiany pewnych fraz (na przykład "minutes" na "m"). Mając czas pozostały do oczekiwania na możliwość ponownego użycia komendy, zamieniamy "minutes", "seconds" i " and" odpowiednio na "m", "s" i " ,". Ostatnia operacja jest po to, aby zastąpić spójnik "and" przecinkiem. Finalnie, gdy już mamy sformatowaną zmienną {_remainingTime} według naszych potrzeb, zwracamy ją w funkcji, co pozwala wysłać wiadomość graczowi. Wydaje mi się, że wyjaśniłem to tak szczegółowo jak tylko potrafiłem. Niemniej jednak i tak zachęcam do lektury wcześniejszych artykułów - pomogą one Panu w nauce Skripta. W ramach Pana edukacji zostawiłem strukturę kodu tak prostą jak to tylko możliwe, aby mógł Pan samemu poeksperymentować i dodać to co jest potrzebne. Raz dziala i pisze ojoj musisz odczekac jeszcze (czas) przed ponowym uzyciem a raz pisze you are using this command to often jakos tak Cytuj Odnośnik do komentarza https://skript.pl/temat/57367-problem-z-cooldown-wiadomoscia/#findComment-341870 Udostępnij na innych stronach Więcej opcji udostępniania...
0 Kormic 1951 Opublikowano 21 kwietnia 2024 Udostępnij Opublikowano 21 kwietnia 2024 9 minut temu, xSebix1 napisał: Raz dziala i pisze ojoj musisz odczekac jeszcze (czas) przed ponowym uzyciem a raz pisze you are using this command to often jakos tak Jak sam Pan widzi, nigdzie w przykładowym kodzie nie dodałem takiej funkcji. W celu upewnienia się przed chwilą uruchomiłem swój serwer i jestem w stanie spokojnie wpisywać komendę 4 razy na sekundę, a jedyna wiadomość wysyłana do mnie to "Odczekaj x.". Wynika z tego, że Pan po swojej stronie ma jakieś zabezpieczenie powstrzymujące graczy przed zbyt częstym wpisywaniem komend. command /cooldowntest: trigger: send "Test." to sender Niech Pan przetestuje powyższy kod poprzez jak najczęstsze wpisywanie tej komendy. Może Pan sobie zmienić jej nazwę, ona nie gra roli. Jeśli i w tym przypadku pojawi się wiadomość o zbyt częstym używaniu komendy, moja teza się potwierdzi. Cytuj Odnośnik do komentarza https://skript.pl/temat/57367-problem-z-cooldown-wiadomoscia/#findComment-341871 Udostępnij na innych stronach Więcej opcji udostępniania...
0 xSebix1 1 Opublikowano 21 kwietnia 2024 Autor Udostępnij Opublikowano 21 kwietnia 2024 26 minut temu, Kormic napisał: Jak sam Pan widzi, nigdzie w przykładowym kodzie nie dodałem takiej funkcji. W celu upewnienia się przed chwilą uruchomiłem swój serwer i jestem w stanie spokojnie wpisywać komendę 4 razy na sekundę, a jedyna wiadomość wysyłana do mnie to "Odczekaj x.". Wynika z tego, że Pan po swojej stronie ma jakieś zabezpieczenie powstrzymujące graczy przed zbyt częstym wpisywaniem komend. command /cooldowntest: trigger: send "Test." to sender Niech Pan przetestuje powyższy kod poprzez jak najczęstsze wpisywanie tej komendy. Może Pan sobie zmienić jej nazwę, ona nie gra roli. Jeśli i w tym przypadku pojawi się wiadomość o zbyt częstym używaniu komendy, moja teza się potwierdzi. Dziala pokazuje sie ojoj musisz odczekac jeszcze (czas) przed ponownym uzyciem Cytuj Odnośnik do komentarza https://skript.pl/temat/57367-problem-z-cooldown-wiadomoscia/#findComment-341874 Udostępnij na innych stronach Więcej opcji udostępniania...
0 Kormic 1951 Opublikowano 21 kwietnia 2024 Udostępnij Opublikowano 21 kwietnia 2024 10 minut temu, xSebix1 napisał: Dziala pokazuje sie ojoj musisz odczekac jeszcze (czas) przed ponownym uzyciem Nie rozumiem. Wszystko jest już w porządku? Czy przetestował Pan kod komendy /cooldowntest w taki sposób jak zaproponowałem? Cytuj Odnośnik do komentarza https://skript.pl/temat/57367-problem-z-cooldown-wiadomoscia/#findComment-341875 Udostępnij na innych stronach Więcej opcji udostępniania...
Pytanie
xSebix1 1
jak zrobic zeby w tym skrypcie ktory jest u gory pisalo ze musisz odczekac np 10s zeby uzyc tego ponownie
Formatuję kod.
Notatka dodana przez GRIERIOR
Odnośnik do komentarza
https://skript.pl/temat/57367-problem-z-cooldown-wiadomoscia/Udostępnij na innych stronach
11 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ą.