Версия | Дата выхода | Скачиваний | Оценка |
---|---|---|---|
1.0.3 | 459 | 0.00 звёзд 0 оценок | |
1.0.2 | 509 | 0.00 звёзд 0 оценок | |
1.0.1 | 107 | 0.00 звёзд 0 оценок |
— Публичные багфиксы
Спасибо BlackSignature и BalbuR
medusa человек пожаловался на то что при включённой функции molotov_smoke_touch (Тушить ли коктейль молотова дымовой гранатой) сервер через некоторое время уходит в повышенное потребление CPU вплоть до 99% при долгой игре на карте. Прямо указал что без этой функции всё нормально. Однако код модифицирован (не оригинал). В изначальном (твоём) варианте я вижу тип энтити CLASSNAME_SMOKE_TOUCHER который создаётся при условии что включён вышеупомянутый квар.
При этом в коде данный тип энтити не удаляется, ему через # времени анрегается touch (CleanUpMap или в хуке touch). Это точно нормальное поведение? Мне кажется эту энтити нужно удалять путём установки ей nextthink и SetThink(). Особо я не разбирался, мы внесли удаление как раз этим способом + в CleanUpMap вместо анрега touch() добавили удаление. Пока смотрим, вроде проблема с CPU ушла.
строку 802 попробуйте заменить, у кого стоит этот плагин
PHP:public FireMolotov_Think_Post(iEntity) { if (is_nullent(iEntity)) return; if (FClassnameIs(iEntity, EFFECT_CLASSNAME_MUZZLEFLASH)) { static iOwner; iOwner = get_entvar(iEntity, var_owner); static iItem; if (is_user_alive(iOwner)) { iItem = get_member(iOwner, m_pActiveItem); if (is_nullent(iItem)) { set_entvar(iEntity, var_flags, FL_KILLME); } else if (FClassnameIs(iItem, ITEM_CLASSNAME)) { } else { set_entvar(iEntity, var_flags, FL_KILLME); } } else { set_entvar(iEntity, var_flags, FL_KILLME); } } set_entvar(iEntity, var_nextthink, get_gametime() + 0.025); }
Изменено
— Удален выбор режима отрисовки спрайтовmolotov_effect_mode(оставлена только отрисовка через Temporary Entities [TE_SPRITE]).
— Изменена логика работы molotov_effect_num (теперь значение влияет на отрисовку волн огня, а не на количество отрисовываемых спрайтов)
— Измено имя конфигурационного файла - new const CONFIG_NAME[] = "molotov_grenade"; !Конфиг все так-же создается автоматически в директории configs/plugins
Добавлено
— Квар molotov_water_touch 1 / 0 - Отвечает за тушение молотова при соприкосновении с водой. (Так же активирует немного другое поведение, при броске с затушенным фитилем - молотов не детанирует, а просто разбивается)
— Квар molotov_sky_force 1 / 0 - Отвечает за удаление молотова при соприкосновении со скайбоксом карты
— Мультиязычность - фаил, к конфигу и уведомлениям. (Написано на скорую руку, могут быть неправильные формулировки, а так - же, не качественный перевод на Английский язык)
ОБНОВЛЕНИЕ СОДЕРЖИТ, НОВЫЕ ЗВУКИ И МОДЕЛИ, А ТАК ЖЕ ИЗМЕНЕННЫЕ ДЕФОЛТНЫЕ НАСТРОЙКИ.
ДЛЯ КОРРЕКТНОЙ РАБОТЫ РЕКОМЕНДУЮ ПОЛНОСТЬЮ ОБНОВИТЬ ПЛАГИН, КОНФИГ И РЕСУРСЫ.
- Добавлен макрос #define ALLOW_CUSTOMNADE который отвечает за"поддержку"других гранат, которые используют замену WEPON_GLOCK
если макрос активен: Можем использовать коктейль молотова вместе с другими кастомными гранатами (например HealthNade от fantom'a), но лишаемся поддержки - выпадения гранат при mp_dropnade 1\2, покупки и поднятия оружия WEAPON_TMP.
если макрос закомментирован: Конфликты с кастомными гранатами завязанными на подмене WEAPON_GLOCK. Поддержка mp_dropnade 1\2. Предпочтительно
(в данном случае избавление от поддержки mp_dropnade обусловлено тем, что подмененный айтем находится в слоте гранат, и выпадает вместе с молотовым, что приводит к фейковому дропу неосизаемой модельки заменяемого оружия, которое реагирует на тач, а так же при соприкосновении с игроков добавляет ему нулевой\невалидный аммо, что может приводить к неожиданным результатам)
- Добавлены нативы для выдачи и проверки коктейля молотова
NativeGiveUserMolotov(id); //Выдача коктейля молотова
NativeIsUserHasMolotov(id); //Проверка есть ли коктейль молотова в арсенали у игрока
Код:native NativeGiveUserMolotov(id); native NativeIsUserHasMolotov(id); if(!NativeIsUserHasMolotov(id)) NativeGiveUserMolotov(id);
- Исправлен неправильный способ блокировки урона.
- Исправление тача огня с дымовой гранатой (когда молотов догорел, а дымовая граната детонировала на том месте)
- Перенес чтение флагов пользователя в plugins_init (возможно проблема чтения флагов этим "мувом" будет решена не полностью -_-) (поймать и полностью протестировать почему не всегда читается флаг у некоторых нет возможности)
- Небольшие правки по отрисовки модели
ИНФО:
Так же хочу обратить внимание, что некоторые квары не поддерживают "горячей" замены, и читаются только при загрузке плагина (т.е при рестарте сервера\ смены карты)
molotov_buy_access
mp_buytime
mp_nadedrops
Конфигурационный фаил создается автоматически. После каждого обновления рекомендуется удалять старый конфиг, и генерировать новый (если вы не уверены что все осталось на своих метах)
Добавлено:
- Звук затухания молотова который догорел.
- Квар molotov_effect_mode 1\2 - режим отрисовки спрайтов (1 - через Entities [env_sprite], 2 - через Temporary Entities [TE_SPRITE]). 2 метод сделан в угоду экономии энтити.
- Квар molotov_buy_limit - устанавливает с какого раунда после начала игры будет доступен молотов.
- Квар molotov_demage_radius_mode 1\2 - режим нанесения урона от огня (1 - через Ham_TakeDamage [урон фиксированный в любой точке радиуса горения], 2 - через rg_dmg_radius [урон зависит от дальности к эпицентру горения и наличия брони])
Исправлено:
- Опечатки, которые могли привести к крашам и не правильной работе.
- Перераспределены участки по работе со звуком.
- Квар molotov_buy_limit теперь имеет минимальное значение -1.
- Киллфид приставка к нику которая реагировала на убийство [HE] гранатой.
- Удаление фитиля на летящей гранате.
- Работа и описание некоторых кваров.