Тествах го и и с хора и пак не работи. Мислех че трябва да работи и с ботове, защото тествах този плъгин на Exolent и работи с ботовете. Но при него не разбирам как той взима убиствата, мисля че в
.
Код за потвърждение: Избери целия код
#include < amxmodx >
#include < amxmisc >
#include < csx >
#include < nvault >
#include < cstrike >
new const g_iLevelMinKills[ ] =
{
0,
3,
6,
9
};
const LEVELS = sizeof( g_iLevelMinKills );
new const g_szLevelName[ LEVELS ][ ] =
{
"Newbie",
"Semi-Pro",
"Pro",
"Veteran"
};
#define MAX_PLAYERS 32
new g_iKills[ MAX_PLAYERS + 1 ];
new g_iLevel[ MAX_PLAYERS + 1 ];
new g_hVault;
new g_iMsgID_SayText;
new g_iAdminChatFlag = ADMIN_ALL; // Do not edit this!
public plugin_init( )
{
register_plugin( "Kills Counter", "0.0.1", "Exolent" );
register_clcmd( "say", "CmdSay" );
register_clcmd( "say_team", "CmdSayTeam" );
g_hVault = nvault_open( "KillsCounter" );
g_iMsgID_SayText = get_user_msgid( "SayText" );
new szCommand[ 32 ], iFlags;
for( new i = 0; get_concmd( i, szCommand, charsmax( szCommand ), iFlags, "", 0, 0, -1 ); i++ )
{
if( equal( szCommand, "amx_chat" ) )
{
g_iAdminChatFlag = iFlags;
break;
}
}
}
public plugin_end( )
{
nvault_close( g_hVault );
}
public client_authorized( iPlayer )
{
new szSteamID[ 35 ];
get_user_authid( iPlayer, szSteamID, charsmax( szSteamID ) );
new iKills;
if( ( iKills = nvault_get( g_hVault, szSteamID ) ) )
{
g_iKills[ iPlayer ] = iKills;
g_iLevel[ iPlayer ] = GetLevel( iKills );
}
}
public client_disconnected( iPlayer )
{
new szSteamID[ 35 ];
get_user_authid( iPlayer, szSteamID, charsmax( szSteamID ) );
new szKills[ 16 ];
num_to_str( g_iKills[ iPlayer ], szKills, charsmax( szKills ) );
nvault_set( g_hVault, szSteamID, szKills );
g_iKills[ iPlayer ] = g_iLevel[ iPlayer ] = 0;
}
public client_death( iKiller, iVictim, iWeapon, iHitPlace, bTK )
{
if( !bTK && iKiller != iVictim && iWeapon != CSW_C4 )
{
g_iLevel[ iKiller ] = GetLevel( ++g_iKills[ iKiller ] );
}
}
public CmdSay( iPlayer )
{
if( !is_user_connected( iPlayer ) )
{
return PLUGIN_HANDLED_MAIN;
}
new szArgs[ 194 ];
if( !IsValidMessage( iPlayer, false, szArgs, charsmax( szArgs ) ) )
{
return PLUGIN_HANDLED_MAIN;
}
new iAlive = is_user_alive( iPlayer );
new CsTeams:iTeam = cs_get_user_team( iPlayer );
new iPlayers[ 32 ], iNum;
get_players( iPlayers, iNum );
new szName[ 32 ];
get_user_name( iPlayer, szName, charsmax( szName ) );
new const szPrefixes[ 2 ][ CsTeams ][ ] =
{
{
"^1*DEAD*",
"^1*DEAD*",
"^1*DEAD*",
"^1*SPEC*"
},
{
"",
"",
"",
""
}
};
new szMessage[ 192 ];
formatex( szMessage, charsmax( szMessage ), "%s^4 [%s]^3 %s^1 : %s", szPrefixes[ iAlive ][ iTeam ], g_szLevelName[ g_iLevel[ iPlayer ] ], szName, szArgs );
new iTarget;
for( new i = 0; i < iNum; i++ )
{
iTarget = iPlayers[ i ];
if( iTarget == iPlayer || ( iAlive || is_user_connected( iTarget ) ) && is_user_alive( iTarget ) == iAlive )
{
message_begin( MSG_ONE_UNRELIABLE, g_iMsgID_SayText, _, iTarget );
write_byte( iPlayer );
write_string( szMessage );
message_end( );
}
}
return PLUGIN_HANDLED_MAIN;
}
public CmdSayTeam( iPlayer )
{
if( !is_user_connected( iPlayer ) )
{
return PLUGIN_HANDLED_MAIN;
}
new szArgs[ 194 ];
if( !IsValidMessage( iPlayer, true, szArgs, charsmax( szArgs ) ) )
{
return PLUGIN_HANDLED_MAIN;
}
new iAlive = is_user_alive( iPlayer );
new CsTeams:iTeam = cs_get_user_team( iPlayer );
new iPlayers[ 32 ], iNum;
get_players( iPlayers, iNum );
new szName[ 32 ];
get_user_name( iPlayer, szName, charsmax( szName ) );
new const szPrefixes[ 2 ][ CsTeams ][ ] =
{
{
"(Spectator)",
"*DEAD*(Terrorist)",
"*DEAD*(Counter-Terrorist)",
"(Spectator)"
},
{
"(Spectator)",
"(Terrorist)",
"(Counter-Terrorist)",
"(Spectator)"
}
};
new szMessage[ 192 ];
formatex( szMessage, charsmax( szMessage ), "^1%s^4 [%s]^3 %s^1 : %s", szPrefixes[ iAlive ][ iTeam ], g_szLevelName[ g_iLevel[ iPlayer ] ], szName, szArgs );
for( new i = 0, iTeammate; i < iNum; i++ )
{
iTeammate = iPlayers[ i ];
if( iTeammate == iPlayer || ( iAlive || is_user_connected( iTeammate ) ) && is_user_alive( iTeammate ) == iAlive && cs_get_user_team( iTeammate ) == iTeam )
{
message_begin( MSG_ONE_UNRELIABLE, g_iMsgID_SayText, _, iTeammate );
write_byte( iPlayer );
write_string( szMessage );
message_end( );
}
}
return PLUGIN_HANDLED_MAIN;
}
bool:IsValidMessage( iPlayer, bool:bTeamSay, szMessage[ ], iLen )
{
read_args( szMessage, iLen );
remove_quotes( szMessage );
new iPos, cChar, i;
while( ( cChar = szMessage[ iPos++ ] ) == '@' )
{
i++;
}
if( ( bTeamSay ? ( i == 1 ) : ( 1 <= i <= 3 ) ) && !access( iPlayer, g_iAdminChatFlag ) )
{
return false;
}
while( 0 <= ( cChar = szMessage[ iPos++ ] ) <= 255 )
{
if( cChar != ' ' && cChar != '%' )
{
return true;
}
}
return false;
}
GetLevel( iKills )
{
for( new i = LEVELS - 1; i >= 0; i-- )
{
if( iKills >= g_iLevelMinKills[ i ] )
{
return i;
}
}
return 0;
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1033\\ f0\\ fs16 \n\\ par }
*/