add on all flags
Hey any one can help me pls!?
in the menu if i Owner its add me on all flags
because owner have all flags !
any one can help me fix it?
Quote:
* Plugin generated by AMXX-Studio */
#include <amxmodx>
#include <amxmisc>
#include <fun>
#define PLUGIN "Admins Online"
#define VERSION "1.0"
#define AUTHOR "Anonymous"
new Owners, Managers, SuperAdmins, Admins, Moderators;
new Currect[ 33 ];
enum _:g_mData
{
g_mNames[ 32 ],
g_mAccess
};
new const szAdmin[ ][ g_mData ] =
{
{ "Owners", ADMIN_IMMUNITY },
{ "Managers", ADMIN_RESERVATION },
{ "Super Admins", ADMIN_LEVEL_C },
{ "Admins", ADMIN_BAN },
{ "VIPs", ADMIN_KICK }
};
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_clcmd( "say /admin", "AdminOnline");
register_clcmd( "say /admins", "AdminOnline");
}
public Check( )
{
Owners = 0;
Managers = 0;
SuperAdmins = 0;
Admins = 0;
Moderators = 0;
new bool:countp[ 33 ];
for( new id = 1 ; id <= get_maxplayers(); id++ )
{
countp[ id ] = false
if(get_user_flags( id ) & ADMIN_IMMUNITY && countp[ id ] == false )
Owners++; countp[ id ] = true;
if(get_user_flags( id ) & ADMIN_RESERVATION && countp[ id ] == false )
Managers++; countp[ id ] = true;
if(get_user_flags( id ) & ADMIN_LEVEL_C && countp[ id ] == false )
SuperAdmins++; countp[ id ] = true;
if(get_user_flags( id ) & ADMIN_BAN && countp[ id ] == false )
Admins++; countp[ id ] = true;
if(get_user_flags( id ) & ADMIN_KICK && countp[ id ] == false )
Moderators++; countp[ id ] = true;
}
}
public AdminOnline(id)
{
Check( )
new szMenu[ 128 ];
formatex( szMenu, charsmax( szMenu ), "\yAdmins Online" )
new Menu = menu_create( szMenu, "AdminOnline_sub" );
if( Owners >= 1 )
{
formatex( szMenu, charsmax( szMenu ), "\wShow \rOwners \y(%i)", Owners);
menu_additem( Menu, szMenu, "0" );
}
else
{
formatex( szMenu, charsmax( szMenu ), "\wShow \rOwners \d(0)");
menu_additem( Menu, szMenu, "0" );
}
if( Managers >= 1 )
{
formatex( szMenu, charsmax( szMenu ), "\wShow \rManagers \y(%i)", Managers);
menu_additem( Menu, szMenu, "1" );
}
else
{
formatex( szMenu, charsmax( szMenu ), "\wShow \rManagers \d(0)");
menu_additem( Menu, szMenu, "1" );
}
if( SuperAdmins >= 1 )
{
formatex( szMenu, charsmax( szMenu ), "\wShow \rSuperAdmins \y(%i)", SuperAdmins);
menu_additem( Menu, szMenu, "2" );
}
else
{
formatex( szMenu, charsmax( szMenu ), "\wShow \rSuperAdmins \d(0)");
menu_additem( Menu, szMenu, "2" );
}
if( Admins >= 1 )
{
formatex( szMenu, charsmax( szMenu ), "\wShow \rAdmins \y(%i)", Admins);
menu_additem( Menu, szMenu, "3" );
}
else
{
formatex( szMenu, charsmax( szMenu ), "\wShow \rAdmins \d(0)");
menu_additem( Menu, szMenu, "3" );
}
if( Moderators >= 1 )
{
formatex( szMenu, charsmax( szMenu ), "\wShow \rModerators \y(%i)", Moderators);
menu_additem( Menu, szMenu, "4" );
}
else
{
formatex( szMenu, charsmax( szMenu ), "\wShow \rModerators \d(0)");
menu_additem( Menu, szMenu, "4" );
}
menu_setprop(Menu, MPROP_EXIT, MEXIT_ALL );
menu_setprop(Menu, MPROP_EXITNAME, "\wExit" )
menu_setprop(Menu, MPROP_NUMBER_COLOR, "\r" )
menu_display(id, Menu, 0);
return PLUGIN_HANDLED;
}
public AdminOnline_sub(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, 6, iName, 63, callback)
new key = str_to_num(data);
switch(key)
{
case 0:{ Currect[ id ] = 0; ViewFlagMenu( id ); }
case 1:{ Currect[ id ] = 1; ViewFlagMenu( id ); }
case 2:{ Currect[ id ] = 2; ViewFlagMenu( id ); }
case 3:{ Currect[ id ] = 3; ViewFlagMenu( id ); }
case 4:{ Currect[ id ] = 4; ViewFlagMenu( id ); }
}
menu_destroy(Menu);
return PLUGIN_HANDLED;
}
public ViewFlagMenu(id)
{
new Flag;
if( Currect[ id ] == 0 )
Flag = Owners;
if( Currect[ id ] == 1 )
Flag = Managers;
if( Currect[ id ] == 2 )
Flag = SuperAdmins;
if( Currect[ id ] == 3 )
Flag = Admins;
if( Currect[ id ] == 4 )
Flag = Moderators;
static String[ 200 ], toadd[ 60 ], count;
new bool:added[ 33 ];
formatex( String, charsmax( String ), "\yAdmins Online^n\r%s \wOnline\y(%i)", szAdmin[ Currect[ id ] ][ g_mNames ], Flag )
new Menu = menu_create( String, "ViewFlagMenu_sub" );
formatex( String, charsmax( String ), "");
count = 0;
for( new s = 1 ; s <= get_maxplayers() ; s++ )
{
if( !is_user_connected( s ) || !( get_user_flags( s ) & szAdmin[ Currect[ id ] ][ g_mAccess ] ) || added[ s ] )
continue;
if( count )
add( String, charsmax( String ), "\r,^n " );
add( String, charsmax( String ), "\w " );
added[ s ] = true;
add( String, charsmax( String ), szName( s ) );
count++;
}
if( !count )
{
formatex( toadd, charsmax( toadd ), "\rNo %s Online", szAdmin[ Currect[ id ] ][ g_mNames ]);
add( String, charsmax( String ), toadd );
}
menu_additem( Menu, String );
menu_setprop(Menu, MPROP_EXIT, MEXIT_ALL );
menu_setprop(Menu, MPROP_EXITNAME, "\wExit" )
menu_setprop(Menu, MPROP_NUMBER_COLOR, "\r" )
menu_display(id, Menu, 0);
return PLUGIN_HANDLED;
}
public ViewFlagMenu_sub(id, Menu, item)
{
if( item == MENU_EXIT )
{
menu_destroy(Menu);
AdminOnline(id);
return PLUGIN_HANDLED;
}
return ViewFlagMenu( id )
return 1;
}
stock szName( const index )
{
static Name[ 128 ];
get_user_name( index, Name, charsmax( Name ) );
return Name;
}
|
|