Плагины моего сервера css v34

7RG

Участник
Сообщения
44
Реакции
12
Всем привет.

Решил завершить работу с игровыми серверами, поэтому хочу выложить здесь свои наработки — возможно, кому-то они будут полезны.

В этой теме будут плагины двух типов:

  • полностью написанные мной с нуля;
  • публичные плагины, которые я дорабатывал и адаптировал под свой сервер.
Постараюсь по каждому материалу дать краткое описание и указать, что именно было изменено.

Если будут вопросы по какому-то плагину — пишите в теме, по возможности отвечу.


Плагин который работает с чатом. CM color say

Что изменено в моей версии CM_ColoredSay​

В сравнении с оригинальным плагином добавил и переработал следующее:

  • Добавлена интеграция с VIP Core:
    • отдельный пункт в VIP-меню: «Настройки чата»;
    • регистрация/снятие VIP-фичи при загрузке/выгрузке плагина.
  • Добавлены персональные VIP-настройки (с сохранением в cookies):
    • свой префикс;
    • цвет префикса;
    • цвет ника;
    • цвет текста сообщения.
  • Реализовано VIP-меню настройки чата:
    • выбор префикса из пресетов;
    • ввод своего префикса через чат (с лимитом по длине);
    • сброс префикса;
    • меню выбора цветов и градиента.
  • Добавлена поддержка градиентного префикса (для пользователей ClientMod):
    • градиенты берутся из конфига;
    • корректная покраска по UTF-8 символам.
  • Расширен конфиг colored_say.ini:
    • vip
    • admin_vip
    • prefix_presets
    • colors_clientmod
    • colors_css34
    • gradient
  • Переработан приоритет прав/групп при выборе шаблона:
    • отдельная логика для admin_vip (админ + VIP);
    • корректный выбор между admins, vip, players, персональным SteamID-блоком.
  • Добавлена кастомизация формата VIP-префикса через:
    • custom_prefix_format
    • плейсхолдеры {base} и {custom}.
  • Улучшен вывод сообщения отправителю и остальным игрокам:
    • аккуратный self-вывод;
    • правка {teamcolor} для совместимости обычного чата.
  • Проверка мута/гага доработана:
    • используется MaterialAdmin native (MAGetClientMuteType) при наличии;
    • выводятся информативные сообщения о блокировке чата.
  • Улучшена очистка/сброс данных игрока при выходе:
    • префикс, цвета, состояния меню, ввод префикса.
  • Добавлены вспомогательные возможности для других плагинов:
    • ColoredSay_OnFormattingPrefix (forward);
    • ColoredSay_SkipMessage (native) сохранён и используется как раньше.
1775732451127.png
1775733569681.png
1775733632313.png



