Discord sunucumuz açılmıştır, hepinizi bekleriz

https://discord.gg/43gGDQe6tS

AFK Slay Kick

Eklenti sorunlarınız ve özel eklenti istekleriniz

Moderatör: Moderatörler

Kullanıcı avatarı

Konu Sahibi
FearLess
Mesajlar: 727
Kayıt: Prş Nis 07, 2016 8:00 pm
Konum: Istanbul

AFK Slay Kick

Mesaj gönderen FearLess »

Merhabalar, ben 3 el üst üste afk kalanı kicklemek istiyorum. Ve bunu sw 31 kişi iken yapmak istiyorum. Ve sadece 1 kişi atsın yani sw 31 kişi 3 kişi afk ama sadece 1 kişiyi atsın. sw tkr 31 olunca başka bir afkyı atsın böyle gitsin.

Yazılar şu şekil olacak
Siry isimli oyuncu afk oldugu icin öldürüldü. (bunu tüm herkes görecek)
AFK Kalma Limitiniz: 1/3 (bunu sadece afk olup ölen kişi olacak)

Sunucudan atıldığı zaman ise:
Sunucuda herkesin göreceği: Siry isimli oyuncu afk oldugu ıcin sunucudan cikarildi.
Atılan Kullanıcının göreceği kick mesajı: Uzun Sure AFK Kaldiginiz Icin Atildiniz.

Link:
Linklerini gizle
Linki Kopyala
Kullanıcı avatarı

bestcore
Mesajlar: 1625
Kayıt: Cmt Eyl 30, 2017 12:44 pm
Konum: Samsun

AFK Slay Kick

Mesaj gönderen bestcore »

Oyuncunun afk limiti, maksimuma ulaşmışsa ve oyuncu sayısı 30'dan yüksekse oyuncuyu kickler; kickledikten sonra oyuncu sayısı 30'un altına düşeceği için 2'den fazla kişiyi kickleyemeyecek. Afk limiti, maksimuma ulaşmamışsa sadece slaylar. Detaylı inceleme fırsatım olmadı, buyur;

Kod: Tümünü seç

#pragma semicolon 1

#include <amxmodx>
#include <reapi>

new const szChatTag[] = "^4forum.csd :";

new Float:g_flPlayerOrigin[MAX_PLAYERS+1][3],
	g_iAfkMeter[MAX_PLAYERS+1];

new g_cvar;

public plugin_init()
{
	register_plugin("Afk Slay And Kick", "0.1", "` BesTCore;");

	RegisterHookChain(RG_CBasePlayer_Spawn, "RG_CBasePlayer_Spawn_Post", .post = true);

	bind_pcvar_num(create_cvar("Afk_Kick_Limit", "3", _, "Oyuncunun kicklenme limiti."), g_cvar);
}
public RG_CBasePlayer_Spawn_Post(const id)
{
	if(get_member(id, m_bJustConnected))
	{
		return;
	}

	remove_task(id);

	get_entvar(id, var_origin, g_flPlayerOrigin[id]);

	set_task(20.0, "AfkSlay", id);
}
public AfkSlay(const id)
{
	if(IsPlayerAfk(id))
	{
		g_iAfkMeter[id]++;

		if(g_iAfkMeter[id] > g_cvar)
		{
			g_iAfkMeter[id] = 0;

			if(get_playersnum() > 30)
			{
				client_print_color(0, print_team_red, "%s ^1%n ^3adli oyuncu afk oldugu icin sunucudan cikarildi.", szChatTag, id);
				server_cmd("kick #%d ^"Uzun sure afk kaldiginiz icin atildiniz.", get_user_userid(id));
			}
		}
		else
		{
			user_kill(id);

			client_print_color(0, print_team_red, "%s ^1%n ^3adli oyuncu afk oldugu icin olduruldu", szChatTag, id);
			client_print_color(id, print_team_red, "%s ^3Afk kalma limitiniz:^4 %i^1/^3%i", szChatTag, g_iAfkMeter[id], g_cvar);
		}
	}
}
public client_putinserver(id)
{
	g_iAfkMeter[id] = 0;
}
// Check player afk.
bool:IsPlayerAfk(const id)
{
	new Float:flOrigin[3];

	get_entvar(id, var_origin, flOrigin);

	for(new i = 0; i < 2; i++)
	{
		if(flOrigin[i] != g_flPlayerOrigin[id][i])
		{
			return false;
		}
	}
	return true;
}

Link:
Linklerini gizle
Linki Kopyala
Kullanıcı avatarı

Konu Sahibi
FearLess
Mesajlar: 727
Kayıt: Prş Nis 07, 2016 8:00 pm
Konum: Istanbul

AFK Slay Kick

Mesaj gönderen FearLess »

bestcore yazdı: Sal Ağu 10, 2021 7:14 pm Oyuncunun afk limiti, maksimuma ulaşmışsa ve oyuncu sayısı 30'dan yüksekse oyuncuyu kickler; kickledikten sonra oyuncu sayısı 30'un altına düşeceği için 2'den fazla kişiyi kickleyemeyecek. Afk limiti, maksimuma ulaşmamışsa sadece slaylar. Detaylı inceleme fırsatım olmadı, buyur;

Kod: Tümünü seç

#pragma semicolon 1

#include <amxmodx>
#include <reapi>

new const szChatTag[] = "^4forum.csd :";

new Float:g_flPlayerOrigin[MAX_PLAYERS+1][3],
	g_iAfkMeter[MAX_PLAYERS+1];

new g_cvar;

public plugin_init()
{
	register_plugin("Afk Slay And Kick", "0.1", "` BesTCore;");

	RegisterHookChain(RG_CBasePlayer_Spawn, "RG_CBasePlayer_Spawn_Post", .post = true);

	bind_pcvar_num(create_cvar("Afk_Kick_Limit", "3", _, "Oyuncunun kicklenme limiti."), g_cvar);
}
public RG_CBasePlayer_Spawn_Post(const id)
{
	if(get_member(id, m_bJustConnected))
	{
		return;
	}

	remove_task(id);

	get_entvar(id, var_origin, g_flPlayerOrigin[id]);

	set_task(20.0, "AfkSlay", id);
}
public AfkSlay(const id)
{
	if(IsPlayerAfk(id))
	{
		g_iAfkMeter[id]++;

		if(g_iAfkMeter[id] > g_cvar)
		{
			g_iAfkMeter[id] = 0;

			if(get_playersnum() > 30)
			{
				client_print_color(0, print_team_red, "%s ^1%n ^3adli oyuncu afk oldugu icin sunucudan cikarildi.", szChatTag, id);
				server_cmd("kick #%d ^"Uzun sure afk kaldiginiz icin atildiniz.", get_user_userid(id));
			}
		}
		else
		{
			user_kill(id);

			client_print_color(0, print_team_red, "%s ^1%n ^3adli oyuncu afk oldugu icin olduruldu", szChatTag, id);
			client_print_color(id, print_team_red, "%s ^3Afk kalma limitiniz:^4 %i^1/^3%i", szChatTag, g_iAfkMeter[id], g_cvar);
		}
	}
}
public client_putinserver(id)
{
	g_iAfkMeter[id] = 0;
}
// Check player afk.
bool:IsPlayerAfk(const id)
{
	new Float:flOrigin[3];

	get_entvar(id, var_origin, flOrigin);

	for(new i = 0; i < 2; i++)
	{
		if(flOrigin[i] != g_flPlayerOrigin[id][i])
		{
			return false;
		}
	}
	return true;
}
Sayıyı 31 yaparsam sorun çıkar mı?

Link:
Linklerini gizle
Linki Kopyala
Kullanıcı avatarı

heaveNN
Mesajlar: 314
Kayıt: Prş Ağu 22, 2019 11:11 pm
Clan İsmi: RedDawn

AFK Slay Kick

Mesaj gönderen heaveNN »

FearLess yazdı: Sal Ağu 10, 2021 9:05 pm
bestcore yazdı: Sal Ağu 10, 2021 7:14 pm Oyuncunun afk limiti, maksimuma ulaşmışsa ve oyuncu sayısı 30'dan yüksekse oyuncuyu kickler; kickledikten sonra oyuncu sayısı 30'un altına düşeceği için 2'den fazla kişiyi kickleyemeyecek. Afk limiti, maksimuma ulaşmamışsa sadece slaylar. Detaylı inceleme fırsatım olmadı, buyur;

Kod: Tümünü seç

#pragma semicolon 1

#include <amxmodx>
#include <reapi>

new const szChatTag[] = "^4forum.csd :";

new Float:g_flPlayerOrigin[MAX_PLAYERS+1][3],
	g_iAfkMeter[MAX_PLAYERS+1];

new g_cvar;

public plugin_init()
{
	register_plugin("Afk Slay And Kick", "0.1", "` BesTCore;");

	RegisterHookChain(RG_CBasePlayer_Spawn, "RG_CBasePlayer_Spawn_Post", .post = true);

	bind_pcvar_num(create_cvar("Afk_Kick_Limit", "3", _, "Oyuncunun kicklenme limiti."), g_cvar);
}
public RG_CBasePlayer_Spawn_Post(const id)
{
	if(get_member(id, m_bJustConnected))
	{
		return;
	}

	remove_task(id);

	get_entvar(id, var_origin, g_flPlayerOrigin[id]);

	set_task(20.0, "AfkSlay", id);
}
public AfkSlay(const id)
{
	if(IsPlayerAfk(id))
	{
		g_iAfkMeter[id]++;

		if(g_iAfkMeter[id] > g_cvar)
		{
			g_iAfkMeter[id] = 0;

			if(get_playersnum() > 30)
			{
				client_print_color(0, print_team_red, "%s ^1%n ^3adli oyuncu afk oldugu icin sunucudan cikarildi.", szChatTag, id);
				server_cmd("kick #%d ^"Uzun sure afk kaldiginiz icin atildiniz.", get_user_userid(id));
			}
		}
		else
		{
			user_kill(id);

			client_print_color(0, print_team_red, "%s ^1%n ^3adli oyuncu afk oldugu icin olduruldu", szChatTag, id);
			client_print_color(id, print_team_red, "%s ^3Afk kalma limitiniz:^4 %i^1/^3%i", szChatTag, g_iAfkMeter[id], g_cvar);
		}
	}
}
public client_putinserver(id)
{
	g_iAfkMeter[id] = 0;
}
// Check player afk.
bool:IsPlayerAfk(const id)
{
	new Float:flOrigin[3];

	get_entvar(id, var_origin, flOrigin);

	for(new i = 0; i < 2; i++)
	{
		if(flOrigin[i] != g_flPlayerOrigin[id][i])
		{
			return false;
		}
	}
	return true;
}
Sayıyı 31 yaparsam sorun çıkar mı?
31 yaparsanız 32 kişi varken kickler sadece.

Link:
Linklerini gizle
Linki Kopyala
Kullanıcı avatarı

Konu Sahibi
FearLess
Mesajlar: 727
Kayıt: Prş Nis 07, 2016 8:00 pm
Konum: Istanbul

AFK Slay Kick

Mesaj gönderen FearLess »

heaveNN yazdı: Sal Ağu 10, 2021 9:07 pm
FearLess yazdı: Sal Ağu 10, 2021 9:05 pm
bestcore yazdı: Sal Ağu 10, 2021 7:14 pm Oyuncunun afk limiti, maksimuma ulaşmışsa ve oyuncu sayısı 30'dan yüksekse oyuncuyu kickler; kickledikten sonra oyuncu sayısı 30'un altına düşeceği için 2'den fazla kişiyi kickleyemeyecek. Afk limiti, maksimuma ulaşmamışsa sadece slaylar. Detaylı inceleme fırsatım olmadı, buyur;

Kod: Tümünü seç

#pragma semicolon 1

#include <amxmodx>
#include <reapi>

new const szChatTag[] = "^4forum.csd :";

new Float:g_flPlayerOrigin[MAX_PLAYERS+1][3],
	g_iAfkMeter[MAX_PLAYERS+1];

new g_cvar;

public plugin_init()
{
	register_plugin("Afk Slay And Kick", "0.1", "` BesTCore;");

	RegisterHookChain(RG_CBasePlayer_Spawn, "RG_CBasePlayer_Spawn_Post", .post = true);

	bind_pcvar_num(create_cvar("Afk_Kick_Limit", "3", _, "Oyuncunun kicklenme limiti."), g_cvar);
}
public RG_CBasePlayer_Spawn_Post(const id)
{
	if(get_member(id, m_bJustConnected))
	{
		return;
	}

	remove_task(id);

	get_entvar(id, var_origin, g_flPlayerOrigin[id]);

	set_task(20.0, "AfkSlay", id);
}
public AfkSlay(const id)
{
	if(IsPlayerAfk(id))
	{
		g_iAfkMeter[id]++;

		if(g_iAfkMeter[id] > g_cvar)
		{
			g_iAfkMeter[id] = 0;

			if(get_playersnum() > 30)
			{
				client_print_color(0, print_team_red, "%s ^1%n ^3adli oyuncu afk oldugu icin sunucudan cikarildi.", szChatTag, id);
				server_cmd("kick #%d ^"Uzun sure afk kaldiginiz icin atildiniz.", get_user_userid(id));
			}
		}
		else
		{
			user_kill(id);

			client_print_color(0, print_team_red, "%s ^1%n ^3adli oyuncu afk oldugu icin olduruldu", szChatTag, id);
			client_print_color(id, print_team_red, "%s ^3Afk kalma limitiniz:^4 %i^1/^3%i", szChatTag, g_iAfkMeter[id], g_cvar);
		}
	}
}
public client_putinserver(id)
{
	g_iAfkMeter[id] = 0;
}
// Check player afk.
bool:IsPlayerAfk(const id)
{
	new Float:flOrigin[3];

	get_entvar(id, var_origin, flOrigin);

	for(new i = 0; i < 2; i++)
	{
		if(flOrigin[i] != g_flPlayerOrigin[id][i])
		{
			return false;
		}
	}
	return true;
}
Sayıyı 31 yaparsam sorun çıkar mı?
31 yaparsanız 32 kişi varken kickler sadece.
afk süresi yazmıyor ya da ben bulamadım afk olan biri kaç saniye sonra öldürülecek?

Link:
Linklerini gizle
Linki Kopyala
Kullanıcı avatarı

heaveNN
Mesajlar: 314
Kayıt: Prş Ağu 22, 2019 11:11 pm
Clan İsmi: RedDawn

AFK Slay Kick

Mesaj gönderen heaveNN »

Buradan ayarlıyorsunuz.

Kod: Tümünü seç

set_task(20.0, "AfkSlay", id);
Ondalıklı değer girmek zorundasınız.

Link:
Linklerini gizle
Linki Kopyala
Kullanıcı avatarı

Konu Sahibi
FearLess
Mesajlar: 727
Kayıt: Prş Nis 07, 2016 8:00 pm
Konum: Istanbul

AFK Slay Kick

Mesaj gönderen FearLess »

heaveNN yazdı: Sal Ağu 10, 2021 9:24 pm Buradan ayarlıyorsunuz.

Kod: Tümünü seç

set_task(20.0, "AfkSlay", id);
Ondalıklı değer girmek zorundasınız.
Tamamdır teşekkürler.

Link:
Linklerini gizle
Linki Kopyala
Kullanıcı avatarı

Konu Sahibi
FearLess
Mesajlar: 727
Kayıt: Prş Nis 07, 2016 8:00 pm
Konum: Istanbul

AFK Slay Kick

Mesaj gönderen FearLess »

Ayrıca şöyle bir sıkıntı var sw 28 kişi iken yine afk limiti geliyor. yani bu afk limitinin sw 31 iken gelmesini istiyorum. Ve afk limiti 3/3 olunca slaylamıyor sw 20 25 olunca.
En son FearLess tarafından Sal Ağu 10, 2021 10:09 pm tarihinde düzenlendi, toplamda 1 kere düzenlendi.

Link:
Linklerini gizle
Linki Kopyala
Kullanıcı avatarı

bestcore
Mesajlar: 1625
Kayıt: Cmt Eyl 30, 2017 12:44 pm
Konum: Samsun

AFK Slay Kick

Mesaj gönderen bestcore »

Sunucu 30'dan yüksekse limitli olarak çalışacak ve limit maksimuma ulaştıysa kickleyecek, ulaşmadıysa slaylayacak. Sunucu 30'dan düşükse sadece slaylayacak, limit olayı olmayacak şekilde ayarladım. Tam net birşey söylemediğiniz için böyle yaptım, değerleri kendinize göre ayarlayabilirsiniz.

Kod: Tümünü seç

#pragma semicolon 1

#include <amxmodx>
#include <reapi>

new const szChatTag[] = "^4forum.csd :";

new Float:g_flPlayerOrigin[MAX_PLAYERS+1][3],
	g_iAfkMeter[MAX_PLAYERS+1];

new g_cvar;

public plugin_init()
{
	register_plugin("Afk Slay And Kick", "0.1", "` BesTCore;");

	RegisterHookChain(RG_CBasePlayer_Spawn, "RG_CBasePlayer_Spawn_Post", .post = true);

	bind_pcvar_num(create_cvar("Afk_Kick_Limit", "3", _, "Oyuncunun kicklenme limiti."), g_cvar);
}
public RG_CBasePlayer_Spawn_Post(const id)
{
	if(get_member(id, m_bJustConnected))
	{
		return;
	}

	remove_task(id);

	get_entvar(id, var_origin, g_flPlayerOrigin[id]);

	set_task(20.0, "AfkSlay", id);
}
public AfkSlay(const id)
{
	if(IsPlayerAfk(id))
	{
		if(get_playersnum() > 30)
		{
			g_iAfkMeter[id]++;

			if(g_iAfkMeter[id] > g_cvar)
			{
				client_print_color(0, print_team_red, "%s ^1%n ^3adli oyuncu afk oldugu icin sunucudan cikarildi.", szChatTag, id);
				server_cmd("kick #%d ^"Uzun sure afk kaldiginiz icin atildiniz.", get_user_userid(id));
			}
			else
			{
				user_kill(id);

				client_print_color(0, print_team_red, "%s ^1%n ^3adli oyuncu afk oldugu icin olduruldu", szChatTag, id);
				client_print_color(id, print_team_red, "%s ^3Afk kalma limitiniz:^4 %i^1/^3%i", szChatTag, g_iAfkMeter[id], g_cvar);
			}	
		}
		else
		{
			user_kill(id);

			client_print_color(0, print_team_red, "%s ^1%n ^3adli oyuncu afk oldugu icin olduruldu", szChatTag, id);
		}
	}
}
public client_putinserver(id)
{
	g_iAfkMeter[id] = 0;
}
// Check player afk.
bool:IsPlayerAfk(const id)
{
	new Float:flOrigin[3];

	get_entvar(id, var_origin, flOrigin);

	for(new i = 0; i < 2; i++)
	{
		if(flOrigin[i] != g_flPlayerOrigin[id][i])
		{
			return false;
		}
	}
	return true;
}

Link:
Linklerini gizle
Linki Kopyala
Kullanıcı avatarı

Konu Sahibi
FearLess
Mesajlar: 727
Kayıt: Prş Nis 07, 2016 8:00 pm
Konum: Istanbul

AFK Slay Kick

Mesaj gönderen FearLess »

bestcore yazdı: Sal Ağu 10, 2021 10:08 pm Sunucu 30'dan yüksekse limitli olarak çalışacak ve limit maksimuma ulaştıysa kickleyecek, ulaşmadıysa slaylayacak. Sunucu 30'dan düşükse sadece slaylayacak, limit olayı olmayacak şekilde ayarladım. Tam net birşey söylemediğiniz için böyle yaptım, değerleri kendinize göre ayarlayabilirsiniz.

Kod: Tümünü seç

#pragma semicolon 1

#include <amxmodx>
#include <reapi>

new const szChatTag[] = "^4forum.csd :";

new Float:g_flPlayerOrigin[MAX_PLAYERS+1][3],
	g_iAfkMeter[MAX_PLAYERS+1];

new g_cvar;

public plugin_init()
{
	register_plugin("Afk Slay And Kick", "0.1", "` BesTCore;");

	RegisterHookChain(RG_CBasePlayer_Spawn, "RG_CBasePlayer_Spawn_Post", .post = true);

	bind_pcvar_num(create_cvar("Afk_Kick_Limit", "3", _, "Oyuncunun kicklenme limiti."), g_cvar);
}
public RG_CBasePlayer_Spawn_Post(const id)
{
	if(get_member(id, m_bJustConnected))
	{
		return;
	}

	remove_task(id);

	get_entvar(id, var_origin, g_flPlayerOrigin[id]);

	set_task(20.0, "AfkSlay", id);
}
public AfkSlay(const id)
{
	if(IsPlayerAfk(id))
	{
		if(get_playersnum() > 30)
		{
			g_iAfkMeter[id]++;

			if(g_iAfkMeter[id] > g_cvar)
			{
				client_print_color(0, print_team_red, "%s ^1%n ^3adli oyuncu afk oldugu icin sunucudan cikarildi.", szChatTag, id);
				server_cmd("kick #%d ^"Uzun sure afk kaldiginiz icin atildiniz.", get_user_userid(id));
			}
			else
			{
				user_kill(id);

				client_print_color(0, print_team_red, "%s ^1%n ^3adli oyuncu afk oldugu icin olduruldu", szChatTag, id);
				client_print_color(id, print_team_red, "%s ^3Afk kalma limitiniz:^4 %i^1/^3%i", szChatTag, g_iAfkMeter[id], g_cvar);
			}	
		}
		else
		{
			user_kill(id);

			client_print_color(0, print_team_red, "%s ^1%n ^3adli oyuncu afk oldugu icin olduruldu", szChatTag, id);
		}
	}
}
public client_putinserver(id)
{
	g_iAfkMeter[id] = 0;
}
// Check player afk.
bool:IsPlayerAfk(const id)
{
	new Float:flOrigin[3];

	get_entvar(id, var_origin, flOrigin);

	for(new i = 0; i < 2; i++)
	{
		if(flOrigin[i] != g_flPlayerOrigin[id][i])
		{
			return false;
		}
	}
	return true;
}
Çalıştı efendim teşekkür ederim.

Link:
Linklerini gizle
Linki Kopyala
Cevapla