Why the hell this script is working wrong ? when i choose bullet damage mode. it shows damage done, but i can't turn it off anymore after 1 us
The actual problem is that the Bullet Mode won't turn off correctly. because when i turn it off, the "public on_damage" won't check player again, it checks only on plugin load ;(
PHP Code:
#include <amxmodx>
new bool:BulletMode[33] = false;
new bool:VampireMode[33] = false;
public plugin_init()
{
register_plugin("TEST", "1.0", "Addinol");
register_event("Damage", "on_damage", "b", "2!0", "3=0", "4!0")
g_MsgSync = CreateHudSyncObj()
#if defined DAMAGE_RECIEVED
g_MsgSync2 = CreateHudSyncObj()
#endif
}
public Menu(id)
{
new menu = menu_create("\rPLAYER Menu:", "menu_handler");
//Now lets add some things to select from the menu
menu_additem(menu, "\wBullet Mode", "1", 0);
menu_additem(menu, "\wVampire Mode", "1", 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 PLUGIN_HANDLED;
}
new data[6], iName[64];
new access, callback;
menu_item_getinfo(menu, item, access, data,5, iName, 63, callback);
new key = str_to_num(data);
switch(key)
{
case 1:
{
BulletMode[id] = true;
VampireMode[id] = false;
client_print(id, print_chat, "Bullet Damage activated");
menu_destroy(menu);
return PLUGIN_HANDLED;
}
case 2:
{
BulletMode[id] = false;
VampireMode[id] = true;
client_print(id, print_chat, "Vampire Mode activated");
menu_destroy(menu);
return PLUGIN_HANDLED;
}
menu_destroy(menu);
return PLUGIN_HANDLED;
}
public on_damage(id)
{
new attacker = get_user_attacker(id)
#if defined DAMAGE_RECIEVED
if ( is_user_connected(id) && is_user_connected(attacker) )
if (get_user_flags(attacker) & ADMIN_LEVEL_H && BulletMode[id] == true)
{
new damage = read_data(2)
set_hudmessage(255, 0, 0, 0.45, 0.50, 2, 0.1, 4.0, 0.1, 0.1, -1)
ShowSyncHudMsg(id, g_MsgSync2, "%i^n", damage)
#else
if ( BulletMode[id] == true && get_user_flags(attacker) & ADMIN_LEVEL_H )
{
new damage = read_data(2)
#endif
set_hudmessage(0, 100, 200, -1.0, 0.55, 2, 0.1, 4.0, 0.02, 0.02, -1)
ShowSyncHudMsg(attacker, g_MsgSync, "%i^n", damage)
}else{
return PLUGIN_HANDLED;
}
return PLUGIN_HANDLED;
}