Veteran Member
Join Date: Sep 2013
Location: Kazakhstan
|
03-28-2014
, 09:59
[HELP] Deathrun rank
|
#1
|
can someone Edit For me?
Only CT kill will Appears at the top?
and add /rank name?
and have problem with >
Code:
^1with^4 %i ^1kill^3 %s^1!", iRank, iTotal, eRankData[ Rank_Kills ], ( eRankData[ Rank_Kills ] == 1 ) ? "" : "s" );
you Are ranked 29 of 108 with 6 kill > kill s!
why s? why not working my %s
PHP Code:
#include < amxmodx > #include < fvault > #include < ColorChat >
enum _:RankData { Rank_Kills, Rank_Name[ 32 ], Rank_SteamID[ 35 ] };
new const g_szVaultName[ ] = "amxx_stats";
new pCvar_Top;
public plugin_init( ) { register_plugin( "AMXX Stats", "0.0.1", "Exolent" ); register_srvcmd( "amxstats_reset", "CmdReset" ); register_clcmd( "say /rank", "CmdRank" ); register_clcmd( "say /top", "CmdTop" ); register_clcmd( "say /top10", "CmdTop" ); register_clcmd( "say /top15", "CmdTop" ); register_event( "DeathMsg", "EventDeathMsg", "a" ); pCvar_Top = register_cvar( "amxstats_top", "10" ); }
public CmdReset( ) { fvault_clear( g_szVaultName ); server_print( "[AMXX] Stats have been reset." ); log_amx( "[AMXX] Stats have been reset." ); return PLUGIN_HANDLED; }
public CmdRank( iPlayer ) { new Array:aRankData; new iTotal = GetPlayerRanks( aRankData ); new iRank; new eRankData[ RankData ]; if( iTotal ) { new szPlayerSteamID[ 35 ]; get_user_authid( iPlayer, szPlayerSteamID, charsmax( szPlayerSteamID ) ); for( new i = 0; i < iTotal; i++ ) { ArrayGetArray( aRankData, i, eRankData ); if( equal( szPlayerSteamID, eRankData[ Rank_SteamID ] ) ) { iRank = i + 1; break; } } } if( iRank ) { ColorChat( iPlayer, NORMAL, "^4[Nex] ^1You are ranked^3 %i ^1of^3 %i ^1with^4 %i ^1kill^3 %s^1!", iRank, iTotal, eRankData[ Rank_Kills ], ( eRankData[ Rank_Kills ] == 1 ) ? "" : "s" ); } else { ColorChat( iPlayer, NORMAL, "^4[Nex] ^1You are not^4 ranked ^1because you have not killed^3 anyone^1!" ); } ArrayDestroy( aRankData ); }
public CmdTop( iPlayer ) { new Array:aRankData; new iTotal = max( 0, min( GetPlayerRanks( aRankData ), get_pcvar_num( pCvar_Top ) ) ); if( iTotal ) { static szMOTD[ 2500 ], iDefaultLen; if( !iDefaultLen ) { iDefaultLen = copy( szMOTD, charsmax( szMOTD ), "<body><table align=center border=1><thead><tr><th>#.</th><th>Name</th><th>Kills</th></tr></thead><tbody>" ); } new iLen = iDefaultLen; new eRankData[ RankData ]; new szFixedName[ 128 ]; for( new i = 0; i < iTotal; i++ ) { ArrayGetArray( aRankData, i, eRankData ); copy( szFixedName, charsmax( szFixedName ), eRankData[ Rank_Name ] ); MakeNameMOTDSafe( szFixedName, 31 ); iLen += formatex( szMOTD[ iLen ], charsmax( szMOTD ) - iLen, "<tr><td>%i</td><td>%s</td><td>%i</td></tr>", ( i + 1 ), szFixedName, eRankData[ Rank_Kills ] ); } copy( szMOTD[ iLen ], charsmax( szMOTD ) - iLen, "</tbody></table></body>" ); show_motd( iPlayer, szMOTD, "Top Players" ); } else { client_print( iPlayer, print_chat, "* No players have been put on the top!" ); } ArrayDestroy( aRankData ); }
public EventDeathMsg( ) { new iVictim = read_data( 2 ); if( is_user_connected( iVictim ) ) { new iKiller = read_data( 1 ); if( iVictim != iKiller && is_user_connected( iKiller ) ) { // killed by another player new szName[ 32 ], szSteamID[ 35 ]; get_user_authid( iKiller, szSteamID, charsmax( szSteamID ) ); new szKills[ 48 ], iKills; if( fvault_get_data( g_szVaultName, szSteamID, szKills, charsmax( szKills ) ) ) { strbreak( szKills, szKills, charsmax( szKills ), szName, charsmax( szName ) ); iKills = str_to_num( szKills ); } if( get_user_team( iVictim ) == get_user_team( iKiller ) ) { // killed by a teammate iKills--; } else { // killed by an enemy iKills++; } get_user_name( iKiller, szName ,charsmax( szName ) ); formatex( szKills, charsmax( szKills ), "%i %s", iKills, szName ); fvault_set_data( g_szVaultName, szSteamID, szKills ); } else { // killed self somehow } } }
GetPlayerRanks( &Array:aRankData ) { aRankData = ArrayCreate( RankData ); new iTotal; new eRankData[ RankData ]; new szFileName[ 128 ]; _FormatVaultName( g_szVaultName, szFileName, charsmax( szFileName ) ); new iFile = fopen( szFileName, "rt" ); if( !iFile ) { return iTotal; } new szFileData[ 128 ]; new szKills[ 48 ]; while( !feof( iFile ) ) { fgets( iFile, szFileData, charsmax( szFileData ) ); trim( szFileData ); if( !szFileData[ 0 ] ) { continue; } parse( szFileData, eRankData[ Rank_SteamID ], charsmax( eRankData[ Rank_SteamID ] ), szKills, charsmax( szKills ) ); strbreak( szKills, szKills, charsmax( szKills ), eRankData[ Rank_Name ], charsmax( eRankData[ Rank_Name ] ) ); eRankData[ Rank_Kills ] = str_to_num( szKills ); ArrayPushArray( aRankData, eRankData ); iTotal++; } fclose( iFile ); ArraySort( aRankData, "SortData" ); return iTotal; }
public SortData( Array:aData, iIndex1, iIndex2, const iSortData[ ], iSortDataSize ) { new eData1[ RankData ], eData2[ RankData ]; ArrayGetArray( aData, iIndex1, eData1 ); ArrayGetArray( aData, iIndex2, eData2 ); return clamp( ( eData2[ Rank_Kills ] - eData1[ Rank_Kills ] ), -1, 1 ); }
stock MakeNameMOTDSafe( szName[ 128 ], iMaxChars ) { szName[ 32 ] = 0; replace_all( szName, 127, "&", "&" ); replace_all( szName, 127, "<", "<" ); replace_all( szName, 127, ">", ">" ); replace_all( szName, 127, "^"", """ ); if( iMaxChars > 128 ) return; new iLast; for( new i = 0; i < 128 && szName[ i ]; ) { if( szName[ i ] == '&' ) { if( equal( szName[ i ], "&", 5 ) ) { i += 4; } else if( equal( szName[ i ], """, 6 ) ) { i += 5; } else if( equal( szName[ i ], "<", 4 ) || equal( szName[ i ], ">", 4 ) ) { i += 3; } } if( ++i > iMaxChars ) { break; } iLast = i; } szName[ iLast ] = 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 } */
|
|