Raised This Month: $ Target: $400
 0% 

add on all flags


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
razb95
Junior Member
Join Date: Dec 2016
Old 03-26-2017 , 10:08   add on all flags
Reply With Quote #1

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;
}

Last edited by razb95; 03-26-2017 at 10:10.
razb95 is offline
jimaway
Heeeere's Jimmy!
Join Date: Jan 2009
Location: Estonia
Old 03-26-2017 , 10:30   Re: add on all flags
Reply With Quote #2

Code:
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;         continue;     }         if(get_user_flags( id ) & ADMIN_RESERVATION && countp[ id ] == false )     {         Managers++;         countp[ id ] = true;         continue;     }     if(get_user_flags( id ) & ADMIN_LEVEL_C && countp[ id ] == false )     {         SuperAdmins++;         countp[ id ] = true;         continue;     }     if(get_user_flags( id ) & ADMIN_BAN && countp[ id ] == false )     {         Admins++;         countp[ id ] = true;         continue;     }     if(get_user_flags( id ) & ADMIN_KICK && countp[ id ] == false )         Moderators++; countp[ id ] = true; }

Last edited by jimaway; 03-26-2017 at 10:30.
jimaway is offline
razb95
Junior Member
Join Date: Dec 2016
Old 03-26-2017 , 11:22   Re: add on all flags
Reply With Quote #3

No not here this public its count how much admins have look in the menu when its write the admins names.
razb95 is offline
razb95
Junior Member
Join Date: Dec 2016
Old 03-26-2017 , 12:11   Re: add on all flags
Reply With Quote #4

^^^
razb95 is offline
jimaway
Heeeere's Jimmy!
Join Date: Jan 2009
Location: Estonia
Old 03-26-2017 , 12:50   Re: add on all flags
Reply With Quote #5

rewriting most of your code would be easier than fixing it.

create the listing menus while you're counting, this way you wont have to add a ton of checks that you already have to make sure same user wont be present under multiple lists
jimaway is offline
razb95
Junior Member
Join Date: Dec 2016
Old 03-26-2017 , 13:04   Re: add on all flags
Reply With Quote #6

I understand that the best way is to rebuild the code, but you can try to help me or to rebuild it so I understand what you mean.
razb95 is offline
razb95
Junior Member
Join Date: Dec 2016
Old 03-30-2017 , 12:33   Re: add on all flags
Reply With Quote #7

Any help someone?!?!
razb95 is offline
Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 17:50.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode