Skocz do zawartości
  • 0

Prosta AntyAura z botem


Random2178
 Udostępnij

Pytanie

Witam.

Czy zrobi mi ktoś prosty skrypt na anty aure z botem, który loopuje co jakiś czas wszystkich graczy, respi koło nich bota (lub tego bota teleportuje do nich). Ważne jest, aby ten skrypt nie używał "create a citizen named ".." at player" (czegoś takiego), ponieważ to u mnie nie działa (mam citizens)

Czekam na szybką pomoc.

Pozdrawiam.

Odnośnik do komentarza
Udostępnij na innych stronach

9 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 0

zrób resp moba, krowa, świnia byle co z nazwą.
Podczas uderzenia owego moba inny skrypt z eventem damage wykryje czy uderzony mob to nasz nazwany AntyAura mob i tyle, jeżeli tak to gracz ma aurę.

 

Polecam resp za plecami gracza, gdyż jest 1% szans aby w przeciągu 1sek. ktoś się obrócił, wycelował i uderzył moba a aura ma zasięg 360*

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
Teraz, JPablo napisał:

zrób resp moba, krowa, świnia byle co z nazwą.
Podczas uderzenia owego moba inny skrypt z eventem damage wykryje czy uderzony mob to nasz nazwany AntyAura mob i tyle, jeżeli tak to gracz ma aurę.

 

Polecam resp za plecami gracza, gdyż jest 1% szans aby w przeciągu 1sek. ktoś się obrócił, wycelował i uderzył moba a aura ma zasięg 360*

W zasadzie, wolałbym resp bota (npc), ponieważ moby wydają dźwięki po zabiciu, co by irytowało graczy. Ale, jeśli już, jakiego konkretnie moba polecasz (aby nie wydawał odgłosów)

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
10 minut temu, Ozelot napisał:

W zasadzie, wolałbym resp bota (npc), ponieważ moby wydają dźwięki po zabiciu, co by irytowało graczy. Ale, jeśli już, jakiego konkretnie moba polecasz (aby nie wydawał odgłosów)

niezauważalny głos to Nietoperz

Masz d otego kolejny plus, bo tego skubańca ciężko trafić normalnie a co dopiero zza pleców, wydaje on tylko krótki na 1sek pisk którego nikt nie powinien zauważyć, wystarczy że zrespisz go za graczem, a po 1/3 sekundach go zabijesz
Potem masz 2 drogi

 

Gracz uderzył nietoperza za plecami:
Skrypt nr2 sprawdza czy mob - BAT został uderzony > wykryj obrażenia > wyślij wiadomość do administracji > zabij nietoperza komendą > 90% Aura (albo nawet 100%)

 

Gracz nie uderzył nietoperka:
Mija 2/3 sek > usuwasz moba > mało kto się kapnie że mob w ogóle się pojawił

 

Dodatkowo jeżeli chcesz mieć 100% pewności na aurę daj mobowi efekt niewidzialności, nie da się uderzyć niewidzialnego małego nietoperza który jest za naszymi plecami - tylko sprawdź czy aura wykrywa niewidzialne moby wpierw

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0

Na szybko napisałem coś takiego, czy to zadziała?

	every 30 seconds:
    loop all players:
        spawn 1 bat named "%loop-player's ip%" at loop-player
        apply invisibly 1 for 20 second to last spawned bat
        wait 20 tick
        kill all bats
	on damage with bat:
    if name of bat is "%player's ip%":
        if {aura::%player%} is greater than 4:
            set {aura::%player%} to 0
            broadcast "&3&lGracz &b&l%player% &3&lzostał automatycznie zbanowany za killaurę."
            ban player due to KillAura
        else:
            add 1 to {aura::%player%}
            kick player due to "&cWykryto u Ciebie killaurę."
                loop all players:
                    if loop-player has permission "admin":
                        send "&eWykryto killaurę u gracza &c%player%. &a%{aura.%player%}%&2/&a4" to loop-player
        
	

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
Teraz, Ozelot napisał:

Na szybko napisałem coś takiego, czy to zadziała?

 

	every 30 seconds:
    loop all players:
        spawn 1 bat named "%loop-player's ip%" at loop-player
        apply invisibly 1 for 20 second to last spawned bat
        wait 20 tick
        kill all bats
	on damage with bat:
    if name of bat is "%player's ip%":
        if {aura::%player%} is greater than 4:
            set {aura::%player%} to 0
            broadcast "&3&lGracz &b&l%player% &3&lzostał automatycznie zbanowany za killaurę."
            ban player due to KillAura
        else:
            add 1 to {aura::%player%}
            kick player due to "&cWykryto u Ciebie killaurę."
                loop all players:
                    if loop-player has permission "admin":
                        send "&eWykryto killaurę u gracza &c%player%. &a%{aura.%player%}%&2/&a4" to loop-player
        
	

 

Na skript.pl jest temat z moja AntyAura ktora dziala na 100% uzywam jej ciagle ale jak ci sie nie chce szukac to masz odrazu kod:

every 0.1 seconds:
	loop all players:
		if {botkillanty::%loop-player%} is true:
			if {idss::%loop-player%} is not set:
				create a citizen named "&4NieCzituj" at location of loop-player
				set {idss::%loop-player%} to last created citizen id
				teleport citizen {idss::%loop-player%} to location 4 blocks behind loop-player
				hide citizen {idss::%loop-player%} to all players
				reveal citizen {idss::%loop-player%} to loop-player
			set {loc::%loop-player%} to location 4 blocks behind loop-player
			teleport citizen {idss::%loop-player%} to {loc::%loop-player%}
			set {locc::%loop-player%} to location 3 blocks up citizen {idss::%loop-player%}
			teleport citizen {idss::%loop-player%} to {locc::%loop-player%}
every 3 seconds:
	loop all players:
		set {antykill::%loop-player%} to 0
on damage:
	attacker is a player
	victim is a player
	if name of attacker is "&4&lANTYKILLAURA1" or "&4&lANTYKILLAURA2" or "&4&lANTYKILLAURA3" or "&4&lANTYKILLAURA4":
		cancel event
	if attacker is player:
		if victim is citizen:
			if citizen is {idss::%attacker%}:
				add 1 to {antykill::%attacker%}
				if {antykill::%attacker%} is more than 10:
					add 1 to {killaura::list::gracze}
					broadcast "&e&m---------------------------------------------------"
					broadcast ""
					broadcast "&8[&4AC-NewPVP&8] &aGracz &6%attacker% &azostal zbanowany za &4&lKILLAURE!"
					broadcast ""
					broadcast "&e&m----------------------------------------------------"
					kick attacker due to "Przepraszamy nie chcemy cheaterow na serwerze"
					ban attacker due to "Przepraszamy nie chcemy cheaterow na serwerze"
on citizen left click:
	if citizen is {idss::%player%}:
		add 1 to {antykill::%player%}
		if {antykill::%player%} is more than 7:
			add 1 to {killaura::list::gracze}
			broadcast "&e&m---------------------------------------------------"
			broadcast ""
			broadcast "&8[&4AC-NewPVP&8] &aGracz &6%player% &azostal zbanowany za &4&lKILLAURE!"
			broadcast ""
			broadcast "&e&m---------------------------------------------------"
			kick player due to "Przepraszamy nie chcemy cheaterow na serwerze"
			ban player due to "Przepraszamy nie chcemy cheaterow na serwerze"
every 120 second:
	loop all players:
		set {antykill::%loop-player%} to 0
	broadcast "&8&m-------------[&4AntyCheat&8&m]----------------"
	broadcast ""
	broadcast "&cAntyCheat zbanowal juz&4: &c%{killaura::list::gracze}% &4graczy"
	broadcast "&7Obserwuje cie"
	broadcast ""
	broadcast "&8&m-------------[&4AntyCheat&8&m]----------------"
on disconnect:
	if {idss::%player%} is set:
		despawn citizen {idss::%player%}
		clear {idss::%player%}
variables:
	{logout::%player%} = -1
command /antylogout [<text>]:
	trigger:
		if arg-1 is not set:
			if {logout::%player%} = -1 or 0:
				send "&aNie jestes podczas pvp!"
			else:
				send "&cJestes podczas pvp! &7(&c%{logout::%player%}%sek.&7)"
