cool_stats Need Fixed
I hardly tried to make this plugin works but it was unsuccessful all times so i beg you guys to help me.
When you type /rank I want to be displayed next messege:
[HostName] Nick your rank is X whit X Kills and X Deaths.
[HostName] Nick for more information type /rankstats.
Also i want chat commands /me /hp to work to.
Please make it works :) Thanks !
Code:
#include <amxmodx>
#include <amxmisc>
#include <colorchat>
#include <csx>
// User stats parms id
#define STATS_KILLS 0
#define STATS_DEATHS 1
#define STATS_HS 2
#define STATS_TKS 3
#define STATS_SHOTS 4
#define STATS_HITS 5
#define STATS_DAMAGE 6
// Global player flags.
new BODY_PART[8][] =
{
"WHOLEBODY",
"HEAD",
"CHEST",
"STOMACH",
"LEFTARM",
"RIGHTARM",
"LEFTLEG",
"RIGHTLEG"
}
public plugin_init()
{
// Register plugin.
register_plugin("CooL Stats", "1.0", "None");
register_dictionary("CooL_Stats.txt");
// Register commands.
register_clcmd("say", "hook_say");
register_clcmd("say_team", "hook_say");
register_clcmd("say /hp", "cmdHp");
register_clcmd("say /rankstats");
register_clcmd("say /me", "cmdMe");
register_clcmd("say /rank", "cmdRank");
register_clcmd("say /top15", "cmdTop15");
register_clcmd("say_team /hp", "cmdHp");
register_clcmd("say_team /rankstats", "cmdRankStats");
register_clcmd("say_team /me", "cmdMe");
register_clcmd("say_team /rank", "cmdRank");
register_clcmd("say_team /top15", "cmdTop15");
// Get and format top 15.
{
new iMax = get_statsnum();
new izStats[8], izBody[8];
new iLen = 0
if (iMax > 15);
iMax = 15
new lKills[16], lDeaths[16], lHits[16], lShots[16], lEff[16], lAcc[16];
format(lKills, 15, "%L", LANG_SERVER, "KILLS");
format(lDeaths, 15, "%L", LANG_SERVER, "DEATHS");
format(lHits, 15, "%L", LANG_SERVER, "HITS");
format(lShots, 15, "%L", LANG_SERVER, "SHOTS");
format(lEff, 15, "%L", LANG_SERVER, "EFF");
format(lAcc, 15, "%L", LANG_SERVER, "ACC");
ucfirst(lEff);
ucfirst(lAcc);
iLen = format(sBuffer, MAX_BUFFER_LENGTH, "<body bgcolor=#000000><font color=#FFB000><pre>");
iLen += format(sBuffer[iLen], MAX_BUFFER_LENGTH - iLen, "%2s %-22.22s %6s %6s %6s %6s %4s %4s %4s^n", "#", "Nick", lKills, lDeaths, lHits, lShots, "HS", lEff, lAcc);
for (new i = 0; i < iMax && MAX_BUFFER_LENGTH - iLen > 0; i++);
{
get_stats(i, izStats, izBody, t_sName, MAX_NAME_LENGTH);
replace_all(t_sName, MAX_NAME_LENGTH, "<", "[");
replace_all(t_sName, MAX_NAME_LENGTH, ">", "]");
iLen += format(sBuffer[iLen], MAX_BUFFER_LENGTH - iLen, "%2d %-22.22s %6d %6d %6d %6d %4d %3.0f%% %3.0f%%^n", i + 1, t_sName, izStats[STATS_KILLS],
izStats[STATS_DEATHS], izStats[STATS_HITS], izStats[STATS_SHOTS], izStats[STATS_HS], effec(izStats), accuracy(izStats));
}
}
// Get and format rank stats.
format_rankstats(id, sBuffer[MAX_BUFFER_LENGTH + 1], iMyId = 0);
{
new izStats[8] = {0, ...};
new izBody[8];
new iRankPos, iLen;
new lKills[16], lDeaths[16], lHits[16], lShots[16], lDamage[16], lEff[16], lAcc[16];
format(lKills, 15, "%L", id, "KILLS");
format(lDeaths, 15, "%L", id, "DEATHS");
format(lHits, 15, "%L", id, "HITS");
format(lShots, 15, "%L", id, "SHOTS");
format(lDamage, 15, "%L", id, "DAMAGE");
format(lEff, 15, "%L", id, "EFF");
format(lAcc, 15, "%L", id, "ACC");
ucfirst(lEff);
ucfirst(lAcc);
iRankPos = get_user_stats(id, izStats, izBody);
iLen = format(sBuffer, MAX_BUFFER_LENGTH, "<body bgcolor=#000000><font color=#FFB000><pre>");
iLen += format(sBuffer[iLen], MAX_BUFFER_LENGTH - iLen, "%L %L^n^n", id, (!iMyId || iMyId == id) ? "YOUR" : "PLAYERS", id, "RANK_IS", iRankPos, get_statsnum());
iLen += format(sBuffer[iLen], MAX_BUFFER_LENGTH - iLen, "%6s: %d (%d with hs)^n%6s: %d^n%6s: %d^n%6s: %d^n%6s: %d^n%6s: %0.2f%%^n%6s: %0.2f%%^n^n",
lKills, izStats[STATS_KILLS], izStats[STATS_HS], lDeaths, izStats[STATS_DEATHS], lHits, izStats[STATS_HITS], lShots, izStats[STATS_SHOTS],
lDamage, izStats[STATS_DAMAGE], lEff, effec(izStats), lAcc, accuracy(izStats));
new L_BODY_PART[8][32];
for (new i = 1; i < 8; i++);
{
format(L_BODY_PART[i], 31, "%L", id, BODY_PART[i]);
}
iLen += format(sBuffer[iLen], MAX_BUFFER_LENGTH - iLen, "%10s:^n%10s: %d^n%10s: %d^n%10s: %d^n%10s: %d^n%10s: %d^n%10s: %d^n%10s: %d", "HITS",
L_BODY_PART[1], izBody[1], L_BODY_PART[2], izBody[2], L_BODY_PART[3], izBody[3], L_BODY_PART[4], izBody[4], L_BODY_PART[5],
izBody[5], L_BODY_PART[6], izBody[6], L_BODY_PART[7], izBody[7]);
}
public cmdRankStats(id)
{
if (!SayRankStats)
{
client_print(id, print_chat, "%L", id, "DISABLED_MSG")
return PLUGIN_HANDLED
}
format_rankstats(id, g_sBuffer)
get_user_name(id, t_sName, MAX_NAME_LENGTH)
show_motd(id, g_sBuffer, t_sName)
return PLUGIN_CONTINUE
}
public cmdTop15(id)
{
if (!SayTop15)
{
client_print(id, print_chat, "%L", id, "DISABLED_MSG")
return PLUGIN_HANDLED
}
format_top15(g_sBuffer)
show_motd(id, g_sBuffer, "Top 15")
return PLUGIN_CONTINUE
}
public cmdHp(id)
{
if (!SayHP)
{
client_print(id, print_chat, "%L", id, "DISABLED_MSG")
return PLUGIN_HANDLED
}
new iKiller = g_izKilled[id][KILLED_KILLER_ID]
format_kill_ainfo(id, iKiller, g_sBuffer)
client_print(id, print_chat, "* %s", g_sBuffer)
return PLUGIN_CONTINUE
}
public cmdMe(id)
{
if (!SayMe)
{
client_print(id, print_chat, "%L", id, "DISABLED_MSG")
return PLUGIN_HANDLED
}
format_kill_vinfo(id, 0, g_sBuffer)
client_print(id, print_chat, "* %s", g_sBuffer)
return PLUGIN_CONTINUE
}
public cmdRank(id)
{
new izStats[8], izBody[8];
new iRankPos, iRankMax;
new nick[32],nickplayer[32];
new arg[32];
read_argv(1, arg, 31);
new player = cmd_target(id,arg,14);
iRankMax = get_statsnum();
get_user_name(id,nick,31);
get_user_name(player,nickplayer,31);
if(equali(arg,"")) {
iRankPos = get_user_stats(id, izStats, izBody);
ColorChat(id,RED,"[PublicStars]^x04 %s^x01 esti pe locul^x03 %d^x01 din^x03 %d^x01 cu^x03 %d^x01 fraguri si^x03 %d^x01 decese.",nick,iRankPos,iRankMax,izStats[STATS_KILLS],izStats[STATS_DEATHS]);
ColorChat(id,RED,"[PublicStars]^x04 Pentru mai multe detalii tasteaza^x03 /rankstats");
return PLUGIN_HANDLED;
}
}
|