Server-Side SmokeNade [NO TEST] - AI

DENZEL519

Работаю через AI !
Сообщения
490
Реакции
315
Server-Side SmokeNade - это оптимизированный плагин для Counter-Strike: Source, который полностью заменяет стандартные дымовые гранаты на серверной стороне.

Основные функции:​

🎯 Полная замена дыма
  • Заменяет стандартные дымовые облака на кастомные
  • Работает полностью на стороне сервера
  • Не требует загрузки файлов игроками
⚙️ Гибкая настройка
  • Тип облака - 3 варианта: оптимизированный, стандартный, густой
  • Цвет дыма - настройка RGB компонентов (красный, зеленый, синий)
  • Прозрачность - регулировка альфа-канала (0-255)
  • Количество частиц - от 20 до 200 для контроля производительности
  • Время жизни - от 5 до 60 секунд
🔧 Технические особенности
  • Исправление воды - автоматически поднимает дым над водной поверхностью
  • Оптимизация - экономит ресурсы сервера и клиентов
  • Автоудаление - корректно удаляет сущности дыма после истечения времени

Преимущества:​

  • ✅ Улучшает производительность сервера
  • ✅ Дает полный контроль над внешним видом дыма
  • ✅ Совместим со стандартным геймплеем
  • ✅ Легко настраивается через конфиг-файл
  • ✅ Не требует перезагрузки карты для изменения настроек

Настройки в файле конфига smokenade

PS: Тестов не было!


Server-Side SmokeNade работает через систему хуков и кастомных сущностей:

🔧 Техническая реализация:

1. Перехват событий
C-подобный:
HookEvent("smokegrenade_detonate", Event_SmokeDetonate);
  • Плагин "ловит" момент детонации дымовой гранаты
  • Получает координаты взрыва и данные о игроке
2. Создание кастомного дыма
C-подобный:
int iSmoke = CreateEntityByName("env_smokestack");
  • Вместо стандартного дыма создается сущность env_smokestack
  • Это специальная сущность Source Engine для частиц дыма
3. Применение настроек
C-подобный:
DispatchKeyValue(iSmoke, "rendercolor", "50 50 50"); // Цвет
DispatchKeyValue(iSmoke, "renderamt", "80");          // Прозрачность
DispatchKeyValue(iSmoke, "maxspeed", "80");           // Количество частиц
4. Управление жизненным циклом
C-подобный:
CreateTimer(fLifetime, Timer_RemoveSmoke, EntIndexToEntRef(iSmoke));
  • Автоматическое удаление дыма через заданное время
  • Предотвращает утечки памяти

🎯 Ключевые механизмы:

🔄 Замена на лету
  • Перехватывает детонацию → Блокирует стандартный дым → Создает кастомный
  • Игроки видят только результат, а не процесс замены
🎨 Визуальные настройки
  • Цвет: Комбинирование RGB компонентов
  • Плотность: Контроль количества частиц
  • Прозрачность: Регулировка видимости через альфа-канал
🌊 Исправление воды
C-подобный:
if (GetPointContents(fPos) & CONTENTS_WATER) {
fPos[2] += 15.0;  // Подъем над водой
}
  • Определяет водные поверхности
  • Корректирует позицию дыма для правильного отображения

📊 Отличия от стандартного дыма:



Стандартный дымServer-Side SmokeNade
Фиксированные настройкиПолная кастомизация
Может глючить в водеАвто-исправление позиции
Один тип частиц3 варианта префабов
Нет контроля производительностиОптимизация частиц

Результат: Игроки видят красивый, настраиваемый дым, а администраторы получают контроль над производительностью и внешним видом.
 

Вложения

  • Smoke.sp
    5.5 КБ · Просмотры: 38
  • Smoke.smx
    5.6 КБ · Просмотры: 13
Последнее редактирование:

khersonskyi

Участник
Сообщения
29
Реакции
4
Интересненько) у меня просто на сервере моментами дым прозрачный бывает, при том что разные плагины ставил которые делают его густее) но увы все равно иногда прозрачный бывает, может этот будет нормально себя вести)
 

DENZEL519

Работаю через AI !
Сообщения
490
Реакции
315
Обновление плагина по подсказкам от Nekro.
V 1.1:

🔄 Что изменилось в версии 1.1:

🎨 1. Упрощенная настройка цвета

Было:
Три отдельные переменные
sm_smokenade_color_r "50"
sm_smokenade_color_g "50"
sm_smokenade_color_b "50"

Стало:
Одна удобная переменная
sm_smokenade_color "50 50 50"

