Поиск Top Awards

Сообщения
58
Реакции
25
Помог
4 раз(а)
Привет всем.

Может у кого-нибудь есть данный плагин для csstatsx_sql, работающий корректно. Который выдает флаги за TOP X мест, а не за сыгранное время. Нашел какие-то на форумах, но работают они через пень колоду.
 
Сообщения
1,419
Реакции
2,508
Помог
59 раз(а)
Немного поправил плагин автора, должно работать с CsstatsX SQL. Требуется AMXX 1.9.0. В архиве исходник и сам конфиг файл.

Код:
#include <amxmodx>
#include <reapi>
+#include <csstatsx_sql>

-#if AMXX_VERSION_NUM < 183
-    #include <colorchat>
-    #define client_disconnected    client_disconnect
-#endif

/* SETTINGS */
#define IGNORE_FLAGS "t"
    // Игнорируемые флаги
    // Закомментировать, если не нужно игнорируемые флаги

#define TIME 1.0
    // Каждые n секунды проверить статистику игрока

#define    MAX_AWARDS 254
    // Максимальная кол-во наград

/* DICTIONARY */
#define    TOP_CHAT_MESSAGE    "^1[^4Top Awards^1] Вы ^3поднялись на %d ^1место. Бонусные флаги: ^4%s"
    // Закомментировать, если не нужно сообщение при поднятие место

#define NO_TOP_CHAT_MESSAGE "^1[^4Top Awards^1] Вы ^3опустились на %d ^1место. ^3Нет бонусных флагов"
    // Закомментировать, если не нужно сообщение при понижение место

/* Do not touch arrays */
-new bool:GiveAward[33];
+new bool:GiveAward[MAX_PLAYERS+1];
enum _:DATA { FLAGS[32] };
new g_arrAwardData[MAX_AWARDS][DATA], g_iDataSize = 1;

public plugin_init()
{
    register_plugin("[ReAPI] Top Awards", "1.0", "Dom1no_[KZ]");
    RegisterHookChain(RG_CBasePlayer_Spawn, "client_player_spawn", true);
}

public plugin_cfg()
{
-   new szPath[64];
+   new szPath[PLATFORM_MAX_PATH];
    get_localinfo("amxx_configsdir", szPath, charsmax(szPath));
    add(szPath, charsmax(szPath), "/top_awards.ini");

    new iFile = fopen(szPath, "rt");
    if(!iFile)
    {
        new szError[96];
        formatex(szError, charsmax(szError), "File '%s' not found OR incorrect CHMOD!", szPath);
        set_fail_state(szError);
    }

    new szBuffer[MAX_AWARDS];
    while(!feof(iFile))
    {
        fgets(iFile, szBuffer, charsmax(szBuffer));
        trim(szBuffer);

        if(!szBuffer[0] || szBuffer[0] == ';')
            continue;

        if(parse(szBuffer,
            g_arrAwardData[g_iDataSize][FLAGS], charsmax(g_arrAwardData[][FLAGS])
        ) == 1)    g_iDataSize++;
    }
    fclose(iFile);
}

public client_putinserver(id)    GiveAward[id] = false;
public client_disconnected(id)    GiveAward[id] = false;
public client_player_spawn(id)    set_task(TIME, "ItemAwards", id)

public ItemAwards(id)
{
    #if defined IGNORE_FLAGS
        if(!GiveAward[id] && get_user_flags(id) & read_flags(IGNORE_FLAGS))
            return
    #endif

-   new szStats[8];
-   new iRank    = get_user_stats(id, szStats, szStats);
+   new szStats[STATSX_MAX_STATS];
+   new iRank    = get_user_stats_sql(id, szStats, szStats);
    if(iRank < g_iDataSize)
    {
        if(~get_user_flags(id) & read_flags(g_arrAwardData[iRank][FLAGS]))
        {
            set_user_flags(id, read_flags(g_arrAwardData[iRank][FLAGS]))
            #if defined TOP_CHAT_MESSAGE
                ColorChat(id, NORMAL, TOP_CHAT_MESSAGE, iRank, g_arrAwardData[iRank][FLAGS]);
            #endif
            GiveAward[id] = true;
        }
    }
    else
    {
        remove_user_flags(id);
        #if defined NO_TOP_CHAT_MESSAGE
            ColorChat(id, NORMAL, NO_TOP_CHAT_MESSAGE, iRank);
        #endif
        GiveAward[id] = false;
    }
}
 

Вложения

Последнее редактирование модератором:
Сообщения
5
Реакции
0
@twisterniq,Не знаю почему, но те кто входил в топ (админы,випы) слетали права, всё было выставлено корректно например выдавались флаги CIS с игнором флага D, права начинали работать только с момента прописи amx_reloadadmins, а так людей у с правами проходила авторизация "типо" выдавало флаги но как бы не выдавало (ещё заметил при использовании amx_who, что у некоторых игроков был флаг Z а у некоторых не было)

Currently loaded plugins:
description stat pend file vers src load unlod
[ 1] SafeNameAndChat RUN - SafeNameAndChat. v1.1 ini ANY ANY
[ 2] ReSRDetector RUN - resrdetector_mm_ v0.1.0 ini Chlvl ANY
[ 3] Reunion RUN - reunion_mm_i386. v0.1.92d ini Start Never
[ 4] VoiceTranscoder RUN - VoiceTranscoder. v2017RC5 ini ANY ANY
[ 5] AMX Mod X RUN - amxmodx_mm_i386. v1.9.0.5 ini Start ANY
[ 6] ProcessCmds RUN - processcmds_mm_i v1.2.0 ini Start Never
[ 7] MySQL RUN - mysql_amxx_i386. v1.9.0.5 pl5 ANY ANY
[ 8] Fun RUN - fun_amxx_i386.so v1.9.0.5 pl5 ANY ANY
[ 9] Engine RUN - engine_amxx_i386 v1.9.0.5 pl5 ANY ANY
[10] FakeMeta RUN - fakemeta_amxx_i3 v1.9.0.5 pl5 ANY ANY
[11] GeoIP RUN - geoip_amxx_i386. v1.9.0.5 pl5 ANY ANY
[12] Ham Sandwich RUN - hamsandwich_amxx v1.9.0.5 pl5 ANY ANY
[13] ReAPI RUN - reapi_amxx_i386. v5.21.0. pl5 ANY Never
[14] CStrike RUN - cstrike_amxx_i38 v1.9.0.5 pl5 ANY ANY
14 plugins, 14 running
 
Последнее редактирование:

d3m37r4

111111
Сообщения
1,420
Реакции
1,162
Помог
10 раз(а)
Alexandr, потому что флаги этим плагином перезаписываются.
 

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу