Иконка ресурса

Fire Damage 30-12-2012

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755
  • Автор ресурса
  • #1
Fire Damage

Описание:
Простой плагин, позволяющий автоматически воспламенять игроков, которых ранили (ножом/пулей/гранатой) на определённое время. Поджигание будет происходить при каждом попадании пули, ударе ножом (по желанию) и подрыве гранатой (по желанию), пока игрок жив. Он никак не затрагивает игроков собственной команды, либо наоборот, всех и каждого (по желанию и только при mp_friendlyfire 1).
С версии 1.1 модифицирован в забавный плагин. Обладает целым рядом уникальных настроек для всех видов оружия, представленных в списке, имея и обратное для них действие. Т.е., то оружие, что указано в файле FireDamage_weapons.cfg и имеет значение 1, будет поджигать носящего его владельца при ранениях из любого оружия! Как только он его прячет и время, указанное в sm_fire_duration истекло, поджигающее для него действие оканчивается.
Легко можно настроить и так, что игроки с одним и тем же оружием гореть не будут (оба владельца), но их оружие будет оказывать "огненное" воздействие на любых других или по списку.
Возможен и обратный эффект - поджог всех раненых, кроме владельца определённого оружия.

Требования:
SourceMod

Установка:
Для версии 1.0.3
Переместите или скопируйте файл "FireDamage_v1.0.3.smx" в директорию addons\sourcemod\plugins сервера.
Для версии 1.1 и выше
Переместите или скопируйте файл "FireDamage_v1.1.smx" в директорию addons\sourcemod\plugins сервера.
Переместите или скопируйте файл "FireDamage_v1.2.5.sp" в директорию addons\sourcemod\scripting сервера (по желанию).
Переместите или скопируйте файл "FireDamage_weapons.cfg" в директорию addons\sourcemod\configs сервера.