⚙️ 2. Новый механизм парсинга цвета

  • Функция ParseColorString() - разбирает строку цвета на RGB компоненты
  • Функция ClampColor() - защищает от некорректных значений (0-255)
  • Хук изменения OnColorChanged() - автоматически обновляет цвет при изменении переменной

🛡️ 3. Защита от ошибок

Автоматическая проверка формата
C-подобный:
if (iCount == 3) {
// Корректный парсинг
} else {
// Значения по умолчанию + сообщение об ошибке
LogError("Некорректный формат цвета...");
}

🔧 4. Исправления для SourceMod 1.10

  • Замена устаревшего StringValue на GetString()
  • Корректная работа с ConVar в современных версиях SourceMod

📊 Сравнение настроек:


ВерсияНастройка цветаКоличество переменныхЗащита от ошибок
1.0r g b раздельно3 переменныеНет
1.1"r g b" одной строкой1 переменнаяДа

🎯 Преимущества изменений:


✅ Для администраторов:
  • Быстрее и удобнее настраивать цвет
  • Меньше переменных в конфигурации
  • Автоматическая защита от неправильных значений
✅ Для разработчиков:
  • Более чистый и читаемый код
  • Централизованная обработка цвета
  • Легче расширять функционал
✅ Для сервера:
  • Меньше проверок при создании дыма
  • Оптимизированный доступ к настройкам
  • Стабильная работа с цветом

🚀 Примеры использования:

Быстрый выбор цвета одной командой
C-подобный:
sm_smokenade_color "255 100 0"    // Оранжевый
sm_smokenade_color "0 255 255"    // Бирюзовый
sm_smokenade_color "100 100 100"  // Серый

Легко копировать/вставлять настройки
C-подобный:
sm_smokenade_color "30 144 255"   // Красивый синий

Теперь настройка цвета дыма стала максимально простой и интуитивной!
 

Вложения

  • Smoke.sp
    6.1 КБ · Просмотры: 30
  • Smoke.smx
    6.5 КБ · Просмотры: 22
Последнее редактирование:

Vit_ amin

Добрая душа
Сообщения
1,548
Реакции
735
А в чем заключается "Улучшение производительности сервера" и "экономия ресурсов сервера и клиента" если не секрет конечно?))))
 

Synd1qate

Участник
Сообщения
865
Реакции
335

Вложения

  • Screenshot_20251024_231022.jpg
    Screenshot_20251024_231022.jpg
    34.6 КБ · Просмотры: 106

7pElllHuK

Участник
Сообщения
1,491
Реакции
513
Server-Side SmokeNade - это оптимизированный плагин для Counter-Strike: Source, который полностью заменяет стандартные дымовые гранаты на серверной стороне.

Основные функции:​

🎯 Полная замена дыма
  • Заменяет стандартные дымовые облака на кастомные
  • Работает полностью на стороне сервера
  • Не требует загрузки файлов игроками
⚙️ Гибкая настройка
  • Тип облака - 3 варианта: оптимизированный, стандартный, густой
  • Цвет дыма - настройка RGB компонентов (красный, зеленый, синий)
  • Прозрачность - регулировка альфа-канала (0-255)
  • Количество частиц - от 20 до 200 для контроля производительности
  • Время жизни - от 5 до 60 секунд
🔧 Технические особенности
  • Исправление воды - автоматически поднимает дым над водной поверхностью
  • Оптимизация - экономит ресурсы сервера и клиентов
  • Автоудаление - корректно удаляет сущности дыма после истечения времени

Преимущества:​

  • ✅ Улучшает производительность сервера
  • ✅ Дает полный контроль над внешним видом дыма
  • ✅ Совместим со стандартным геймплеем
  • ✅ Легко настраивается через конфиг-файл
  • ✅ Не требует перезагрузки карты для изменения настроек

Настройки в файле конфига smokenade

PS: Тестов не было!


Server-Side SmokeNade работает через систему хуков и кастомных сущностей:

🔧 Техническая реализация:

1. Перехват событий
C-подобный:
HookEvent("smokegrenade_detonate", Event_SmokeDetonate);
  • Плагин "ловит" момент детонации дымовой гранаты
  • Получает координаты взрыва и данные о игроке
2. Создание кастомного дыма
C-подобный:
int iSmoke = CreateEntityByName("env_smokestack");
  • Вместо стандартного дыма создается сущность env_smokestack
  • Это специальная сущность Source Engine для частиц дыма
3. Применение настроек
C-подобный:
DispatchKeyValue(iSmoke, "rendercolor", "50 50 50"); // Цвет
DispatchKeyValue(iSmoke, "renderamt", "80");          // Прозрачность
DispatchKeyValue(iSmoke, "maxspeed", "80");           // Количество частиц
4. Управление жизненным циклом
C-подобный:
CreateTimer(fLifetime, Timer_RemoveSmoke, EntIndexToEntRef(iSmoke));
  • Автоматическое удаление дыма через заданное время
  • Предотвращает утечки памяти

