1. neygomon Его Темнейшество :j Команда форума

    Регистрация:
    26.02.15
    Сообщения:
    7.543
    Симпатии:
    4.142
    Пол:
    Мужской
    Всем привет.
    Писал на заказ плагин, который ограничивает доступ к голосовому чату по статистике CsStats.
    Чел слился так ничего и не объяснив, ну да ладно. Пусть ему будет стыдно. Выкладываю вам финальную версию плагина.
    Не в этом суть.
    Voice Control bt CsStats ограничивает доступ к голосовому чату. Вы можете указать минимальное число фрагов, набрав которые игрок может говорить в микрофон. Это даст Вам защиту от школоты и любителей звуковых приколов, которые заходят на сервер с целью не играть, а орать в микрофон, включать музыку и.т.п. Также это защитит вас от фейк-ботов, заходящих на сервер и спамящих в голосовой чат чтобы залагать сервер.
    Набрать 10, 20, 50, да даже 100 фрагов не составит труда, тем более что все ваши постоянные игроки 100% набрали уже в разы больше :wink:. Ололошка, зашедший на сервер не играть, а орать, сразу выйдет. Игрок, зашедший с целью поиграть, без проблем наберёт нужное число фрагов за пару карт.

    Особенности:
    • Фраги берутся из файла CsStats.dat, за который отвечает стандартная статистика StatsX.
    • Можно брать фраги не из StatsX, а из статистики скальпеля (csstats_mysql)
    • Защита от школоты, которая не умеет играть и заходит лишь чтобы поорать в микро
    • Защита от фейк-ботов, которые заходят на сервер и начинают орать в Voice чат, тем самым залагивая сервер
    • Лёгкий код

    Настройки:
    PHP:
    1. #define FRAGS 50         // Cколько минимум фрагов надо для доступа к Voice чату
    2. //#define CS_MYSQL        // CsStats MySQL by Скальпель
    3. #define IMMUNITY ADMIN_NONE    // Флаг иммунитета к функциям плагина. ADMIN_NONE выключает иммунитет
    4. //#define ENGINE        // Если нет плагинов типа voice management рекомендуется раскомментировать
    Особенности установки:
    • Прописывать в самый верх желательно. После античитов и бансистемы будет нормально
    • После установки обязательно перезагрузить сервер. Смена карты не поможет!
    • Плагин работает с стандартной статистикой statsx.amxx, то бишь с файлом amxmodx/data/csstats.dat. Либо с плагином статистики от скальпеля.
    • 2 типа блокировки, на выбор. FakeMeta(для совместимости с voice management. в plugins.ini должен стоять выше) и Engine(предпочтительно, если нет других плагинов с voice чатом)
     

    Вложения:

    Последнее редактирование модератором: 01.06.15
    Sonikplus, fantasycs, NETFLIX и 21 другим нравится это.
  2. Andrey777 Пользователь

    Регистрация:
    30.03.15
    Сообщения:
    259
    Симпатии:
    36
    Пол:
    Мужской
    Skype:
    Andrey777best
    Сюда бы добавить, что когда он хочет что то сказать, ему dhud написало что новичкам пользоваться микро запрещенно сделайте n убийств...
    У меня идет статистика через CsStats MySQL нельзя никак добавить?
     
    fantasycs нравится это.
  3. neygomon Его Темнейшество :j Команда форума

    Регистрация:
    26.02.15
    Сообщения:
    7.543
    Симпатии:
    4.142
    Пол:
    Мужской
    Andrey777,
    1. этого не будет
    2. у меня нет нативов. я не знаю как получить стату с говноскальпеля
     
    fantasycs нравится это.
  4. HannibaL Команда форума

    Регистрация:
    28.02.15
    Сообщения:
    1.057
    Симпатии:
    216
    Пол:
    Мужской
    LOL
     
    fantasycs нравится это.
  5. neygomon Его Темнейшество :j Команда форума

    Регистрация:
    26.02.15
    Сообщения:
    7.543
    Симпатии:
    4.142
    Пол:
    Мужской
    HannibaL, адекватный -_-
     
    fantasycs нравится это.
  6. HannibaL Команда форума

    Регистрация:
    28.02.15
    Сообщения:
    1.057
    Симпатии:
    216
    Пол:
    Мужской
    neygomon, Че спросить у него?)
     
    fantasycs нравится это.
  7. neygomon Его Темнейшество :j Команда форума

    Регистрация:
    26.02.15
    Сообщения:
    7.543
    Симпатии:
    4.142
    Пол:
    Мужской
    HannibaL, у кого?
     
    fantasycs нравится это.
  8. HannibaL Команда форума

    Регистрация:
    28.02.15
    Сообщения:
    1.057
    Симпатии:
    216
    Пол:
    Мужской
    neygomon, у скальпеля
     
    fantasycs нравится это.
  9. neygomon Его Темнейшество :j Команда форума

    Регистрация:
    26.02.15
    Сообщения:
    7.543
    Симпатии:
    4.142
    Пол:
    Мужской
    HannibaL, файл .inc скинь и все...
     
    fantasycs нравится это.
  10. HannibaL Команда форума

    Регистрация:
    28.02.15
    Сообщения:
    1.057
    Симпатии:
    216
    Пол:
    Мужской
    /* CsStats MySQL Functions
    *
    * by SKAJIbnEJIb
    *
    * This file is provided as is (no warranties).
    */

    #if defined _csstats_mysql_included
    #endinput
    #endif
    #define _csstats_mysql_included_included

    ////////////////////////
    // Константы значений //
    ////////////////////////
    #define FRAGS 0 // Фраги
    #define DEATHS 1 // Смерти
    #define HEADSHOTS 2 // В голову
    #define TEAMKILLS 3 // Убийства своих
    #define SHOTS 4 // Выстрелов
    #define HITS 5 // Попаданий
    #define DAMAGE 6 // Урон
    #define SUICIDE 7 // Самоубийства
    #define DEFUSING 8 // Начал разминировать бомб
    #define DEFUSED 9 // Разминировал бомб
    #define PLANTED 10 // Поставил бомб
    #define EXPLODE 11 // Взорвал бомб
    #define PLACE 12 // Место в статистике
    #define LASTTIME 13 // Когда был последний раз (в UNIX времени)
    #define GAMETIME 14 // Время в игре (в секундах)
    #define CONNECTS 15 // Сыграл игр
    #define ROUNDS 16 // Сыграл раундов
    #define WINT 17 // Выиграл за Т
    #define WINCT 18 // Выиграл за СТ
    #define SKILL 19 // Скилл игрока (если запущен плагин statsx_rbs)
    #define AR_ADDXP 20 // Добавленный опыт (если запущен плагин army_ranks_ultimate)
    #define AR_ANEW 21 // Очки бонусов /anew (если запущен плагин army_ranks_ultimate)

    ////////////
    // Нативы //
    ////////////

    // Запишет название таблицы(где записаны все игроки)
    native csstats_TablePlayers(const TablePlayers[], len);


    // Возвратит количество игроков в статистике.
    native csstats_get_statsnum();

    // Получает статистику игрока по id.
    // Возвратит:
    // -2 - если игрока нет на серве
    // -1 - если игрок не успел загрузить данные из БД
    // 0 - если у игрока STEAM_ID_LAN или что то в этом роде
    // N - место в статистике
    native csstats_get_user_stats(id, stats[22])

    // Получает статистику игрока по его месту.
    // write[] - возвратит authid игрока
    // Функция возвратит: 1 - удачно, -1 - не подключился к БД
    native csstats_get_place_stats(place, stats[22], Name[] = "", len = 0, write[] = "", writelen = 0)

    // Возвратит место в статистике
    native csstats_get_user_place(id)


    // Добавить/отнять что ни будь в статистику игрока
    native csstats_add_user_value(id, ident, value)
    // Установить нужное значение в пункте в статистики игрока
    native csstats_set_user_value(id, ident, value)
    // Вернет значение пункта статистики(ident)
    native csstats_get_user_value(id, ident)


    // Проверяет загрузил ли игрок все данные статистики
    native csstats_is_user_connected(id)
    // Вернет true, если игрок с нормальным стим айди и т.п.
    native csstats_is_user_write(id)


    // Преобразует два массива в один
    stock stats_to_array(stats1[8], stats2[4], stats[22])
    {
    stats[FRAGS] = stats1[0]
    stats[DEATHS] = stats1[1]
    stats[HEADSHOTS] = stats1[2]
    stats[TEAMKILLS] = stats1[3]
    stats[SHOTS] = stats1[4]
    stats[HITS] = stats1[5]
    stats[DAMAGE] = stats1[6]
    stats[SUICIDE] = stats1[7]
    stats[DEFUSING] = stats2[0]
    stats[DEFUSED] = stats2[1]
    stats[PLANTED] = stats2[2]
    stats[EXPLODE] = stats2[3]
    }
    // Вернет идентификаторы массивов
    native Array:csstats_get_array_ident(Trie:array[25])
    // Вернет временную статистику
    native csstats_get_temp_stats(id, stats[22])
    // Очистить пункт во временной статистике
    native csstats_clear_temp_stats(id, ident)


    // Вызывается, когда плагин подключился к базе и загрузил статистику
    forward csstats_initialized_post(Handle:Tuple)

    // Вызывается когда игрок зашел на сервер и получил все данные
    // exists вернет true, если игрок уже был в базе, false - если новый игрок
    forward csstats_putinserver(id, bool:exists)
     
    fantasycs нравится это.
  11. neygomon Его Темнейшество :j Команда форума

    Регистрация:
    26.02.15
    Сообщения:
    7.543
    Симпатии:
    4.142
    Пол:
    Мужской
    HannibaL, amxx plugins еще давай, или название плагина, самого файла.
    надо ж как то ловить его :)
     
    fantasycs нравится это.
  12. HannibaL Команда форума

    Регистрация:
    28.02.15
    Сообщения:
    1.057
    Симпатии:
    216
    Пол:
    Мужской
    neygomon, Также csstats_mysql.amxx
     
    fantasycs нравится это.
  13. neygomon Его Темнейшество :j Команда форума

    Регистрация:
    26.02.15
    Сообщения:
    7.543
    Симпатии:
    4.142
    Пол:
    Мужской
    HannibaL, ок..
     
    fantasycs нравится это.
  14. neygomon Его Темнейшество :j Команда форума

    Регистрация:
    26.02.15
    Сообщения:
    7.543
    Симпатии:
    4.142
    Пол:
    Мужской
    ### Обновлен первый пост ###
    1. Добавлено описание настроек и описание самого плагина
    2. Выложен исходник
    3. Добавлена поддержка csstats mysql от скальпеля. Спасибо HannibaL за предоставленные нативы
     
    sozz, ex3m777 и HannibaL нравится это.
  15. Andrey777 Пользователь

    Регистрация:
    30.03.15
    Сообщения:
    259
    Симпатии:
    36
    Пол:
    Мужской
    Skype:
    Andrey777best
    neygomon, Почему ты не хочешь сделать уведомление? Зайдет игрок скажет всем привет будет спаршивать микро работает итд...тут все молчат подумает что микро не пашет или на сервере этом не работает, пойдет на другой...
     
    fantasycs нравится это.
  16. ex3m777 Пользователь

    Регистрация:
    27.02.15
    Сообщения:
    761
    Симпатии:
    333
    Пол:
    Мужской
    VKcom:
    ex3m777
    Skype:
    ex3m777
    наверное стоит уже все собрать до кучи все что работает с голосовым чатом
    gag
    mute
    разделение голосового чата, живые не слышат мертвых, мертвые слышат всех
    и этот плагин
    --- добавлено 24.05.15 ---
    там в чат пишет, добавь себе худ или дхуд если так сильно надо
     
  17. neygomon Его Темнейшество :j Команда форума

    Регистрация:
    26.02.15
    Сообщения:
    7.543
    Симпатии:
    4.142
    Пол:
    Мужской
    зачем смешивать?)
    Они друг другу не мешают.
     
  18. like Пользователь

    Регистрация:
    30.03.15
    Сообщения:
    167
    Симпатии:
    18
    Пол:
    Мужской
    neygomon, можно добавить для игроков с определенными флагами исключение?
     
  19. гл0к Пользователь

    Регистрация:
    03.03.15
    Сообщения:
    717
    Симпатии:
    91
    Пол:
    Мужской
    like, -_____________________- у тебя есть игроки, которые не набрали 50 фрагов и ты с ними уже братуешься? лол же.
    Вопросик, оповещение все же есть или нету?
     
  20. like Пользователь

    Регистрация:
    30.03.15
    Сообщения:
    167
    Симпатии:
    18
    Пол:
    Мужской
    NARC, стата как бы обновляется или не слышал об этом?
    да и ник могут менять игроки,например я.
    оповещение есть,достаточно заглянуть в код чтобы увидеть