| Martz456 |
12-23-2012 14:12 |
Re: Toggle ON/OFF
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); } }
|