Пользователи, просматривающие тему (Пользователей: 0, Гостей: 0)

  1. gudaus Команда форума

    Регистрация:
    27.02.15
    Сообщения:
    1.689
    Симпатии:
    1.249
    Пол:
    Мужской
    Автор: souvikdas95 и ко.
    Версия: 1.5
    Официальная страница


    Описание:
    Обновленный стандартный модуль статистики CSX. Исправлены небольшие баги оригинальной версии и добавлены новые функции. Для скриптеров появились новые нативы по редактированию и добавлению новых записей в БД.

    Особенности:
    - Работает быстрее стандартного модуля от AmxModX за счёт использования бинарного поиска вместо последовательного
    - Больше возможностей при работе со статистикой

    Размер | Бинарный поиск | Последовательный(среднее значение) | Последовательный(худшее значение)

    16 | 4 | 8 | 16
    50 | 6 | 25 | 50
    256 | 8 | 128 | 256
    1000 | 10 | 500 | 1000
    10000 | 14 | 5000 | 10000
    100000 | 17 | 50000 | 100000
    1000000 | 20 | 500000 | 1000000
    PHP:
    /*
    * Fields in Stats[8]:
    * 0 - kills
    * 1 - deaths
    * 2 - headshots
    * 3 - teamkilling
    * 4 - shots
    * 5 - hits
    * 6 - damage
    * 7 - <null>
    *
    * Fields in Stats2[4]:
    * 0 - total defusions
    * 1 - bomb defused
    * 2 - bomb plants
    * 3 - bomb explosions
    *
    * Fields in Bodyhits[8]:
    * 0 - <null>
    * 1 - Head
    * 2 - Chest
    * 3 - Stomach
    * 4 - Left Hand
    * 5 - Right Hand
    * 6 - Left Leg
    * 7 - Right Leg
    *
    * Important Note : Position = Rank - 1. eg. If index denotes the position of
    * rank 1 player, then index = 0.
    */

    /*
    *  Returns the Rank of Player. --> index = id.
    *  Returns 0 if no Rank exists.
    */
    native get_user_rank(index);

    /*
    *  Gets current session score of player --> index = id
    *  Returns 0 if player is not valid/out of range
    *  Returns 1
    */
    native get_user_score(index,&frags,&deaths);

    /*
    *  Sets overall stats of Player with given parameters. --> index = id.
    *  Returns 0 if player is not valid/out of range
    *  Returns new Rank
    *
    *  Note - If you don't want to edit/set a stats/bodyhits field,
    *  you can set its value as -1
    */
    native set_user_stats(index,stats[8],bodyhits[8]);
    native set_user_stats2(index,stats2[4]);

    /*
    *  Sets overall stats with given parameters. --> index = position.
    *  Returns new Rank
    *
    *  Note - If you don't want to edit/set a stats/bodyhits field,
    *  you can set its value as -1
    */
    native set_stats(index,stats[8],bodyhits[8]);
    native set_stats2(index,stats2[4]);

    /*
    *  Sets current session score of player --> index = id
    *  Returns 0 if player is not valid/out of range
    *  Returns 1
    *
    *  Note - If you don't want to edit/set a stats/bodyhits field,
    *  you can set its value as -1
    */
    native set_user_score(index,frags,deaths);

    /*
    *  Resets overall stats to null --> index = id.
    *  Returns 0 if player is not valid/out of range
    *  Returns new Rank
    *
    *  Note - This doesn't differentiate stats or stats2.
    *  It simply nulls the entire Stats structure of index.
    */
    native reset_user_stats(index);

    /*
    *  Resets overall stats to null --> index = position.
    *  Returns new Rank
    *
    *  Note - This doesn't differentiate stats or stats2.
    *  It simply nulls the entire Stats structure of index.
    */
    native reset_stats(index);

    /*
    *  Adds/Pushes overall stats with given parameters.
    *  Returns 0 if Stats Entry already exists or can't be created
    *  Returns new Rank
    *
    *  Note - If you don't want to set a stats/bodyhits field,
    *  you can set its value as -1
    *
    * IMPORTANT : "unique" is based on the value of "csstats_rank" cvar
    * which sets the basis for uniquely defining a rankstats entry:
    * 0 - name[]
    * 1 - authid[]
    * 2 - ip[] ( make sure to set parameter isip = 1 )
    *
    * WARNING : Use this function with Caution.
    */
    native push_stats(const unique[],const name[],stats[8],bodyhits[8],isip=0);

    /*
    * Removes and Deletes the Stats Entry. --> index = position.
    *  Returns -1 if position is not found.
    *  Returns 0 if player with the position is connected to server.
    *  Returns 1 if successfully removed.
    */
    native remove_stats(index);

    /*
    *  Reloads all the stats from the file and
    *  refresh rankstats of all the connected
    *  players and also reset current score of player
    *  Returns 1
    *
    *  Note - If the stats are not externally edited
    *  then this will restore the stats from previous
    *  map change or from start of HLDS as by default,
    *  stats file is saved only at these moments.
    *
    *  If the stats file doesn't exist, the function
    *  will not load stats. The stats in-game will remain
    *  the same as before.
    *
    *  default stats file path : amxmodx/data/csstats.dat
    */
    native force_load_stats();

    /*
    *  Manually saves all the stats till previous round
    *  before Restart of Map/Server.
    *  Returns 1
    *
    *  default stats file path : amxmodx/data/csstats.dat
    */
    native force_save_stats();

    /*
    *  Resets the Score
    */
    stock reset_user_score(id)
    {
        return 
    set_user_scoreid0);
    }  

    Установка:
    Сделайте резервную копию вашего csx_amxx.dll || csx_amxx_i386.so, выключите сервер, csx_amxx.dll || csx_amxx_i386.so затем замените тем что в архиве.
    Внимание: для корректной работы модуля, необходимо использовать последнюю версию metamod, скачать можно с http://metamod.org

    Модифицированные переменные:
    Код:
    csstats_maxsize : задает максимальное возможное кол-во записей в статистике, по превышению которого вся статистика сбрасывается.
            Стандартное значение : 9000
            значение < 0 : без ограничений
            значение = 0 : без сохранения
    Важно! значение csstats_maxsize следует указывать без кавычек. Например, csstats_maxsize 12000
    
    Дополнение для CSX Extended:
    Плагин каждый раз при старте карты проверяет кол-во фрагов всех записей и если какая-то из них имеет менее 5 фрагов - удаляет.
    Настоятельно рекомендую сделать бекап твоей csstats.dat перед применением данного плагина.
    PHP:
    #include <amxmodx>

    #include <csstats>
    #include <csstats_custom>

    #define PLUGIN "CSXE Noob Entry Remover"
    #define VERSION "0.2"
    #define AUTHOR "serfreeman1337"

    #define LESS_SCORE    5        // кол-во фрагов, меньше которых происходит удаление записи

    public plugin_precache(){
        
    register_plugin(PLUGIN,VERSIONAUTHOR)

        new 
    rankPos,stats[8],bh[8],name[32],prunedCnt

        
    while((rankPos get_stats(rankPos,stats,bh,name,31)) != ){

            if(
    stats[0] < LESS_SCORE){
                
    rankPos --
      
                if(
    remove_stats(rankPos) == 1)
                    
    prunedCnt ++
            }
        }

        if(
    prunedCnt)
            
    log_amx("total %d entries pruned",prunedCnt)
    }
     

    Вложения:

    Последнее редактирование модератором: 30.07.15
    ExtraSens, Babiy B, popen021 и 11 другим нравится это.
  2. ex3m777

    Регистрация:
    27.02.15
    Сообщения:
    761
    Симпатии:
    346
    Пол:
    Мужской
    VKcom:
    ex3m777
    Skype:
    ex3m777
    важно..
    значение
    csstats_maxsize должно быть кавычек)
     
  3. gudaus Команда форума

    Регистрация:
    27.02.15
    Сообщения:
    1.689
    Симпатии:
    1.249
    Пол:
    Мужской
    ex3m777, 1.5 - последняя версия? На оленях хранилище сдохло, а в ихнем топике ничего про версию не сказано.
    Ща поправлю.
     
  4. ex3m777

    Регистрация:
    27.02.15
    Сообщения:
    761
    Симпатии:
    346
    Пол:
    Мужской
    VKcom:
    ex3m777
    Skype:
    ex3m777
    Да вроде последняя, дальнейшее развитие этого модуля будет в amxmodx 1.8.3, автора вроде взяли в команду

    Обновил первый пост, добавил плагин, который очищает csstats.dat от игроков которые не набрали n количества убийств
     
    gudaus нравится это.
  5. Phantom Команда форума

    Регистрация:
    27.02.15
    Сообщения:
    1.979
    Симпатии:
    943
    Пол:
    Мужской
    Telegram:
    ph4nt0m
    ex3m777,
    ->
    --- добавлено 06.07.15 ---
    Модуль уже переписан? Или все будет готово к релизу?
     
  6. ex3m777

    Регистрация:
    27.02.15
    Сообщения:
    761
    Симпатии:
    346
    Пол:
    Мужской
    VKcom:
    ex3m777
    Skype:
    ex3m777
    Phantom, подправил
    Модуль готов к использованию.
     
  7. Phantom Команда форума

    Регистрация:
    27.02.15
    Сообщения:
    1.979
    Симпатии:
    943
    Пол:
    Мужской
    Telegram:
    ph4nt0m
    Извини за еще один вопрос, откуда инфа?
     
  8. ex3m777

    Регистрация:
    27.02.15
    Сообщения:
    761
    Симпатии:
    346
    Пол:
    Мужской
    VKcom:
    ex3m777
    Skype:
    ex3m777
    Это релиз, как думаешь откуда инфа? Я сам им пользовался в комплекте с тем плагином, что прикрепил до того как перешел на gameme
     
  9. Phantom Команда форума

    Регистрация:
    27.02.15
    Сообщения:
    1.979
    Симпатии:
    943
    Пол:
    Мужской
    Telegram:
    ph4nt0m
    Я про релиз amxmodx. Ладно, еще раз попробую. Сам этот модуль уже переписан в amxmodx? Или модуль будет готов к релизу?
     
  10. ex3m777

    Регистрация:
    27.02.15
    Сообщения:
    761
    Симпатии:
    346
    Пол:
    Мужской
    VKcom:
    ex3m777
    Skype:
    ex3m777
    модуль в amxmodx не переписан, возможно будет к релизу добавлен
     
    Phantom нравится это.
  11. damir4ik

    Регистрация:
    27.07.15
    Сообщения:
    258
    Симпатии:
    23
    Пол:
    Мужской
    Это замена стандартного?) стоит ли ставить?)
     
  12. gudaus Команда форума

    Регистрация:
    27.02.15
    Сообщения:
    1.689
    Симпатии:
    1.249
    Пол:
    Мужской
  13. ex3m777

    Регистрация:
    27.02.15
    Сообщения:
    761
    Симпатии:
    346
    Пол:
    Мужской
    VKcom:
    ex3m777
    Skype:
    ex3m777
    Себе поставил, все отлично
     
  14. BaJIepbI4

    Регистрация:
    12.05.15
    Сообщения:
    1.111
    Симпатии:
    220
    Пол:
    Мужской
    Skype:
    BaJIepbI4_sky
    csstats_maxsize 0 - прописать в amxx.cgf?
     
  15. ex3m777

    Регистрация:
    27.02.15
    Сообщения:
    761
    Симпатии:
    346
    Пол:
    Мужской
    VKcom:
    ex3m777
    Skype:
    ex3m777
    если используешь стандартную статистику то да, если к примеру aes, то записывай в aes_statsx.cfg
    у меня так
    csstats_maxsize 9000
    csstats_rank 1
    если использовать плагин из первого поста, то 9000 записей будут не скоро))
     
    BaJIepbI4 нравится это.
  16. BaJIepbI4

    Регистрация:
    12.05.15
    Сообщения:
    1.111
    Симпатии:
    220
    Пол:
    Мужской
    Skype:
    BaJIepbI4_sky
    У меня 12000 стоит сейчас я глянул в консоли и статистика уже сама сросилась из-за этого. Надо срочно плагин ставить :D
    Спасибо!
     
  17. BaJIepbI4

    Регистрация:
    12.05.15
    Сообщения:
    1.111
    Симпатии:
    220
    Пол:
    Мужской
    Skype:
    BaJIepbI4_sky
    Сразу же:
    L 07/30/2015 - 12:23:30: [csstat_clean.amxx] Всего 3984 записей удалено!
     
  18. гл0к

    Регистрация:
    03.03.15
    Сообщения:
    849
    Симпатии:
    106
    Пол:
    Мужской
    Есть разница каким по очереди в plugins.ini писать этот плагин дополнительный для чистки статы?
     
  19. гл0к

    Регистрация:
    03.03.15
    Сообщения:
    849
    Симпатии:
    106
    Пол:
    Мужской
    Заменил сошку и остальное все, серв в вечной загрузке. Что делать?=(
     
  20. BaJIepbI4

    Регистрация:
    12.05.15
    Сообщения:
    1.111
    Симпатии:
    220
    Пол:
    Мужской
    Skype:
    BaJIepbI4_sky
    Я после бан-системы его поставил - все ок.
    Права там проверь.