Veteran Member
Join Date: Sep 2019
Location: Egypt
|
11-19-2021
, 16:53
Revive menu: i want to understand small part of this plugin
|
#1
|
Code:
/*
Blizzards Plugins Comply With GNU General Public License
Revive System is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
Under no circumstances are you allowed to redistribute and/or modify
it claming that you are the original author of such plugin/modification.
Revive System is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include <amxmodx>
#include <fun>
#include <cstrike>
#include <hamsandwich>
#include <amxmisc>
#pragma semicolon 1
new g_iReviveTeam[ 33 ];
new g_pReviveMsg;
public plugin_init( )
{
register_plugin( "Revive System", "1.0", "Blizzards" );
g_pReviveMsg = register_cvar( "amx_revive_msg", "1" );
register_concmd( "cmdRevive", "cmdRevive", ADMIN_IMMUNITY );
register_clcmd( "say /revive", "cmdReviveMenu" );
}
public cmdReviveMenu( id )
{
if( !has_flag( id, "a" ) )
{
client_print( id, print_center, "You Are Not Authorized" );
client_cmd( id, "spk ^"access denied^"" );
return PLUGIN_HANDLED;
}
new menu = menu_create( "\rRevive Menu V1.2", "cmdReviveMenu_handler" );
new players[32], pnum, tempid;
new szName[32], szUserId[32], Desc[ 64 ];
get_players( players, pnum );
menu_additem( menu, "\yRevive Team \w[ \rCT/Terrorist/All\w ]" );
switch( g_iReviveTeam[ id ] )
{
case 0: menu_additem( menu, "\yPlayer Team \w[ \rTerrorist\w ]^n" );
case 1: menu_additem( menu, "\yPlayer Team \w[ \rCT\w ]^n" );
}
for ( new i; i<pnum; i++ )
{
tempid = players[i];
get_user_name( tempid, szName, charsmax( szName ) );
formatex( Desc, charsmax( Desc ), "%s [ \r%s\w ] [ %s \w]", szName, get_team_name( tempid ), is_user_alive( tempid ) ? "Alive" : "\dDead" );
formatex( szUserId, charsmax( szUserId ), "%d", get_user_userid( tempid ) );
menu_additem( menu, Desc, szUserId, 0 );
}
menu_display( id, menu, 0 );
return PLUGIN_HANDLED;
}
public cmdReviveMenu_handler( id, menu, item )
{
if ( item == MENU_EXIT )
{
menu_destroy( menu );
return PLUGIN_HANDLED;
}
new szData[6], szName[64], szName2[ 64 ];
new item_access, item_callback;
menu_item_getinfo( menu, item, item_access, szData,charsmax( szData ), szName,charsmax( szName ), item_callback );
new userid = str_to_num( szData );
new player = find_player( "k", userid );
if( item == 0 )
{
client_cmd( id, "messagemode cmdRevive" );
set_hudmessage(255, 255, 85, 0.01, 0.18, 2, 0.5, 6.0, 0.05, 0.05, -1);
show_hudmessage(id, "Type Either @all, @ct, @t");
menu_destroy( menu );
return PLUGIN_HANDLED;
}
if( !player )
{
switch( g_iReviveTeam[ id ] )
{
case 0: g_iReviveTeam[ id ]++;
case 1: g_iReviveTeam[ id ]--;
}
cmdReviveMenu( id );
}
get_user_name( id, szName2, charsmax( szName2 ) );
get_user_name( player, szName, charsmax( szName ) );
if ( player )
{
switch( g_iReviveTeam[ id ] )
{
case 0: {
if( is_user_alive( player ) ) user_silentkill( player );
cs_set_user_team( player, CS_TEAM_T, CS_T_TERROR );
ExecuteHamB( Ham_CS_RoundRespawn, player );
if( get_pcvar_num( g_pReviveMsg ) )
client_print( 0, print_chat, "[ AMXX ] ADMIN: %s Revived %s On Team Terrorist", szName2, szName );
}
case 1: {
if( is_user_alive( player ) ) user_silentkill( player );
cs_set_user_team( player, CS_TEAM_CT, CS_CT_SAS );
ExecuteHamB( Ham_CS_RoundRespawn, player );
if( get_pcvar_num( g_pReviveMsg ) )
client_print( 0, print_chat, "[ AMXX ] ADMIN: %s Revived %s On Team Counter-Terrorist", szName2, szName );
}
}
}
menu_destroy( menu );
cmdReviveMenu( id );
return PLUGIN_HANDLED;
}
public cmdRevive( id, lvl, cid )
{
if( !cmd_access( id, lvl, cid, 2 ) )
{
client_print( id, print_console, "[ AMXX ] You Are Not Authorized" );
client_cmd( id, "spk ^"access denied^"" );
return PLUGIN_HANDLED;
}
new iArg[ 64 ], szName[ 32 ];
read_argv( 1, iArg, charsmax( iArg ) );
get_user_name( id, szName, charsmax( szName ) );
new iPlayers[ 32 ], iNum, i, players;
if( equal( iArg, "@all" ) )
{
get_players( iPlayers, iNum );
for( i = 0; i < iNum; i++ )
{
players = iPlayers[ i ];
if( !is_user_alive( players ) ) ExecuteHamB( Ham_CS_RoundRespawn, players );
}
if( get_pcvar_num( g_pReviveMsg ) )
client_print( 0, print_chat, "[ AMXX ] ADMIN: %s Revived All Dead Players", szName );
}
else if( equal( iArg, "@ct" ) )
{
get_players( iPlayers, iNum, "e", "CT" );
for( i = 0; i < iNum; i++ )
{
players = iPlayers[ i ];
if( !is_user_alive( players ) ) ExecuteHamB( Ham_CS_RoundRespawn, players );
}
if( get_pcvar_num( g_pReviveMsg ) )
client_print( 0, print_chat, "[ AMXX ] ADMIN: %s Revived All Dead CT Players", szName );
}
else if( equal( iArg, "@t" ) )
{
get_players( iPlayers, iNum, "e", "TERRORIST" );
for( i = 0; i < iNum; i++ )
{
players = iPlayers[ i ];
if( !is_user_alive( players ) ) ExecuteHamB( Ham_CS_RoundRespawn, players );
}
if( get_pcvar_num( g_pReviveMsg ) )
client_print( 0, print_chat, "[ AMXX ] ADMIN: %s Revived All Dead Terrorist Players", szName );
}
else if( equal( iArg, "" ) || !equal( iArg, "@all") || !equal( iArg, "@ct") || !equal( iArg, "@t") )
{
client_print( id, print_chat, "[ AMXX ] You Must Select Either @all, @ct, @t" );
cmdReviveMenu( id );
return PLUGIN_HANDLED;
}
return PLUGIN_HANDLED;
}
public client_connect( id )
{
g_iReviveTeam[ id ] = 0;
}
stock get_team_name( id )
{
new string[ 32 ];
switch( cs_get_user_team( id ) )
{
case CS_TEAM_T: formatex( string, charsmax( string ), "Terrorist" );
case CS_TEAM_CT: formatex( string, charsmax( string ), "CT" );
}
return string;
}
I dont undertand this part
how does this code work ?!!, i tried to add option like spectator but didn't work!!
PHP Code:
switch( g_iReviveTeam[ id ] )
{
case 0: menu_additem( menu, "\yPlayer Team \w[ \rTerrorist\w ]^n" );
case 1: menu_additem( menu, "\yPlayer Team \w[ \rCT\w ]^n" );
}
// g_iReviveTeam[ id ]++; = case 0 !!
// g_iReviveTeam[ id ]--; = case 1
switch( g_iReviveTeam[ id ] )
{
case 0: g_iReviveTeam[ id ]++;
case 1: g_iReviveTeam[ id ]--;
}
__________________
Last edited by Supremache; 11-19-2021 at 20:36.
|
|