I make it for you, can you test and post some problems / errors if it have ?
PHP Code:
#include <amxmodx>
#include <hamsandwich>
new gMenu;
enum MessageType
{
MT_DeadCt = 0,
MT_DeadTe,
MT_DeadAll,
MT_DeadPlayer
};
new const RevCommands [] [] =
{
"/revive",
".revive",
"revive",
"rev",
"/rev",
".rev"
};
public plugin_init( )
{
register_plugin( "Revive Menu", "1.0", "Craxor" );
for( new i = 0; i < sizeof RevCommands; i++ )
{
RegRev( RevCommands[i] );
}
}
RegRev( Cmd[] )
{
new Buffer[50];
new Buffer2[50];
formatex( Buffer, charsmax( Buffer ) , "say %s", Cmd );
formatex( Buffer2, charsmax( Buffer2 ) , "say_team %s", Cmd );
register_clcmd( Buffer, "ReviveCMD" );
register_clcmd( Buffer2, "ReviveCMD" );
}
public ReviveCMD( id )
{
if( is_user_admin( id ) )
{
MakeMenu( id );
return PLUGIN_HANDLED;
}
else
{
client_print(id, print_center, "You have no acces to this command.");
return PLUGIN_HANDLED;
}
return PLUGIN_HANDLED;
}
public MakeMenu( id )
{
gMenu = menu_create( "Revive menu", "revmen_handler" );
menu_additem( gMenu, "Revive all dead players", "", 0 );
menu_additem( gMenu, "Revive all dead Counter-Terrorists players", "", 0 );
menu_additem( gMenu, "Revive all dead Terrorists players", "", 0 );
new Players[32], szName[32], Num;
get_players( Players, Num, "b" );
for( new i=0; i < Num; i++ )
{
get_user_name( Players[i], szName, charsmax( szName ) );
menu_additem( gMenu, szName, "", 0 );
}
menu_setprop( gMenu, MPROP_EXIT, MEXIT_ALL );
menu_display( id, gMenu, 0 );
}
public revmen_handler( id, menu, item )
{
if( item == MENU_EXIT )
{
menu_destroy( gMenu );
return PLUGIN_HANDLED;
}
if( item > 2 )
{
new szInfo[20], _acc, _call, ItemName[32];
menu_item_getinfo( menu, item, _acc, szInfo, charsmax(szInfo), ItemName, charsmax(ItemName), _call );
new PlayerId = find_player("al", ItemName );
if( PlayerId && !is_user_alive( PlayerId ) )
{
ExecuteHam( Ham_CS_RoundRespawn, PlayerId );
ShowMessage( MessageType: MT_DeadPlayer, id, PlayerId );
}
}
else
{
new Players[32], Num;
switch( item )
{
case 0:
{
get_players( Players, Num, "b" );
for( new i=0; i < Num; i++ )
{
ExecuteHam( Ham_CS_RoundRespawn, Players[i] );
}
if( Num > 0 )
{
ShowMessage( MessageType: MT_DeadAll, id );
}
}
case 1:
{
get_players( Players, Num, "be", "CT" );
for( new i=0; i < Num; i++ )
{
ExecuteHam( Ham_CS_RoundRespawn, Players[i] );
}
if( Num > 0 )
{
ShowMessage( MessageType: MT_DeadCt, id );
}
}
case 2:
{
get_players( Players, Num, "be", "TERRORIST" );
for( new i=0; i < Num; i++ )
{
ExecuteHam( Ham_CS_RoundRespawn, Players[i] );
}
if( Num > 0 )
{
ShowMessage( MessageType: MT_DeadTe, id );
}
}
}
}
menu_destroy( gMenu );
return PLUGIN_HANDLED;
}
ShowMessage( MessageType: Type , admin , target=0)
{
new szName[32];
get_user_name( admin, szName, charsmax( szName ) );
switch( Type )
{
case MT_DeadCt:
{
client_print( 0, print_chat, "[REVIVE] Admin %s revived all Counter-Terrorist team!", szName );
}
case MT_DeadTe:
{
client_print( 0, print_chat, "[REVIVE] Admin %s revived all Terrorists team!", szName );
}
case MT_DeadAll:
{
client_print( 0, print_chat, "[REVIVE] Admin %s revived all players from the server!", szName );
}
case MT_DeadPlayer:
{
new TargetName[32];
get_user_name( target, TargetName, charsmax(TargetName) );
client_print( 0, print_chat, "[REVIVE] Admin %s revived player %s.", szName, TargetName );
}
}
}