1. sayfa (Toplam 1 sayfa)
AFK Slay Kick
Gönderilme zamanı: Pzt Ağu 09, 2021 10:16 pm
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.
AFK Slay Kick
Gönderilme zamanı: Sal Ağu 10, 2021 7:14 pm
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;
}
AFK Slay Kick
Gönderilme zamanı: Sal Ağu 10, 2021 9:05 pm
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ı?
AFK Slay Kick
Gönderilme zamanı: Sal Ağu 10, 2021 9:07 pm
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.
AFK Slay Kick
Gönderilme zamanı: Sal Ağu 10, 2021 9:12 pm
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?
AFK Slay Kick
Gönderilme zamanı: Sal Ağu 10, 2021 9:24 pm
gönderen heaveNN
Buradan ayarlıyorsunuz.
Ondalıklı değer girmek zorundasınız.
AFK Slay Kick
Gönderilme zamanı: Sal Ağu 10, 2021 9:25 pm
gönderen FearLess
heaveNN yazdı: Sal Ağu 10, 2021 9:24 pm
Buradan ayarlıyorsunuz.
Ondalıklı değer girmek zorundasınız.
Tamamdır teşekkürler.
AFK Slay Kick
Gönderilme zamanı: Sal Ağu 10, 2021 9:49 pm
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.
AFK Slay Kick
Gönderilme zamanı: Sal Ağu 10, 2021 10:08 pm
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;
}
AFK Slay Kick
Gönderilme zamanı: Sal Ağu 10, 2021 10:39 pm
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.