on death of player:
	if {lastattacker::%victim%} is set:
		execute console command "eco %{lastattacker::%victim%}%"
		delete {lastattacker::%victim%}
on damage:
	set {lastattacker::%victim%} to "%attacker%"
on join:
	delete {lastattacker::%player%}
on quit:
	delete {lastattacker::%player%}
every second:
	loop all players:
		if {logout::%loop-player%} = 0:
			remove 1 from {logout::%loop-player%} #Odejmuje 1 zeby nic sie nie bugowalo.
			set action bar of loop-player to "&4&lANTYLOGOUT &7(&a0sek.&7)"
			send "&aWalka zostala zakonczona! &aMozesz sie wylogowac!" to loop-player
			set {botkillanty::%loop-player%} to false
			despawn citizen {idss::%loop-player%}
			clear {idss::%loop-player%}
		if {logout::%loop-player%} > 0:
			set action bar of loop-player to "&4&lANTYLOGOUT &7(&c%{logout::%loop-player%}%.&k00&csek&7)"
			remove 1 from {logout::%loop-player%}
on damage:
	if attacker is victim:
		stop
	if attacker is player:
		if victim is player:
			set action bar of victim to "&4&lANTYLOGOUT &7(&c20.&k00&csek&7)"
			if {logout::%victim%} < 0:
				send "&cWalka zostala rozpoczeta! &cNie mozesz sie wylogowac!" to victim
				set {botkillanty::%attacker%} to true
				set {botkillanty::%victim%} to true
			hide citizen {idss::%attacker%} to all players
			reveal citizen {idss::%attacker%} to attacker
			set {logout::%victim%} to 20
			if {logout::%attacker%} < 0:
				send "&cWalka zostala rozpoczeta! &cNie mozesz sie wylogowac!" to attacker
				set {botkillanty::%attacker%} to true
				set {botkillanty::%victim%} to true
			hide citizen {idss::%victim%} to all players
			reveal citizen {idss::%victim%} to victim
			set {logout::%attacker%} to 20
on death:
	set {logout::%player%} to -1
	despawn citizen {idss::%player%}
on quit:
	if {logout::%player%} > 0:
		kill player
		broadcast "&cGracz &c%player% &cwylogowal sie podczas walki!"
		set {logout::%player%} to -1
		despawn citizen {idss::%player%}
	else:
		stop
on command:	
	if {logout::%player%} > 0:
		if command is "spawn" or "lobby":
			cancel event
			send "&4Blad: &cTa komenda jest zablokowana podczas pvp!"
on join:
	set {logout::%player%} to -1
command /zglos [<player>]:
	aliases: cheater, cheat, helpop
	trigger:
		arg 1 is set:
			if {zgloszono::%player-arg%} is true:
				send "&cTen gracz jest juz zgloszony!"
				stop
			send "&8[&4NewPVP-AntyCheat&8] &aGracz zostanie 3 krotnie sprawdzony przez &4AntyCheata. &cDziekujemy za zgloszenie!"
			add player-arg to {dosprawdzenia::*}
			set {zgloszono::%player-arg%} to true
		else:
			send "&7Poprawne uzycie: &c/zglos <gracz>"
every 1 second:
	loop all players:
		if loop-player has permission "lataj.xd":
			allow fly for loop-player
			stop
		loop {dosprawdzenia::*}:
			loop (size of {dosprawdzenia::*}) times:
				set {_location} to location of loop-value
				push loop-value backwards at speed 1.0
				wait 0.5 seconds
				if location of loop-value is {_location}:
					broadcast ""
					broadcast "&8[&4NewPVP-AntyCheat&8] &aGracz %loop-value% zostal zbanowany za uzywanie NoKnock'a!"
					broadcast ""
					kick loop-value due to "Spierdalaj XD. Cheaterow nie przyjmujemy"
					execute server command "ban %loop-value%"
every 3 seconds:
	loop {dosprawdzenia::*}:
		loop (size of {dosprawdzenia::*}) times:
			set {zgloszono::%loop-value%} to false
			remove loop-value from {dosprawdzenia::*}