Настройки(CVAR's):
sm_fire_damage
- Включение плагина Fire Damage;
sm_fire_damage_he - Возможность выбирать, будет ли плагин поджигать игрока, попавшего под вражескую гранату;
sm_fire_damage_knife - Возможность выбора, будут ли игроки гореть при обычном ударе ножа*;
sm_fire_duration - Установка времени горения в секундах;
sm_fire_damage_friendlyfire - Следовать ли настройке сервера mp_friendlyfire.
С версии 1.1.2:
sm_fire_weapons - Выбор режима работы плагина:
0 - Стандартный, любое оружие наносит повреждения всем из квар-листа.
1 - Никто не горит, кроме носителей определённого оружия по списку вооружения и квар-листа.
2 - Поджог всех, кроме носящих определённого оружия из списка вооружения.

Примечания: * - под обычным ударом подразумевается ножевое ранение основным и альтернативный видом атаки, но не метательный нож!
Альтернативный вид для версии 1.0.3:
// This file was auto-generated by SourceMod (v1.4.7-dev)
// ConVars for plugin "FireDamage_v1.0.3.smx"


// Включение функции возгорания от любых повреждений.
// -
// Default: "1"
// Minimum: "0.000000"
// Maximum: "1.000000"
sm_fire_damage "1"

// Наследовать настройку сервера [mp_friendlyfire 1].
// -
// Default: "1"
// Minimum: "0.000000"
// Maximum: "1.000000"
sm_fire_damage_friendlyfire "1"

// Включение возгорания игроков от взрыва HE гранаты.
// -
// Default: "1"
// Minimum: "0.000000"
// Maximum: "1.000000"
sm_fire_damage_he "1"

// Включение возгорания игроков от вреда удара ножом.
// -
// Default: "1"
// Minimum: "0.000000"
// Maximum: "1.000000"
sm_fire_damage_knife "1"

// Продолжительность горения после полученного вреда.
// -
// Default: "1"
// Minimum: "1.000000"
sm_fire_duration "1"
Альтернативный вид для версии 1.1.3:
// This file was auto-generated by SourceMod (v1.4.7-dev)
// ConVars for plugin "FireDamage_v1.1.3.smx"


// Включение функции возгорания от любых повреждений.
// -
// Default: "1"
// Minimum: "0.000000"
// Maximum: "1.000000"
sm_fire_damage "1"

// Наследовать настройку сервера [mp_friendlyfire 1].
// -
// Default: "1"
// Minimum: "0.000000"
// Maximum: "1.000000"
sm_fire_damage_friendlyfire "1"

// Включение возгорания игроков от взрыва HE гранаты.
// -
// Default: "1"
// Minimum: "0.000000"
// Maximum: "1.000000"
sm_fire_damage_he "1"

// Включение возгорания игроков от обычного удара ножом.
// -
// Default: "1"
// Minimum: "0.000000"
// Maximum: "1.000000"
sm_fire_damage_knife "1"

// Продолжительность горения после полученного вреда.
// -
// Default: "1"
// Minimum: "1.000000"
sm_fire_duration "1"

// Режим возгорания:
// 0 - Всех, при любом повреждении.
// 1 - Игроков с определённым оружием.
// 2 - Обращение для игроков с определённым оружием.
// -
// Default: "0"
// Minimum: "0.000000"
// Maximum: "2.000000"
sm_fire_weapons "0"
Альтернативный вид для версии 1.2.4 и выше:
// This file was auto-generated by SourceMod (v1.4.7-dev)
// ConVars for plugin "FireDamage_v1.2.4.smx"


// Включение функции возгорания от любых повреждений.
// -
// Default: "1"
// Minimum: "0.000000"
// Maximum: "1.000000"
sm_fire_damage "1"

// Наследовать настройку сервера [mp_friendlyfire 1].
// -
// Default: "1"
// Minimum: "0.000000"
// Maximum: "1.000000"
sm_fire_damage_friendlyfire "1"

// Список вооружения для 0 режима [sm_fire_weapons]
// (в 1 и 2 происходит слияние всех настроек):
// Включение возгорания игроков от ak47.
// -
// Default: "1"
sm_fire_dmg_ak47 "1"

// Включение возгорания игроков от aug.
// -
// Default: "1"
sm_fire_dmg_aug "1"

// Включение возгорания игроков от awp.
// -
// Default: "1"
sm_fire_dmg_awp "1"

// Включение возгорания игроков от взрыва бомбы C4.
// -
// Default: "1"
sm_fire_dmg_c4 "1"

// Включение возгорания игроков от deagle.
// -
// Default: "1"
sm_fire_dmg_deagle "1"

// Включение возгорания игроков от elite.
// -
// Default: "1"
sm_fire_dmg_elite "1"

// Включение возгорания игроков от famas.
// -
// Default: "1"
sm_fire_dmg_famas "1"

// Включение возгорания игроков от fiveseven.
// -
// Default: "1"
sm_fire_dmg_fiveseven "1"

// Включение возгорания игроков от flashbang.
// -
// Default: "1"
sm_fire_dmg_flashbang "1"

// Включение возгорания игроков от g3sg1.
// -
// Default: "1"
sm_fire_dmg_g3sg1 "1"

// Включение возгорания игроков от galil.
// -
// Default: "1"
sm_fire_dmg_galil "1"

// Включение возгорания игроков от glock.
// -
// Default: "1"
sm_fire_dmg_glock "1"

// Включение возгорания игроков от взрыва HE гранаты.
// -
// Default: "1"
sm_fire_dmg_he "1"

// Включение возгорания игроков от обычных ударов ножа.
// -
// Default: "1"
sm_fire_dmg_knife "1"

// Включение возгорания игроков от метательных ножей.
// -
// Default: "1"
sm_fire_dmg_knifet "1"

// Включение возгорания игроков от m249.
// -
// Default: "1"
sm_fire_dmg_m249 "1"

// Включение возгорания игроков от m3.
// -
// Default: "1"
sm_fire_dmg_m3 "1"

// Включение возгорания игроков от m4a1.
// -
// Default: "1"
sm_fire_dmg_m4a1 "1"

// Включение возгорания игроков от mac10.
// -
// Default: "1"
sm_fire_dmg_mac10 "1"

// Включение возгорания игроков от mp5navy.
// -
// Default: "1"
sm_fire_dmg_mp5navy "1"

// Включение возгорания игроков от p228.
// -
// Default: "1"
sm_fire_dmg_p228 "1"

// Включение возгорания игроков от p90.
// -
// Default: "1"
sm_fire_dmg_p90 "1"

// Включение возгорания игроков от scout.
// -
// Default: "1"
sm_fire_dmg_scout "1"

// Включение возгорания игроков от sg550.
// -
// Default: "1"
sm_fire_dmg_sg550 "1"

// Включение возгорания игроков от sg552.
// -
// Default: "1"
sm_fire_dmg_sg552 "1"

// Включение возгорания игроков от smokegrenade.
// -
// Default: "1"
sm_fire_dmg_smokegrenade "1"

// Включение возгорания игроков от tmp.
// -
// Default: "1"
sm_fire_dmg_tmp "1"

// Включение возгорания игроков от ump45.
// -
// Default: "1"
sm_fire_dmg_ump45 "1"

// Включение возгорания игроков от usp.
// -
// Default: "1"
sm_fire_dmg_usp "1"

// Включение возгорания игроков от xm1014.
// -
// Default: "1"
sm_fire_dmg_xm1014 "1"

// Продолжительность горения после полученного вреда.
// -
// Default: "1"
// Minimum: "1.000000"
sm_fire_duration "1"

// Режим возгорания:
// 0 - Всех, при любом повреждении.
// 1 - Игроков с определённым оружием.
// 2 - Обращение для игроков с определённым оружием.
// -
// Default: "0"
// Minimum: "0.000000"
// Maximum: "2.000000"
sm_fire_weapons "0"

PHP:
v1.0.0 (30.12.2012 год) - первая версия плагина;
v1.0.2 (30.12.2012 год) - добавлена зависимость от mp_friendlyfire (по желанию) и отключение горения от удара ножом;
v1.0.3 (6.01.2013 год)  - оптимизация кода;
v1.1   (1.01.2013 год)  - добавлен целый лист для настройки почти любого вооружения;
v1.1.1 (2.01.2013 год)  - добавлено новое умолчание - использование оружия из списка в вашу пользу;
v1.1.2 (4.01.2013 год)  - убран излишний CVAR, все функции сохранены;
v1.1.3 (6.01.2013 год)  - оптимизация кода;
v1.2   (5.01.2013 год)  - добавлены дополнительные квары на почти любое оружие. Работает совмещение квар-листа и списка вооружения;
v1.2.1 (5.01.2013 год)  - исправлена ошибка с бомбой C4, когда воспламенение от её взрыва работало просто по умолчанию;
v1.2.2 (6.01.2013 год)  - оптимизация кода;
v1.2.3 (7.01.2013 год)  - добавлен эффект "огненной гранаты" для sm_fire_dmg_he "1";
v1.2.4 (9.01.2013 год)  - добавлен новый квар sm_fire_dmg_knifet "1" для метательных ножей "CSS Throwing Knives";
v1.2.5 (10.01.2013 год) - исправлена ошибка из лога ошибок: 'Native "IsClientInGame" reported: Client index 0 is invalid'.
 
Последнее редактирование модератором:

EPacker2

3D-моделист
Сообщения
1,040
Реакции
759
Очень интересно! Ведь можно оптимизировать плагин в более интересный! (В другую версию)
Что-то типо: на карте лежит ящик с воспламеняющимися патронами (модельку можно подобрать). Когда их кто-либо подбирает, только патроны могут воспламенять противника, как это было в Left4Dead. :)

