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

    Регистрация:
    27.02.15
    Сообщения:
    1.508
    Симпатии:
    1.102
    Пол:
    Мужской
    Автор: 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:
    1. /*
    2. * Fields in Stats[8]:
    3. * 0 - kills
    4. * 1 - deaths
    5. * 2 - headshots
    6. * 3 - teamkilling
    7. * 4 - shots
    8. * 5 - hits
    9. * 6 - damage
    10. * 7 - <null>
    11. *
    12. * Fields in Stats2[4]:
    13. * 0 - total defusions
    14. * 1 - bomb defused
    15. * 2 - bomb plants
    16. * 3 - bomb explosions
    17. *
    18. * Fields in Bodyhits[8]:
    19. * 0 - <null>
    20. * 1 - Head
    21. * 2 - Chest
    22. * 3 - Stomach
    23. * 4 - Left Hand
    24. * 5 - Right Hand
    25. * 6 - Left Leg
    26. * 7 - Right Leg
    27. *
    28. * Important Note : Position = Rank - 1. eg. If index denotes the position of
    29. * rank 1 player, then index = 0.
    30. */
    31.  
    32. /*
    33. *  Returns the Rank of Player. --> index = id.
    34. *  Returns 0 if no Rank exists.
    35. */
    36. native get_user_rank(index);
    37.  
    38. /*
    39. *  Gets current session score of player --> index = id
    40. *  Returns 0 if player is not valid/out of range
    41. *  Returns 1
    42. */
    43. native get_user_score(index,&frags,&deaths);
    44.  
    45. /*
    46. *  Sets overall stats of Player with given parameters. --> index = id.
    47. *  Returns 0 if player is not valid/out of range
    48. *  Returns new Rank
    49. *
    50. *  Note - If you don't want to edit/set a stats/bodyhits field,
    51. *  you can set its value as -1
    52. */
    53. native set_user_stats(index,stats[8],bodyhits[8]);
    54. native set_user_stats2(index,stats2[4]);
    55.  
    56. /*
    57. *  Sets overall stats with given parameters. --> index = position.
    58. *  Returns new Rank
    59. *
    60. *  Note - If you don't want to edit/set a stats/bodyhits field,
    61. *  you can set its value as -1
    62. */
    63. native set_stats(index,stats[8],bodyhits[8]);
    64. native set_stats2(index,stats2[4]);
    65.  
    66. /*
    67. *  Sets current session score of player --> index = id
    68. *  Returns 0 if player is not valid/out of range
    69. *  Returns 1
    70. *
    71. *  Note - If you don't want to edit/set a stats/bodyhits field,
    72. *  you can set its value as -1
    73. */
    74. native set_user_score(index,frags,deaths);
    75.  
    76. /*
    77. *  Resets overall stats to null --> index = id.
    78. *  Returns 0 if player is not valid/out of range
    79. *  Returns new Rank
    80. *
    81. *  Note - This doesn't differentiate stats or stats2.
    82. *  It simply nulls the entire Stats structure of index.
    83. */
    84. native reset_user_stats(index);
    85.  
    86. /*
    87. *  Resets overall stats to null --> index = position.
    88. *  Returns new Rank
    89. *
    90. *  Note - This doesn't differentiate stats or stats2.
    91. *  It simply nulls the entire Stats structure of index.
    92. */
    93. native reset_stats(index);
    94.  
    95. /*
    96. *  Adds/Pushes overall stats with given parameters.
    97. *  Returns 0 if Stats Entry already exists or can't be created
    98. *  Returns new Rank
    99. *
    100. *  Note - If you don't want to set a stats/bodyhits field,
    101. *  you can set its value as -1
    102. *
    103. * IMPORTANT : "unique" is based on the value of "csstats_rank" cvar
    104. * which sets the basis for uniquely defining a rankstats entry:
    105. * 0 - name[]
    106. * 1 - authid[]
    107. * 2 - ip[] ( make sure to set parameter isip = 1 )
    108. *
    109. * WARNING : Use this function with Caution.
    110. */
    111. native push_stats(const unique[],const name[],stats[8],bodyhits[8],isip=0);
    112.  
    113. /*
    114. * Removes and Deletes the Stats Entry. --> index = position.
    115. *  Returns -1 if position is not found.
    116. *  Returns 0 if player with the position is connected to server.
    117. *  Returns 1 if successfully removed.
    118. */
    119. native remove_stats(index);
    120.  
    121. /*
    122. *  Reloads all the stats from the file and
    123. *  refresh rankstats of all the connected
    124. *  players and also reset current score of player
    125. *  Returns 1
    126. *
    127. *  Note - If the stats are not externally edited
    128. *  then this will restore the stats from previous
    129. *  map change or from start of HLDS as by default,
    130. *  stats file is saved only at these moments.
    131. *
    132. *  If the stats file doesn't exist, the function
    133. *  will not load stats. The stats in-game will remain
    134. *  the same as before.
    135. *
    136. *  default stats file path : amxmodx/data/csstats.dat
    137. */
    138. native force_load_stats();
    139.  
    140. /*
    141. *  Manually saves all the stats till previous round
    142. *  before Restart of Map/Server.
    143. *  Returns 1
    144. *
    145. *  default stats file path : amxmodx/data/csstats.dat
    146. */
    147. native force_save_stats();
    148.  
    149. /*
    150. *  Resets the Score
    151. */
    152. stock reset_user_score(id)
    153. {
    154.     return set_user_score( id, 0, 0 );
    155. }  

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

    Модифицированные переменные:
    Код (Unknown Language):
    1. csstats_maxsize : задает максимальное возможное кол-во записей в статистике, по превышению которого вся статистика сбрасывается.
    2.         Стандартное значение : 9000
    3.         значение < 0 : без ограничений
    4.         значение = 0 : без сохранения
    5. Важно! значение csstats_maxsize следует указывать без кавычек. Например, csstats_maxsize 12000
    6.  
    Дополнение для CSX Extended:
    Плагин каждый раз при старте карты проверяет кол-во фрагов всех записей и если какая-то из них имеет менее 5 фрагов - удаляет.
    Настоятельно рекомендую сделать бекап твоей csstats.dat перед применением данного плагина.
    PHP:
    1. #include <amxmodx>
    2.  
    3. #include <csstats>
    4. #include <csstats_custom>
    5.  
    6. #define PLUGIN "CSXE Noob Entry Remover"
    7. #define VERSION "0.2"
    8. #define AUTHOR "serfreeman1337"
    9.  
    10. #define LESS_SCORE    5        // кол-во фрагов, меньше которых происходит удаление записи
    11.  
    12. public plugin_precache(){
    13.     register_plugin(PLUGIN,VERSION, AUTHOR)
    14.  
    15.     new rankPos,stats[8],bh[8],name[32],prunedCnt
    16.  
    17.     while((rankPos = get_stats(rankPos,stats,bh,name,31)) != 0 ){
    18.  
    19.         if(stats[0] < LESS_SCORE){
    20.             rankPos --
    21.  
    22.             if(remove_stats(rankPos) == 1)
    23.                 prunedCnt ++
    24.         }
    25.     }
    26.  
    27.     if(prunedCnt)
    28.         log_amx("total %d entries pruned",prunedCnt)
    29. }
     

    Вложения:

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

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

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

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

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

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

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

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

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

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

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

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

    Регистрация:
    27.02.15
    Сообщения:
    1.508
    Симпатии:
    1.102
    Пол:
    Мужской
    Это замена стандартного. Я ставил себе.
     
  13. ex3m777 Пользователь

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

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

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

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

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

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

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

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