on damage:
	attacker is player
	victim is player
	if distance between attacker and victim is bigger than 5.9:
		loop {dosprawdzenia::*}:
			loop (size of {dosprawdzenia::*}) times:
				if attacker is loop-value:
					broadcast ""
					broadcast "&8[&4NewPVP-AntyCheat&8] &aGracz %loop-value% zostal zbanowany za uzywanie Skryptow!"
					broadcast ""
					kick attacker due to "Spierdalaj XD. Cheaterow nie przyjmujemy"
					ban attacker due to "Spierdalaj XD. Cheaterow nie przyjmujemy"
command /usunzgloszenia:
	permission: adm.d
	trigger:
		loop all players:
			clear {zgloszono::%loop-player%}
			send "&aWyczyszczono zgloszenia"

Wymagania: SkQuery, SkRayFall no i oczywiscie sam plugin Skript xD

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
5 minut temu, JanekMaSkrypta_ napisał:

Na skript.pl jest temat z moja AntyAura ktora dziala na 100% uzywam jej ciagle ale jak ci sie nie chce szukac to masz odrazu kod:

every 0.1 seconds:
	loop all players:
		if {botkillanty::%loop-player%} is true:
			if {idss::%loop-player%} is not set:
				create a citizen named "&4NieCzituj" at location of loop-player
				set {idss::%loop-player%} to last created citizen id
				teleport citizen {idss::%loop-player%} to location 4 blocks behind loop-player
				hide citizen {idss::%loop-player%} to all players
				reveal citizen {idss::%loop-player%} to loop-player
			set {loc::%loop-player%} to location 4 blocks behind loop-player
			teleport citizen {idss::%loop-player%} to {loc::%loop-player%}
			set {locc::%loop-player%} to location 3 blocks up citizen {idss::%loop-player%}
			teleport citizen {idss::%loop-player%} to {locc::%loop-player%}
every 3 seconds:
	loop all players:
		set {antykill::%loop-player%} to 0
on damage:
	attacker is a player
	victim is a player
	if name of attacker is "&4&lANTYKILLAURA1" or "&4&lANTYKILLAURA2" or "&4&lANTYKILLAURA3" or "&4&lANTYKILLAURA4":
		cancel event
	if attacker is player:
		if victim is citizen:
			if citizen is {idss::%attacker%}:
				add 1 to {antykill::%attacker%}
				if {antykill::%attacker%} is more than 10:
					add 1 to {killaura::list::gracze}
					broadcast "&e&m---------------------------------------------------"
					broadcast ""
					broadcast "&8[&4AC-NewPVP&8] &aGracz &6%attacker% &azostal zbanowany za &4&lKILLAURE!"
					broadcast ""
					broadcast "&e&m----------------------------------------------------"
					kick attacker due to "Przepraszamy nie chcemy cheaterow na serwerze"
					ban attacker due to "Przepraszamy nie chcemy cheaterow na serwerze"
on citizen left click:
	if citizen is {idss::%player%}:
		add 1 to {antykill::%player%}
		if {antykill::%player%} is more than 7:
			add 1 to {killaura::list::gracze}
			broadcast "&e&m---------------------------------------------------"
			broadcast ""
			broadcast "&8[&4AC-NewPVP&8] &aGracz &6%player% &azostal zbanowany za &4&lKILLAURE!"
			broadcast ""
			broadcast "&e&m---------------------------------------------------"
			kick player due to "Przepraszamy nie chcemy cheaterow na serwerze"
			ban player due to "Przepraszamy nie chcemy cheaterow na serwerze"
every 120 second:
	loop all players:
		set {antykill::%loop-player%} to 0
	broadcast "&8&m-------------[&4AntyCheat&8&m]----------------"
	broadcast ""
	broadcast "&cAntyCheat zbanowal juz&4: &c%{killaura::list::gracze}% &4graczy"
	broadcast "&7Obserwuje cie"
	broadcast ""
	broadcast "&8&m-------------[&4AntyCheat&8&m]----------------"
on disconnect:
	if {idss::%player%} is set:
		despawn citizen {idss::%player%}
		clear {idss::%player%}
variables:
	{logout::%player%} = -1
