Skocz do zawartości
  • 0

Antyafk


Maciekqqq2
 Udostępnij

Pytanie

Hej, czy jest ktoś w stanie napisać mi skrypt który po 5 minutach bycia afk wyswietlalby na ekranie napis "Halo, jesteś?" po czym rozpoczęło by się odliczanie od 10 do 0 (każdy napis wyswietlony na ekranie wydawalby dzwiek entity.cat.hiss)
Po skończeniu odliczania gracz miałby zostać wyrzucony z serwera

Odnośnik do komentarza
Udostępnij na innych stronach

14 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 0
function napis(p:player):
	loop 10 times:
		#{afkTimer::%{_p}%} is not set # nie została podana informacja czy ma byc takowy warunek
		set {_} to 11 - loop-number
		send {_p} title "%{_}%"
		play sound "entity.cat.hiss" to {_p}
		wait 1 second
	kick {_p} due to "ANTY-AFK"
	
on any move:
	{afkTimer::%player%} is set
	clear {afkTimer::%player%}
	
on quit:
	{afkTimer::%player%} is set
	clear {afkTimer::%player%}
	
every 5 seconds:
	loop all players:
		if {afkTimer::%loop-player%} is not set:
			set {afkTimer::%loop-player%} to 0
		add 1 to {afkTimer::%loop-player%}
		{afkTimer::%loop-player%} >= 60
		clear {afkTimer::%loop-player%}
		napis(loop-player)

Wymaga SkQuery. Przerobione z Zarejestruj się lub zaloguj, aby zobaczyć ukrytą treść!.

 

Edytowane przez CoFFeIN04
Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
10 minut temu, CoFFeIN04 napisał:
function napis(p:player):
	loop 10 times:
		#{afkTimer::%player%} is not set # nie została podana informacja czy ma byc takowy warunek
		send {_p} title "%11 - loop-number%"
		play sound "entity.cat.hiss" to {_p}
		wait 1 second
	kick {_p} due to "ANTY-AFK"
	
on any move:
	{afkTimer::%player%} is set
	clear {afkTimer::%player%}
	
on quit:
	{afkTimer::%player%} is set
	clear {afkTimer::%player%}
	
every 5 seconds:
	loop all players:
		if {afkTimer::%player%} is not set:
			set {afkTimer::%player%} to 0
		add 1 to {afkTimer::%player%}
		{afkTimer::%player%} >= 60
		clear {afkTimer::%player%}
		napis(loop-player)

Wymaga SkQuery. Przerobione z Zarejestruj się lub zaloguj, aby zobaczyć ukrytą treść!.

 

Wykrywa mi 5 błędów i odrazu słysze dźwięk syczenia kota mimo ruszania sie dalej po czym wywala mnie za bycie afk. Napis sie nawet nie wyświetla

 

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0

Widzę widzę, skopiowałem kod a on sam w sobie miał błędy, poniżej poprawiona wersja:

function napis(p:player):
	loop 10 times:
		#{afkTimer::%{_p}%} is not set # nie została podana informacja czy ma byc takowy warunek
		set {_} to 11 - loop-number
		send title "%{_}%" to {_p}
		play sound "entity.cat.hiss" to {_p}
		wait 1 second
	kick {_p} due to "ANTY-AFK"
	
on any move:
	{afkTimer::%player%} is set
	clear {afkTimer::%player%}
	
on quit:
	{afkTimer::%player%} is set
	clear {afkTimer::%player%}
	
every 5 seconds:
	loop all players:
		if {afkTimer::%loop-player%} is not set:
			set {afkTimer::%loop-player%} to 0
		add 1 to {afkTimer::%loop-player%}
		{afkTimer::%loop-player%} >= 60
		clear {afkTimer::%loop-player%}
		napis(loop-player)

 

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
3 minuty temu, CoFFeIN04 napisał:

Widzę widzę, skopiowałem kod a on sam w sobie miał błędy, poniżej poprawiona wersja:

Przecież to nie zadziała. Jak rozpocznie się odliczanie to już nic go nie zatrzyma, nawet poruszenie się gracza.

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
3 minuty temu, Kormic napisał:

Przecież to nie zadziała. Jak rozpocznie się odliczanie to już nic go nie zatrzyma, nawet poruszenie się gracza.

Wystarczy dodać zapisanie lokalizacji gracza i sprawdzanie go w pętli, aczkolwiek autor nie zamieścił informacji że tak ma to działać, wszystko wykonałem zgodnie z opisem. (ewentualnie można odkomentować ten warunek, ale wtedy wykonanie ruchu będzie możliwe do 5) 

 

edit: takie informacje podawaj w opisie zlecenia, zaraz podam poprawiony kod

Edytowane przez CoFFeIN04
Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
1 minutę temu, Maciekqqq2 napisał:

Właśnie chciałem o tym napisać, bo przy odliczaniu mimo poruszania sie mnie wywaliło

function napis(p:player):
	loop 10 times:
		{afkTimer::%{_p}%} is not set:
			send title "&aO, witaj z powrotem!" to {_p}
			stop
		set {_} to 11 - loop-number
		send title "%{_}%" to {_p}
		play sound "entity.cat.hiss" to {_p}
		wait 1 second
	kick {_p} due to "ANTY-AFK"
	
on any move:
	{afkTimer::%player%} is set
	clear {afkTimer::%player%}
	
on quit:
	{afkTimer::%player%} is set
	clear {afkTimer::%player%}
	
