Skocz do zawartości
  • 0

Ekwipunek


gnomq

Pytanie

7 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 0
55 minut temu, gnomq2000 napisał:

Niestety gracze po upływie 12 godzin wciąż nie tracą ekwipunka po śmierci

Spróbuj w ten sposób:

every 1 second:
	loop {ochrona::itemow::gracze::*}:
		if difference between {ochrona::itemow::czas::%loop-value%} and now is less than 12 hours:
			continue
		clear {ochrona::itemow::czas::%loop-value%}
		remove loop-value from {ochrona::itemow::gracze::*}
		if loop-value is online:
			send " &8● &cOchrona twoich itemów skończyła się! Powodzenia!" to loop-value
		else:
			add loop-value to {ochrona::itemow::powiadomienie::*}
		
on first join:
	add player to {ochrona::itemow::gracze::*}
	set {ochrona::itemow::czas::%player%} to now
    
on join:
    if {ochrona::itemow::powiadomienie::*} doesn't contain player:
        stop
    remove player from {ochrona::itemow::powiadomienie::*}
    send " &8● &cOchrona twoich itemów skończyła się! Powodzenia!" to player
            
on death of player:
    if {ochrona::itemow::czas::%victim%} is not set:
        stop
    keep items and xp
    cancel drops

Proszę.

EDIT:

Mała poprawka.

Edytowane przez Kormic
Odnośnik do komentarza
https://skript.pl/temat/41605-ekwipunek/#findComment-260555
Udostępnij na innych stronach

  • 0
7 minut temu, Kormic napisał:

Spróbuj w ten sposób:


every 1 second:
	loop {ochrona::itemow::gracze::*}:
		if difference between {ochrona::itemow::czas::%loop-value%} and now is less than 12 hours:
			continue
		clear {ochrona::itemow::czas::%loop-value%}
		remove loop-value from {ochrona::itemow::gracze::*}
		if loop-value is online:
			send " &8● &cOchrona twoich itemów skończyła się! Powodzenia!" to loop-value
		else:
			add loop-value to {ochrona::itemow::powiadomienie::*}
		
on first join:
	add player to {ochrona::itemow::gracze::*}
	set {ochrona::itemow::czas::%player%} to now
    
on join:
    if {ochrona::itemow::powiadomienie::*} doesn't contain player:
        stop
    remove player from {ochrona::itemow::powiadomienie::*}
    send " &8● &cOchrona twoich itemów skończyła się! Powodzenia!" to player
            
on death of player:
    if {ochrona::itemow::czas::%victim%} is not set:
        stop
    keep items and xp
    cancel drops

Proszę.

EDIT:

Mała poprawka.

gracje

zobaczymy z czasem :) 

Edytowane przez gnomq2000
Odnośnik do komentarza
https://skript.pl/temat/41605-ekwipunek/#findComment-260556
Udostępnij na innych stronach

  • 0
Teraz, gnomq2000 napisał:

temat do zamknięcia

Nie zamykaj jeszcze tematu, nie ma sensu robić kolejnego jak się pojawi jakiś błąd.

Jeśli nie chcesz tyle czekać to zmień czas w linijce nr 3 z '12 hours' na np. '1 minute'.

Odnośnik do komentarza
https://skript.pl/temat/41605-ekwipunek/#findComment-260557
Udostępnij na innych stronach

  • 0

zależy - jedni stracą, drudzy nie - gracze który wejdą na serwer i do jego wyłączenia upłynie mniej jak 12h nigdy nie stracą swojego ekwipunku, cała reszta straci - tak kod napisany.

Dostałeś w tamtym wątku też skrypt ode mnie - nie wiem czy go testowałeś (pewnie nie, tak samo jak ja) ale wydaje mi się że będzie działał.

 

Tu od razu też informacja na temat wydajności (bo dopiero co pytałeś o 60 skryptów na serwerze) - jeżeli nawalisz takich rzeczy jak ci wysłał wyżej kormic, gdzie jest od zajebania pętli z czasówkami to raczej długo z takimi skryptami nie pociągniesz.

Odnośnik do komentarza
https://skript.pl/temat/41605-ekwipunek/#findComment-260558
Udostępnij na innych stronach

  • 0
4 minuty temu, PanMaruda napisał:

gracze który wejdą na serwer i do jego wyłączenia upłynie mniej jak 12h nigdy nie stracą swojego ekwipunku, cała reszta straci - tak kod napisany

Zdałem sobie wcześniej z tego sprawę, że pętle 'while' nie reaktywują się po restarcie serwera. Dlatego też zastosowałem pętlę 'every 1 second:'. Dzięki temu nikt nic nie straci i wszyscy będą szczęśliwi. Też aby ograniczyć loopowanie wszystkich graczy co sekundę, dodałem tych chronionych do listy. Zresztą, zobacz poprawiony skrypt i sam zrozumiesz.

Edytowane przez Kormic
Odnośnik do komentarza
https://skript.pl/temat/41605-ekwipunek/#findComment-260559
Udostępnij na innych stronach

  • 0
2 minuty temu, Kormic napisał:

Dlatego też zastosowałem pętlę 'every 1 second:'. Dzięki temu nikt nic nie straci i wszyscy będą szczęśliwi. Też aby ograniczyć loopowanie wszystkich graczy co sekundę, dodałem tych chronionych do listy. Zresztą, zobacz poprawiony skrypt i sam zobaczysz.

niewiele to zmienia bo brak pętli czasowych zawsze będzie lepszy od ich obecności w kodzie, amen.

Odnośnik do komentarza
https://skript.pl/temat/41605-ekwipunek/#findComment-260560
Udostępnij na innych stronach

  • 0
Teraz, PanMaruda napisał:

niewiele to zmienia bo brak pętli czasowych zawsze będzie lepszy od ich obecności w kodzie, amen.

Mógłbym obejść się i bez tego, ale w tamtym temacie autor tematu (gnomq) poprosił, aby było powiadomienie gdy skończy się ochrona.

Odnośnik do komentarza
https://skript.pl/temat/41605-ekwipunek/#findComment-260561
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ę...