SourceMod CS: S CS: GO Team Fortress 2 DOD: Source Left 4 Dead HL 2: Deathmatch Synergy Codename: Cure Black Mesa Ядро плагина Left 4 Dead 1&2 Effect Calculator 2.1

No permission to download
You can download a maximum of 0 files within 24 hours
Данное ядро было написано для разрешения конфликтов плагинов, изменяющих одно и то же в разной степени
К примеру:
У вас есть 2 плагина, изменяющих скорость, и зомби сервер
Плагин1 устанавливает скорость на 1.5 для зомби через 1 секунду после спавна и сразу после заражения
Плагин2 увеличивает скорость игрока на 0.5 через 1 секунду после спавна
В таком случае у нас 2 исхода установки скорости после спавна:
  1. Благоприятный исход. Плагин1 установит скорость раньше Плагина2, Плагин2 добавит к этой скорости свою
  2. Не благоприятный исход. Плагин2 увеличит скорость, а потом Плагин1 установит свою, нивелируя старания Плагина2
В случае заражения у нас лишь 1 исход: плагин2 не добавит скорости
Нам, как разработчикам, так и серверодержателям, такой расклад не по душе. Именно тут полезно данное ядро

Ввод местную терминологию и немного объяснений:
  • Эффект - это просчитываемый в реальном времени коэффициент (на него мы умножаем/делим что-либо), для применения его для чего-либо. Состоит из названия и массива множителей
  • Множитель - один компонентов эффекта. Представляет собой название множителя и коэффициент, просчитываемый в реальном времени.
  • Хук на эффект (хук на множитель) - Функция, вызываемая при просчете коэффициента множителя. Хук ставится на множитель, соответственно, при установке хука необходимо указать и эффект, и множитель.
  • Вычисление множителя - выполнение всех его хуков с целью изменения заданного коэффициента (по умолчанию - 1.0)
  • Вычисление эффекта - вычисление всех множителей и перемножение их коэффициентов (по умолчанию - 1.0)
  • Попросить применить эффект - "попросить" модуль, реализующий эффект, заново вычислить эффект и применить изменения в соответствии с изменениями коэффициента эффекта
  • Хук на применение эффекта - функция, вызываемая, когда модуль просит применить эффект
  • Модуль-сервер - плагин, реализующий вычисление эффекта и применение изменений (К примеру, напрямую устанавливающий скорость), и отвечающий на просьбу применения эффекта
  • Модуль-клиент - плагин, устанавливающий хук на эффект и, в некоторых случаях, просящий применить эффект.
Возьмем нашей целью реализовать плагин, линейно увеличивающий игроку урон в соответствии с уменьшением урона (меньше хп = больше урона)
Во-первых, нужно реализовать хук на эффект (поглядывая в include-файл) и прописать логику:
C-like:
Please, Log in or Register to view codes content!
Идеально: за каждое потерянное хп игрок получает +1% к наносимому урону. Теперь нужно установить хук
Хук можно установить когда и сколько угодно. Вызван при вычислении множителя он будет лишь 1 раз, даже если он будет несколько раз подряд установлен на один и тот же множитель.
Я советую устанавливать хук при OnLibraryAdded, если верить результатам моего теста, эта функция запускается в плагине под каждую библиотеку, зарегистрированную через SourceMod, даже если сам плагин был загружен гораздо позже. Как по мне, это идеальное место
C-like:
Please, Log in or Register to view codes content!
Требования
SourceMod
Установка
Переместить plugins/effectcalc.smx в addons/sourcemod/plugins/
Переместить по желанию плагины из plugins/disabled/в addons/sourcemod/plugins
Ввести в консоль sm plugins refresh
Author
admin
Downloads
0
Views
211
First release
Last update
Rating
0.00 star(s) 0 ratings

Share this resource

Similar resources

Плагин, который добавляет на сервер возможность бросаться топором!
0.00 star(s) 0 ratings
Downloads
1
Updated
0.00 star(s) 0 ratings
Downloads
1
Updated
Эффекты при попадании в голову
0.00 star(s) 0 ratings
Downloads
0
Updated
Можно создавать эффекты для карты через меню...
0.00 star(s) 0 ratings
Downloads
0
Updated
Разные эффекты на карты
0.00 star(s) 0 ratings
Downloads
0
Updated