every 5 seconds:
	loop all players:
		if {afkTimer::%loop-player%} is not set:
			set {afkTimer::%loop-player%} to 0
		add 1 to {afkTimer::%loop-player%}
		{afkTimer::%loop-player%} >= 60
		clear {afkTimer::%loop-player%}
		napis(loop-player)

 

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
14 minut temu, Kormic napisał:
function napis(p:player):
	loop 10 times:
		{afkTimer::%{_p}%} is not set:
			send title "&aO, witaj z powrotem!" to {_p}
			stop
		set {_} to 11 - loop-number
		send title "%{_}%" to {_p}
		play sound "entity.cat.hiss" to {_p}
		wait 1 second
	kick {_p} due to "ANTY-AFK"
	
on any move:
	{afkTimer::%player%} is set
	clear {afkTimer::%player%}
	
on quit:
	{afkTimer::%player%} is set
	clear {afkTimer::%player%}
	
every 5 seconds:
	loop all players:
		if {afkTimer::%loop-player%} is not set:
			set {afkTimer::%loop-player%} to 0
		add 1 to {afkTimer::%loop-player%}
		{afkTimer::%loop-player%} >= 60
		clear {afkTimer::%loop-player%}
		napis(loop-player)

 

Teraz zauważyłem ,że nawet nie następuje odliczanie tylko odrazu pojawia się napis "O, witaj z powrotem" nawet bez ruszania się i nie wywala z serwera. Czyli w skrócie pokazuje tylko napis witaj z powrotem

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
Teraz, Maciekqqq2 napisał:

Teraz zauważyłem ,że nawet nie następuje odliczanie tylko odrazu pojawia się napis "O, witaj z powrotem" nawet bez ruszania się i nie wywala z serwera. Czyli w skrócie pokazuje tylko napis witaj z powrotem

Ach tak, bo jest czyszczenie zmiennej przed wywoływaniem funkcji. Usuń przedostatnią linijkę w skrypcie i powinno zadziałać.

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0

Czekaj, czekaj. Tak też nie zadziała.

Przed wywołaniem funkcji zmienna jest czyszczona, dlatego trzeba ją wyczyścić po wyrzuceniu gracza.

 

function napis(p:player):
	loop 10 times:
		{afkTimer::%{_p}%} is not set:
			send title "&aO, witaj z powrotem!" to {_p}
			stop
		set {_} to 11 - loop-number
		send title "%{_}%" to {_p}
		play sound "entity.cat.hiss" to {_p}
		wait 1 second
	kick {_p} due to "ANTY-AFK"
	
on any move:
	{afkTimer::%player%} is set
	clear {afkTimer::%player%}
	
on quit:
	{afkTimer::%player%} is set
	clear {afkTimer::%player%}
	
every 5 seconds:
	loop all players:
		if {afkTimer::%loop-player%} is not set:
			set {afkTimer::%loop-player%} to 0
		add 1 to {afkTimer::%loop-player%}
		{afkTimer::%loop-player%} >= 60
		napis(loop-player)

 

Na szybko testowane i działa

 

edit: nawet po kicku nie trzeba czyścić fakt

Edytowane przez CoFFeIN04
Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
3 godziny temu, CoFFeIN04 napisał:

Czekaj, czekaj. Tak też nie zadziała.

Przed wywołaniem funkcji zmienna jest czyszczona, dlatego trzeba ją wyczyścić po wyrzuceniu gracza.

 

function napis(p:player):
	loop 10 times:
		{afkTimer::%{_p}%} is not set:
			send title "&aO, witaj z powrotem!" to {_p}
			stop
		set {_} to 11 - loop-number
		send title "%{_}%" to {_p}
		play sound "entity.cat.hiss" to {_p}
		wait 1 second
	kick {_p} due to "ANTY-AFK"
	
on any move:
	{afkTimer::%player%} is set
	clear {afkTimer::%player%}
	
on quit:
	{afkTimer::%player%} is set
	clear {afkTimer::%player%}
	
every 5 seconds:
	loop all players:
		if {afkTimer::%loop-player%} is not set:
			set {afkTimer::%loop-player%} to 0
		add 1 to {afkTimer::%loop-player%}
		{afkTimer::%loop-player%} >= 60
		napis(loop-player)

 

Na szybko testowane i działa

 

edit: nawet po kicku nie trzeba czyścić fakt

Czy jest opcja dopisania czegoś takiego ,że admin nie będzie mógł zostać wyrzuconym za bycie AFK?

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
Teraz, Maciekqqq2 napisał:

Czy jest opcja dopisania czegoś takiego ,że admin nie będzie mógł zostać wyrzuconym za bycie AFK?

Pewnie. W 22. linijce (6. od dołu) możesz ustawić permisję admina.

function napis(p: player):
	loop 10 times:
		{afkTimer::%{_p}%} is not set:
			send title "&aO, witaj z powrotem!" to {_p}
			stop
		set {_} to 11 - loop-number
		send title "%{_}%" to {_p}
		play sound "entity.cat.hiss" to {_p}
		wait 1 second
	kick {_p} due to "ANTY-AFK"
	
on any move:
	{afkTimer::%player%} is set
	clear {afkTimer::%player%}
	
on quit:
	{afkTimer::%player%} is set
	clear {afkTimer::%player%}
	
every 5 seconds:
	loop all players:
		loop-player doesn't have permission "permisja.admin"
		if {afkTimer::%loop-player%} is not set:
			set {afkTimer::%loop-player%} to 0
		add 1 to {afkTimer::%loop-player%}
		{afkTimer::%loop-player%} >= 60
		napis(loop-player)

 

Odnośnik do komentarza
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.

 Udostępnij

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

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