[CS: Source] RankMe Hud Info

Тема в разделе "Новые плагины", создана пользователем Smert413, 30 апр 2014.

  1. Smert413

    Smert413

    Сообщения:
    9
    Симпатии:
    14
    Небольшое дополнение для игровой статистики RankMe.

    Отображает справа на экране:
    • Ник игрока
    • Позицию
    • Кол-во очков
    • Соотношение убийств к смертям
    • Кол-во убийств в голову
    • Попадания

    Никаких CVAR'ов нет, правьте исходник.
     

    Вложения:

    Последнее редактирование: 30 апр 2014
    Godsend, Лев, ALЬTAIR и 4 другим нравится это.
  2. acik

    acik

    Сообщения:
    734
    Симпатии:
    628
    Smert413, он выгружает с ранкме только очки и ранк игрока, а остальное он за время проведения на сервере саписывает? можно в название тогда session добавить
     
  3. R1KO

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

    Сообщения:
    6.001
    Симпатии:
    2.993
    Smert413, Сделай интервал таймера побольше (Если длиетльность сообщения позволяет).
    PHP:
    g_hUpdateHudTimer CreateTimer(1.0Timer_UpdateHud_TIMER_REPEAT);
    Т.к. Каждую секунду куча sql запросов может сказаться на производительности.

    И еще, зачем здесь:
    PHP:
    public RankCallback(clientrankany:data)
    Записывать всё в глобальные переменные? Если можно просто в RankCallback перенести это:
    PHP:
    Format(sMessagesizeof(sMessage), "%N\nРанк: %i\nОчков: %i\nУб. к смертям: %i/%i (%.2f)\nУб. в голову: %i (%.2f)\nТочность: %.2f"iClientToShowg_iRank[iClientToShow], g_iPoints[iClientToShow], g_iKills[iClientToShow], g_iDeaths[iClientToShow], g_fKDR[iClientToShow], g_iHeadshots[iClientToShow], g_fHSR[iClientToShow], g_fAccuracy[iClientToShow]);

            new 
    Handle:hBuffer StartMessageOne("KeyHintText"iClient); 
            
    BfWriteByte(hBuffer1); 
            
    BfWriteString(hBuffersMessage); 
            
    EndMessage();
    Из
    PHP:
    public Action:Timer_UpdateHud(Handle:timer)
     
    Smert413 нравится это.
  4. Smert413

    Smert413

    Сообщения:
    9
    Симпатии:
    14
    acik, он обновляет статистику каждую секунду.

    R1KO, как я понял, если использовать эти 2 натива, то никаких sql запросов не происходит, поэтому не стал изменять интервал.
    PHP:
    native RankMe_GetStats(client,stats_return[]);
    native RankMe_GetPoints(client);
    Все глобальные переменные убрал, кроме:
    PHP:
    new Handle:g_hUpdateHudTimer INVALID_HANDLE;
    new 
    bool:g_bLoaded[MAXPLAYERS+1];
     
  5. R1KO

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

    Сообщения:
    6.001
    Симпатии:
    2.993
    Smert413, Ну да... Вообще не выполняется:
    PHP:
    public Native_GetRank(Handle:pluginnumParams)
    {
        new 
    client GetNativeCell(1);
        new Function:
    callback GetNativeCell(2);
        new 
    any:data GetNativeCell(3);
        
        new 
    Handle:pack CreateDataPack();
        
        
    WritePackCell(packclient);
        
    WritePackCell(pack_:callback);
        
    WritePackCell(packdata);
        
    WritePackCell(pack_:plugin);
        
        new 
    String:query[500];
        
    MakeSelectQuery(query,sizeof(query));
        
        if(
    g_RankMode == 1)
            
    Format(query,sizeof(query),"%s ORDER BY score DESC",query);
        else if(
    g_RankMode == 2)
            
    Format(query,sizeof(query),"%s ORDER BY CAST(CAST(kills as float)/CAST (deaths as float) as float) DESC",query);    
            
        
    SQL_TQuery(g_hStatsDbSQL_GetRankCallbackquerypack);
    }
    P.S.плагин приложить забыл.
     
  6. Smert413

    Smert413

    Сообщения:
    9
    Симпатии:
    14
    R1KO, так я и не использую GetRank.
    PHP:
    public Native_GetStats(Handle:pluginnumParams)
    {
        new 
    iClient GetNativeCell(1);
        new array[
    20];
        for(new 
    i=0;i<20;i++)
            array[
    i] = g_aStats[iClient][i];
        
        
    SetNativeArray(2,array,20);

    }
    public 
    Native_GetPoints(Handle:pluginnumParams)
    {
        new 
    Client GetNativeCell(1);
        return 
    g_aStats[Client][SCORE];
    }
     
  7. R1KO

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

    Сообщения:
    6.001
    Симпатии:
    2.993
    Smert413, ну в прошлой версии вроде было.
     
  8. Smert413

    Smert413

    Сообщения:
    9
    Симпатии:
    14
    Еще немного допилил.
    Теперь количество убийств, смертей, убийств в голову сокращается до трехзначных значений и добавляется буква "K" или "KK", если количество больше 1 миллиона.
     
  9. artushonok

    artushonok

    Сообщения:
    964
    Симпатии:
    108
    Smert413, давно хотел такое увидеть) понял что никто не напишет и перешел на GameME)

    Добавлено через 1 час 14 минут
    В логах ошибки

    L 04/30/2014 - 16:43:36: [SM] Native "IsFakeClient" reported: Client index -1 is invalid
    L 04/30/2014 - 16:43:36: [SM] Displaying call stack trace for plugin "rankme_hud_info.smx":
    L 04/30/2014 - 16:43:36: [SM] [0] Line 44, E:\steampipe_server\css\cstrike\addons\sourcemod\scripting\rankme_hud_info.sp::Timer_UpdateHud()
     
    Последнее редактирование: 30 апр 2014
    Smert413 нравится это.
  10. Smert413

    Smert413

    Сообщения:
    9
    Симпатии:
    14
    artushonok, вроде пофиксил.
     
    artushonok нравится это.
  11. Metamoto

    Metamoto

    Сообщения:
    414
    Симпатии:
    13
    На КСГО не работает
     
  12. acik

    acik

    Сообщения:
    734
    Симпатии:
    628
    Metamoto, так ранк ме и не идет на сsgo
     
  13. Metamoto

    Metamoto

    Сообщения:
    414
    Симпатии:
    13
    Оффтоп
     
  14. R1KO

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

    Сообщения:
    6.001
    Симпатии:
    2.993
    Metamoto, там нет KeyHintText

    Напишите в 1-м посте, что ксго не поддерживается.
     
  15. Лев

    Лев

    Сообщения:
    228
    Симпатии:
    82
    Что надо сделать чтобы только после смерти показывало
     
  16. R1KO

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

    Сообщения:
    6.001
    Симпатии:
    2.993
    Лев, ловишь смерть игрока и тогда отправляешь сообщение. Еще в таймере добавялешь проверку !IsPlayerAlive(client)
     
    Лев нравится это.
  17. artushonok

    artushonok

    Сообщения:
    964
    Симпатии:
    108
    Smert413, сделай файлы перевода
     
  18. BoooS

    BoooS

    Сообщения:
    104
    Симпатии:
    1
    так и не понял по поводу показа только тогда и того стату за кем наблюдаешь.
     
  19. Hejter

    Hejter Mapper Source Engine

    Сообщения:
    1.771
    Симпатии:
    259
    Оффтоп
     
  20. ☆★☆БАТЯ☆★☆™

    ☆★☆БАТЯ☆★☆™

    Сообщения:
    2.585
    Симпатии:
    1.341
    Ошибки: