при написание rank у некоторых игроков он не отображается.незнаю в чем причина,обнуление не помогло,возможно причина в ошибках при компиляции...
Оффтоп
// File: rank.sp
// Author: ]SoD[ Frostbyte
#include "sodstats\include\sodstats.inc"
#include <sourcemod>
PrintRankToAll(client)
{
Stats_GetPlayerRank(client, Rank_Callback, client);
}
public Rank_Callback(rank, delta, any:data, error)
{
new client = data;
new Handle:pack = CreateDataPack();
WritePackCell(pack, rank);
WritePackCell(pack, delta);
WritePackCell(pack, client);
Stats_GetPlayerById(client, Rank_PlayerIdCallback, pack);
}
public Rank_PlayerIdCallback(const String:name[], const String:steamid[], any:stats[], any:data, error)
{
if(error == ERROR_PLAYER_NOT_FOUND)
{
LogError("[SoD-Stats] RankCallback: Player not found");
return;
}
new Handle:pack = data;
ResetPack(pack);
new rank = ReadPackCell(pack);
new delta = ReadPackCell(pack);
new client = ReadPackCell(pack);
decl String:text[256];
new bool:isAlive = IsPlayerAlive(client);
if(g_gameid == ID_CSS || g_gameid == ID_TF2)
{
Format(text, sizeof(text), "\x071E90FF[детрановец] \x03%s\x07FFFAFA занимает \x07FF0000%i \x07FFFAFAиз \x07FF0000%i\x07FFFAFA (\x04%i \x07FFFAFAочков\x07FFFAFA) (\x04%i \x07FFFAFAдо след. места\x07FFFAFA) \x07FFFAFA(Убийств: \x04%i \x07FFFAFA- Смертей: \x04%i\x07FFFAFA)",
name,
rank,
g_player_count,
stats[STAT_SCORE] + g_start_points,
delta,
stats[STAT_KILLS],
stats[STAT_DEATHS]);
ColoredToAll(client, text, isAlive);
}
else
{
Format(text, sizeof(text), "\x04[детрановец] \x03%s\x01 занимает \x03%i \x01из \x04%i\x01 |%i очков| (%i до след. места) [\x01Убийств: \x04%i \x01- Смертей: \x04%i\x01]",
name,
rank,
g_player_count,
stats[STAT_SCORE] + g_start_points,
delta,
stats[STAT_KILLS],
stats[STAT_DEATHS]);
switch(g_displaymode)
{
case DISPLAYMODE_PUBLIC:
PrintToChatAll(text);
case DISPLAYMODE_PRIVATE:
PrintToChat(client, text);
case DISPLAYMODE_CHAT:
{
if(isAlive == true)
{
PrintToChatAll(text);
}
else
{
new maxclients = GetMaxClients();
for(new i = 1; i <= maxclients; i++)
{
if(IsClientInGame(i) && !IsFakeClient(i) && (!IsPlayerAlive(i) || isAlive))
{
PrintToChat(i, text);
}
}
}
}
}
}
}
ColoredToAll(client, const String:message[], isAlive)
{
switch(g_displaymode)
{
case DISPLAYMODE_PUBLIC:
{
new maxclients = GetMaxClients();
for(new i = 1; i <= maxclients; i++)
{
if(IsClientInGame(i) && !IsFakeClient(i))
{
SayText2(i, client, message);
}
}
}
case DISPLAYMODE_PRIVATE:
SayText2(client, client, message);
case DISPLAYMODE_CHAT:
{
new maxclients = GetMaxClients();
for(new i = 1; i <= maxclients; i++)
{
if(IsClientInGame(i) && !IsFakeClient(i) && (!IsPlayerAlive(i) || isAlive))
{
SayText2(i, client, message);
}
}
}
}
}
// CREDITS TO DJTSUNAMI FOR THIS
public SayText2(to, from, const String:message[])
{
new Handle:hMsg = StartMessageOne("SayText2", to);
if (GetUserMessageType() == UM_Protobuf)
{
//DUCKS, DUCKS EVERYWHERE !!! thanks to psy for the code, the patch, and more
PbSetInt(hMsg, "ent_idx", from);
PbSetBool(hMsg, "chat", true);
PbSetString(hMsg, "msg_name", message);
PbAddString(hMsg, "params", "");
PbAddString(hMsg, "params", "");
PbAddString(hMsg, "params", "");
PbAddString(hMsg, "params", "");
}
else
{
BfWriteByte(hMsg, from);
BfWriteByte(hMsg, true);
BfWriteString(hMsg, message);
}
EndMessage();
}