Skocz do zawartości
  • 0

Chcę aby wiadomość wysyłała się co ustalony czas.


THEzombiePL
 Udostępnij

Pytanie

Piszę skrypt na auto wiadomości i auto komendy z konfiguracją w pliku.yml ale mam taki problem:

skrypt wysyła "Hello" po 10 sekundach, następnie czeka 15 sekund, wysyła "Hi" i przestaje wysyłać. 

Chciałbym zrobić tak, że jeśli „cooldown” pierwszej wiadomości jest ustawiony na 15 sekund, wówczas wysyła tę wiadomość co 15 sekund. Wie ktoś jak to zrobić? Z góry dzięki. 

Kod:

on load:
 set {_1::*} to yaml node keys "list" from "config"
 loop {_1::*}:
  set {_d::msg::%loop-value%} to yaml value "list.%loop-value%.msg" from "config"
  set {_d::cooldown::%loop-value%} to yaml value "list.%loop-value%.cooldown" from "config" parsed as timespan
  wait {_d::cooldown::%loop-value%}
  send "%{_d::msg::%loop-value%}%" to console

Config:

list:
    listname1:
        msg: '&6Hello'
        cooldown: 10 seconds
    listname2:
        msg: '&3Hi'
        cooldown: 15 seconds

 

Odnośnik do komentarza
Udostępnij na innych stronach

7 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 0
on load:
	clear {msg::*}
	loop (yaml nodes "list" from file "config"):
		set {msg::%loop-value%::message} to yaml value "list.%loop-value%.msg" from file "config"
		set {msg::%loop-value%::time} to yaml value "list.%loop-value%.cooldown" from file "config" parsed as timespan
		set {msg::%loop-value%::cd} to yaml value "list.%loop-value%.cooldown" from file "config" parsed as timespan
every second:
	loop {msg::*}:
		remove 1 from {msg::%loop-index%::cd}
		if {msg::%loop-index%::cd} <= 0 second:
			send colored {msg::%loop-index%::message} to all players
			set {msg::%loop-index%::cd} to {msg::%loop-index%::time}

 

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
37 minut temu, xAxee napisał:

on load:
	clear {msg::*}
	loop (yaml nodes "list" from file "config"):
		set {msg::%loop-value%::message} to yaml value "list.%loop-value%.msg" from file "config"
		set {msg::%loop-value%::time} to yaml value "list.%loop-value%.cooldown" from file "config" parsed as timespan
		set {msg::%loop-value%::cd} to yaml value "list.%loop-value%.cooldown" from file "config" parsed as timespan
every second:
	loop {msg::*}:
		remove 1 from {msg::%loop-index%::cd}
		if {msg::%loop-index%::cd} <= 0 second:
			send colored {msg::%loop-index%::message} to all players
			set {msg::%loop-index%::cd} to {msg::%loop-index%::time}

 

Na początku wystąpił błąd i przerobiłem to na skript-yaml, ale dalej działa tak, że wiadomość druga wysyła się 20 sekund po pierwszej, a chcę, aby wysyłała się co 20 sekund niezależnie od 1

Okazuje się że to wgl nie działa, a wcześniej miałem jeszcze kawałek mojego kodu :(

Edytowane przez xAxee
xAxee

Łączę posty

Notatka dodana przez xAxee

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
2 godziny temu, THEzombiePL napisał:

Dalej nie działa, a nie ma żadnego błędu

on load:
	clear {msg::*}
	loop (yaml nodes "list" from file "config"):
		set {msg::%loop-value%::message} to yaml value "list.%loop-value%.msg" from file "config"
		set {msg::%loop-value%::time} to yaml value "list.%loop-value%.cooldown" from file "config" parsed as timespan
		set {msg::%loop-value%::cd} to yaml value "list.%loop-value%.cooldown" from file "config" parsed as timespan
every second:
	loop {msg::*}:
		remove 1 second from {msg::%loop-index%::cd}
		if {msg::%loop-index%::cd} is 1 second:
			send colored {msg::%loop-index%::message} to all players
			set {msg::%loop-index%::cd} to {msg::%loop-index%::time}

 

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
31 minut temu, xAxee napisał:

on load:
	clear {msg::*}
	loop (yaml nodes "list" from file "config"):
		set {msg::%loop-value%::message} to yaml value "list.%loop-value%.msg" from file "config"
		set {msg::%loop-value%::time} to yaml value "list.%loop-value%.cooldown" from file "config" parsed as timespan
		set {msg::%loop-value%::cd} to yaml value "list.%loop-value%.cooldown" from file "config" parsed as timespan
every second:
	loop {msg::*}:
		remove 1 second from {msg::%loop-index%::cd}
		if {msg::%loop-index%::cd} is 1 second:
			send colored {msg::%loop-index%::message} to all players
			set {msg::%loop-index%::cd} to {msg::%loop-index%::time}

 

Ten kod również nie działa, ale posadziłem sobie za pomocą funkcji. 

Do zamknięcia

Odnośnik do komentarza
Udostępnij na innych stronach

Nieaktywny
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
 Udostępnij

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...