Can someone make like this plugin a sma? can somebody tell me what does this plugin?
I think it changes the normal entitys to anothers... This is the best anticheat ever.. becouse if you not have a (player entity) AimBot and another cheats Dont Works has a fail shoots
Code:
new MaxClients;
new NULL_STRING[1];
new Float:NULL_VECTOR[3];
new glob__ints__properties[5];
new glob__int__msg_cur_weapon;
new glob__int__msg_weapon_list;
new glob__ints__weapon[33];
new glob__ints__weapon_ent[33];
new glob__x2i__weapon_model[33][128];
new glob__x2i__weapon_list[31][0] =
{
bool:operator<(_:,Float:)(oper1, Float:oper2)
{
return floatcmp(float(oper1), oper2) < 0;
}
public __fatal_ham_error(Ham:id, HamError:err, reason[])
{
new func = get_func_id("HamFilter", -1);
new bool:fail = 1;
new var1;
if (func != -1 && callfunc_begin_i(func, -1) == 1)
{
callfunc_push_int(id);
callfunc_push_int(err);
callfunc_push_str(reason, MaxClients);
if (callfunc_end() == 1)
{
fail = false;
}
}
if (fail)
{
set_fail_state(reason);
}
return 0;
}
public plugin_init()
{
glob__int__msg_cur_weapon = get_user_msgid("CurWeapon");
glob__int__msg_weapon_list = get_user_msgid("WeaponList");
register_forward(124, "forw__fm__add_to_full_pack_post", 1);
register_forward(105, "forw__fm__player_think_post", 1);
RegisterHam(MaxClients, "player", "forw__ham__alive_handle_post", 1, MaxClients);
RegisterHam(11, "player", "forw__ham__alive_handle_post", 1, MaxClients);
RegisterHam(MaxClients, "player", "forw__ham__alive_handle_pre", MaxClients, MaxClients);
register_event("CurWeapon", "event__amxx__cur_weapon", "be", 20028);
func__void__print_info();
return 0;
}
public func__void__print_info()
{
new ints__server_engine[64];
new ints__metamod_plugin[64];
copy(ints__server_engine, 63, "HLDS");
copy(ints__metamod_plugin, 63, "AMX Mod X 1.8.3");
return 0;
}
public client_connect(int__client)
{
new var1 = glob__ints__properties;
var1[0] = ~1 << int__client + -1 & var1[0];
new var2 = glob__ints__properties[1];
var2 = ~1 << int__client + -1 & var2;
new var3 = glob__ints__properties[2];
var3 = ~1 << int__client + -1 & var3;
new var4 = glob__ints__properties[4];
var4 = ~1 << int__client + -1 & var4;
return 0;
}
public client_disconnected(int__client)
{
new var2 = glob__ints__properties[1];
var2 = ~1 << int__client + -1 & var2;
new var3 = glob__ints__properties;
var3[0] = ~1 << int__client + -1 & var3[0];
new var4 = glob__ints__properties[2];
var4 = ~1 << int__client + -1 & var4;
new var5 = glob__ints__properties[4];
var5 = ~1 << int__client + -1 & var5;
new var1;
if (glob__ints__weapon_ent[int__client] > 0 && pev_valid(glob__ints__weapon_ent[int__client]))
{
engfunc("HamFilter", glob__ints__weapon_ent[int__client]);
}
glob__ints__weapon_ent[int__client] = 0;
return 0;
}
public forw__fm__player_think_post(int__player)
{
if (!1 << int__player + -1 & glob__ints__properties[0])
{
return 1;
}
if (pev(int__player, 57) < 1119092736)
{
if (!1 << int__player + -1 & glob__ints__properties[4])
{
new var3 = glob__ints__properties[4];
var3 = 1 << int__player + -1 | var3;
func__void__send_weapon_list(int__player, true);
}
}
else
{
if (1 << int__player + -1 & glob__ints__properties[4])
{
new var4 = glob__ints__properties[4];
var4 = ~1 << int__player + -1 & var4;
func__void__send_weapon_list(int__player, false);
}
}
new var1;
if (1 << int__player + -1 & glob__ints__properties[4] && glob__ints__weapon[int__player] != 24 && glob__ints__weapon[int__player] != 13 && pev(int__player, 81) & 1)
{
new var5 = glob__ints__properties[4];
var5 = ~1 << int__player + -1 & var5;
func__void__send_weapon_list(int__player, false);
}
static ints__weapon_model[128];
pev(int__player, 143, ints__weapon_model, 127);
if (!equal(ints__weapon_model, glob__x2i__weapon_model[int__player], MaxClients))
{
copy(glob__x2i__weapon_model[int__player], 127, ints__weapon_model);
new var2;
if (glob__ints__weapon_ent[int__player] > 0 && pev_valid(glob__ints__weapon_ent[int__player]))
{
engfunc(2, glob__ints__weapon_ent[int__player], glob__x2i__weapon_model[int__player]);
set_pev(glob__ints__weapon_ent[int__player], 40, pev(int__player, 40));
set_pev(glob__ints__weapon_ent[int__player], 78, pev(int__player, 78));
set_pev(glob__ints__weapon_ent[int__player], 77, pev(int__player, 77));
static Float:fls__render_color[3];
pev(int__player, 134, fls__render_color);
set_pev(glob__ints__weapon_ent[int__player], 134, fls__render_color);
}
}
return 1;
}
public client_putinserver(int__client)
{
new var1;
if (is_user_bot(int__client) || is_user_hltv(int__client))
{
new var2 = glob__ints__properties[2];
var2 = 1 << int__client + -1 | var2;
}
else
{
new var3 = glob__ints__properties[2];
var3 = ~1 << int__client + -1 & var3;
}
new var4 = glob__ints__properties[1];
var4 = 1 << int__client + -1 | var4;
static int__info_target;
if (!int__info_target)
{
int__info_target = engfunc(43, "info_target");
}
glob__ints__weapon_ent[int__client] = engfunc(21, int__info_target);
if (pev_valid(glob__ints__weapon_ent[int__client]))
{
engfunc(2, glob__ints__weapon_ent[int__client], "models/p_knife.mdl");
set_pev(glob__ints__weapon_ent[int__client], 69, 12);
set_pev(glob__ints__weapon_ent[int__client], 73, 128);
set_pev(glob__ints__weapon_ent[int__client], 17, int__client);
}
return 0;
}
public event__amxx__cur_weapon(int__player)
{
new var1;
if (!1 << int__player + -1 & glob__ints__properties[0] || read_data(1) == 1)
{
return 0;
}
glob__ints__weapon[int__player] = read_data(2);
new var2;
if (glob__ints__weapon[int__player] < 1 || glob__ints__weapon[int__player] > 30)
{
glob__ints__weapon[int__player] = 29;
}
if (1 << int__player + -1 & glob__ints__properties[4])
{
func__void__send_cur_weapon(int__player, true);
}
else
{
func__void__send_cur_weapon(int__player, false);
}
return 0;
}
public forw__ham__alive_handle_pre(int__player)
{
new var1 = glob__ints__properties[3];
var1 = 1 << int__player + -1 | var1;
return 1;
}
public forw__ham__alive_handle_post(int__player)
{
if (!is_user_alive(int__player))
{
new var1 = glob__ints__properties;
var1[0] = ~1 << int__player + -1 & var1[0];
func__void__set_ent_visibility(glob__ints__weapon_ent[int__player], 0);
}
else
{
new var2 = glob__ints__properties;
var2[0] = 1 << int__player + -1 | var2[0];
new var3 = glob__ints__properties[3];
var3 = ~1 << int__player + -1 & var3;
func__void__set_ent_visibility(glob__ints__weapon_ent[int__player], 1);
}
return 1;
}
public forw__fm__add_to_full_pack_post(int__es_handle, int__e, int__ent, int__host, int__flags, int__player, int__set)
{
new var1;
if (!int__player || !1 << int__host + -1 & glob__ints__properties[1] || !1 << int__host + -1 & glob__ints__properties[0] || 1 << int__host + -1 & glob__ints__properties[2] || !pev_valid(int__ent))
{
return 1;
}
set_es(int__es_handle, 35, 1);
set_es(int__es_handle, 11, 0);
if (int__ent != int__host)
{
set_es(int__es_handle, 36, 0);
}
return 1;
}
func__void__send_cur_weapon(int__player, bool:bool__state)
{
message_begin(1, glob__int__msg_cur_weapon, 21460, int__player);
write_byte(1);
if (bool__state)
{
write_byte(6);
}
else
{
write_byte(MaxClients);
}
write_byte(MaxClients);
message_end();
return 0;
}
func__void__set_ent_visibility(int__entity, int__visibility)
{
new var1;
if (int__visibility == 1)
{
var1 = pev(int__entity, 73) & -129;
}
else
{
var1 = pev(int__entity, 73) | 128;
}
set_pev(int__entity, 73, var1);
return 0;
}
func__void__send_weapon_list(int__player, bool:bool__state)
{
if (bool__state)
{
message_begin(1, glob__int__msg_weapon_list, 21472, int__player);
write_string(glob__x2i__weapon_list[glob__ints__weapon[int__player]]);
write_byte(-1);
write_byte(-1);
write_byte(-1);
write_byte(-1);
write_byte(MaxClients);
write_byte(1);
write_byte(6);
write_byte(MaxClients);
message_end();
}
else
{
message_begin(1, glob__int__msg_weapon_list, 21472, int__player);
write_string("weapon_c4");
write_byte(-1);
write_byte(-1);
write_byte(-1);
write_byte(-1);
write_byte(NULL_STRING);
write_byte(1);
write_byte(6);
write_byte(MaxClients);
message_end();
}
return 0;
}