Переделать , поправить плагин для css 34 $$$

7RG

Участник
Сообщения
44
Реакции
13
Здравствуйте , кто поможет с плагином

Он выводит статистику игрока за кем наблюдаешь , нужно еще выводить живому человеку кто в игре

vk.com/cs_7rg
[OS][LVL]ShowStatsV34:
#include <lvl_ranks>
#include <clientmod>
#include <clientmod/multicolors>

#pragma semicolon 1
#pragma newdecls required

public Plugin myinfo =
{
    name = "[OS] [LVL] Show Stats V34",
    author = "KiKiEEKi ( DS: kikieeki | vk.com/kikieeki )",
    version = "( PRIVATE 1.0.1 )"
};

StringMap g_hRankExpList;

bool g_bShowStats[MAXPLAYERS+1];
float g_fGameTime[MAXPLAYERS+1][2];

int g_iCountPlayers;
float g_fHudPos[2] = {0.87, 0.73}; //Положения HUD (X, Y)

char g_sRank[][32] = {
    "Калибровка",
    "Silver I",
    "Silver II",
    "Silver III",
    "Silver IV",
    "Silver Elite",
    "Silver Elite M",
    "Gold Nova I",
    "Gold Nova II",
    "Gold Nova III",
    "Gold Nova Master",
    "Кaлaш",
    "≪Кaлaш≫",
    "2 кaлaшa",
    "Звeздa",
    "Бepкyт",
    "≪Бepкyт≫",
    "Cупpим",
    "Глoбaл"
};

public void OnPluginStart()
{
    g_hRankExpList = new StringMap();
    LoadTranslations("lr_core_ranks.phrases.txt");
    HookEvent("round_start", Event_RoundStart, EventHookMode_PostNoCopy);
    RegConsoleCmd("sm_hudstat", Cmd_HudStat);
}

Action Cmd_HudStat(int iClient, int iArgs)
{
    g_bShowStats[iClient] = !g_bShowStats[iClient];
    return Plugin_Handled;
}

public void Event_RoundStart(Event hEvent, const char[] sEvName, bool bDontBroadcast)
{
    g_iCountPlayers = LR_GetCountPlayers();
}

public void OnMapStart()
{
    for(int i = 1; i <= MaxClients; ++i) g_fGameTime[i][0] = g_fGameTime[i][1] = 0.0;

    g_hRankExpList.Clear();
    char sPath[256]; //PLATFORM_MAX_PATH - применяется в буферах под путь файла. Константа равна 256.
    BuildPath(Path_SM, sPath, sizeof(sPath), "configs/levels_ranks/settings_ranks.ini");

    KeyValues hKV = new KeyValues("LR_Settings");
    if(!hKV.ImportFromFile(sPath)) SetFailState("[OS] file is not found (%s)", sPath);

    int iExp;
    char sRank[16];

    if(hKV.JumpToKey("Ranks", false))
    {
        if(hKV.GotoFirstSubKey())
        {
            do
            {
                hKV.GetSectionName(sRank, sizeof(sRank));
                iExp = hKV.GetNum("value_0");
                g_hRankExpList.SetValue(sRank, iExp);
            }
            while(hKV.GotoNextKey());
        }
    }
    delete hKV;

    g_iCountPlayers = LR_GetCountPlayers();
}

public void OnClientPostAdminCheck(int iClient)
{
    g_bShowStats[iClient] = true;
}

//Таймер в сурсмоде уебещный, работает через жопу и поэтому сделал так!!!
public Action OnPlayerRunCmd(int iClient, int& iButtons)
{
    if(g_bShowStats[iClient] && !IsPlayerAlive(iClient))
    {
        g_fGameTime[iClient][0] = GetGameTime();
        if(g_fGameTime[iClient][0] >= g_fGameTime[iClient][1])
        {
            g_fGameTime[iClient][1] = g_fGameTime[iClient][0] + 2.0;
            OSShowStats(iClient);
        }
    }
    return Plugin_Continue;
}

#define SPECMODE_NONE            0
#define SPECMODE_FIRSTPERSON    3 //От 1 лица
#define SPECMODE_3RDPERSON        4 //От 3 лица
#define SPECMODE_3RDPERSON2        6 //От 3+ лица
#define SPECMODE_FREELOOK        7 //Свободный полет

