NoSteamBans

Тема в разделе "Программирование / Скриптинг", создана пользователем Sniper0770, 28 янв 2016.

  1. Sniper0770

    Sniper0770

    Сообщения:
    51
    Симпатии:
    1
    Декомпилировал ареновский nosteambans addon kac, и что то не пойму, я верно оставил основную часть самого бана ? Если нет, помогите пожалуйста с исходником, мне нужна сама процедура бана.
    PHP:
    #include <sourcemod>

    new Handle:g_hKeyValues;
    new 
    Handle:g_hDataPack;
    new 
    String:g_sKeyValues[192];

    public 
    Plugin:myinfo =
    {
        
    name "No-Steam Bans",
        
    description "No-Steam Bans",
        
    author "GoDtm666",
        
    version "1.0.3",
        
    url "www.SourceTM.com"
    };

    public 
    ClientBan(QueryCookie:cookieclientConVarQueryResult:resultString:cvarName[], String:cvarValue[])
    {
        if (
    g_hDataPack)
        {
            
    decl owner;
            
    decl iBanTime;
            
    decl String:sReason[64];
            
    ResetPack(g_hDataPackfalse);
            
    owner ReadPackCell(g_hDataPack);
            
    iBanTime ReadPackCell(g_hDataPack);
            
    ReadPackString(g_hDataPacksReason64);
            
    CloseHandle(g_hDataPack);
            
    g_hDataPack MissingTAG:0;
            
    decl String:sDate[32];
            if (!
    iBanTime)
            {
                
    strcopy(sDate32"0");
            }
            else
            {
                new 
    iTimeStamp GetTime({0,0});
                
    iTimeStamp iBanTime 60 iTimeStamp;
                
    FormatTime(sDate32"%d.%m %H.%M"iTimeStamp);
            }
            if (
    client && IsClientInGame(client))
            {
                if (!
    IsFakeClient(client))
                {
                    new 
    String:sBuffer[128];
                    
    KvRewind(g_hKeyValues);
                    if (
    KvJumpToKey(g_hKeyValuescvarValuetrue))
                    {
                        if (!
    GetClientName(clientsBuffer128))
                        {
                            
    strcopy(sBuffer128"Unknown");
                        }
                        
    KvSetString(g_hKeyValues"Player"sBuffer);
                        
    GetClientAuthString(clientsBuffer128);
                        
    KvSetString(g_hKeyValues"SteamID"sBuffer);
                        
    KvSetString(g_hKeyValues"Status""Banned");
                        if (!
    GetClientName(ownersBuffer128))
                        {
                            
    strcopy(sBuffer128"Unknown");
                        }
                        
    KvSetString(g_hKeyValues"Banned By Admin"sBuffer);
                        
    PrintToChat(owner"%t \x03[no-Steam Bans]\x01 %t""KAC_Tag""KAC_PlayerBannedNsb"sBuffer);
                        
    KvSetString(g_hKeyValues"Ban Reason"sReason);
                        if (
    StrEqual(sDate"0"false))
                        {
                            
    strcopy(sDate32"Permanent");
                        }
                        
    KvSetString(g_hKeyValues"Elapse"sDate);
                    }
                    
    KvRewind(g_hKeyValues);
                    
    KeyValuesToFile(g_hKeyValuesg_sKeyValues);
                }
            }
        }
        return 
    0;
    }
     
  2. R1KO

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

    Сообщения:
    6.006
    Симпатии:
    2.994
    Это только запись данных игрока в базу
     
  3. Sniper0770

    Sniper0770

    Сообщения:
    51
    Симпатии:
    1
    R1KO, А сам бан хотя бы в лс можешь кинуть ? Очень нужно
     
  4. Хан

    Хан

    Сообщения:
    26
    Симпатии:
    16
    Декомпелировать можно двумя способами и будет две разных части будет больше инфы
     
  5. FrozDark

    FrozDark Команда сайта HLMod Модератор

    Сообщения:
    1.761
    Симпатии:
    1.917
    ты забыл про QueryClient что-то такое
     
  6. Sniper0770

    Sniper0770

    Сообщения:
    51
    Симпатии:
    1
    Короче, вот наверное лучший вариант декомпилла, но я все равно не пойму, где едет замена переменных клиенту.
     

    Вложения:

    • kigen-nsb.zip
      Размер файла:
      8,3 КБ
      Просмотров:
      17
  7. Sniper0770

    Sniper0770

    Сообщения:
    51
    Симпатии:
    1
    Ещё я понял, что плаг работает по переменной sv_logecho

    Добавлено через 5 часов 29 минут
    FrozDark, Нашел аналог от Ws, но он не работает на этом месте, что тут не так ?
    PHP:
        if (BanAction[i] && !PlayerBanned[target_client])
        {
            
    // ДАЁМ БАН
            // Здесь надо изменить xbox_throttlespoof на значение, отличное от 200
            
    new Handle:StartMessageOne("VGUIMenu"i);
            
    BfWriteString(h"xbox_throttlespoof 201; quit");
            
    EndMessage();
            
    KickClient(target_client"Вы забанены zx");    
        }
     
    Последнее редактирование: 30 янв 2016
  8. SourceSamil

    SourceSamil

    Сообщения:
    121
    Симпатии:
    24
    На мою версию.
     

    Вложения:

    • nsb.sp
      Размер файла:
      3,6 КБ
      Просмотров:
      13
  9. Sniper0770

    Sniper0770

    Сообщения:
    51
    Симпатии:
    1
    SourceSamil, Оффтоп
     
  10. SourceSamil

    SourceSamil

    Сообщения:
    121
    Симпатии:
    24
    Да, точно, я не с той папки скинул, извини
     

    Вложения:

    • nsb.sp
      Размер файла:
      3,7 КБ
      Просмотров:
      8
  11. Sniper0770

    Sniper0770

    Сообщения:
    51
    Симпатии:
    1
    SourceSamil, я тебя огорчу, но твой плаг не работает, а собственно он не меняет переменные игроку.
     
  12. Webman

    Webman Developer

    Сообщения:
    702
    Симпатии:
    182
    У Реико же вроже был banv34, он работает.
    Я декомпилил как-то ареновский нсб, там бан выдается вообще по подсети и не более.
     
  13. Sniper0770

    Sniper0770

    Сообщения:
    51
    Симпатии:
    1
    Webman, вообщето ареноский еще и квар меняет, мало того, каждому отдельный и записывает в текстовый файл, чтоб разбанить можно было
     
  14. Webman

    Webman Developer

    Сообщения:
    702
    Симпатии:
    182
    Смотри эту функцию.
    public ClientCallBack(...)
    Она вызывается при подключении игрока OnClientPutInServer()
     
  15. lexx777

    lexx777

    Сообщения:
    119
    Симпатии:
    4
    А кто подскажет как изменить причины банов?
    В kigen-nsb.phrases меняю на это
    Оффтоп

    Но при бане он все равно пишет причину бана Abusive вместо Использование читов.
    Хотя в меню выбрана причина бана Использование читов .