Skocz do zawartości
  • 0

Licznik czasu.


dragon5585

Pytanie

Witam. Potrzebowałbym skrypt który po wejściu w dany region zaczyna odliczać czas np gracz Maniek ma 5minut aby zabić jakiegoś bossa jak go nie zabije w ciągu tych 5 min to teleportuje go na spawn i jak wejdzie znow w ten region to liczy mu czas od nowa. Chcialbym aby np jak zabije tego bossa w ciągu 3 min to czas sie resetuje i teleportuje na spawn. I chcialbym również aby każdy gracz mial indywidualny czas.

Odnośnik do komentarza
https://skript.pl/temat/54171-licznik-czasu/
Udostępnij na innych stronach

8 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 0
on enter region:
	region name is "nazwa regionu"
	reset {time::%player's uuid%}
	reset {time2::%player's uuid%}
	set {time::%player's uuid%} to now
	set {time2::%player's uuid%} to "difference between {time::%player's uuid%} and now%"
	if {time2::%player's uuid%} = 5:
		execute player command "/spawn"
		stop
	if {time2::%player's uuid%} < 5:
		#kod
		

Nie testowane
Nie wiem jakiego masz bosa itp. Więc po "#kod" dopisz np. jeśli gracz zabije bossa stop itd.

Odnośnik do komentarza
https://skript.pl/temat/54171-licznik-czasu/#findComment-329071
Udostępnij na innych stronach

  • 0

w propozycji wyżej jest execute player command /spawn... na większości serwerów trzeba stać nieruchomo przez 5 sekund aby się tepnąć jako gracz na spawn więc proponuje dac console command
po za tym używając zmiennych tymczasowych nie zaśmiecasz sobie pliku ze zmniennymi
 

on entering of region "spawn":
	set {_time} to now
	set {_difference} to difference between {_time} and {_now}
	if {_difference} >= 5 minutes:
		execute console command "/spawn %player%"
		#kod zabijający/restujący bossa
		stop
	#kod respiący bossa
	
on exiting of region "spawn":
	if #player nie zabil bossa#:
		#kod zabijający/restujący bossa

oczywiście 2 sekcji używasz tylko jeżeli gracz może opuszczać ten region

Odnośnik do komentarza
https://skript.pl/temat/54171-licznik-czasu/#findComment-329078
Udostępnij na innych stronach

  • 0
1 godzinę temu, Saanjuk napisał:

w propozycji wyżej jest execute player command /spawn... na większości serwerów trzeba stać nieruchomo przez 5 sekund aby się tepnąć jako gracz na spawn więc proponuje dac console command
po za tym używając zmiennych tymczasowych nie zaśmiecasz sobie pliku ze zmniennymi
 

on entering of region "spawn":
	set {_time} to now
	set {_difference} to difference between {_time} and {_now}
	if {_difference} >= 5 minutes:
		execute console command "/spawn %player%"
		#kod zabijający/restujący bossa
		stop
	#kod respiący bossa
	
on exiting of region "spawn":
	if #player nie zabil bossa#:
		#kod zabijający/restujący bossa

oczywiście 2 sekcji używasz tylko jeżeli gracz może opuszczać ten region

Jak wpisze set {_time} to now (To teleportuje po minucie na spawn)
Jak wpisze set {_time} to 15 (To teleportuje po 15 minutach na spawn tak jak powinno ale każdy gracz posiada ten sam  czas czyli jak np Gracz123 wejdzie na ten region i po 5 minutach wejdzie jakiś Gracz923 to ten czas jest u obu graczy jest 15min tak jakby się resetował a chciałbym aby np gracz123 miał taki czas jak powinien a nie żeby się resetowało do 15 min czyli tak jak ustawiłem )

Odnośnik do komentarza
https://skript.pl/temat/54171-licznik-czasu/#findComment-329081
Udostępnij na innych stronach

  • 0
on entering of region "spawn":
	set {_time::%player%} to now
	set {_difference::%player%} to difference between {_time::%player%} and now
	if {_difference::%player%} >= 15 minutes:
		execute console command "/spawn %player%"
		#kod zabijający/restujący bossa
		stop
	#kod respiący bossa
	
on exiting of region "spawn":
	if #player nie zabil bossa#:
		#kod zabijający/restujący bossa

 

Odnośnik do komentarza
https://skript.pl/temat/54171-licznik-czasu/#findComment-329083
Udostępnij na innych stronach

  • 0
16 godzin temu, Saanjuk napisał:

w propozycji wyżej jest execute player command /spawn... na większości serwerów trzeba stać nieruchomo przez 5 sekund aby się tepnąć jako gracz na spawn więc proponuje dac console command
po za tym używając zmiennych tymczasowych nie zaśmiecasz sobie pliku ze zmniennymi
 

on entering of region "spawn":
	set {_time} to now
	set {_difference} to difference between {_time} and {_now}
	if {_difference} >= 5 minutes:
		execute console command "/spawn %player%"
		#kod zabijający/restujący bossa
		stop
	#kod respiący bossa
	
on exiting of region "spawn":
	if #player nie zabil bossa#:
		#kod zabijający/restujący bossa

oczywiście 2 sekcji używasz tylko jeżeli gracz może opuszczać ten region

Póki jest okazja wprowadzę ci jedną podstawową zasadę. 
"Jeżeli w skrypcie widzisz execute command, zawsze sprawdzaj czy nie ma możliwości zamiany go na składnię ze skripta" - wtedy żaden plugin nie jest dodatkowo obciążany zasobami przez skripta, tylko sam skript, nie jak w tym przypadku plugin odpowiadający za /spawn. Tą komendę można z łatwością zamienić na składnię ze skripta: https://docs.skriptlang.org/expressions.html#ExprSpawn

execute console command "/spawn %player%" => teleport player to spawn

 

Odnośnik do komentarza
https://skript.pl/temat/54171-licznik-czasu/#findComment-329087
Udostępnij na innych stronach

  • 0
W dniu 14.01.2023 o 21:43, Saanjuk napisał:
on entering of region "spawn":
	set {_time::%player%} to now
	set {_difference::%player%} to difference between {_time::%player%} and now
	if {_difference::%player%} >= 15 minutes:
		execute console command "/spawn %player%"
		#kod zabijający/restujący bossa
		stop
	#kod respiący bossa
	
on exiting of region "spawn":
	if #player nie zabil bossa#:
		#kod zabijający/restujący bossa

 

Teraz jest dobrze. A jak dodać aby co minute pokazywało że zostało np 14min, 13min itd aż do 0

 

Bo jak robie tak:
 

 

To wywala mi taki błąd:

There's no world in a periodic event if no world is given in the event (e.g. like 'every hour in "world"') (test.sk, line 167: if {_time::%player%} is set "Zaswiaty":')

ivall

Łączę posty

Notatka dodana przez ivall

Odnośnik do komentarza
https://skript.pl/temat/54171-licznik-czasu/#findComment-329110
Udostępnij na innych stronach

  • 0

Nie rozumiem czemu zawzięcie się czepiłeś if {_time::%player%}

Pozostały czas wg kodu który ci podałem to {_difference::%player%}

Nie rozumiem po co usuwać minute z tego czasu itp...

możesz to rozwiązać np tak:
 

on entering of region "spawn":
	set {_time::%player%} to now
	set {_difference::%player%} to difference between {_time::%player%} and now
	#kod respiący bossa
	loop 15 times:
		if {_difference::%player%} = loop-number minutes:
			send "Pozostało Ci %(15 - %loop-number%)% minut na pokonanie bossa"
			wait 1 minute
	if {_difference::%player%} >= 15 minutes:
		execute console command "/spawn %player%"
		#kod zabijający/restujący bossa
		stop


on exiting of region "spawn":
	if #player nie zabil bossa#:
		#kod zabijający/restujący bossa

 

Edytowane przez Saanjuk
Odnośnik do komentarza
https://skript.pl/temat/54171-licznik-czasu/#findComment-329141
Udostępnij na innych stronach

  • 0
W dniu 16.01.2023 o 22:14, Saanjuk napisał:

Nie rozumiem czemu zawzięcie się czepiłeś if {_time::%player%}

Pozostały czas wg kodu który ci podałem to {_difference::%player%}

Nie rozumiem po co usuwać minute z tego czasu itp...

możesz to rozwiązać np tak:
 

on entering of region "spawn":
	set {_time::%player%} to now
	set {_difference::%player%} to difference between {_time::%player%} and now
	#kod respiący bossa
	loop 15 times:
		if {_difference::%player%} = loop-number minutes:
			send "Pozostało Ci %(15 - %loop-number%)% minut na pokonanie bossa"
			wait 1 minute
	if {_difference::%player%} >= 15 minutes:
		execute console command "/spawn %player%"
		#kod zabijający/restujący bossa
		stop


on exiting of region "spawn":
	if #player nie zabil bossa#:
		#kod zabijający/restujący bossa

 

Taki błąd pokazuje w konsoli:

There's no loop that matches 'loop-number minutes' (test.sk, line 64: if {_difference::%player%} = loop-number minutes:')

Odnośnik do komentarza
https://skript.pl/temat/54171-licznik-czasu/#findComment-329226
Udostępnij na innych stronach

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ą.

Nieaktywny
Odpowiedz na pytanie...

×   Wklejono zawartość z formatowaniem.   Usuń formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

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

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