Skocz do zawartości
  • 0

antyafk


Koksu123

Pytanie

Potrzebuje skryptu ktory bedzie wyrzucal osoby ktore staja afk z powodem "&c&lZostales zkickowany za stanie AFK!"

ale osoby ktore beda dodane do antyafka co niebedzie ich wyrzucalo przez komende /antyafk dodaj (gracz) beda mogli stac afk

Edytowane przez Koksu123
Odnośnik do komentarza
https://skript.pl/temat/41459-antyafk/
Udostępnij na innych stronach

4 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 0
30 minut temu, Koksu123 napisał:

Potrzebuje skryptu ktory bedzie wyrzucal osoby ktore staja afk z powodem "&c&lZostales zkickowany za stanie AFK!"

ale osoby ktore beda dodane do antyafka co niebedzie ich wyrzucalo przez komende /antyafk dodaj (gracz) beda mogli stac afk

Wiem, że można ustawić kickowanie graczy AFK w Essentials, ale czy jest wyjątek dla permisji? Tego nie wiem.

W każdym bądź razie, tutaj skrypt:

options:
	
	# Co ile sekund ma się powtarzać pętla
	afk-loop-czas: 5
	
	# Jaki jest wymagany minimalny dystans (w metrach (kratkach)) od ostatnio zapisanego punktu gracza, aby nie zaczęło się dla niego odliczanie
	afk-wymagany-dystans: 0.1
	
	# Ile sekund gracz musi być afk, aby został wyrzucony
	afk-wymagane-sekundy: 120
	
	# Powod wyrzucenia za afk
	afk-kick-powod: &cNie wolno byc AFK!

on join:
	set {afk::seconds::%player%} to 0

every {@afk-loop-czas} seconds:
	loop all players:
		if {afk::ignorowani::*} contains loop-player:
			continue
		if {loc::afk::%loop-player%} is not set:
			set {loc::afk::%loop-player%} to location of the loop-player
		if distance between {loc::afk::%loop-player%} and loop-player's location is greater than or equal to {@afk-wymagany-dystans}:
			set {afk::seconds::%loop-player%} to 0
		else:
			add {@afk-loop-czas} to {afk::seconds::%loop-player%}
		if {afk::seconds::%loop-player%} is greater than or equal to {@afk-wymagane-sekundy}:
			kick loop-player due to "{@afk-kick-powod}"
			set {afk::seconds::%loop-player%} to 0
			
command /antyafk <text> <offline player>:
	trigger:
		if sender is not console:
			if player is not op:
				stop
		if arg 1 is "dodaj":
			add arg 2 to {afk::ignorowani::*}
			send "&aPomyslnie dodano gracza &6%arg 2% &ado ignorowanych przez AntyAFK!" to sender
		else if arg 1 is "usun":
			remove arg 2 from {afk::ignorowani::*}
			send "&aPomyslnie usunieto gracza &6%arg 2% &az ignorowanych przez AntyAFK!" to sender

W razie jakichkolwiek błędów daj znać.

Odnośnik do komentarza
https://skript.pl/temat/41459-antyafk/#findComment-259455
Udostępnij na innych stronach

  • 0
6 minut temu, Koksu123 napisał:

@Kormic jestes koksem totalnym <3

Możesz sobie jeszcze ewentualnie dorzucić jakiś title, aby gracz wiedział, że zostanie zaraz wyrzucony. Możesz dodać nad tym:

if {afk::seconds::%loop-player%} is greater than or equal to {@afk-wymagane-sekundy}:
	kick loop-player due to "{@afk-kick-powod}"
	set {afk::seconds::%loop-player%} to 0

to:

if ({afk::seconds::%loop-player%} + {@afk-loop-czas}) is greater than or equal to {@afk-wymagane-sekundy}:
	send title "&cRusz sie!" with subtitle "&6Za chwilę zostaniesz wyrzucony za AFK!" to loop-player

Tylko w tym przypadku pamiętaj, aby czas między loopami był w miarę duży (np. 5 sekund, a nie 1-3 sekundy).

EDIT:

Możesz sobie równiez w tym warunku zamienić:

{@afk-loop-czas}

na:

({@afk-loop-czas} * 2)

Możesz nawet dać razy 3, jeśli nie będzie wystarczająco. Dzięki temu podwojeniu tej wartości gracz będzie miał nieco więcej czasu na reakcję.

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

Nieaktywny
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
  • Ostatnio przeglądający   0 użytkowników

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