Плагин показа хп на головой HP Bars

  • Логика показа полностью переработана:
    • Было: полоска только над последним врагом, которому ты нанес урон.
    • Стало: полоски обновляются системно для всех подходящих целей (враги, а в FFA — все игроки).
  • Добавлена поддержка режимов отображения:
    • обычный режим: только по противникам;
    • FFA-режим: показ по всем игрокам.
    • Проверка FFA через cssdm_ffa_mode, fallback через mp_friendlyfire.
  • Архитектура сущностей изменена:
    • Было: 1 env_sprite + material_modify_control на игрока (смена кадра у одной текстуры).
    • Стало: матрица viewer -> target (g_iSprite[MAX][MAX]), отдельный спрайт для каждой пары наблюдатель/цель.
  • Изменен способ визуализации HP:
    • Было: одна текстура hpbar5s.vmt, кадр менялся через StartAnimSequence.
    • Стало: отдельные материалы 5..100 (materials/animated/hp/*.vmt), выбор материала по текущему HP.
  • Ресурсы и загрузка переработаны:
    • Было: в downloads добавлялось 2 файла (hpbar5s.vmt/.vtf).
    • Стало: цикл по всем материалам HP + автодобавление соответствующих .vtf, если файл существует; также PrecacheModel.
  • Добавлены новые события и циклы обновления:
    • player_spawn, player_death, round_start, player_hurt;
    • глобальный таймер обновления UPDATE_TIME = 0.2;
    • отложенные обновления после спавна и старта раунда.
  • Убрана старая модель таймеров на клиента:
    • Было: hpbar2_time, Timers[], TimerRepeats[], авто-скрытие по времени.
    • Стало: постоянная актуализация и пересоздание/удаление по состоянию игры (без hpbar2_time).
  • Добавлены отладочные команды:
    • sm_hpdebug — включает/выключает debug;
    • sm_hpstatus — показывает текущий статус (FFA/debug).
  • Улучшена производительность/чистота:
    • кэш последнего материала g_sLastMaterial (не пересоздает бар без изменений);
    • аккуратное удаление баров при смерти/дисконнекте/новом раунде;
    • SDKHook_SetTransmit оставляет видимость только владельцу полоски.
1775735328997.png


Плагин для SHOP. Плагин масок ,шляп . shop equipments
Проблема, судя по всему, проявлялась только на CS:S v34:
если на игроке была надета маска, то при наблюдении за ним от первого лица маска отображалась, а от второго лица — нет.

В этой версии плагина это поведение исправлено: логика отображения маски для наблюдателей скорректирована, и теперь она работает корректно в режимах наблюдения.

Плагин для SHOP. Монетки из игроков shop coins
  • Спавнит монетку на месте смерти игрока.
  • Живой игрок подбирает монетку в радиусе sm_coin_range.
  • За подбор выдает кредиты Shop в диапазоне sm_coin_credits_min..sm_coin_credits_max.
  • Для VIP есть переключаемый бонус x2 к монетам (CoinDrop_X2_Bonus).
  • Монетки вращаются, имеют время жизни и удаляются в начале нового раунда.
  • Есть глобальный forward: ShopCoins_OnCreditsPickup(client, credits, vipX2).

Команды​

  • sm_spawncoin — тестовый спавн монеты под ногами админа (ADMFLAG_SLAY).

CVar'Ы​

  • sm_coin_enable — вкл/выкл плагин.
  • sm_coin_teamkill — спавнить монету при тимкилле.
  • sm_coin_lifetime — время жизни монеты.
  • sm_coin_credits_min — минимум кредитов.
  • sm_coin_credits_max — максимум кредитов.
  • sm_coin_range — радиус подбора.
  • sm_coin_pickup_chat — сообщения в чат:
    • 0 — никогда,
    • 1 — только без ClientMod,
    • 2 — всегда.

Зависимости (инклуды)​

  • sourcemod
  • sdktools
  • shop
  • vip_core
  • clientmod (опционально по native CM_GetClientModAuth)


  • Особенности логики​

  • Монета не спавнится при самоубийстве (attacker == victim).
  • При sm_coin_teamkill 0 монета не выпадет за тимкилл.
  • Если min > max, значения автоматически меняются местами.
  • VIP x2 применяется только если фича включена у VIP-игрока


  • Плагин работает в связке с [OS][LVL]ShowStatsV34.

    При подборе монеты shop_coins вызывает forward: ShopCoins_OnCreditsPickup(client, credits, vip2x).

    [OS][LVL]ShowStatsV34 принимает это событие и выводит в HUD временное уведомление о получении монет:
    • (+N) — обычный подбор;
    • (+N) 2x — если у игрока сработал VIP-бонус x2.
  • Логика отображения:
    • сумма подбора сохраняется на ~3 секунды;
    • затем автоматически очищается таймером;
    • в HUD всегда показывается текущий баланс монет, а при подборе дополнительно показывается прирост.
  • Таким образом, shop_coins отвечает за дроп/подбор и начисление кредитов, а [OS][LVL]ShowStatsV34 — за визуализацию результата в статистике игрока.
1775738667068.png




Плагин для Shop . Плагин MEdkit (Medic)
  • Это Shop-аптечка для CSSDM/FFA с ограничением использований за жизнь (sm_shop_medkit_per_life).
  • Есть команды: sm_medic и sm_medkit.
  • Поддержан режим лечения:
    • SET — выставить HP в значение;
    • ADD — добавить HP (если sm_shop_medkit_health задан как +N).
  • Есть лимит максимального HP: sm_shop_medkit_max_health.
  • Добавлена VIP-фича Medkit_X2_PerLife (toggle) — по сути “2 аптечки за жизнь” для VIP.
  • Есть расширенное меню покупки в магазине:
    • выбор количества (bulk buy),
    • подтверждение покупки,
    • продажа предмета,
    • локализованные фразы из shop_medkit.phrases.txt.
  • Аптечка сбрасывается на каждом player_spawn (счётчик использований за жизнь обнуляется).
  • Плагин адаптирован под FFA/CSSDM (это видно и по названию, и по логике per-life).
  • 1775739391036.png
    1775740746686.png

Плагин показа статистики [OS][LVL]ShowStatsV34
  • Добавлена интеграция с Shop (отображение текущего баланса монет в HUD).
  • Добавлена поддержка shop_coins через ShopCoins_OnCreditsPickup(...).
  • При подборе монет теперь показывается временная прибавка в HUD: (+N), а для VIP — (+N) 2x.
  • Доработан вывод статистики: цветовые акценты для KDR, HS и монет.
  • Исправлен расчёт KDR (без деления на ноль при deaths = 0).
  • Логика показа расширена: HUD работает корректно и для живого игрока, и при наблюдении за целью.
  • Добавлена корректная очистка временных данных подбора монет таймером.
  • Обновлён/кастомизирован список названий рангов.
1775740547731.png




Плагин записи демок игрокам
  • На событие player_activate плагин запускает таймер и отправляет клиенту команду:
    • stop; record Surf_DM_<ник>
  • Если игрок ещё не полностью в игре, делаются повторные попытки старта (до 15 раз).
  • На завершении карты отправляется stop для корректного завершения записи.
  • Имя файла демки формируется из ника игрока, опасные символы заменяются на _.

Особенности​

  • Запись создаётся на стороне клиента (в папке с игрой у игрока).
  • Боты игнорируются.
  • В лог сервера пишется факт запуска команды записи
Плагин звуков при убийстве quake sound
  • Убрана система нескольких sound set'ов (MAX_NUM_SETS, QuakeSetsList.cfg, выбор Standard/Female и т.д.).
  • Вместо этого используется один конфиг: configs/quake/standard.cfg.
  • Добавлена поддержка нескольких звуков на одно событие:
    • для каждого события можно задавать список (sounds) и выбирать режим random/последовательный.
    • добавлены лимиты MAX_SOUNDS_PER_EVENT, MAX_ROUNDPLAY_SOUNDS.
  • Изменен формат чтения конфига:
    • поддержка нового блока sounds { ... },
    • оставлена обратная совместимость со старым sound, sound1..soundN.
  • Упрощена логика движков:
    • в стандарте были ветки под CSS/CSGO/TF2/DODS/HL2DM,
    • у вас фактически оставлен сценарий под CSS (хуки round_start, round_freeze_end, player_death).
  • Добавлен учёт CSSDM FFA(cssdm_ffa_mode):
    • тимкилл в FFA не считается обычным teamkill-событием.
  • Меню настроек переделано:
    • добавлен алиас !qs,
    • в cookie/menu теперь режим звука по сути вкл/выкл (а не выбор набора сетов).
  • Тексты и описание переведены/кастомизированы на русский:
    • cvar-описания,
    • announce-сообщение,
    • center-тексты килл-событий.
  • Загрузка звуков изменена:
    • добавлена единая функция CacheSoundIfExists,
    • логирование отсутствующих файлов через LogError.
  • Немного изменена валидация/границы для cookie и sm_quakesoundsv3_sound под новую упрощённую модель.
 

Вложения

  • colored say.zip
    17.1 КБ · Просмотры: 41
  • HP bar 3.zip
    56 КБ · Просмотры: 27
  • shop_equipments.sp
    25.4 КБ · Просмотры: 27
  • Shop Coins.zip
    213.9 КБ · Просмотры: 25
  • shop medic.zip
    5.6 КБ · Просмотры: 21
  • [OS][LVL]ShowStatsV34.sp
    8.6 КБ · Просмотры: 26
  • auto_demo.sp
    4.2 КБ · Просмотры: 21
  • quakesoundsv3.sp
    40.8 КБ · Просмотры: 5
Последнее редактирование:

Synd1qate

Участник
Сообщения
999
Реакции
465
colored say считается сливом...
Получается вы сейчас поддерживаете слив плагина, что приравнивается к бану на форуме.
 

7RG

Участник
Сообщения
44
Реакции
12
Конечно не поддерживаю сливы и прочие.
В соседней теме люди помогают устанавливать слитые плагины. Получается тоже поддерживают сливы , почему они до сих пор не в бане ? Colored_Say css 34
 

ZooM4322

Нейронка:)
Сообщения
175
Реакции
62
Конечно не поддерживаю сливы и прочие.
В соседней теме люди помогают устанавливать слитые плагины. Получается тоже поддерживают сливы , почему они до сих пор не в бане ? Colored_Say css 34
Слив и помощь в установке,разные понятия!
Сообщения автоматически склеены:

Всем привет.

Решил завершить работу с игровыми серверами, поэтому хочу выложить здесь свои наработки — возможно, кому-то они будут полезны.

В этой теме будут плагины двух типов:

  • полностью написанные мной с нуля;
  • публичные плагины, которые я дорабатывал и адаптировал под свой сервер.
Постараюсь по каждому материалу дать краткое описание и указать, что именно было изменено.

Если будут вопросы по какому-то плагину — пишите в теме, по возможности отвечу.


Плагин который работает с чатом. CM color say

Что изменено в моей версии CM_ColoredSay​

В сравнении с оригинальным плагином добавил и переработал следующее:

  • Добавлена интеграция с VIP Core:
    • отдельный пункт в VIP-меню: «Настройки чата»;
    • регистрация/снятие VIP-фичи при загрузке/выгрузке плагина.
  • Добавлены персональные VIP-настройки (с сохранением в cookies):
    • свой префикс;
    • цвет префикса;
    • цвет ника;
    • цвет текста сообщения.
  • Реализовано VIP-меню настройки чата:
    • выбор префикса из пресетов;
    • ввод своего префикса через чат (с лимитом по длине);
    • сброс префикса;
    • меню выбора цветов и градиента.
  • Добавлена поддержка градиентного префикса (для пользователей ClientMod):
    • градиенты берутся из конфига;
    • корректная покраска по UTF-8 символам.
  • Расширен конфиг colored_say.ini:
    • vip
    • admin_vip
    • prefix_presets
    • colors_clientmod
    • colors_css34
    • gradient
  • Переработан приоритет прав/групп при выборе шаблона:
    • отдельная логика для admin_vip (админ + VIP);
    • корректный выбор между admins, vip, players, персональным SteamID-блоком.
  • Добавлена кастомизация формата VIP-префикса через:
    • custom_prefix_format
    • плейсхолдеры {base} и {custom}.
  • Улучшен вывод сообщения отправителю и остальным игрокам:
    • аккуратный self-вывод;
    • правка {teamcolor} для совместимости обычного чата.
  • Проверка мута/гага доработана:
    • используется MaterialAdmin native (MAGetClientMuteType) при наличии;
    • выводятся информативные сообщения о блокировке чата.
  • Улучшена очистка/сброс данных игрока при выходе:
    • префикс, цвета, состояния меню, ввод префикса.
  • Добавлены вспомогательные возможности для других плагинов:
    • ColoredSay_OnFormattingPrefix (forward);
    • ColoredSay_SkipMessage (native) сохранён и используется как раньше.
Посмотреть вложение 124658Посмотреть вложение 124662Посмотреть вложение 124664


Плагин показа хп на головой HP Bars

  • Логика показа полностью переработана:
    • Было: полоска только над последним врагом, которому ты нанес урон.
    • Стало: полоски обновляются системно для всех подходящих целей (враги, а в FFA — все игроки).
  • Добавлена поддержка режимов отображения:
    • обычный режим: только по противникам;
    • FFA-режим: показ по всем игрокам.
    • Проверка FFA через cssdm_ffa_mode, fallback через mp_friendlyfire.
  • Архитектура сущностей изменена:
    • Было: 1 env_sprite + material_modify_control на игрока (смена кадра у одной текстуры).
    • Стало: матрица viewer -> target (g_iSprite[MAX][MAX]), отдельный спрайт для каждой пары наблюдатель/цель.
  • Изменен способ визуализации HP:
    • Было: одна текстура hpbar5s.vmt, кадр менялся через StartAnimSequence.
    • Стало: отдельные материалы 5..100 (materials/animated/hp/*.vmt), выбор материала по текущему HP.
  • Ресурсы и загрузка переработаны:
    • Было: в downloads добавлялось 2 файла (hpbar5s.vmt/.vtf).
    • Стало: цикл по всем материалам HP + автодобавление соответствующих .vtf, если файл существует; также PrecacheModel.
  • Добавлены новые события и циклы обновления:
    • player_spawn, player_death, round_start, player_hurt;
    • глобальный таймер обновления UPDATE_TIME = 0.2;
    • отложенные обновления после спавна и старта раунда.
  • Убрана старая модель таймеров на клиента:
    • Было: hpbar2_time, Timers[], TimerRepeats[], авто-скрытие по времени.
    • Стало: постоянная актуализация и пересоздание/удаление по состоянию игры (без hpbar2_time).
  • Добавлены отладочные команды:
    • sm_hpdebug — включает/выключает debug;
    • sm_hpstatus — показывает текущий статус (FFA/debug).
  • Улучшена производительность/чистота:
    • кэш последнего материала g_sLastMaterial (не пересоздает бар без изменений);
    • аккуратное удаление баров при смерти/дисконнекте/новом раунде;
    • SDKHook_SetTransmit оставляет видимость только владельцу полоски.
Посмотреть вложение 124667

Плагин для SHOP. Плагин масок ,шляп . shop equipments
Проблема, судя по всему, проявлялась только на CS:S v34:
если на игроке была надета маска, то при наблюдении за ним от первого лица маска отображалась, а от второго лица — нет.

В этой версии плагина это поведение исправлено: логика отображения маски для наблюдателей скорректирована, и теперь она работает корректно в режимах наблюдения.

Плагин для SHOP. Монетки из игроков shop coins
  • Спавнит монетку на месте смерти игрока.
  • Живой игрок подбирает монетку в радиусе sm_coin_range.
  • За подбор выдает кредиты Shop в диапазоне sm_coin_credits_min..sm_coin_credits_max.
  • Для VIP есть переключаемый бонус x2 к монетам (CoinDrop_X2_Bonus).
  • Монетки вращаются, имеют время жизни и удаляются в начале нового раунда.
  • Есть глобальный forward: ShopCoins_OnCreditsPickup(client, credits, vipX2).

Команды​

  • sm_spawncoin — тестовый спавн монеты под ногами админа (ADMFLAG_SLAY).

CVar'Ы​

  • sm_coin_enable — вкл/выкл плагин.
  • sm_coin_teamkill — спавнить монету при тимкилле.
  • sm_coin_lifetime — время жизни монеты.
  • sm_coin_credits_min — минимум кредитов.
  • sm_coin_credits_max — максимум кредитов.
  • sm_coin_range — радиус подбора.
  • sm_coin_pickup_chat — сообщения в чат:
    • 0 — никогда,
    • 1 — только без ClientMod,
    • 2 — всегда.

Зависимости (инклуды)​

  • sourcemod
  • sdktools
  • shop
  • vip_core
  • clientmod (опционально по native CM_GetClientModAuth)


  • Особенности логики​

  • Монета не спавнится при самоубийстве (attacker == victim).
  • При sm_coin_teamkill 0 монета не выпадет за тимкилл.
  • Если min > max, значения автоматически меняются местами.
  • VIP x2 применяется только если фича включена у VIP-игрока


  • Плагин работает в связке с [OS][LVL]ShowStatsV34.

    При подборе монеты shop_coins вызывает forward: ShopCoins_OnCreditsPickup(client, credits, vip2x).

    [OS][LVL]ShowStatsV34 принимает это событие и выводит в HUD временное уведомление о получении монет:
    • (+N) — обычный подбор;
    • (+N) 2x — если у игрока сработал VIP-бонус x2.
  • Логика отображения:
    • сумма подбора сохраняется на ~3 секунды;
    • затем автоматически очищается таймером;
    • в HUD всегда показывается текущий баланс монет, а при подборе дополнительно показывается прирост.
  • Таким образом, shop_coins отвечает за дроп/подбор и начисление кредитов, а [OS][LVL]ShowStatsV34 — за визуализацию результата в статистике игрока.
Посмотреть вложение 124674



Плагин для Shop . Плагин MEdkit (Medic)
  • Это Shop-аптечка для CSSDM/FFA с ограничением использований за жизнь (sm_shop_medkit_per_life).
  • Есть команды: sm_medic и sm_medkit.
  • Поддержан режим лечения:
    • SET — выставить HP в значение;
    • ADD — добавить HP (если sm_shop_medkit_health задан как +N).
  • Есть лимит максимального HP: sm_shop_medkit_max_health.
  • Добавлена VIP-фича Medkit_X2_PerLife (toggle) — по сути “2 аптечки за жизнь” для VIP.
  • Есть расширенное меню покупки в магазине:
    • выбор количества (bulk buy),
    • подтверждение покупки,
    • продажа предмета,
    • локализованные фразы из shop_medkit.phrases.txt.
  • Аптечка сбрасывается на каждом player_spawn (счётчик использований за жизнь обнуляется).
  • Плагин адаптирован под FFA/CSSDM (это видно и по названию, и по логике per-life).

Плагин показа статистики [OS][LVL]ShowStatsV34
  • Добавлена интеграция с Shop (отображение текущего баланса монет в HUD).
  • Добавлена поддержка shop_coins через ShopCoins_OnCreditsPickup(...).
  • При подборе монет теперь показывается временная прибавка в HUD: (+N), а для VIP — (+N) 2x.
  • Доработан вывод статистики: цветовые акценты для KDR, HS и монет.
  • Исправлен расчёт KDR (без деления на ноль при deaths = 0).
  • Логика показа расширена: HUD работает корректно и для живого игрока, и при наблюдении за целью.
  • Добавлена корректная очистка временных данных подбора монет таймером.
  • Обновлён/кастомизирован список названий рангов.
Посмотреть вложение 124680



Плагин записи демок игрокам
  • На событие player_activate плагин запускает таймер и отправляет клиенту команду:
    • stop; record Surf_DM_<ник>
  • Если игрок ещё не полностью в игре, делаются повторные попытки старта (до 15 раз).
  • На завершении карты отправляется stop для корректного завершения записи.
  • Имя файла демки формируется из ника игрока, опасные символы заменяются на _.

Особенности​

  • Запись создаётся на стороне клиента (в папке с игрой у игрока).
  • Боты игнорируются.
  • В лог сервера пишется факт запуска команды записи
Скриншоты можно было бы тоже в спойлеры вставить
 
  • Фэйспалм
Реакции: 7RG

7RG

Участник
Сообщения
44
Реакции
12
Может отдельные посты создать с этими плагинами , что бы потом в поиске люди могли найти?
 
Сверху Снизу