Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Pytanie odnośnie timera


Rekomendowane odpowiedzi

Opublikowano

witam, mam problem z timerami, chodzi mi o to, że chce zrobić timera który działa na wszystkich graczy którzy są na konkretnej mapieo np id 3 i timer automatycznie petli się np o 5 sekund.. Próbowałem z loop_timer ale działa to tylko na jedną konkretną osobę na której zostanie wywołany, a nie na wszystkich graczy

Opublikowano

 

when login with pc.get_map_index() == 3 begin
loop_timer('timer_update', 5) -- 5 sec
end
 
when timer_update.timer begin
chat("Event UpdateTimer")
end

307681428489538142351.png

Metin2 Balmora Staff

Opublikowano

loop_timer - działa na jednego gracza, który wywoła quest (zapętlony)

timer - j.w tylko jednorazowo się wywoła

server_timer - ten już zadziała na wszystkich.

 

Przykład użycia, aby nie wyjebało game'a

 

quest test begin
	state start  begin
		when 20091.chat."Jakies zdarzenie" begin -- opcjonalnie take / use / kill etc.
			clear_server_timer('twoja_nazwa_timera', get_server_timer_arg())
			server_timer('twoja_nazwa_timera', 10*60, get_server_timer_arg())
		end
		
		when twoja_nazwa_timera.server_timer  begin
			-- Twoje akcje na timerze --
			pc.give_exp2(500)
			
			clear_server_timer('twoja_nazwa_timera', get_server_timer_arg())
			server_timer('twoja_nazwa_timera', 10*60, get_server_timer_arg())
		end
	end
end
Wszystkie timery przyjmują czas w sekundach, więc jeśli chcesz je zamienić na minuty, to mnożysz to przez 60, potrzebujesz w godzinach, to

mnożysz to przez 3600 itd. Tutaj masz fajną funckję do questa, która przeliczy Ci wskazaną liczbę na czytelny czas

 

		function TimeFormat(secs)

		local nSeconds = secs
			if nSeconds == 0 then
				coolTime = "00:00:00"
			else
				local nHours = string.format("%02.f", math.floor(nSeconds/3600))
				local nMins = string.format("%02.f", math.floor(nSeconds/60 - (nHours*60)))
				local nSecs = string.format("%02.f", math.floor(nSeconds - nHours*3600 - nMins *60))
				local t = nHours..":"..nMins..":"..nSecs
	
				return t
			end
		end
I tak np

 

say(TimeFormat(3600*24))
wyświetli:

24:00:00 -- 24 godziny
Miłej zabawy ;]

arijh2.jpg

Opublikowano

loop_timer - działa na jednego gracza, który wywoła quest (zapętlony)

timer - j.w tylko jednorazowo się wywoła

server_timer - ten już zadziała na wszystkich.

 

Przykład użycia, aby nie wyjebało game'a

 

quest test begin
	state start  begin
		when 20091.chat."Jakies zdarzenie" begin -- opcjonalnie take / use / kill etc.
			clear_server_timer('twoja_nazwa_timera', get_server_timer_arg())
			server_timer('twoja_nazwa_timera', 10*60, get_server_timer_arg())
		end
		
		when twoja_nazwa_timera.server_timer  begin
			-- Twoje akcje na timerze --
			pc.give_exp2(500)
			
			clear_server_timer('twoja_nazwa_timera', get_server_timer_arg())
			server_timer('twoja_nazwa_timera', 10*60, get_server_timer_arg())
		end
	end
end
Wszystkie timery przyjmują czas w sekundach, więc jeśli chcesz je zamienić na minuty, to mnożysz to przez 60, potrzebujesz w godzinach, to

mnożysz to przez 3600 itd. Tutaj masz fajną funckję do questa, która przeliczy Ci wskazaną liczbę na czytelny czas

 

		function TimeFormat(secs)

		local nSeconds = secs
			if nSeconds == 0 then
				coolTime = "00:00:00"
			else
				local nHours = string.format("%02.f", math.floor(nSeconds/3600))
				local nMins = string.format("%02.f", math.floor(nSeconds/60 - (nHours*60)))
				local nSecs = string.format("%02.f", math.floor(nSeconds - nHours*3600 - nMins *60))
				local t = nHours..":"..nMins..":"..nSecs
	
				return t
			end
		end
I tak np

 

say(TimeFormat(3600*24))
wyświetli:

24:00:00 -- 24 godziny
Miłej zabawy ;]

 

Polecam nie wypowiadać się jak c***a się wie. Jak chcesz dla server_timera wywołać funkcję dla playera? Game padnie.

 

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...