Member
|
09-07-2019
, 06:47
[Edit] Plugin /help
|
#1
|
Hi, I have this / help plugin for the base builder mode which should be in preparation when someone writes / help to make a sound, and the admin to appear as a specific player needs help. But after the admin accepts the request for help, the chat messages start to appear 2-3 times, ie if I write something it appears 2-3 times. Even the automatic messages on the server do the same. Can anyone modify it so that it doesn't stop this bug with the messages? Thank you in advance.
Sorry for my english.
PHP Code:
#include <amxmodx>
#include <amxmisc>
#include <engine>
#include <fakemeta>
#include <cstrike>
#include <basebuilder>
#define SPRITE "sprites/white.spr"
#define HELPSOUND "misc/bb_help.wav"
#define ADMIN_FLAG ADMIN_KICK
new bool:valuri
new sprite_white;
new array:g_Array
public plugin_init() {
register_plugin("Help System","1.0","MAGNET")
register_event("HLTV", "rundanoua", "a", "1=0", "2=0");
register_clcmd("say /ajutor", "ajutor")
register_clcmd("say /help", "ajutor")
register_clcmd("say /adminhelp", "ajutor_menu", ADMIN_FLAG, "Select player to help")
register_clcmd("say /ahelp", "ajutor_menu", ADMIN_FLAG, "Select player to help")
register_clcmd("say /ah", "ajutor_menu", ADMIN_FLAG, "Select player to help")
g_Array = ArrayCreate(16);
}
public plugin_precache()
{
sprite_white = precache_model(SPRITE);
precache_sound(HELPSOUND)
}
public bb_prepphase_started()
{
valuri = true
}
public bb_round_started()
{
valuri = false;
}
public rundanoua()
{
valuri = false;
}
public ajutor(id)
{
new nick[33];
get_user_name(id, nick, charsmax(nick))
if(!is_user_alive(id))
return PLUGIN_HANDLED;
if(cs_get_user_team(id) != CS_TEAM_CT)
{
client_print(id, print_chat, "[Help System] Zombie nu au acces la aceasta comanda.")
return PLUGIN_HANDLED;
}
if(!valuri)
{
client_print(id, print_chat, "[Help System] Nu poti folosi inca aceasta comanda.")
return PLUGIN_HANDLED;
}
for(new i = 0;i<32;i++)
{
if(!is_user_connected(i) || !(get_user_flags(i) & ADMIN_FLAG)) continue;
ArrayPushString(g_Array, nick)
client_print(0, print_chat, "[Help System] Jucatorul %s are nevoie de ajutor.", nick)
client_cmd(i, "spk misc/bb_help.wav")
}
set_task(1.0, "Info", id+32, _, _, "b");
return PLUGIN_CONTINUE;
}
public ajutor_menu(id) {
new szTemp[15]
new menu = menu_create("Help Players Menu", "menu_handler")
if(!ArraySize(g_Array))
{
client_print(id, print_chat, "[Help System] Nimeni nu are nevoie de ajutor.")
return;
}
else
{
for (new i; i < ArraySize(g_Array); i++)
{
ArrayGetString(g_Array, i, szTemp, charsmax(szTemp))
menu_additem(menu, szTemp, _, i, 0)
}
}
menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)
menu_display(id, menu, 0)
}
public menu_handler(id, menu, item)
{
if (item == MENU_EXIT)
{
menu_destroy(menu);
return;
}
new data[6], name[64], admin_name[32]
new access, callback
get_user_name(id, admin_name, 31)
menu_item_getinfo(menu, item, access, data, 5, name, 63, callback)
client_print(0, print_chat, "[Help System] %s a acceptat cererea de ajutor a lui %s.", admin_name, name)
client_cmd(id, "amx_godmode %s", name)
client_cmd(id, "amx_godmode %s", admin_name)
client_cmd(id, "amx_noclip %s", admin_name)
ArrayDeleteItem(g_Array, callback)
menu_destroy(menu)
return;
}
public Info(id)
{
id-=32;
if(!is_user_alive(id) || !valuri || cs_get_user_team(id) != CS_TEAM_CT)
{
remove_task(id+32);
return;
}
emit_sound(id, CHAN_AUTO, HELPSOUND, VOL_NORM, ATTN_NORM, 0, PITCH_NORM);
new Float:forigin[3];
entity_get_vector(id, EV_VEC_origin, forigin);
new iOrigin[3];
for(new i=0;i<3;i++)
iOrigin[i] = floatround(forigin[i]);
message_begin( MSG_BROADCAST, SVC_TEMPENTITY, iOrigin );
write_byte( TE_BEAMCYLINDER );
write_coord( iOrigin[0] );
write_coord( iOrigin[1] );
write_coord( iOrigin[2] );
write_coord( iOrigin[0] );
write_coord( iOrigin[1] + 300 );
write_coord( iOrigin[2] + 300 );
write_short( sprite_white );
write_byte( 0 ); // startframe
write_byte( 0 ); // framerate
write_byte( 10 ); // life
write_byte( 10 ); // width
write_byte( 255 ); // noise
write_byte( 255 ); // r, g, b
write_byte( 100 );// r, g, b
write_byte( 100 ); // r, g, b
write_byte( 128 ); // brightness
write_byte( 0 ); // speed
message_end();
}
|
|