Добавлено через 2 минуты
Чтобы не париться с выставлением ящиков на карту, можно сделать что-то типо этого:
Каждые 10 сек. 1 ящик выпадает на респу каждой из команд. Но тогда надо бы создать проверку, есть ли он уже там - чтобы не лагало.
Это просто предложение. :)
 
Последнее редактирование:

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755
  • Автор ресурса
  • #3
только патроны могут воспламенять противника
Замудрил ты... Я любитель, а не профи) Пока обнародую более простые гибкие настройки, а остальное уже по возможности.
Каждые 10 сек. 1 ящик выпадает на респу каждой из команд. Но тогда надо бы создать проверку, есть ли он уже там - чтобы не лагало
Оффтоп
Это уже много конструкций... Получается: Fire Damage + Стриппер + Ограничитель.
 

EPacker2

3D-моделист
Сообщения
1,040
Реакции
759
Ну просто я увидел плагин, решил предложить. Зато тебе опыт)
Чем сложнее задача, тем больше возможностей узнать новое, и попробовать. :)
 

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755
  • Автор ресурса
  • #5
Оффтоп
Ну, ящик с патронами тем же стриппером по координатам и поставь... Чтобы он исчезал при сборе придумай и всё)
Вообще, я даже уже догадываюсь, как приблизительно такое осуществить. Но до этого далеко.
 

EPacker2

3D-моделист
Сообщения
1,040
Реакции
759
Оффтоп
Ну, ящик с патронами тем же стриппером по координатам и поставь... Чтобы он исчезал при сборе придумай и всё)
Вообще, я даже уже догадываюсь, как приблизительно такое осуществить. Но до этого далеко.
Я бы с радостью, но увы, я с павном не очень. Могу только что-либо изменить, добавить, исправить, но глобально что-то добавлять - не мое. :)
 

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755
  • Автор ресурса
  • #7