void OSShowStats(int iClient)
{
    //Клиент наблюдает за каким-то одним человеком
    int m_iObserverMode = GetEntProp(iClient, Prop_Send, "m_iObserverMode");
    if(m_iObserverMode == 3 || m_iObserverMode == 4 || m_iObserverMode == 6)
    {
        int iTarget;
        char sTarget[32];

        //Выясните, на кого смотрит клиент.
        if((iTarget = GetEntPropEnt(iClient, Prop_Send, "m_hObserverTarget")) > 0 && !IsFakeClient(iTarget))
        {
            FormatEx(sTarget, sizeof(sTarget), "%N", iTarget);

            int iRank = LR_GetClientInfo(iTarget, ST_RANK);
            int iExp;
            int iKills = LR_GetClientInfo(iTarget, ST_KILLS);
            int iDeaths = LR_GetClientInfo(iTarget, ST_DEATHS);
            char sRank[2][64];
            char sBuffer[256];
            int iTime = (LR_GetClientInfo(iTarget, ST_PLAYTIME) / 60) / 60;

            //FormatEx(sRank[0], sizeof(sRank[]), "rank_%i", iRank);
            //FormatEx(sRank[1], sizeof(sRank[]), "%t (%i/18)", sRank[0], iRank);
            FormatEx(sRank[1], sizeof(sRank[]), "%s (%i/18)", g_sRank[iRank], iRank);
            FormatEx(sRank[0], sizeof(sRank[]), "rank_%i", iRank + 1 >= 18 ? iRank : iRank + 1);

            g_hRankExpList.GetValue(sRank[0], iExp);

            if(CM_GetClientModAuth(iClient) == CM_Auth_ClientMod)
            {
                FormatEx(sBuffer, sizeof(sBuffer), "{crimson}%s\n{uncommon}TOP: {white}[%i/%i]\n{uncommon}Oчки: {white}[%i/%i]\n{uncommon}Убийcтвa: {white}[%i]\n{uncommon}Cмepти: {white}[%i]\n{uncommon}KDR: {white}[%.2f]\n{uncommon}HS: {white}[%i]\n{green}Oнлaйн: [%i ч.]",
                    sRank[1],
                     LR_GetClientInfo(iTarget, ST_PLACEINTOP),
                     g_iCountPlayers,
                     LR_GetClientInfo(iTarget, ST_EXP),
                     iExp,
                     iKills,
                     iDeaths,
                     float(iKills) / float(iDeaths),
                    LR_GetClientInfo(iTarget, ST_HEADSHOTS),
                     iTime);

                //SetHudTextParams(g_fHudPos[0], g_fHudPos[1], 2.1, 255, 255, 255, 255, 0, 0.0, 0.0, 0.0);
                //CFormatHudText(sBuffer, sizeof(sBuffer), "%s", sBuffer);
                //ShowHudText(iClient, 4, "%s", sBuffer);
                CM_PrintBigHudMsgBg(iClient, 4, g_fHudPos[0], g_fHudPos[1], 1.0, 1.0, 1.0, {0, 0, 0, 120}, 0.50, sBuffer);
            }
            else {
                FormatEx(sBuffer, sizeof(sBuffer), "%s\nTOP: [%i/%i]\nОчки: [%i/%i]\nУбийства: [%i]\nСмерти: [%i]\nKDR [%.2f]\nHS: [%i]\nОнлайн: [%i ч.]",
                    sRank[1],
                    LR_GetClientInfo(iTarget, ST_PLACEINTOP),
                     g_iCountPlayers,
                     LR_GetClientInfo(iTarget, ST_EXP),
                     iExp,
                     iKills,
                     iDeaths,
                     float(iKills) / float(iDeaths),
                    LR_GetClientInfo(iTarget, ST_HEADSHOTS),
                     iTime);

                PrintHintText(iClient, "%s", sBuffer);
            }
        }
    }
}
 

Nekro

Терра инкогнита
Сообщения
4,185
Реакции
2,514
Здравствуйте , кто поможет с плагином

Он выводит статистику игрока за кем наблюдаешь , нужно еще выводить живому человеку кто в игре

vk.com/cs_7rg
[OS][LVL]ShowStatsV34:
#include <lvl_ranks>
#include <clientmod>
#include <clientmod/multicolors>

#pragma semicolon 1
#pragma newdecls required

public Plugin myinfo =
{
    name = "[OS] [LVL] Show Stats V34",
    author = "KiKiEEKi ( DS: kikieeki | vk.com/kikieeki )",
    version = "( PRIVATE 1.0.1 )"
};

StringMap g_hRankExpList;

bool g_bShowStats[MAXPLAYERS+1];
float g_fGameTime[MAXPLAYERS+1][2];

int g_iCountPlayers;
float g_fHudPos[2] = {0.87, 0.73}; //Положения HUD (X, Y)

char g_sRank[][32] = {
    "Калибровка",
    "Silver I",
    "Silver II",
    "Silver III",
    "Silver IV",
    "Silver Elite",
    "Silver Elite M",
    "Gold Nova I",
    "Gold Nova II",
    "Gold Nova III",
    "Gold Nova Master",
    "Кaлaш",
    "≪Кaлaш≫",
    "2 кaлaшa",
    "Звeздa",
    "Бepкyт",
    "≪Бepкyт≫",
    "Cупpим",
    "Глoбaл"
};

public void OnPluginStart()
{
    g_hRankExpList = new StringMap();
    LoadTranslations("lr_core_ranks.phrases.txt");
    HookEvent("round_start", Event_RoundStart, EventHookMode_PostNoCopy);
    RegConsoleCmd("sm_hudstat", Cmd_HudStat);
}

Action Cmd_HudStat(int iClient, int iArgs)
{
    g_bShowStats[iClient] = !g_bShowStats[iClient];
    return Plugin_Handled;
}

public void Event_RoundStart(Event hEvent, const char[] sEvName, bool bDontBroadcast)
{
    g_iCountPlayers = LR_GetCountPlayers();
}

public void OnMapStart()
{
    for(int i = 1; i <= MaxClients; ++i) g_fGameTime[i][0] = g_fGameTime[i][1] = 0.0;

    g_hRankExpList.Clear();
    char sPath[256]; //PLATFORM_MAX_PATH - применяется в буферах под путь файла. Константа равна 256.
    BuildPath(Path_SM, sPath, sizeof(sPath), "configs/levels_ranks/settings_ranks.ini");

    KeyValues hKV = new KeyValues("LR_Settings");
    if(!hKV.ImportFromFile(sPath)) SetFailState("[OS] file is not found (%s)", sPath);

    int iExp;
    char sRank[16];

    if(hKV.JumpToKey("Ranks", false))
    {
        if(hKV.GotoFirstSubKey())
        {
            do
            {
                hKV.GetSectionName(sRank, sizeof(sRank));
                iExp = hKV.GetNum("value_0");
                g_hRankExpList.SetValue(sRank, iExp);
            }
            while(hKV.GotoNextKey());
        }
    }
    delete hKV;

    g_iCountPlayers = LR_GetCountPlayers();
}

public void OnClientPostAdminCheck(int iClient)
{
    g_bShowStats[iClient] = true;
}

//Таймер в сурсмоде уебещный, работает через жопу и поэтому сделал так!!!
public Action OnPlayerRunCmd(int iClient, int& iButtons)
{
    if(g_bShowStats[iClient] && !IsPlayerAlive(iClient))
    {
        g_fGameTime[iClient][0] = GetGameTime();
        if(g_fGameTime[iClient][0] >= g_fGameTime[iClient][1])
        {
            g_fGameTime[iClient][1] = g_fGameTime[iClient][0] + 2.0;
            OSShowStats(iClient);
        }
    }
    return Plugin_Continue;
}

#define SPECMODE_NONE            0
#define SPECMODE_FIRSTPERSON    3 //От 1 лица
#define SPECMODE_3RDPERSON        4 //От 3 лица
#define SPECMODE_3RDPERSON2        6 //От 3+ лица
#define SPECMODE_FREELOOK        7 //Свободный полет

void OSShowStats(int iClient)
{
    //Клиент наблюдает за каким-то одним человеком
    int m_iObserverMode = GetEntProp(iClient, Prop_Send, "m_iObserverMode");
    if(m_iObserverMode == 3 || m_iObserverMode == 4 || m_iObserverMode == 6)
    {
        int iTarget;
        char sTarget[32];

        //Выясните, на кого смотрит клиент.
        if((iTarget = GetEntPropEnt(iClient, Prop_Send, "m_hObserverTarget")) > 0 && !IsFakeClient(iTarget))
        {
            FormatEx(sTarget, sizeof(sTarget), "%N", iTarget);

            int iRank = LR_GetClientInfo(iTarget, ST_RANK);
            int iExp;
            int iKills = LR_GetClientInfo(iTarget, ST_KILLS);
            int iDeaths = LR_GetClientInfo(iTarget, ST_DEATHS);
            char sRank[2][64];
            char sBuffer[256];
            int iTime = (LR_GetClientInfo(iTarget, ST_PLAYTIME) / 60) / 60;

            //FormatEx(sRank[0], sizeof(sRank[]), "rank_%i", iRank);
            //FormatEx(sRank[1], sizeof(sRank[]), "%t (%i/18)", sRank[0], iRank);
            FormatEx(sRank[1], sizeof(sRank[]), "%s (%i/18)", g_sRank[iRank], iRank);
            FormatEx(sRank[0], sizeof(sRank[]), "rank_%i", iRank + 1 >= 18 ? iRank : iRank + 1);

            g_hRankExpList.GetValue(sRank[0], iExp);

            if(CM_GetClientModAuth(iClient) == CM_Auth_ClientMod)
            {
                FormatEx(sBuffer, sizeof(sBuffer), "{crimson}%s\n{uncommon}TOP: {white}[%i/%i]\n{uncommon}Oчки: {white}[%i/%i]\n{uncommon}Убийcтвa: {white}[%i]\n{uncommon}Cмepти: {white}[%i]\n{uncommon}KDR: {white}[%.2f]\n{uncommon}HS: {white}[%i]\n{green}Oнлaйн: [%i ч.]",
                    sRank[1],
                     LR_GetClientInfo(iTarget, ST_PLACEINTOP),
                     g_iCountPlayers,
                     LR_GetClientInfo(iTarget, ST_EXP),
                     iExp,
                     iKills,
                     iDeaths,
                     float(iKills) / float(iDeaths),
                    LR_GetClientInfo(iTarget, ST_HEADSHOTS),
                     iTime);

                //SetHudTextParams(g_fHudPos[0], g_fHudPos[1], 2.1, 255, 255, 255, 255, 0, 0.0, 0.0, 0.0);
                //CFormatHudText(sBuffer, sizeof(sBuffer), "%s", sBuffer);
                //ShowHudText(iClient, 4, "%s", sBuffer);
                CM_PrintBigHudMsgBg(iClient, 4, g_fHudPos[0], g_fHudPos[1], 1.0, 1.0, 1.0, {0, 0, 0, 120}, 0.50, sBuffer);
            }
            else {
                FormatEx(sBuffer, sizeof(sBuffer), "%s\nTOP: [%i/%i]\nОчки: [%i/%i]\nУбийства: [%i]\nСмерти: [%i]\nKDR [%.2f]\nHS: [%i]\nОнлайн: [%i ч.]",
                    sRank[1],
                    LR_GetClientInfo(iTarget, ST_PLACEINTOP),
                     g_iCountPlayers,
                     LR_GetClientInfo(iTarget, ST_EXP),
                     iExp,
                     iKills,
                     iDeaths,
                     float(iKills) / float(iDeaths),
                    LR_GetClientInfo(iTarget, ST_HEADSHOTS),
                     iTime);

                PrintHintText(iClient, "%s", sBuffer);
            }
        }
    }
}
Вы же купил его у автора, правда? KiKiEEKi
3f3bc7887469e9317ac12c050a24fa33.jpg


 

7RG

Участник
Сообщения
44
Реакции
13
В соседней теме исходник выложили .
 

Synd1qate

Участник
Сообщения
1,000
Реакции
466
Вы же купил его у автора, правда? KiKiEEKi
Посмотреть вложение 123556

Кикиеки его сам выложил, а это уже доработка под км/34
 

7RG

Участник
Сообщения
44
Реакции
13
Ну что , кто поможет за вознаграждение ?
 

7pElllHuK

Участник
Сообщения
1,658
Реакции
647
Здравствуйте , кто поможет с плагином

Он выводит статистику игрока за кем наблюдаешь , нужно еще выводить живому человеку кто в игре

vk.com/cs_7rg
[OS][LVL]ShowStatsV34:
#include <lvl_ranks>
#include <clientmod>
#include <clientmod/multicolors>

