|
Junior Member
|

01-04-2009
, 06:56
Re: The best player of round
|
#4
|
I remaked second plugin, because first don't work (show bad player and 0 frags), now I need to show number of headshot
ColorChat copied from WarmUPPro
PHP Code:
#include <amxmodx>
#define PLUGIN "BestPlayer" #define VERSION "1.0" #define AUTHOR "KaMaZZ"
new g_iKills[33] new g_iDeaths[33] new g_hs[33]
new bestplayer = 0, g_iMaxPlayers;
public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_event("DeathMsg", "death_event", "a", "1>0"); register_event("HLTV", "eHLTV", "a", "1=0", "2=0"); register_logevent("wiadomosc",2,"1=Round_End") g_iMaxPlayers = get_maxplayers(); }
/*================================================================================================*/ /*************************************** [Color Chat] *********************************************/ /*=============================================================================R=E=Y=M=O=N==A=R=G=*/
enum Color { NORMAL = 1, // clients scr_concolor cvar color GREEN, // Green Color TEAM_COLOR, // Red, grey, blue GREY, // grey RED, // Red BLUE, // Blue }
new TeamName[][] = { "", "TERRORIST", "CT", "SPECTATOR" }
ColorChat(id, Color:type, const msg[], {Float,Sql,Result,_}:...) { new message[256];
switch(type) { case NORMAL: // clients scr_concolor cvar color { message[0] = 0x01; } case GREEN: // Green { message[0] = 0x04; } default: // White, Red, Blue { message[0] = 0x03; } }
vformat(message[1], 251, msg, 4);
// Make sure message is not longer than 192 character. Will crash the server. message[192] = '^0';
new team, ColorChange, index, MSG_Type; if(id) { MSG_Type = MSG_ONE; index = id; } else { index = FindPlayer(); MSG_Type = MSG_ALL; } team = get_user_team(index); ColorChange = ColorSelection(index, MSG_Type, type);
ShowColorMessage(index, MSG_Type, message); if(ColorChange) { Team_Info(index, MSG_Type, TeamName[team]); } }
ShowColorMessage(id, type, message[]) { static bool:saytext_used; static get_user_msgid_saytext; if(!saytext_used) { get_user_msgid_saytext = get_user_msgid("SayText"); saytext_used = true; } message_begin(type, get_user_msgid_saytext, _, id); write_byte(id) write_string(message); message_end(); }
Team_Info(id, type, team[]) { static bool:teaminfo_used; static get_user_msgid_teaminfo; if(!teaminfo_used) { get_user_msgid_teaminfo = get_user_msgid("TeamInfo"); teaminfo_used = true; } message_begin(type, get_user_msgid_teaminfo, _, id); write_byte(id); write_string(team); message_end();
return 1; }
ColorSelection(index, type, Color:Type) { switch(Type) { case RED: { return Team_Info(index, type, TeamName[1]); } case BLUE: { return Team_Info(index, type, TeamName[2]); } case GREY: { return Team_Info(index, type, TeamName[0]); } }
return 0; }
FindPlayer() { new i = -1;
while(i <= get_maxplayers()) { if(is_user_connected(++i)) return i; }
return -1; }
public client_connect(id) { g_iKills[id] = 0 g_iDeaths[id] = 0 }
public death_event() { new iKiller = read_data(1), iVictim = read_data(2), iHitplace = read_data(4); if (iKiller == iVictim) { g_iDeaths[iKiller]++; return; } g_iKills[iKiller]++; g_iDeaths[iVictim]++; if(iHitplace == HIT_HEAD) { g_hs[iKiller]++; } } public wiadomosc() { if(get_playersnum() < 2) return for(new i=1; i <= g_iMaxPlayers; i++) { if (g_iKills[i] > g_iKills[bestplayer] || g_iKills[i] == g_iKills[bestplayer] && g_iDeaths[i] < g_iDeaths[bestplayer] || g_iKills[i] == g_iKills[bestplayer] && g_hs[i] > g_hs[bestplayer]) { bestplayer = i; } } new name[32]; get_user_name(bestplayer, name, 31); new iKills = g_iKills[bestplayer] new iHS = g_hs[bestplayer] ColorChat(0, GREEN,"^x03 FragArena: Najlepszy gracz w tej rundzie: %s", name) if(iKills >= 5 || iKills == 0) { ColorChat(0, GREEN, "^x03 FragArena: Zdobyl %d fragow", iKills) } else if(iKills > 1 && iKills < 5) { ColorChat(0, GREEN, "^x03 FragArena: Zdobyl %d fragi", iKills) } else if(iKills == 1) { ColorChat(0, GREEN, "^x03 FragArena: Zdobyl 1 fraga") } ColorChat(0, GREEN, "^x03 FragArena: Ustrzelil %d hsow", iHS) }
public eHLTV() { for( new i = 1 ; i <= g_iMaxPlayers ; i++ ) { g_iKills[ i ] = 0; g_iDeaths[ i ] = 0; g_hs[ i ] = 0; } }
|
|