So if I wanted to add a third item to my menu "Fun mode: ON/OFF" that switches Gravity and Invisibility required flags. ON = Immunity flag "a" and OFF = Super Admin flag "x"
It's definitely messed up, cause I don't know how to use that thing you gave me :/
PHP Code:
#include <amxmodx>
#include <amxmisc>
#include <fun>
#include <hamsandwich>
#define SUPER_ADMIN_FLAG (1<<23) // flag "x"
new bool:Invisibility[32];
new bool:Gravity[32];
new bool:Funmode[32];
new g_access = SUPER_ADMIN_FLAG
public plugin_init()
{
RegisterHam(Ham_Spawn, "player", "Player_Spawn", 1);
register_clcmd( "say /fun","Fun_Menu");
}
public Fun_Menu(id)
{
new menu = menu_create("Fun Menu", "menu_handler");
new szTemp[500];
formatex(szTemp, charsmax(szTemp), "Invisibility: \r[%s]", Invisibility[id] ? "ON" : "OFF");
menu_additem(menu, szTemp, "1", ADMIN_IMMUNITY);
formatex(szTemp, charsmax(szTemp), "Gravity: \r[%s]", Gravity[id] ? "ON" : "OFF");
menu_additem(menu, szTemp, "2", ADMIN_IMMUNITY);
formatex(szTemp, charsmax(szTemp), "FUN Mode: \r[%s]", Funmode[id] ? "ON" : "OFF");
menu_additem(menu, szTemp, "3", SUPER_ADMIN_FLAG);
menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
menu_display(id, menu, 0);
return
}
public menu_handler(id, menu, item)
{
if( item == MENU_EXIT )
{
menu_destroy(menu);
return PLUGIN_HANDLED;
}
new data[6], szName[64];
new access, callback;
menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
new key = str_to_num(data);
switch(key)
{
case 1:
{
set_user_rendering( id, kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, Invisibility[id] ? 255:0);
set_hudmessage(0, 255, 0, 0.03, 0.24, 0, 0.0, 0.0, 4.0, 10.0,1)
show_hudmessage(id,"Invisibility is %s",Invisibility[id] ? "OFF":"ON")
Invisibility[id] = !Invisibility[id];
Fun_Menu(id)
return PLUGIN_HANDLED;
}
case 2:
{
set_user_gravity( id, Gravity[id] ? 1.0:0.2);
set_hudmessage(0, 255, 0, 0.03, 0.24, 0, 0.0, 0.0, 4.0, 10.0,1)
show_hudmessage(id,"Gravity is %s",Gravity[id] ? "OFF":"ON")
Gravity[id] = !Gravity[id];
Fun_Menu(id)
return PLUGIN_HANDLED
}
case 3:
{
// I do not know what to put here :S
Funmode[id] = !Funmode[id];
Fun_Menu(id)
return PLUGIN_HANDLED
}
}
return PLUGIN_HANDLED;
}
public client_connect(id)
{
Invisibility[id] = false;
set_user_rendering( id, kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, 255);
Gravity[id] = false;
set_user_gravity( id, 1.0);
}
public Player_Spawn(id)
{
if(Gravity[id])
{
set_user_gravity(id, 0.2);
}
if(Invisibility[id])
{
set_user_rendering( id, kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, 0);
}
}