Баланс HLstatX

f1est0oz

Участник
Сообщения
100
Реакции
5
Требуется помощь профессионалов, своего дела. Установил HLStatX, настроил вроде, а вот автобаланс пишет, что игроков должно переместить, но этого не происходит. В чем проблема?

(ADMINS) Console: AUTO-TEAM BALANCER: CT (3) 22:11 [6 - 1] 9:20 (3) TS
HLstatsX:CE - ATB - Checking Teams
(ADMINS) Console: "HLstatsX:CE - А. Дюма was switched to balance teams"
(ADMINS) Console: "HLstatsX:CE - Nakatomi was switched to balance teams"
 

Kruzya

Участник
Сообщения
12,974
Реакции
10,938
  • Команда форума
  • #2
@f1est0oz, сейчас специально побегал по исходникам хлстатса в поисках этой функции.
Я так понял, она должна работать только на CSGO и CSS, но, как мне кажется, тут условие криво поставлено,
PHP:
    if (gamemod != Game_CSS || gamemod != Game_CSGO)
    {
        PrintToServer("hlx_sm_swap is not supported by this game.");
        return Plugin_Handled;
    }
Должно быть &&, а не ||, но опять же, это чисто моё мнение.
Поправил, попробуйте.
 

Вложения

  • hlstatsx.sp
    54.3 КБ · Просмотры: 25
  • hlstatsx.smx
    28.5 КБ · Просмотры: 25

f1est0oz

Участник
Сообщения
100
Реакции
5
Скачал исходник, попробовал скомпилировать sourcemod-1.8.0-git6015-windows .
w1.png

Заменил часть кода
C-подобный:
g_hCustomTags = CreateArray(SVTAGSIZE);
sv_tags = FindConVar("sv_tags");
g_iSDKVersion = GetSDKVersion();
на
C-подобный:
g_hCustomTags = CreateArray(SVTAGSIZE);
sv_tags = FindConVar("sv_tags");
g_iSDKVersion = GetEngineVersion();
w2.png

Можно как-то исправить данную ошибку? Есть ли вариант, просто удалить эту строку?
Или не обращать на это внимания? Компилируется и самое главное.
C-подобный:
g_iSDKVersion = GetSDKVersion();
--- Добавлено позже ---
Нашел исходник, с такой функцией. С ней будет работать?

C-подобный:
public Action:hlx_sm_swap(args)
{
    if (args < 1)
    {
        PrintToServer("Usage: hlx_sm_swap <userid> - swaps players to the opposite team (css only)");
        return Plugin_Handled;
    }
    
    decl String:client_id[32];
    GetCmdArg(1, client_id, sizeof(client_id));

    new client = StringToInt(client_id);
    if (client > 0)
    {
        new player_index = GetClientOfUserId(client);
        if (player_index > 0 && IsClientInGame(player_index))
        {
            swap_player(player_index);
        }
    }
    return Plugin_Handled;
}
А в том исходнике так написано.
C-подобный:
public Action hlx_sm_swap(int args)
{
    if (args < 1)
    {
        PrintToServer("Usage: hlx_sm_swap <userid> - swaps players to the opposite team (css only)");
        return Plugin_Handled;
    }

    if (gamemod != Game_CSS || gamemod != Game_CSGO)
    {
        PrintToServer("hlx_sm_swap is not supported by this game.");
        return Plugin_Handled;
    }
    
    char client_id[32];
    GetCmdArg(1, client_id, sizeof(client_id));

    int client = StringToInt(client_id);
    if (client > 0)
    {
        int player_index = GetClientOfUserId(client);
        if (player_index > 0 && IsClientInGame(player_index))
        {
            swap_player(player_index);
        }
    }
    return Plugin_Handled;
}
 
Последнее редактирование:

Kruzya

Участник
Сообщения
12,974
Реакции
10,938
  • Команда форума
  • #4
@f1est0oz, Это не ошибка, а предупреждение. Лучше не трогать, работать и так будет.
Касательно будет ли работать - попробуйте и узнаете :)
 
Сверху Снизу