#pragma semicolon 1
#pragma newdecls required

public Plugin myinfo =
{
    name = "[OS] [LVL] Show Stats V34",
    author = "KiKiEEKi ( DS: kikieeki | vk.com/kikieeki )",
    version = "( PRIVATE 1.0.1 )"
};

StringMap g_hRankExpList;

bool g_bShowStats[MAXPLAYERS+1];
float g_fGameTime[MAXPLAYERS+1][2];

int g_iCountPlayers;
float g_fHudPos[2] = {0.87, 0.73}; //Положения HUD (X, Y)

char g_sRank[][32] = {
    "Калибровка",
    "Silver I",
    "Silver II",
    "Silver III",
    "Silver IV",
    "Silver Elite",
    "Silver Elite M",
    "Gold Nova I",
    "Gold Nova II",
    "Gold Nova III",
    "Gold Nova Master",
    "Кaлaш",
    "≪Кaлaш≫",
    "2 кaлaшa",
    "Звeздa",
    "Бepкyт",
    "≪Бepкyт≫",
    "Cупpим",
    "Глoбaл"
};

public void OnPluginStart()
{
    g_hRankExpList = new StringMap();
    LoadTranslations("lr_core_ranks.phrases.txt");
    HookEvent("round_start", Event_RoundStart, EventHookMode_PostNoCopy);
    RegConsoleCmd("sm_hudstat", Cmd_HudStat);
}

Action Cmd_HudStat(int iClient, int iArgs)
{
    g_bShowStats[iClient] = !g_bShowStats[iClient];
    return Plugin_Handled;
}

public void Event_RoundStart(Event hEvent, const char[] sEvName, bool bDontBroadcast)
{
    g_iCountPlayers = LR_GetCountPlayers();
}

public void OnMapStart()
{
    for(int i = 1; i <= MaxClients; ++i) g_fGameTime[i][0] = g_fGameTime[i][1] = 0.0;

    g_hRankExpList.Clear();
    char sPath[256]; //PLATFORM_MAX_PATH - применяется в буферах под путь файла. Константа равна 256.
    BuildPath(Path_SM, sPath, sizeof(sPath), "configs/levels_ranks/settings_ranks.ini");

    KeyValues hKV = new KeyValues("LR_Settings");
    if(!hKV.ImportFromFile(sPath)) SetFailState("[OS] file is not found (%s)", sPath);

    int iExp;
    char sRank[16];

    if(hKV.JumpToKey("Ranks", false))
    {
        if(hKV.GotoFirstSubKey())
        {
            do
            {
                hKV.GetSectionName(sRank, sizeof(sRank));
                iExp = hKV.GetNum("value_0");
                g_hRankExpList.SetValue(sRank, iExp);
            }
            while(hKV.GotoNextKey());
        }
    }
    delete hKV;

    g_iCountPlayers = LR_GetCountPlayers();
}

public void OnClientPostAdminCheck(int iClient)
{
    g_bShowStats[iClient] = true;
}

//Таймер в сурсмоде уебещный, работает через жопу и поэтому сделал так!!!
public Action OnPlayerRunCmd(int iClient, int& iButtons)
{
    if(g_bShowStats[iClient] && !IsPlayerAlive(iClient))
    {
        g_fGameTime[iClient][0] = GetGameTime();
        if(g_fGameTime[iClient][0] >= g_fGameTime[iClient][1])
        {
            g_fGameTime[iClient][1] = g_fGameTime[iClient][0] + 2.0;
            OSShowStats(iClient);
        }
    }
    return Plugin_Continue;
}

#define SPECMODE_NONE            0
#define SPECMODE_FIRSTPERSON    3 //От 1 лица
#define SPECMODE_3RDPERSON        4 //От 3 лица
#define SPECMODE_3RDPERSON2        6 //От 3+ лица
#define SPECMODE_FREELOOK        7 //Свободный полет

void OSShowStats(int iClient)
{
    //Клиент наблюдает за каким-то одним человеком
    int m_iObserverMode = GetEntProp(iClient, Prop_Send, "m_iObserverMode");
    if(m_iObserverMode == 3 || m_iObserverMode == 4 || m_iObserverMode == 6)
    {
        int iTarget;
        char sTarget[32];

        //Выясните, на кого смотрит клиент.
        if((iTarget = GetEntPropEnt(iClient, Prop_Send, "m_hObserverTarget")) > 0 && !IsFakeClient(iTarget))
        {
            FormatEx(sTarget, sizeof(sTarget), "%N", iTarget);

            int iRank = LR_GetClientInfo(iTarget, ST_RANK);
            int iExp;
            int iKills = LR_GetClientInfo(iTarget, ST_KILLS);
            int iDeaths = LR_GetClientInfo(iTarget, ST_DEATHS);
            char sRank[2][64];
            char sBuffer[256];
            int iTime = (LR_GetClientInfo(iTarget, ST_PLAYTIME) / 60) / 60;

            //FormatEx(sRank[0], sizeof(sRank[]), "rank_%i", iRank);
            //FormatEx(sRank[1], sizeof(sRank[]), "%t (%i/18)", sRank[0], iRank);
            FormatEx(sRank[1], sizeof(sRank[]), "%s (%i/18)", g_sRank[iRank], iRank);
            FormatEx(sRank[0], sizeof(sRank[]), "rank_%i", iRank + 1 >= 18 ? iRank : iRank + 1);

            g_hRankExpList.GetValue(sRank[0], iExp);

            if(CM_GetClientModAuth(iClient) == CM_Auth_ClientMod)
            {
                FormatEx(sBuffer, sizeof(sBuffer), "{crimson}%s\n{uncommon}TOP: {white}[%i/%i]\n{uncommon}Oчки: {white}[%i/%i]\n{uncommon}Убийcтвa: {white}[%i]\n{uncommon}Cмepти: {white}[%i]\n{uncommon}KDR: {white}[%.2f]\n{uncommon}HS: {white}[%i]\n{green}Oнлaйн: [%i ч.]",
                    sRank[1],
                     LR_GetClientInfo(iTarget, ST_PLACEINTOP),
                     g_iCountPlayers,
                     LR_GetClientInfo(iTarget, ST_EXP),
                     iExp,
                     iKills,
                     iDeaths,
                     float(iKills) / float(iDeaths),
                    LR_GetClientInfo(iTarget, ST_HEADSHOTS),
                     iTime);

                //SetHudTextParams(g_fHudPos[0], g_fHudPos[1], 2.1, 255, 255, 255, 255, 0, 0.0, 0.0, 0.0);
                //CFormatHudText(sBuffer, sizeof(sBuffer), "%s", sBuffer);
                //ShowHudText(iClient, 4, "%s", sBuffer);
                CM_PrintBigHudMsgBg(iClient, 4, g_fHudPos[0], g_fHudPos[1], 1.0, 1.0, 1.0, {0, 0, 0, 120}, 0.50, sBuffer);
            }
            else {
                FormatEx(sBuffer, sizeof(sBuffer), "%s\nTOP: [%i/%i]\nОчки: [%i/%i]\nУбийства: [%i]\nСмерти: [%i]\nKDR [%.2f]\nHS: [%i]\nОнлайн: [%i ч.]",
                    sRank[1],
                    LR_GetClientInfo(iTarget, ST_PLACEINTOP),
                     g_iCountPlayers,
                     LR_GetClientInfo(iTarget, ST_EXP),
                     iExp,
                     iKills,
                     iDeaths,
                     float(iKills) / float(iDeaths),
                    LR_GetClientInfo(iTarget, ST_HEADSHOTS),
                     iTime);

                PrintHintText(iClient, "%s", sBuffer);
            }
        }
    }
}
Ты же понимаешь что оно особо не надо и будет мешать, да и чем Модуль плагина - [Levels Ranks] Module - Hud Info Не нравится? Этот вариант не так в глаза бросается
 

7RG

Участник
Сообщения
44
Реакции
13
Ты же понимаешь что оно особо не надо и будет мешать, да и чем Модуль плагина - [Levels Ranks] Module - Hud Info Не нравится? Этот вариант не так в глаза бросается
Зачем пытаться меня переубедить . Не надо меня отговаривать . А я хочу вот так .
хочу именно этот плагин .
 

XDSTYLE

Участник
Сообщения
486
Реакции
327

DarkerZ

Участник
Сообщения
484
Реакции
221
типа такого может быть