глобально что-то добавлять
Оффтоп
Обновил версию до похожей на твои пожелания. Теперь можно сделать так, чтобы игроки горели только после попадания пули, а всё остальное игнорировалось... Либо от пуль и ножа, пуль/гранаты и пуль/ножа/гранаты.
 

Impulse72

Участник
Сообщения
244
Реакции
163
1. Хукай OnTouch ящика
2. Глобальной переменной присвой индекс челвека который дотронулся.
3. Если именно этот человек стреляет и попадает, то противник воспламеняется.
 

Impulse72

Участник
Сообщения
244
Реакции
163
HookSingleEntityOutput(entity, "OnTakeDamage", EntityOutput:OnTakeDamage, false);

entity - объект
OnTakeDamage - что хукаем, например получение урона
EntityOutput:OnTakeDamage - функция, которую применим.
false - если true, отлов события будет только один раз.
 

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755
  • Автор ресурса
  • #10
HookSingleEntityOutput(entity, "OnTakeDamage", EntityOutput:OnTakeDamage, false);
Толку то, я предметы создавать не умею. Рядом с респауном, да ещё один... Не видел такого примера, не зная строение кода ничего сделать не смогу) Надо бы твой плагин подарочков раскроить, код, да вместо подарка прикрутить модель боезапасов. :-D
 

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755
  • Автор ресурса
  • #11
Добавлена новая модифицированная версия 1.1 плагина.
Примеры возможностей/применения:

Изначально плагин работает в стандартном (дефолтном) режиме - поджигание происходит в любом случае для всех игроков, которые получают ранения (с любым оружием от любого).

Если требуется оставить всё, как есть, но исключить горение игроков от нанесения повреждений ножом - sm_fire_damage_knife "0". То же самое для гранат (sm_fire_damage_he "0").

Нужно, чтобы игрок с ножом горел (приостановить сильно "прытких свинорезов"), но не при бое на ножах? Ставим sm_fire_damage_knife "0", sm_fire_weapons "1" и knife 1. То же самое справедливо для гранат (например, отмена горения под разминочный раунд на одних гранатах: sm_fire_damage_he "0", sm_fire_weapons "1" и hegrenade 1).

Допустим, вам нужно "сбалансировать" выбор оружия игроками (наказать за выбор наиболее мощного/точного), чтобы они, нося (хоть стоя, хоть сидя, хоть бегая) перед собой, например купив awp, горели при ранениях. Ставим sm_fire_weapons "1" и awp 1.
В итоге получаем - игрок с awp будет воспламеняться от любых ранений!
 
Последнее редактирование:

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755
  • Автор ресурса
  • #12
Залил версию плагина 1.1.1. :) Имеет ту же функциональность + дополнительный квар, позволяющий легко изменить умолчания для всего списка оружия - купленное оружие с 1 не даст вам поджариться! :-D
Одно из самых практичных применений данного плагина (по факту) - сделать гранату зажигательной, как и ядовитый дым с поджиганием (что-то вроде химической реакции, химический снаряд-граната) или "слепу" - коктелем Молотова (если "запульнуть" прямо в игрока, отняв хоть 1 хп).
Также, нетрудно сделать метательный нож зажигательным (назовите, как хотите) - его нет в списке, но действие для него будет по умолчанию.
 

SenatoR

Участник
Сообщения
773
Реакции
344
Что толку от плагина, когда нет исходника?
 

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755
  • Автор ресурса
  • #15
Что толку от плагина, когда нет исходника?
"Практика" показывает, что для полный работы плагина исходник не нужен! :-D
Оффтоп
Он не любит их выкладывать.
Если сделаю версию с ящичками - выкладу)
 

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755
  • Автор ресурса
  • #16
Поистине гибкость настроек доведена до предела. Теперь "играться с огнём" можно, как угодно! :-D
Можно сказать, мысль от EPacker2 приведена в действие. Да, никаких дополнительных ящиков нет. Но несложно учитывать, что он, а вернее "зажигательные патроны" уже у вас в стволе! :boss:
Хочется сделать awp ещё мощнее? Поставьте для него зажигательные пули: sm_fire_weapons "0" и sm_fire_dmg_awp "1" (тогда остальной квар-лист в 0).
Или Скаут кажется слабоват для снайперки, а может "изюминки" к нему охото добавить? То же самое (sm_fire_dmg_scout "1").
Считаете неправильным, что весь плейс бомбы горит, а вот игроки, задетые взрывом - нет? Не проблема: sm_fire_weapons "0" и sm_fire_dmg_c4 "1".
Предыдущие описанные методы справедливы.
Как только ещё настроить нельзя с огнём, даже не знаю! :)
 
Сверху Снизу