Code:
#include <amxmodx>
#include <amxmisc>
#include <engine>
#include <fun>
#define PLUGIN "KB Detector"
#define VERSION "1.0"
#define AUTHOR "-"
new xyzer[33][3],vector[33][3],xyzer2[33][3],vector2[33][3],health[33],id2[33]
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_clcmd("say /kb","Players_Menu",ADMIN_BAN,"Player menu. (KB DETECTOR)")
register_clcmd("say /test","test")
}
public Players_Menu(id){
new i_Menu = menu_create("[ DETECT KB ON ]", "menu_handler")
new s_Players[32], i_Num, i_Player
new s_Name[32], s_Player[10]
get_players(s_Players, i_Num)
for (new i; i < i_Num; i++){
i_Player = s_Players[i]
get_user_name(i_Player, s_Name, charsmax(s_Name))
num_to_str(i_Player, s_Player, charsmax(s_Player))
menu_additem(i_Menu, s_Name, s_Player, 0)
}
menu_display(id, i_Menu, 0)
}
public menu_handler(id, menu, item){
if (item == MENU_EXIT){
menu_destroy(menu)
return PLUGIN_HANDLED
}
new s_Data[6], s_Name[64], i_Access, i_Callback
menu_item_getinfo(menu, item, i_Access, s_Data, charsmax(s_Data), s_Name, charsmax(s_Name), i_Callback)
new i_Player = str_to_num(s_Data)
if (is_user_alive(id)){
if (is_user_alive(i_Player)&&is_user_connected(i_Player)){
get_user_origin(id,xyzer[id],0)
entity_get_vector(id,EV_VEC_angles,vector[id])
new xxxxx2[3];
get_user_origin(id,xxxxx2,0)
xxxxx2[0]=xxxxx2[0]+20
//save
get_user_origin(i_Player,xyzer2[id],0)
entity_get_vector(i_Player,EV_VEC_angles,vector2[id])
health[id] = get_user_health(id)
id2[id] = i_Player
//player
new Float:angle[3]
angle[1] = 180.0
entity_set_vector(i_Player, EV_VEC_angles, angle)
entity_set_int(i_Player, EV_INT_fixangle, 1)
//admin
new Float:angle2[3]
angle2[1] = 0.0
entity_set_vector(id, EV_VEC_angles, angle2)
entity_set_int(id, EV_INT_fixangle, 1)
set_user_health(id,100)
set_user_origin(i_Player,xxxxx2)
set_task(0.3,"check",id)
}else{
client_print(id,print_chat,"[KB] The player is dead!")
}
}else{
client_print(id,print_chat,"[KB] You have to be alive!")
}
menu_destroy(menu)
return PLUGIN_HANDLED
}
public test(id){
new g_origin[3]
get_user_origin(id,g_origin,0)
client_print(id,print_chat,"[KB] X: %d, Y: %d, Z: %d",g_origin[0],g_origin[1],g_origin[2])
}
public check(id){
new i_Player = id2[id]
new name[255],ip[255]
get_user_name(i_Player,name,254)
get_user_ip(i_Player,ip,254,1)
new hp = get_user_health(id)
if(hp!=100){
client_print(id,print_chat,"[KB] KB DETECTED (NAME: %s | IP: %s)",name,ip)
}else{
client_print(id,print_chat,"[KB] NO KB ON %s.",name)
}
set_user_health(id,health[id])
set_user_origin(id,xyzer[id])
entity_set_vector(id, EV_VEC_angles, vector[id])
entity_set_int(id, EV_INT_fixangle, 1)
set_user_origin(i_Player,xyzer2[id])
entity_set_vector(i_Player, EV_VEC_angles, vector2[id])
entity_set_int(i_Player, EV_INT_fixangle, 1)
}