Skocz do zawartości
  • 0

Czas w kitach (Pomocy)


KrychaMC09

Pytanie

Czas w kitach nie zmniejsza sie dla graczy offline.

Da sie zrobic tak zeby dzialalo to dla graczy offline podalem wam sposob ktorym to zrobilem.

every 1 seconds:
    loop all players:
        if {czas.vip.%loop-player%} is set:
            if {czas.vip.%loop-player%} is greater than 0:
                remove 1 from {czas.vip.%loop-player%}

 

Edytowane przez CountingDogs
Czas w kitach (Problem Pomocy)
CountingDogs

Łączę posty.

Notatka dodana przez CountingDogs

Odnośnik do komentarza
https://skript.pl/temat/42553-czas-w-kitach-pomocy/
Udostępnij na innych stronach

11 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 0
14 minut temu, KrychaMC09 napisał:

Mianowicie chcialbym zrobic czas w kitach ale umiem tylko gdy gracz na serwerze jest ale jak nie ma czas w kitach mu sie nie zmniejsza  mozna jakos to zrobic  zeby dzialalo to dla graczy offline?

every 1 seconds:
    loop all players:
        if {czas.vip.%loop-player%} is set:
            if {czas.vip.%loop-player%} is greater than 0:
                remove 1 from {czas.vip.%loop-player%}

Nie zalecam robić cooldownu kitów w ten sposób. Masz dwa wyjścia:

1. Jeżeli ten kit jest odbierany poprzez komendę i posiadasz wersję Skripta 2.2-dev33 lub wyższą, możesz to zrobić w prosty sposób.

Mały przykład:

command /kitgracz:
	executable by: players
	cooldown: 1 day
	cooldown messsage: &cNie możesz jeszcze odebrać tego kitu!
	cooldown storage: {kitGracz::%player%}
	trigger:
		give player diamond sword
		give player diamond helmet

W tym sposobie używamy że tak to określę, opcji komendy, w których możemy w prosty i krótki sposób zdefiniować chociażby cooldown.

2. Istnieje również drugi sposób, który sam często stosuję, ma on zastosowanie i w komendach, i w eventach.

Przykład:

command /kitgracz:
	trigger:
		if {cooldown::kitGracz::%player%} is set:
			if difference between {cooldown::kitGracz::%player%} and now is less than 1 day:
				send "&cNie możesz jeszcze odebrać tego kitu!" to player
				stop
		set {cooldown::kitGracz::%player%} to now 		
		give player diamond sword
		give player diamond helmet

Tutaj za to sprawdzamy różnicę między czasem zapisanym w zmiennej a czasem obecnym (oczywiście uprzednio sprawdzając czy zmienna jest ustawiona). Jeżeli różnica jest większa niż bądź równa jak w przykładzie 1 dniowi, warunek nie wykonuje się dalej, zmienna ustawia swoją wartość jako czas obecny, a następnie daje graczowi zapisane w skrypcie przedmioty.

W innym przypadku gdy różnica jest mniejsza niż 1 dzień,  wtedy wykonuje się kod po warunku wskutek czego gracz otrzymuje wiadomość zwrotną, a chwilę po tym kod zostaje zatrzymany.

Edytowane przez Kormic
Odnośnik do komentarza
https://skript.pl/temat/42553-czas-w-kitach-pomocy/#findComment-266689
Udostępnij na innych stronach

  • 0
Teraz, KrychaMC09 napisał:

A nie da sie zrobic loopowania dla osob offline ?

 

Owszem, da się, ale jest to niewydajne. Załóżmy, że będziesz miał łącznie kilkanaście tysięcy graczy, którzy weszli przynajmniej jeden raz na serwer. W dodatku wrzucisz to do periodicala odbywającego się co 1 sekundę. Jak myślisz, co się wtedy stanie?

Odnośnik do komentarza
https://skript.pl/temat/42553-czas-w-kitach-pomocy/#findComment-266693
Udostępnij na innych stronach

  • 0
Teraz, Kormic napisał:

