Hello im making a vipmenu with next to each item name wait x sec or available but i need to now how to fix this is shorter code because now i have to add it on each single item as you see in my code;
PHP Code:
/* Plugin generated by AMXX-Studio */
#include <amxmodx>
#include <colorchat>
#include <hamsandwich>
#include <fun>
#define PLUGIN "Menu"
#define VERSION "1.0"
#define AUTHOR "asdfdsdf"
#define SCOREATTRIB_VIP ( 1 << 2 )
new const Prefix[] = "[vip]"
new const Quad[] = "/misc/vip/fa/quad.wav"
new Time[33]
new Timer[33]
new Timers[33]
new bool: Hasdamage[33]
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_clcmd("say /menu", "Cmdmenu")
register_message(get_user_msgid("ScoreAttrib"), "Message_ScoreAttrib")
RegisterHam(Ham_TakeDamage, "player", "Cmdtakedamage")
}
public Message_ScoreAttrib( iMessageID, iMessageType, iMessageDest ) {
static iPlayer;
iPlayer = get_msg_arg_int(1)
if(get_user_flags(iPlayer) & ADMIN_LEVEL_H)
{
set_msg_arg_int(2, ARG_BYTE, SCOREATTRIB_VIP)
}
}
public plugin_precache()
{
precache_sound(Quad)
}
public Cmdtakedamage(id, inflictor, attacker, Float:damage, damagebits)
{
if (Hasdamage[id] && is_user_alive(id))
{
SetHamParamFloat(4, damage * 4.0)
}
}
public Cmdmenu(id)
{
new szText[555 char]
new menu = menu_create("\yVipMenu", "Menuhandler")
if (Time[id] > 0)
{
formatex(szText, charsmax(szText), "\rNoclip \y(10s) \r[Wait %isec]", Time[id])
menu_additem(menu, szText, "1", 0)
}
else
{
formatex(szText, charsmax(szText), "\rNoclip \y(10s) \r[Available]")
menu_additem(menu, szText, "1", 0)
}
if (Timer[id] > 0)
{
formatex(szText, charsmax(szText), "\rGodmode \y(10s) \r[Wait %isec]", Timer[id])
menu_additem(menu, szText, "2", 0)
}
else
{
formatex(szText, charsmax(szText), "\rGodmode \y(10s) \r[Available]")
menu_additem(menu, szText, "2", 0)
}
if (Timers[id] > 0)
{
formatex(szText, charsmax(szText), "\yQuad \rdamage \y(10s) \r[Wait %isec]", Timers[id])
menu_additem(menu, szText, "3", 0)
}
else
{
formatex(szText, charsmax(szText), "\yQuad \rDamage \y(10s) \r[Available]")
menu_additem(menu, szText, "3", 0)
}
menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)
menu_display(id, menu, 0)
}
public Menuhandler(id, menu, item)
{
if (item == MENU_EXIT)
{
menu_destroy(menu)
return PLUGIN_HANDLED
}
new data[6], name[64], acces, callback
menu_item_getinfo(menu, item, acces, data, charsmax(data), name, charsmax(name), callback)
new key = str_to_num(data)
switch (key)
{
case 1:
{
if (!(Time[id] == 0))
{
return PLUGIN_HANDLED
}
Time[id] = 300
set_user_noclip(id, 1)
set_task(10.0, "Resetnoclip", id)
set_task(1.0, "Resettime", id)
ColorChat(id, GREY, "%s ^1You have ^4enabled^1 your noclip! ^3(10s)", Prefix)
}
case 2:
{
if (!(Timer[id] == 0))
{
return PLUGIN_HANDLED
}
Timer[id] = 1500
set_user_godmode(id, 1)
set_task(10.0, "Resetgodmode", id)
set_task(1.0, "Resettimer", id)
ColorChat(id, GREY, "%s ^1You have ^4enabled^1 your godmode! ^3(10s)", Prefix)
}
case 3:
{
if (!(Timers[id] == 0))
{
return PLUGIN_HANDLED
}
if (Hasdamage[id])
{
return PLUGIN_HANDLED
}
Timers[id] = 600
Hasdamage[id] = true
client_cmd(id, "spk %s", Quad)
set_task(1.0, "Resettimers", id)
ColorChat(id, GREY, "%s ^1You have ^4enabled^1 your Quad damage! ^3(15s)", Prefix)
}
}
menu_destroy(menu)
return PLUGIN_HANDLED
}
public Resettime(id)
{
if (Time[id] > 0)
{
Time[id] --
set_task(1.0, "Resettime", id)
}
}
public Resettimer(id)
{
if (Timer[id] > 0)
{
Timer[id] --
set_task(1.0, "Resettimer", id)
}
}
public Resettimers(id)
{
if (Timers[id] > 0)
{
Timers[id] --
set_task(1.0, "Resettimers", id)
return PLUGIN_CONTINUE
}
Hasdamage[id] = false
return PLUGIN_HANDLED
}
public Resetnoclip(id)
{
set_user_noclip(id, 0)
ColorChat(id, GREY, "%s ^1Your noclip has been ^4removed^1!", Prefix)
}
public Resetgodmode(id)
{
set_user_godmode(id, 0)
ColorChat(id, GREY, "%s ^1Your godmode has been ^4removed^1!", Prefix)
}