🎯 Ключевые механизмы:

🔄 Замена на лету
  • Перехватывает детонацию → Блокирует стандартный дым → Создает кастомный
  • Игроки видят только результат, а не процесс замены
🎨 Визуальные настройки
  • Цвет: Комбинирование RGB компонентов
  • Плотность: Контроль количества частиц
  • Прозрачность: Регулировка видимости через альфа-канал
🌊 Исправление воды
C-подобный:
if (GetPointContents(fPos) & CONTENTS_WATER) {
fPos[2] += 15.0;  // Подъем над водой
}
  • Определяет водные поверхности
  • Корректирует позицию дыма для правильного отображения

📊 Отличия от стандартного дыма:



Стандартный дымServer-Side SmokeNade
Фиксированные настройкиПолная кастомизация
Может глючить в водеАвто-исправление позиции
Один тип частиц3 варианта префабов
Нет контроля производительностиОптимизация частиц

Результат: Игроки видят красивый, настраиваемый дым, а администраторы получают контроль над производительностью и внешним видом.
Мне интересно, как можно работать с нейронкой и выкладывать плагин без тестов? Тут свой код тестируешь по 40 раз, чтоб убедится что все работает как часы, а это нейронка которая в sp особо не бум бум и многого не понимает
 

-=|УЧЕНИК|=-

вся жизнь,сплошной цирк.
Сообщения
909
Реакции
238
вообще не заметил просадок
Зависит от пк и видео карты.
Если у игрока будет слабенький пк,то он не успеет к дыму подойти как фпс просядет минимум на 70-100.
Все что связано с env_smokestack во многом количестве, все будет просаживать фпс
 

khersonskyi

Участник
Сообщения
29
Реакции
4
а кто подскажет как решить проблему прозрачного дыма? моментами дым прозрачный НЕ У ВСЕХ ИГРОКОВ его типо на карте не видно заходишь туда куда дым кинул то есть отходишь немного и его нету, такие моменты редко но все же бесит и немного не честно, кто подскажет как это решить можно? 34 версия, пробовал ставить плагины которые делают дым густее увы не помогает!
 

DENZEL519

Работаю через AI !
Сообщения
490
Реакции
315
Мне интересно, как можно работать с нейронкой и выкладывать плагин без тестов? Тут свой код тестируешь по 40 раз, чтоб убедится что все работает как часы, а это нейронка которая в sp особо не бум бум и многого не понимает
Отсюда тема и в категории Болтательный >> Всякое) Не в категории плагины, которые требует проверки их.
 

ASTEROID

Участник
Сообщения
75
Реакции
96
Мне интересно, как можно работать с нейронкой и выкладывать плагин без тестов? Тут свой код тестируешь по 40 раз, чтоб убедится что все работает как часы, а это нейронка которая в sp особо не бум бум и многого не понимает
Это же Дензел :)
 

ASTEROID

Участник
Сообщения
75
Реакции
96
Ты то что влез сюда то? Есть вопросы пиши в телегу. Лучше бэкдоры закрой на своём проекте)
Не переживай, после тебя там все закрыто
Смотри чтобы я тебя за твои мышиные поступки не подтянул, ты знаешь что я в курсе где ты живёшь)

Это мое последнее тебе предупреждение, больше не отвечай на мои сообщения, как любишь говорить - в телегу ответишь если хочешь)
У меня достаточно доказательств на тебя, чтобы тебя и тут снесли, я тебя оставил на потеху публике. Тебе должно быть известно какого о тебе мнения стали что у нас на проекте, где ты наговнил, что среди разрабов тут

Сидит как ребенок реакции ставит 😂
 

DENZEL519

Работаю через AI !
Сообщения
490
Реакции
315
Не переживай, после тебя там все закрыто
Смотри чтобы я тебя за твои мышиные поступки не подтянул, ты знаешь что я в курсе где ты живёшь)

Это мое последнее тебе предупреждение, больше не отвечай на мои сообщения, как любишь говорить - в телегу ответишь если хочешь)
У меня достаточно доказательств на тебя, чтобы тебя и тут снесли, я тебя оставил на потеху публике. Тебе должно быть известно какого о тебе мнения стали что у нас на проекте, где ты наговнил, что среди разрабов тут

Сидит как ребенок реакции ставит 😂
Да, да, и ты не тегай меня и не пиши тут, и эти все детские подколки уже не интересны.
 
Сверху Снизу