PHP Code:
Plugin:
/* AMXMOD
Uso:
bind a button to: amx_menu_vip & amx_menu_vip_last
*/
#include <amxmodx>
#include <amxmisc>
#define RegisterSprays 1
#define SlayWhenShowingRules 1
#define SPRAY_TIME 120.0
#define MAX_DISTANCE 75
#define MAX_SPRAYID 20
#define MaxPlayers 32
#define BanTime 20
#define LastAdminTarget 1
#define SlapDMG 0
#define UseAMXBANS 0
// If you want to change the command sent to the client to show the rules search for "amx_publicrules"
new g_SprayIdOrigins[MAX_SPRAYID+1][3]
new g_SprayIdAuth[MAX_SPRAYID+1][35]
new g_SprayNum = 1
new g_AdminTarget[MaxPlayers+1]
new g_LastTarget[MaxPlayers+1]
public plugin_init() {
register_plugin("DarkFrag Menu","1.2","TEAM DarkFrag")
register_menucmd(register_menuid("DarkFrag Menu"),1023,"aimadminmenu")
register_clcmd("amx_menu_vip","cmdAimAdminmenu",ADMIN_BAN,"Carrega amx_menu_vip com base em que voce mirou")
#if LastAdminTarget == 1
register_clcmd("amx_menu_vip_last","cmdLastAdminTarget",ADMIN_BAN,"Carrega amx_menu_vip com base no ultimo jogador")
#endif
#if RegisterSprays == 1
register_event("23", "NewSpray", "a", "1=112")
#endif
}
public aimadminmenu(id,key){
if (!is_user_connected(g_AdminTarget[id])) {
client_print(id,print_center,"Jogador saiu do server")
return PLUGIN_HANDLED
}
new param[3]
switch(key){
case 0: {
user_slap(g_AdminTarget[id],SlapDMG)
g_LastTarget[id] = g_AdminTarget[id]
param[0] = 1
param[1] = g_AdminTarget[id]
param[2] = id
EchoAdminAction(param)
}
case 1: {
client_cmd(g_AdminTarget[id],"amx_publicrules")
#if SlayWhenShowingRules == 1
user_kill(g_AdminTarget[id])
#endif
g_LastTarget[id] = g_AdminTarget[id]
param[0] = 2
param[1] = g_AdminTarget[id]
param[2] = id
EchoAdminAction(param)
}
case 2: {
g_LastTarget[id] = g_AdminTarget[id]
param[0] = 3
param[1] = g_AdminTarget[id]
param[2] = id
EchoAdminAction(param)
server_cmd("kick #%d",get_user_userid(g_AdminTarget[id]))
}
case 3: {
g_LastTarget[id] = g_AdminTarget[id]
param[0] = 4
param[1] = g_AdminTarget[id]
param[2] = id
EchoAdminAction(param)
#if UseAMXBANS == 0
server_cmd("banid %d.0 #%d kick",BanTime,get_user_userid(g_AdminTarget[id]))
#else
new Authid[35]
get_user_authid(g_AdminTarget[id],Authid,34)
server_cmd("amx_ban %d.0 %s hack detected",BanTime,Authid)
#endif
}
case 4: {
g_LastTarget[id] = g_AdminTarget[id]
param[0] = 5
param[1] = g_AdminTarget[id]
param[2] = id
EchoAdminAction(param)
#if UseAMXBANS == 0
server_cmd("banid 0.0 #%d kick;writeid",get_user_userid(g_AdminTarget[id]))
#else
new vAuthid[35]
new aName[32],aAuthid[35]
get_user_authid(g_AdminTarget[id],vAuthid,34)
get_user_authid(id,aAuthid,34)
get_user_name(id,aName,31)
server_cmd("amx_ban 0.0 %s Banned by %s<%s>",vAuthid,aName,aAuthid)
#endif
}
case 5: {
g_LastTarget[id] = g_AdminTarget[id]
param[0] = 6
param[1] = g_AdminTarget[id]
param[2] = id
EchoAdminAction(param)
server_cmd("amx_dinero #%d",get_user_userid(g_AdminTarget[id]))
}
}
return PLUGIN_HANDLED
}
public DisplayAimAdminmenu(id){
new menuBody[512],VictimName[33],len
get_user_name(g_AdminTarget[id],VictimName,32)
len = format(menuBody,2047,"DarkFrag Menu^nMirou em: %s^n^n",VictimName)
len += format(menuBody[len],2047 - len,"1. Tapa (dano %d)^n",SlapDMG)
#if SlayWhenShowingRules == 1
len += format(menuBody[len],2047 - len,"2. Kill(Slay)^n")
#else
len += format(menuBody[len],2047 - len,"2. DisplayRules^n")
#endif
len += format(menuBody[len],2047 - len,"3. Kick^n")
len += format(menuBody[len],2047 - len,"4. Ban for %d mins^n",BanTime)
len += format(menuBody[len],2047 - len,"5. Ban Permanente^n")
len += format(menuBody[len],2047 - len,"6. Dar Dinheiro^n")
len += format(menuBody[len],2047 - len,"0. Sair")
new keys = (1<<0|1<<1|1<<2|1<<3|1<<4|1<<5|1<<6|1<<8|1<<9)
show_menu(id,keys,menuBody)
}
public cmdAimAdminmenu(id,level,cid){
if(!cmd_access (id,level,cid,1)) return PLUGIN_HANDLED
new TargetID,body
get_user_aiming(id,TargetID,body)
#if RegisterSprays == 1
if(!TargetID)
{
new AdminOrigin[3]
get_user_origin(id,AdminOrigin,3)
for(new i=0;i<=MAX_SPRAYID;i++)
{
if (get_distance(AdminOrigin,g_SprayIdOrigins[i]) <= MAX_DISTANCE && g_SprayIdOrigins[i][0] != 0 && g_SprayIdOrigins[i][1] != 0 && g_SprayIdOrigins[i][2] != 0)
{
for(new b=1;b<=MaxPlayers;b++)
{
new Authid[35]
get_user_authid(b,Authid,34)
if(equal(Authid,g_SprayIdAuth[i]))
TargetID = b
}
}
}
}
#endif
if (!TargetID){
client_print(id,print_center,"Mire no jogador")
return PLUGIN_HANDLED
}
if (get_user_flags(TargetID) & ADMIN_IMMUNITY){
client_print(id,print_center,"Esse jogador tem imunidade")
return PLUGIN_HANDLED
}
g_AdminTarget[id] = TargetID
DisplayAimAdminmenu(id)
return PLUGIN_CONTINUE
}
#if LastAdminTarget == 1
public cmdLastAdminTarget(id,level,cid){
if(!cmd_access (id,level,cid,1)) return PLUGIN_HANDLED
if (!g_LastTarget[id]){
client_print(id,print_center,"Nao ha nenhum ultimo alvo.")
return PLUGIN_HANDLED
}
g_AdminTarget[id] = g_LastTarget[id]
DisplayAimAdminmenu(id)
return PLUGIN_CONTINUE
}
#endif
public EchoAdminAction(param[])
{
new VictimName[32],VictimAuth[35],AdminAuth[35],AdminName[32]
get_user_name(param[1],VictimName,32)
get_user_authid(param[1],VictimAuth,34)
get_user_name(param[2],AdminName,32)
get_user_authid(param[2],AdminAuth,34)
if(param[0] == 1) {
switch(get_cvar_num("amx_show_activity")) {
case 2: client_print(0,print_chat,"ADMIN %s: deu tapa em %s com %d de dano",AdminName,VictimName,SlapDMG)
case 1: client_print(0,print_chat,"ADMIN: %s deu tapa com %d de dano",VictimName,SlapDMG)
}
log_amx("Tapa: ^"%s<%d><%s><>^" deu tapa em ^"%s^" <^"%s^"> com %d de dano",AdminName,get_user_userid(param[2]),AdminAuth,VictimName,VictimAuth,SlapDMG)
return PLUGIN_CONTINUE
}
if(param[0] == 2) {
switch(get_cvar_num("amx_show_activity")) {
case 2: client_print(0,print_chat,"ADMIN %s: matou %s e mostrou-lhe as regras do servidor.",AdminName,VictimName)
case 1: client_print(0,print_chat,"ADMIN: %s foi morto e obrigado a ler as regras do servidor.",VictimName)
}
log_amx("Slay: ^"%s<%d><%s><>^" has slayed(shown rules) ^"%s^" <^"%s^">",AdminName,get_user_userid(param[2]),AdminAuth,VictimName,VictimAuth)
return PLUGIN_CONTINUE
}
if(param[0] == 3) {
switch(get_cvar_num("amx_show_activity")) {
case 2: client_print(0,print_chat,"ADMIN %s: %s foi expulso do servidor",AdminName,VictimName)
case 1: client_print(0,print_chat,"ADMIN: %s foi expulso do servidor",VictimName)
}
log_amx("Kick: ^"%s<%d><%s><>^" expulsou ^"%s^" <^"%s^">",AdminName,get_user_userid(param[2]),AdminAuth,VictimName,VictimAuth)
return PLUGIN_CONTINUE
}
if(param[0] == 4) {
switch(get_cvar_num("amx_show_activity")) {
case 2: client_print(0,print_chat,"ADMIN %s: baniu %s",AdminName,VictimName)
case 1: client_print(0,print_chat,"ADMIN: %s foi banido",VictimName)
}
log_amx("Banned: ^"%s<%d><%s><>^" baniu ^"%s^" <^"%s^"> por BanTime minutos",AdminName,get_user_userid(param[2]),AdminAuth,VictimName,VictimAuth)
return PLUGIN_CONTINUE
}
if(param[0] == 5) {
switch(get_cvar_num("amx_show_activity")) {
case 2: client_print(0,print_chat,"ADMIN %s: baniu permanentemente %s",AdminName,VictimName)
case 1: client_print(0,print_chat,"ADMIN: %s baniu permanentemente",VictimName)
}
log_amx("Banned: ^"%s<%d><%s><>^" baniu ^"%s^" <^"%s^"> Permanente",AdminName,get_user_userid(param[2]),AdminAuth,VictimName,VictimAuth)
return PLUGIN_CONTINUE
}
if(param[0] == 6) {
switch(get_cvar_num("amx_show_activity")) {
case 2: client_print(0,print_chat,"ADMIN %s: deu $1000 para %s",AdminName,VictimName)
case 1: client_print(0,print_chat,"ADMIN: %s ganhou $1000",VictimName)
}
log_amx("Dinheiro: ^"%s<%d><%s><>^" deu dinheiro $1000 para ^"%s^" <^"%s^">",AdminName,get_user_userid(param[2]),AdminAuth,VictimName,VictimAuth)
return PLUGIN_CONTINUE
}
if(param[0] == 7) {
switch(get_cvar_num("amx_show_activity")) {
case 2: client_print(0,print_chat,"ADMIN: %s nao term acesso a este comando",VictimName)
case 1: client_print(0,print_chat,"ADMIN: %s nao term acesso a este comando",VictimName)
}
log_amx("Dinheiro: ^"%s<%d><%s><>^" deu dinheiro $1000 para ^"%s^" <^"%s^">",AdminName,get_user_userid(param[2]),AdminAuth,VictimName,VictimAuth)
return PLUGIN_CONTINUE
}
return PLUGIN_CONTINUE
}
#if RegisterSprays == 1
public NewSpray() {
new id = read_data(2)
g_SprayIdOrigins[g_SprayNum][0] = read_data(3)
g_SprayIdOrigins[g_SprayNum][1] = read_data(4)
g_SprayIdOrigins[g_SprayNum][2] = read_data(5)
get_user_authid(id,g_SprayIdAuth[g_SprayNum],34)
new parm[1]
parm[0] = g_SprayNum
set_task(SPRAY_TIME,"RemoveSprayID",g_SprayNum,parm,1)
if (g_SprayNum == MAX_SPRAYID) g_SprayNum = 0
else g_SprayNum++
return PLUGIN_HANDLED
}
public RemoveSprayID(parm[])
{
g_SprayIdOrigins[parm[0]][0] = 0
g_SprayIdOrigins[parm[0]][1] = 0
g_SprayIdOrigins[parm[0]][2] = 0
}
#endif
public client_disconnected(id)
for(new i=1;i<=MaxPlayers;i++) { if(g_LastTarget[i] == id) g_LastTarget[i] = 0;}