Обновление css-d2-bd9bf84d
1. Возвращены старый анти-флэш, провода для раздефьюза бомбы (полностью переписан админский плагин, от которого они зависели).
2. Еще немного откаллибровал статистику, по классике 1 января будет первый и последний сброс статы всем.
3. (Rechargers) Хилки по HP и броне - возвращены, плагин также переписал полностью на новый синтаксис
SourcePawn.
4. Обновили железо сервера, процессор на несколько поколений новее и нода посвободне.
5. Внес корректировки в сетевые настройки и в плагин по защите сетевых спам запросов - не сильно, но связано со стрельбой и она должна стать лучше.
Подробнее о Rechargers.
Что изменилось:
- Код переписан на новый синтаксис (newdecls) и разбит на модули - квары, сохранение, сущности станций, зарядка, меню, события раунда.
- Аптечка и бронестанция теперь работают через общий код. Раньше почти вся логика была продублирована, и из-за этого в одной из копий появлялись ошибки.
- Инклюд emitsoundany больше не нужен. Он нужен для CS:GO, в CS:S звуки работают через стандартные EmitSound и PrecacheSound.
- Станции и их подсветка хранятся по entity reference, а не по индексу сущности, как было раньше, поэтому плагин больше не трогает чужие объекты.
- Меню создаётся для каждого игрока на его языке. Раньше заголовок и пункты показывались на языке сервера или вообще ключами фраз (т.е. как прописано).
- Устаревшие функции (KillTimer, CloseHandle, CreateDataPack, KvRewind и прочие) заменены на современные.
Добавлено (Для руководства):
- Проверка значений при редактировании станции через чат:
- введённое число не видно в общем чате;
- после ввода меню редактирования открывается снова;
- для команды принимаются только 0, 2 или 3;
- дробные числа можно писать через запятую;
- если написать не число, ввод отменяется, а сообщение уходит в чат как обычное.
- Кнопка "Назад" в меню редактирования.
- Проверка, что файлы моделей и звуков есть на сервере. Если файла нет, звук отключается, модель заменяется на error.mdl, а в лог пишется, какой квар неверный.
- Смена звуков, моделей и цветов через квары применяется сразу, без смены карты.
- Поддержка перезагрузки плагина на горячую, т.е. станции появляются сразу, а при выгрузке удаляются, без дублей.
- Папка configs/rechargers создаётся автоматически, если её нет.
- Урон по станциям отключён, их нельзя сломать выстрелами (да-да, раньше такое было возможно, поэтому как оказалось они пропадали в некоторых местах во время игры на карте).
Исправлено:
- Ограничение по команде у аптечки. Аптечка проверяла команду по настройке бронестанции, поэтому ограничение работало неправильно.
- Лимит станций. Из-за ошибки на единицу можно было поставить только 7 станций каждого типа вместо 8.
- Названия в меню. Вместо переведённого текста показывались ключи фраз ("spawn healthbox" и т.п.).
- Команда CT в меню редактирования. Условие для команды 3 было скопировано с команды 2, поэтому "CT" никогда не отображалось.
- Станции после смены карты. Таймер лечения мог оставить игрока в "занятом" состоянии, и тот не мог пользоваться станциями до переподключения.
- Ошибки в логе и зависания таймеров. Таймер брони не проверял, что игрок ещё на сервере. Таймер лечения при выходе игрока навсегда блокировал его слот. Теперь игрок определяется по userid, и все таймеры корректно останавливаются.
- Неверный звук. При ошибке в пути звука в переменную записывался путь модели, и плагин пытался проиграть модель как звук.
- Утечка памяти (критическое). Данные станций пересоздавались на каждой карте без удаления старых.
- Удаление станции. Подсветка искалась через ненадёжный хак, а таймер восстановления после удаления продолжал работать и мог перекрасить чужой объект.
- Команда из консоли сервера. sm_rechargers из консоли давал ошибку, теперь отвечает, что команда только для игры.
- Список загрузок. Пустые строки и комментарии // в rechargers_downloadlist.txt попадали в таблицу загрузок.
- Создание подсветки. Подсветка станции получает серверный слот, для которого движок возвращает не индекс, а reference. Раньше это вызывало ошибку "Invalid entity index", и в начале раунда появлялась только первая станция без подсветки. Теперь создаются все станции.
- Ложные ошибки о звуках при загрузке. Пока конфиг выставлял квары по одному, плагин проверял звуки со значениями по умолчанию и писал в лог invalid sound с путями .mp3, хотя в конфиге стоят .wav. Теперь квары проверяются один раз, после полной загрузки конфига.
Что в планах?
1. Наладить стрельбу на сервере, буду дебажить все плагины.
2. Пересборка магазина, включая дизайн.
3. Реализовывать что-то новое на сервере. Есть идеи? Оставьте отметки на это сообщение (реакции), и если их будет достаточно для меня, то создам вам одну единую тему, куда будете закидывать идеи и адекватные будут реализовываться.