C-подобный:
void OSShowStats(int iClient)
{
    if (IsFakeClient(iClient)) return;
    int iTarget = iClient;
    if (!IsPlayerAlive(iClient))
    {
        //Клиент наблюдает за каким-то одним человеком
        int m_iObserverMode = GetEntProp(iClient, Prop_Send, "m_iObserverMode");
        int iObserverTarget;
        if((m_iObserverMode == 3 || m_iObserverMode == 4 || m_iObserverMode == 6) && ((iObserverTarget = GetEntPropEnt(iClient, Prop_Send, "m_hObserverTarget")) > 0) && !IsFakeClient(iObserverTarget))
        {
            iTarget = iObserverTarget;
        }
    }
    if (iTarget > 0) OSShowStatsNew(iClient, iTarget);
}

void OSShowStatsNew(int iClient, int iTarget)
{
    int iRank = LR_GetClientInfo(iTarget, ST_RANK);
    int iExp;
    int iKills = LR_GetClientInfo(iTarget, ST_KILLS);
    int iDeaths = LR_GetClientInfo(iTarget, ST_DEATHS);
    char sRank[2][64];
    char sBuffer[256];
    int iTime = (LR_GetClientInfo(iTarget, ST_PLAYTIME) / 60) / 60;

    //FormatEx(sRank[0], sizeof(sRank[]), "rank_%i", iRank);
    //FormatEx(sRank[1], sizeof(sRank[]), "%t (%i/18)", sRank[0], iRank);
    FormatEx(sRank[1], sizeof(sRank[]), "%s (%i/18)", g_sRank[iRank], iRank);
    FormatEx(sRank[0], sizeof(sRank[]), "rank_%i", iRank + 1 >= 18 ? iRank : iRank + 1);

    g_hRankExpList.GetValue(sRank[0], iExp);

    if(CM_GetClientModAuth(iClient) == CM_Auth_ClientMod)
    {
        FormatEx(sBuffer, sizeof(sBuffer), "{crimson}%s\n{uncommon}TOP: {white}[%i/%i]\n{uncommon}Oчки: {white}[%i/%i]\n{uncommon}Убийcтвa: {white}[%i]\n{uncommon}Cмepти: {white}[%i]\n{uncommon}KDR: {white}[%.2f]\n{uncommon}HS: {white}[%i]\n{green}Oнлaйн: [%i ч.]",
            sRank[1],
             LR_GetClientInfo(iTarget, ST_PLACEINTOP),
             g_iCountPlayers,
             LR_GetClientInfo(iTarget, ST_EXP),
             iExp,
             iKills,
             iDeaths,
             float(iKills) / float(iDeaths),
            LR_GetClientInfo(iTarget, ST_HEADSHOTS),
             iTime);

        //SetHudTextParams(g_fHudPos[0], g_fHudPos[1], 2.1, 255, 255, 255, 255, 0, 0.0, 0.0, 0.0);
        //CFormatHudText(sBuffer, sizeof(sBuffer), "%s", sBuffer);
        //ShowHudText(iClient, 4, "%s", sBuffer);
        CM_PrintBigHudMsgBg(iClient, 4, g_fHudPos[0], g_fHudPos[1], 1.0, 1.0, 1.0, {0, 0, 0, 120}, 0.50, sBuffer);
    }
    else {
        FormatEx(sBuffer, sizeof(sBuffer), "%s\nTOP: [%i/%i]\nОчки: [%i/%i]\nУбийства: [%i]\nСмерти: [%i]\nKDR [%.2f]\nHS: [%i]\nОнлайн: [%i ч.]",
            sRank[1],
            LR_GetClientInfo(iTarget, ST_PLACEINTOP),
             g_iCountPlayers,
             LR_GetClientInfo(iTarget, ST_EXP),
             iExp,
             iKills,
             iDeaths,
             float(iKills) / float(iDeaths),
            LR_GetClientInfo(iTarget, ST_HEADSHOTS),
             iTime);

        PrintHintText(iClient, "%s", sBuffer);
    }
}
 
Последнее редактирование:

7RG

Участник
Сообщения
44
Реакции
13
типа такого может быть

