Иконка ресурса

[LR WEB] Счётчик киллов v2.3

emo

Участник
Сообщения
33
Реакции
3
Попробовала установить плагин, который на игровой сервер, считает в бд до 1 и потом сбрасывает до нуля(
 
Последнее редактирование:

XuMEPA#1901

Участник
Сообщения
17
Реакции
6
Здравствуйте
Килы засчитывает, на сайте отображение есть, но после смены карты сразу обнуляется.
Что может быть не так ?
 

danil253467

💘Italo-Disco & Neon One Love💘
Сообщения
90
Реакции
52
levels_ranks/levelsranks_extrakills.smx ([ LVL ] Модуль: Дополнительная информация): Required extension "SteamWorks" file("SteamWorks.ext") not running

Насколько я знаю, расширение "SteamWorks" не работает на CSS v34
Убери из исходника следующее:

PHP:
#include <steamworks>
#include <csgo_colors>

И скомпилируй плагин. Должно сработать
 

Synd1qate

Участник
Сообщения
745
Реакции
259
ошибка при компилировании - IsValidClient
Полностью кидай ошибки...
Сообщения автоматически склеены:

ошибка при компилировании - IsValidClient
Пробуй:
#include <sourcemod>
#include <sdktools>
#include <sdkhooks>
#include <cstrike>
#include <lvl_ranks>

Database     g_hDatabase;
int         iKills[MAXPLAYERS+1];
char         g_sTableName[64];

public Plugin:myinfo =
{
    name = "[ LVL ] Модуль: Дополнительная информация",
    author = "Rustgame",
    description = "Информация о xУбийствах",
};

public void OnPluginStart()
{
    Database.Connect(ConnectCallBack, "levels_ranks");

    HookEvent("player_death", OnPlayerDeath, EventHookMode_Pre);
    HookEvent("round_end", OnRoundEnd, EventHookMode_PostNoCopy);

    static char sPath[PLATFORM_MAX_PATH];
    BuildPath(Path_SM, sPath, sizeof(sPath), "configs/levels_ranks/settings.ini");

    KeyValues    hKv = new KeyValues("LR_Settings");
    if(!hKv.ImportFromFile(sPath))
    {
        SetFailState("%s - is not found", sPath);
    }

    hKv.GotoFirstSubKey();
    hKv.Rewind();
    hKv.JumpToKey("MainSettings");

    hKv.GetString("lr_table", g_sTableName, sizeof(g_sTableName), "lvl_base");
}

public Action OnRoundEnd(Handle:event, const String:name[], bool:dontBroadcast){for(int i = 1; i <= MAXPLAYERS; ++i){SendInfoKills(i);}}
public Action OnPlayerDeath(Event event, const char[] name, bool dontBroadcast)
{
    int     iClient = GetClientOfUserId(GetEventInt(event, "userid")),
            iAttacker = GetClientOfUserId(GetEventInt(event, "attacker"));
    iKills[iAttacker]++;
    if (iKills[iClient] > 2){SendInfoKills(iClient);}
}

public void SendInfoKills(int iClient)
{
    if (IsValidClient(iClient))
    {
        char szQuery[256], szAuth[32];
        GetClientAuthId(iClient, AuthId_Engine, szAuth, sizeof(szAuth));
        FormatEx(szQuery, sizeof(szQuery), "SELECT `tkills`, `qkills`, `aces` FROM `%s` WHERE `steam` = '%s';", g_sTableName, szAuth);
        g_hDatabase.Query(CallBack, szQuery, GetClientUserId(iClient));
    }
}

public void CallBack(Database hDatabase, DBResultSet results, const char[] sError, any iUserID)
{
    if(sError[0])
    {
        LogError("SQL_Callback: %s", sError);
    }

    int iClient = GetClientOfUserId(iUserID);
    
    if (IsValidClient(iClient))
    {
        if(results.FetchRow())
        {
            char     szQuery[256], szAuth[32];
            GetClientAuthId(iClient, AuthId_Engine, szAuth, sizeof(szAuth));
            int     iTKills = 0,
                    iQKills = 0,
                    iAces     = 0;
            iTKills = results.FetchInt(0);
            iQKills = results.FetchInt(1);
            iAces     = results.FetchInt(2);

            if (iKills[iClient]     == 3){iTKills++;}
            else if(iKills[iClient] == 4){iQKills++;}
            else if(iKills[iClient] >= 5){iAces++;}

            FormatEx(szQuery, sizeof(szQuery), "UPDATE `%s` SET `tkills` = %i, `qkills` = %i, `aces` = %i WHERE `steam` = '%s';", g_sTableName, iTKills, iQKills, iAces, szAuth);
            g_hDatabase.Query(SQL_Callback_CheckError, szQuery);

            //PrintToServer("%N: [%i][%i][%i][%i]", iClient, iKills[iClient], iTKills, iQKills, iAces);

            iKills[iClient] = 0;
        }
    }
}

public void SQL_Callback_CheckError(Database hDatabase, DBResultSet results, const char[] szError, any data){if(szError[0]){LogError("SQL_Callback_CheckError: %s", szError);}}
public void ConnectCallBack(Database hDatabase, const char[] sError, any data)
{
    if (hDatabase == null){SetFailState("Database Failure: %s", sError);return;}

    g_hDatabase = hDatabase;
}

public IsValidClient(iClient)
{
    if (iClient <= 0 || iClient > MaxClients)
    {
        return false;
    }

    if (!IsClientInGame(iClient) || !IsClientConnected(iClient))
    {
        return false;
    }

    return true;
}
 

kaifodrom1337

Участник
Сообщения
72
Реакции
7
Полностью кидай ошибки...
Сообщения автоматически склеены:


Пробуй:
#include <sourcemod>
#include <sdktools>
#include <sdkhooks>
#include <cstrike>
#include <lvl_ranks>

Database     g_hDatabase;
int         iKills[MAXPLAYERS+1];
char         g_sTableName[64];

public Plugin:myinfo =
{
    name = "[ LVL ] Модуль: Дополнительная информация",
    author = "Rustgame",
    description = "Информация о xУбийствах",
};

public void OnPluginStart()
{
    Database.Connect(ConnectCallBack, "levels_ranks");

    HookEvent("player_death", OnPlayerDeath, EventHookMode_Pre);
    HookEvent("round_end", OnRoundEnd, EventHookMode_PostNoCopy);

    static char sPath[PLATFORM_MAX_PATH];
    BuildPath(Path_SM, sPath, sizeof(sPath), "configs/levels_ranks/settings.ini");

    KeyValues    hKv = new KeyValues("LR_Settings");
    if(!hKv.ImportFromFile(sPath))
    {
        SetFailState("%s - is not found", sPath);
    }

    hKv.GotoFirstSubKey();
    hKv.Rewind();
    hKv.JumpToKey("MainSettings");

    hKv.GetString("lr_table", g_sTableName, sizeof(g_sTableName), "lvl_base");
}

public Action OnRoundEnd(Handle:event, const String:name[], bool:dontBroadcast){for(int i = 1; i <= MAXPLAYERS; ++i){SendInfoKills(i);}}
public Action OnPlayerDeath(Event event, const char[] name, bool dontBroadcast)
{
    int     iClient = GetClientOfUserId(GetEventInt(event, "userid")),
            iAttacker = GetClientOfUserId(GetEventInt(event, "attacker"));
    iKills[iAttacker]++;
    if (iKills[iClient] > 2){SendInfoKills(iClient);}
}

public void SendInfoKills(int iClient)
{
    if (IsValidClient(iClient))
    {
        char szQuery[256], szAuth[32];
        GetClientAuthId(iClient, AuthId_Engine, szAuth, sizeof(szAuth));
        FormatEx(szQuery, sizeof(szQuery), "SELECT `tkills`, `qkills`, `aces` FROM `%s` WHERE `steam` = '%s';", g_sTableName, szAuth);
        g_hDatabase.Query(CallBack, szQuery, GetClientUserId(iClient));
    }
}

public void CallBack(Database hDatabase, DBResultSet results, const char[] sError, any iUserID)
{
    if(sError[0])
    {
        LogError("SQL_Callback: %s", sError);
    }

    int iClient = GetClientOfUserId(iUserID);
   
    if (IsValidClient(iClient))
    {
        if(results.FetchRow())
        {
            char     szQuery[256], szAuth[32];
            GetClientAuthId(iClient, AuthId_Engine, szAuth, sizeof(szAuth));
            int     iTKills = 0,
                    iQKills = 0,
                    iAces     = 0;
            iTKills = results.FetchInt(0);
            iQKills = results.FetchInt(1);
            iAces     = results.FetchInt(2);

            if (iKills[iClient]     == 3){iTKills++;}
            else if(iKills[iClient] == 4){iQKills++;}
            else if(iKills[iClient] >= 5){iAces++;}

            FormatEx(szQuery, sizeof(szQuery), "UPDATE `%s` SET `tkills` = %i, `qkills` = %i, `aces` = %i WHERE `steam` = '%s';", g_sTableName, iTKills, iQKills, iAces, szAuth);
            g_hDatabase.Query(SQL_Callback_CheckError, szQuery);

            //PrintToServer("%N: [%i][%i][%i][%i]", iClient, iKills[iClient], iTKills, iQKills, iAces);

            iKills[iClient] = 0;
        }
    }
}

public void SQL_Callback_CheckError(Database hDatabase, DBResultSet results, const char[] szError, any data){if(szError[0]){LogError("SQL_Callback_CheckError: %s", szError);}}
public void ConnectCallBack(Database hDatabase, const char[] sError, any data)
{
    if (hDatabase == null){SetFailState("Database Failure: %s", sError);return;}

    g_hDatabase = hDatabase;
}

public IsValidClient(iClient)
{
    if (iClient <= 0 || iClient > MaxClients)
    {
        return false;
    }

    if (!IsClientInGame(iClient) || !IsClientConnected(iClient))
    {
        return false;
    }

    return true;
}
 

Вложения

  • Без имени-1.png
    Без имени-1.png
    9.1 КБ · Просмотры: 16

Synd1qate

Участник
Сообщения
745
Реакции
259
На каком SM компилируешь? На 10 без ошибок.
 

Вложения

  • 1720707104018.png
    1720707104018.png
    27.6 КБ · Просмотры: 13
Сверху Снизу