command /antylogout [<text>]:
	trigger:
		if arg-1 is not set:
			if {logout::%player%} = -1 or 0:
				send "&aNie jestes podczas pvp!"
			else:
				send "&cJestes podczas pvp! &7(&c%{logout::%player%}%sek.&7)"
on death of player:
	if {lastattacker::%victim%} is set:
		execute console command "eco %{lastattacker::%victim%}%"
		delete {lastattacker::%victim%}
on damage:
	set {lastattacker::%victim%} to "%attacker%"
on join:
	delete {lastattacker::%player%}
on quit:
	delete {lastattacker::%player%}
every second:
	loop all players:
		if {logout::%loop-player%} = 0:
			remove 1 from {logout::%loop-player%} #Odejmuje 1 zeby nic sie nie bugowalo.
			set action bar of loop-player to "&4&lANTYLOGOUT &7(&a0sek.&7)"
			send "&aWalka zostala zakonczona! &aMozesz sie wylogowac!" to loop-player
			set {botkillanty::%loop-player%} to false
			despawn citizen {idss::%loop-player%}
			clear {idss::%loop-player%}
		if {logout::%loop-player%} > 0:
			set action bar of loop-player to "&4&lANTYLOGOUT &7(&c%{logout::%loop-player%}%.&k00&csek&7)"
			remove 1 from {logout::%loop-player%}
on damage:
	if attacker is victim:
		stop
	if attacker is player:
		if victim is player:
			set action bar of victim to "&4&lANTYLOGOUT &7(&c20.&k00&csek&7)"
			if {logout::%victim%} < 0:
				send "&cWalka zostala rozpoczeta! &cNie mozesz sie wylogowac!" to victim
				set {botkillanty::%attacker%} to true
				set {botkillanty::%victim%} to true
			hide citizen {idss::%attacker%} to all players
			reveal citizen {idss::%attacker%} to attacker
			set {logout::%victim%} to 20
			if {logout::%attacker%} < 0:
				send "&cWalka zostala rozpoczeta! &cNie mozesz sie wylogowac!" to attacker
				set {botkillanty::%attacker%} to true
				set {botkillanty::%victim%} to true
			hide citizen {idss::%victim%} to all players
			reveal citizen {idss::%victim%} to victim
			set {logout::%attacker%} to 20
on death:
	set {logout::%player%} to -1
	despawn citizen {idss::%player%}
on quit:
	if {logout::%player%} > 0:
		kill player
		broadcast "&cGracz &c%player% &cwylogowal sie podczas walki!"
		set {logout::%player%} to -1
		despawn citizen {idss::%player%}
	else:
		stop
on command:	
	if {logout::%player%} > 0:
		if command is "spawn" or "lobby":
			cancel event
			send "&4Blad: &cTa komenda jest zablokowana podczas pvp!"
on join:
	set {logout::%player%} to -1
command /zglos [<player>]:
	aliases: cheater, cheat, helpop
	trigger:
		arg 1 is set:
			if {zgloszono::%player-arg%} is true:
				send "&cTen gracz jest juz zgloszony!"
				stop
			send "&8[&4NewPVP-AntyCheat&8] &aGracz zostanie 3 krotnie sprawdzony przez &4AntyCheata. &cDziekujemy za zgloszenie!"
			add player-arg to {dosprawdzenia::*}
			set {zgloszono::%player-arg%} to true
		else:
			send "&7Poprawne uzycie: &c/zglos <gracz>"
every 1 second:
	loop all players:
		if loop-player has permission "lataj.xd":
			allow fly for loop-player
			stop
		loop {dosprawdzenia::*}:
			loop (size of {dosprawdzenia::*}) times:
				set {_location} to location of loop-value
				push loop-value backwards at speed 1.0
				wait 0.5 seconds
				if location of loop-value is {_location}:
					broadcast ""
					broadcast "&8[&4NewPVP-AntyCheat&8] &aGracz %loop-value% zostal zbanowany za uzywanie NoKnock'a!"
					broadcast ""
					kick loop-value due to "Spierdalaj XD. Cheaterow nie przyjmujemy"
					execute server command "ban %loop-value%"