Owszem, da się, ale jest to niewydajne. Załóżmy, że będziesz miał łącznie kilkanaście tysięcy graczy, którzy weszli przynajmniej jeden raz na serwer. W dodatku wrzucisz to do periodicala odbywającego się co 1 sekundę. Jak myślisz, co się wtedy stanie?

Nie wiem bo nie probowalem ale mozesz powiedziec

Odnośnik do komentarza
https://skript.pl/temat/42553-czas-w-kitach-pomocy/#findComment-266694
Udostępnij na innych stronach

  • 0
7 minut temu, KrychaMC09 napisał:

Nie wiem bo nie probowalem ale mozesz powiedziec

Dobra, powiem to prościej. Ty chcesz cały czas co 1 sekundę zapętlać wszystkich graczy, którzy kiedykolwiek weszli na twój serwer.

Chyba już rozumiesz przekaz, mam rację? Jeżeli tak, to dobrze. Użyj w takim wypadku tego, co ci zaproponowałem wyżej. Gdybyś miał te zmienne w liście, byłoby łatwiej, ale ty zamiast podwójnych dwukropków wstawiłeś jako separatory kropki w nazwach zmiennych.

Edytowane przez Kormic
Odnośnik do komentarza
https://skript.pl/temat/42553-czas-w-kitach-pomocy/#findComment-266696
Udostępnij na innych stronach

  • 0
8 minut temu, KrychaMC09 napisał:

Nie wiem bo nie probowalem ale mozesz powiedziec

nic się nie stanie, możesz śmiało loopować, użyj kodu poniżej:
 

set {_players::*} to all offline players
loop {_players::*}:
	#twój kod, tylko zamiast loop-player używasz loop-value

 

Odnośnik do komentarza
https://skript.pl/temat/42553-czas-w-kitach-pomocy/#findComment-266697
Udostępnij na innych stronach

  • 0
28 minut temu, PanMaruda napisał:

nic się nie stanie, możesz śmiało loopować, użyj kodu poniżej:
 



set {_players::*} to all offline players
loop {_players::*}:
	#twój kod, tylko zamiast loop-player używasz loop-value

 

Dzieki wypróbuje @Kormic Twoj sposob tez jest dobry ale najpierw ten przetestuje

 

 

28 minut temu, PanMaruda napisał:

nic się nie stanie, możesz śmiało loopować, użyj kodu poniżej:
 




set {_players::*} to all offline players
loop {_players::*}:
	#twój kod, tylko zamiast loop-player używasz loop-value

 

Mozesz mi to zamienic z tym co ty mi zaproponowales

every 1 seconds:
    loop all players:
        if {czas.vip.%loop-player%} is set:
            if {czas.vip.%loop-player%} is greater than 0:
                remove 1 from {czas.vip.%loop-player%}

 

CountingDogs

Łączę posty i wstawiam w code

Notatka dodana przez CountingDogs

Odnośnik do komentarza
https://skript.pl/temat/42553-czas-w-kitach-pomocy/#findComment-266698
Udostępnij na innych stronach

  • 0
28 minut temu, KrychaMC09 napisał:

Mozesz mi to zamienic z tym co ty mi zaproponowales


every 1 seconds:
    loop all players:
        if {czas.vip.%loop-player%} is set:
            if {czas.vip.%loop-player%} is greater than 0:
                remove 1 from {czas.vip.%loop-player%}

 

nie, nie mogę - w miejscu drugiej linijki wstawiasz dwie linijki, które ja ci przesłałem, a następnie zamieniasz we wszystkich zmiennych wartość loop-player na loop-value

Odnośnik do komentarza
https://skript.pl/temat/42553-czas-w-kitach-pomocy/#findComment-266713
Udostępnij na innych stronach

  • 0
3 godziny temu, PanMaruda napisał:

nie, nie mogę - w miejscu drugiej linijki wstawiasz dwie linijki, które ja ci przesłałem, a następnie zamieniasz we wszystkich zmiennych wartość loop-player na loop-value

