SourceBans fork 1.6.0 убрать авто-добавление сервера в базу данных

Тема в разделе "Программирование / Скриптинг", создана пользователем B1g, 26 авг 2015.

  1. B1g

    B1g

    Сообщения:
    716
    Симпатии:
    26
    Вышел вообщем форк новый. https://forums.alliedmods.net/showthread.php?t=263735 . Но вот не задача , там стоит автодобавление сервера в базу, и нету квара регулирующего этот момент , может кто добавить квар или вырезать вообше автодобавление? Во вложении исходники.
     

    Вложения:

    • sourcemod.rar
      Размер файла:
      60,9 КБ
      Просмотров:
      3
  2. R1KO

    R1KO Супер-модератор

    Сообщения:
    5.993
    Симпатии:
    2.989
    строки 254 - 278.
    Читай мои комментарии:
    PHP:
    public Query_ServerSelect(Handle:ownerHandle:hndl, const String:error[], any:data)
    {
        if(
    error[0])
        {
            
    LogError("%T (%s)""Failed to query database"LANG_SERVERerror);
            return;
        }
        if(
    SQL_FetchRow(hndl)) // Сервер есть в бд
        
    {
            
    // Store server ID locally
            
    SetTrieValue(g_hConfig"ServerID"SQL_FetchInt(hndl0));
            
            
    Call_StartForward(g_hOnConnect);
            
    Call_PushCell(g_hDatabase);
            
    Call_Finish();
            return;
        }
        
        
    // сервера нет в бд, далее идет его добаление.
        
    decl String:sFolder[32], String:sQuery[1024];
        
    GetGameFolderName(sFoldersizeof(sFolder));
        
        
    Format(sQuerysizeof(sQuery), "INSERT INTO {{servers}} (ip, port, modid) \
                                        VALUES      ('%s', %i, (SELECT mid FROM {{mods}} WHERE modfolder = '%s'))"
    ,
                                        
    g_sServerIpg_iServerPortsFolder);
        
    SB_Query(Query_ServerInsertsQuery);
    }
    Тоесть выреж это:
    PHP:
    decl String:sFolder[32], String:sQuery[1024];
        
    GetGameFolderName(sFoldersizeof(sFolder));
        
        
    Format(sQuerysizeof(sQuery), "INSERT INTO {{servers}} (ip, port, modid) \
                                        VALUES      ('%s', %i, (SELECT mid FROM {{mods}} WHERE modfolder = '%s'))"
    ,
                                        
    g_sServerIpg_iServerPortsFolder);
        
    SB_Query(Query_ServerInsertsQuery);

    и

    public Query_ServerInsert(Handle:ownerHandle:hndl, const String:error[], any:data)
    {
        if(
    error[0])
        {
            
    LogError("%T (%s)""Failed to query database"LANG_SERVERerror);
            return;
        }
        
        
    // Store server ID locally
        
    SetTrieValue(g_hConfig"ServerID"SQL_GetInsertId(owner));
        
        
    Call_StartForward(g_hOnConnect);
        
    Call_PushCell(g_hDatabase);
        
    Call_Finish();
    }
     
  3. B1g

    B1g

    Сообщения:
    716
    Симпатии:
    26
    А возможно квар прикрутить? И интересует вопрос , почему же при авто-добавлении админы не записываются ?
     
  4. R1KO

    R1KO Супер-модератор

    Сообщения:
    5.993
    Симпатии:
    2.989
    Прикрути. Ты же модули для шопа пишешь, че там того квара.

    Не знаю, лень ковырять.
     
  5. B1g

    B1g

    Сообщения:
    716
    Симпатии:
    26
    Я пишу с кодерами этого форума ) Я не отрицаю, сам в сорспавне 0. Если можешь помоги прикрутить квар
     
  6. R1KO

    R1KO Супер-модератор

    Сообщения:
    5.993
    Симпатии:
    2.989
    PHP:
    new Handle:g_hCvar_AutoAddServer
    в OnPluginStart()
    PHP:
    g_hCvar_AutoAddServer CreateConVar("sm_auto_add_server""0""Добавлять ли сервер автоматически (1 - да, 0 - нет)"0true0.0true1.0);
    А потом тот код что я писал заменяешь на этот:
    PHP:
    public Query_ServerSelect(Handle:ownerHandle:hndl, const String:error[], any:data)
    {
        if(
    error[0])
        {
            
    LogError("%T (%s)""Failed to query database"LANG_SERVERerror);
            return;
        }
        if(
    SQL_FetchRow(hndl)) // Сервер есть в бд
        
    {
            
    // Store server ID locally
            
    SetTrieValue(g_hConfig"ServerID"SQL_FetchInt(hndl0));
            
            
    Call_StartForward(g_hOnConnect);
            
    Call_PushCell(g_hDatabase);
            
    Call_Finish();
            return;
        }
        
        
    // сервера нет в бд, далее идет его добаление.
        
    if(GetConVarBool(g_hCvar_AutoAddServer))
        {
            
    decl String:sFolder[32], String:sQuery[1024];
            
    GetGameFolderName(sFoldersizeof(sFolder));
            
            
    Format(sQuerysizeof(sQuery), "INSERT INTO {{servers}} (ip, port, modid) \
                                            VALUES      ('%s', %i, (SELECT mid FROM {{mods}} WHERE modfolder = '%s'))"
    ,
                                            
    g_sServerIpg_iServerPortsFolder);
            
    SB_Query(Query_ServerInsertsQuery);
        }
    }
    В server.cfg прописываешь:
    Код:
    sm_auto_add_server "0"
    или
    Код:
    sm_auto_add_server "1"
     
  7. B1g

    B1g

    Сообщения:
    716
    Симпатии:
    26
    Сейчас писал автору этого СБ , он написал что админы теперь не добавляются в админкс.цфг а куда-то в кеш Оо , но админки при добавлении нету все равно :(