every 3 seconds:
	loop {dosprawdzenia::*}:
		loop (size of {dosprawdzenia::*}) times:
			set {zgloszono::%loop-value%} to false
			remove loop-value from {dosprawdzenia::*}
on damage:
	attacker is player
	victim is player
	if distance between attacker and victim is bigger than 5.9:
		loop {dosprawdzenia::*}:
			loop (size of {dosprawdzenia::*}) times:
				if attacker is loop-value:
					broadcast ""
					broadcast "&8[&4NewPVP-AntyCheat&8] &aGracz %loop-value% zostal zbanowany za uzywanie Skryptow!"
					broadcast ""
					kick attacker due to "Spierdalaj XD. Cheaterow nie przyjmujemy"
					ban attacker due to "Spierdalaj XD. Cheaterow nie przyjmujemy"
command /usunzgloszenia:
	permission: adm.d
	trigger:
		loop all players:
			clear {zgloszono::%loop-player%}
			send "&aWyczyszczono zgloszenia"

Wymagania: SkQuery, SkRayFall no i oczywiscie sam plugin Skript xD

Testowałem kiedyś ten skrypt. Posiada on jednak linijkę "create a citizen...." z czym jest problem. Dodatkowo, skrypt ten usunął mi wszystkie NPC (administracji, w sklepie itp. xD)

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
2 minuty temu, Ozelot napisał:

Testowałem kiedyś ten skrypt. Posiada on jednak linijkę "create a citizen...." z czym jest problem. Dodatkowo, skrypt ten usunął mi wszystkie NPC (administracji, w sklepie itp. xD)

Ale ten jest przerobiony i nie usuwa juz wszystkich npc tylko te poszczegolne :)

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0

Taki przykład, w razie błędów popraw w miarę możliwości

every 2 minutes:
	loop all players:
		spawn 1 bat behind loop-player named "%loop-player%"
		wait 2 seconds
		execute console command "kill all bat"

on damage:
	if victim is bat:
		if name of victim is "%attacker%":
			send "Gracz %attacker%, zaatakował moba AntyAura" to all ops
			

taki szablon, pisany na szybko, krótki i treściwy, błędy będą ale to tylko wzór.
Ważne aby respić moba za graczem, oraz sprawdzać jaki mob otrzymał obrażenia 
Lepiej zawęzić krąg od razu do danego typu a nie wszystkich mobów a potem szukać nazwą.

Sprawdzaj co 2min, ewentualnie co 1, nie warto lagować serwer co 30sek (nie wiem ile osób będzie aktywnych a przeszukanie każdego do respu to żmudna praca)
Poza tym dodaj sobie komendę która także zrespi moba, aby nie było czekania 2minut tylko także an zawołanie taki test

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

  • 0
5 minut temu, JanekMaSkrypta_ napisał:

Ale ten jest przerobiony i nie usuwa juz wszystkich npc tylko te poszczegolne :)

Ok, przetestuję go.

2 minuty temu, JPablo napisał:

Taki przykład, w razie błędów popraw w miarę możliwości

every 2 minutes:
	loop all players:
		spawn 1 bat behind loop-player named "%loop-player%"
		wait 2 seconds
		execute console command "kill all bat"

on damage:
	if victim is bat:
		if name of victim is %attacker%:
			send "Gracz %attacker%, zaatakował moba AntyAura" to all ops
			

taki szablon, pisany na szybko, krótki i treściwy, błędy będą ale to tylko wzór.
Ważne aby respić moba za graczem, oraz sprawdzać jaki mob otrzymał obrażenia 
Lepiej zawęzić krąg od razu do danego typu a nie wszystkich mobów a potem szukać nazwą.

Sprawdzaj co 2min, ewentualnie co 1, nie warto lagować serwer co 30sek (nie wiem ile osób będzie aktywnych a przeszukanie każdego do respu to żmudna praca)
Poza tym dodaj sobie komendę która także zrespi moba, aby nie było czekania 2minut tylko także an zawołanie taki test

Ok, rano wgram i sprawdzę. Dziękuję.

Odnośnik do komentarza
Udostępnij na innych stronach

Nieaktywny
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
 Udostępnij

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

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