Tak ?

every 1 seconds:
        set {_players::*} to all offline players
        loop {_players::*}:
    loop all players:
        if {czas.vip.%loop-value%} is set:
            if {czas.vip.%loop-value%} is greater than 0:
                remove 1 from {czas.vip.%loop-value%}

 

Edytowane przez xAxee
xAxee

Wstawiam w code

Notatka dodana przez xAxee

Odnośnik do komentarza
https://skript.pl/temat/42553-czas-w-kitach-pomocy/#findComment-266715
Udostępnij na innych stronach

  • 0
3 godziny temu, KrychaMC09 napisał:

Tak ?


every 1 seconds:
        set {_players::*} to all offline players
        loop {_players::*}:
    loop all players:
        if {czas.vip.%loop-value%} is set:
            if {czas.vip.%loop-value%} is greater than 0:
                remove 1 from {czas.vip.%loop-value%}

 

usuń linijkę z loop all players
popraw wcięcia w skrypcie

W dniu 22.08.2020 o 12:26, PanMaruda napisał:

jak wiadomo - po każdym dwukropku następna linia musi być poprzedzona o jedno wcięcie więcej
'wcięcie' ustalamy zawsze w drugiej linijce każdego wydarzenia, funkcji czy tak jak w tym przypadku - komendy. Wcięcie składa się z dowolnej liczby spacji lub tabulatorów (przy czym najczęściej wykorzystywanym i najbardziej przejrzystym jest jeden tabulator (klawisz TAB).
Wcięć nie wolno mieszać w pojedynczej sekcji skryptu - jeżeli w drugiej linijce użyliśmy jednego taba, tak we wszystkich kolejnych musi to być jeden tab (a nie powiedzmy 4 spacje)

Edytowane przez xAxee
xAxee

Poprawiam cytat

Notatka dodana przez xAxee

Odnośnik do komentarza
https://skript.pl/temat/42553-czas-w-kitach-pomocy/#findComment-266716
Udostępnij na innych stronach

  • 0
3 godziny temu, PanMaruda napisał:

usuń linijkę z loop all players
popraw wcięcia w skrypcie

every 1 seconds:
        set {_players::*} to all offline players
        loop {_players::*}:
            if {czas.vip.%loop-value%} is set:
        if {czas.vip.%loop-value%} is greater than 0:
            remove 1 from {czas.vip.%loop-value%}

Tak?

 

3 godziny temu, KrychaMC09 napisał:

every 1 seconds:
        set {_players::*} to all offline players
        loop {_players::*}:
            if {czas.vip.%loop-value%} is set:
        if {czas.vip.%loop-value%} is greater than 0:
            remove 1 from {czas.vip.%loop-value%}

Tak?

@PanMaruda Mozesz mi w code skripcie zrobic i wyslac ?

 

@PanMaruda Nie dziala mi cos zle robie chyba we mi wyslij w code.skript.pl

 

3 godziny temu, PanMaruda napisał:

usuń linijkę z loop all players
popraw wcięcia w skrypcie

Cytat

[12:19:49 WARN]: [Skript] Empty configuration section! You might want to indent one or more of the subsequent lines to make them belong to this section or remove the colon at the end of the line if you don't want this line to start a section. (kity.sk, line 70: if {czas.vip.%loop-value%} is greater than 0:')
[12:19:49 ERROR]: [Skript] There's no loop that matches 'loop-value' (kity.sk, line 64: if {czas.gracz.%loop-value%} is greater than 0:')
[12:19:49 ERROR]: [Skript] 'offline players' is not an entity type (kity.sk, line 67: set {_players::*} to all offline players')

 

 

2 godziny temu, KrychaMC09 napisał:

 

@PanMaruda

Edytowane przez xAxee
xAxee

Wstawiam w code

Notatka dodana przez xAxee

xAxee

Łączę posty

Notatka dodana przez xAxee

Odnośnik do komentarza
https://skript.pl/temat/42553-czas-w-kitach-pomocy/#findComment-266717
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ę...