AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Scripting Help (https://forums.alliedmods.net/forumdisplay.php?f=11)
-   -   add on all flags (https://forums.alliedmods.net/showthread.php?t=295468)

razb95 03-26-2017 10:08

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

jimaway 03-26-2017 10:30

Re: add on all flags
 
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; }

razb95 03-26-2017 11:22

Re: add on all flags
 
No not here this public its count how much admins have look in the menu when its write the admins names.

razb95 03-26-2017 12:11

Re: add on all flags
 
^^^

jimaway 03-26-2017 12:50

Re: add on all flags
 
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

razb95 03-26-2017 13:04

Re: add on all flags
 
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 03-30-2017 12:33

Re: add on all flags
 
Any help someone?!?!


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

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