Версия: 1.2
Описание:
Плагин который позволяет определить есть ли у игрока Протектор
Детектит первую и вторую версию щита,
Исходник присутствует
Решил выложить так как, я понял что мне оно не надо, может кому то еще надо
[pawn]/* Plugin generated by AMXX-Studio */
#include <amxmodx>
#include <fakemeta>
#include <ColorChat>
#define PLUGIN "CT-Shield Detector"
#define VERSION "1.2"
#define AUTHOR "ReVKa"
#define LOG_FILE "addons/amxmodx/logs/iCSD.log"
#define get_bit(%1,%2) ( %1 & 1 << ( %2 & 31 ) )
#define set_bit(%1,%2) ( %1 |= ( 1 << ( %2 & 31 ) ) )
#define clear_bit(%1,%2) ( %1 &= ~( 1 << ( %2 & 31 ) ) )
new const check_cvar[][] =
{
"rate",
"bottomcolor",
"topcolor",
"name"
}
#define NAME "name"
public forward_client_userinfochanged(id, buffer) {
static oldname[32], newname[32]
get_user_name(id, oldname, sizeof oldname - 1)
engfunc(EngFunc_InfoKeyValue, buffer, NAME, newname, sizeof newname - 1)
if (equal(newname, oldname))
return FMRES_IGNORED
return FMRES_SUPERCEDE
}
new name[33][33];
new ip[33][26];
new strcheck[33][4][32]
new check_num[33];
new g_CheckShield
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_forward(FM_ClientUserInfoChanged, "forward_client_userinfochanged")
//new ip[32]
//get_user_ip(0,ip,31)
//if(!equali(ip,"93.191.11.210:27057"))
// set_fail_state("MSG ERROR BIt '0x3HJeKmZZ'")
// Add your code here...
//круто, да?
}
public client_putinserver(id)
{
set_bit(g_CheckShield, id)
get_user_name(id,name[id],32)
get_user_ip(id,ip[id],25, 1)
if(!is_user_steam(id) && !is_user_hltv(id) && is_user_bot(id))
set_task(random_float(1.0,2.0),"CheckShield",id+1125)
}
public client_disconnect(id)
{
if(task_exists(id+1125))
remove_task(id+1125)
if(task_exists(id+4441))
remove_task(id+4441)
}
public CheckShield(id)
{
id-=1125
if(!is_user_connected(id))
{
remove_task(id +1125)
return PLUGIN_CONTINUE;
}
if(get_bit(g_CheckShield, id))
{
check_num[id] = random(255)
clear_bit(g_CheckShield,id)
for(new j= 0;j<sizeof(check_cvar);j++)
{
get_user_info(id,check_cvar[j],strcheck[id][j],31)
client_cmd(id,"%s %i",check_cvar[j],check_num[id])
}
set_task(0.1,"CheckShield",id +1125)
}
else
{
static strs[32]
for(new i = 0;i<sizeof(check_cvar);i++)
{
get_user_info(id,check_cvar[i],strs,31)
if((equal(strcheck[id][i],strs) && !equal(check_cvar[i],"name")) || (equal("name",strs) && equal(check_cvar[i],"name")))
{
log_to_file(LOG_FILE,"[CSD DETECT] DETECT '%s' [%s] | Reason : %s %s [%d]",name[id],ip[id], check_cvar[i], strs, check_num[id])
if(equal(check_cvar[i],"name"))
client_cmd(id,"name ^"%s^"",name[id])
else
client_cmd(id,"%s ^"%s^"",check_cvar[i],strcheck[id][i])
set_task(10.0,"KickCommand",id +4441)
break;
}
else if(equal(check_cvar[i],"name"))
client_cmd(id,"name ^"%s^"",name[id])
else
client_cmd(id,"%s ^"%s^"",check_cvar[i],strcheck[id][i])
}
}
return PLUGIN_CONTINUE;
}
public KickCommand(id)
{
id-=4441;
for(new iPlayer = 1;iPlayer<=get_playersnum();iPlayer++)
{
if(!is_user_connected(iPlayer)) continue;
if(iPlayer != id)
ColorChat(iPlayer,RED,"^4*CSD ^1CT-Shield Hack was detected on '^4%s^1' (^3%s^1)",name[iPlayer],ip[iPlayer])
}
server_cmd("kick #%d ^"Steam Changer Detect^"",get_user_userid(id))
}
stock bool:is_user_steam(id)
{
// Author Sh0oter
static dp_pointer
if(dp_pointer || (dp_pointer = get_cvar_pointer("dp_r_id_provider")))
{
server_cmd("dp_clientinfo %d", id)
server_exec()
return (get_pcvar_num(dp_pointer) == 2) ? true : false
}
return false
}
[/pawn]
Настройки:
[pawn]server_cmd("kick #%d ^"Steam Changer Detect^"",get_user_userid(id)) //свое наказание[/pawn]
Не утверждено. // Leonidddd
[/quote]