C-подобный:
void OSShowStats(int iClient)
{
    int iTarget;
    //Клиент наблюдает за каким-то одним человеком
    int m_iObserverMode = GetEntProp(iClient, Prop_Send, "m_iObserverMode");
    if((m_iObserverMode == 3 || m_iObserverMode == 4 || m_iObserverMode == 6) && (iTarget = GetEntPropEnt(iClient, Prop_Send, "m_hObserverTarget")) > 0 && !IsFakeClient(iTarget))
    {
        OSShowStatsNew(iClient, iTarget);
    }
    else
    {
        OSShowStatsNew(iClient, iClient);
    }
}

void OSShowStatsNew(int iClient, int iTarget)
{
    int iRank = LR_GetClientInfo(iTarget, ST_RANK);
    int iExp;
    int iKills = LR_GetClientInfo(iTarget, ST_KILLS);
    int iDeaths = LR_GetClientInfo(iTarget, ST_DEATHS);
    char sRank[2][64];
    char sBuffer[256];
    int iTime = (LR_GetClientInfo(iTarget, ST_PLAYTIME) / 60) / 60;

    //FormatEx(sRank[0], sizeof(sRank[]), "rank_%i", iRank);
    //FormatEx(sRank[1], sizeof(sRank[]), "%t (%i/18)", sRank[0], iRank);
    FormatEx(sRank[1], sizeof(sRank[]), "%s (%i/18)", g_sRank[iRank], iRank);
    FormatEx(sRank[0], sizeof(sRank[]), "rank_%i", iRank + 1 >= 18 ? iRank : iRank + 1);

    g_hRankExpList.GetValue(sRank[0], iExp);

    if(CM_GetClientModAuth(iClient) == CM_Auth_ClientMod)
    {
        FormatEx(sBuffer, sizeof(sBuffer), "{crimson}%s\n{uncommon}TOP: {white}[%i/%i]\n{uncommon}Oчки: {white}[%i/%i]\n{uncommon}Убийcтвa: {white}[%i]\n{uncommon}Cмepти: {white}[%i]\n{uncommon}KDR: {white}[%.2f]\n{uncommon}HS: {white}[%i]\n{green}Oнлaйн: [%i ч.]",
            sRank[1],
             LR_GetClientInfo(iTarget, ST_PLACEINTOP),
             g_iCountPlayers,
             LR_GetClientInfo(iTarget, ST_EXP),
             iExp,
             iKills,
             iDeaths,
             float(iKills) / float(iDeaths),
            LR_GetClientInfo(iTarget, ST_HEADSHOTS),
             iTime);

        //SetHudTextParams(g_fHudPos[0], g_fHudPos[1], 2.1, 255, 255, 255, 255, 0, 0.0, 0.0, 0.0);
        //CFormatHudText(sBuffer, sizeof(sBuffer), "%s", sBuffer);
        //ShowHudText(iClient, 4, "%s", sBuffer);
        CM_PrintBigHudMsgBg(iClient, 4, g_fHudPos[0], g_fHudPos[1], 1.0, 1.0, 1.0, {0, 0, 0, 120}, 0.50, sBuffer);
    }
    else {
        FormatEx(sBuffer, sizeof(sBuffer), "%s\nTOP: [%i/%i]\nОчки: [%i/%i]\nУбийства: [%i]\nСмерти: [%i]\nKDR [%.2f]\nHS: [%i]\nОнлайн: [%i ч.]",
            sRank[1],
            LR_GetClientInfo(iTarget, ST_PLACEINTOP),
             g_iCountPlayers,
             LR_GetClientInfo(iTarget, ST_EXP),
             iExp,
             iKills,
             iDeaths,
             float(iKills) / float(iDeaths),
            LR_GetClientInfo(iTarget, ST_HEADSHOTS),
             iTime);

        PrintHintText(iClient, "%s", sBuffer);
    }
}
Так статистика выводиться когда ты мертв , у живого Игрока нету
1768720700196.png
 
Последнее редактирование:

DENZEL519

Работаю через AI !
Сообщения
644
Реакции
494
@7RG, Проверьте
 

Вложения

  • [OS][LVL]ShowStatsV34.sp
    6 КБ · Просмотры: 27
  • Мне нравится
Реакции: 7RG

7RG

Участник
Сообщения
44
Реакции
13
Отлично . Спасибо большое. Все стабильно работает !
 

Похожие темы

Ответы
6
Просмотры
671
Ответы
2
Просмотры
Ответы
4
Просмотры
Ответы
13
Просмотры
Сверху Снизу