Fire Damage

Тема в разделе "Плагины для SourceMod", создана пользователем AlmazON, 30 дек 2012.

  1. AlmazON

    AlmazON деревянный © yand3xmail

    Сообщения:
    4.586
    Симпатии:
    1.994
    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'.
     

    Вложения:

    Последнее редактирование: 20 июл 2014
    ★Сириус★, Andrey, Impulse72 и 2 другим нравится это.
  2. EPacker2

    EPacker2 3D-моделист

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

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

    AlmazON деревянный © yand3xmail

    Сообщения:
    4.586
    Симпатии:
    1.994
    Замудрил ты... Я любитель, а не профи) Пока обнародую более простые гибкие настройки, а остальное уже по возможности.
    Оффтоп
    Это уже много конструкций... Получается: Fire Damage + Стриппер + Ограничитель.
     
  4. EPacker2

    EPacker2 3D-моделист

    Сообщения:
    1.040
    Симпатии:
    634
    Ну просто я увидел плагин, решил предложить. Зато тебе опыт)
    Чем сложнее задача, тем больше возможностей узнать новое, и попробовать. :)
     
  5. AlmazON

    AlmazON деревянный © yand3xmail

    Сообщения:
    4.586
    Симпатии:
    1.994
    Оффтоп
    Ну, ящик с патронами тем же стриппером по координатам и поставь... Чтобы он исчезал при сборе придумай и всё)
    Вообще, я даже уже догадываюсь, как приблизительно такое осуществить. Но до этого далеко.
     
  6. EPacker2

    EPacker2 3D-моделист

    Сообщения:
    1.040
    Симпатии:
    634
    Я бы с радостью, но увы, я с павном не очень. Могу только что-либо изменить, добавить, исправить, но глобально что-то добавлять - не мое. :)
     
  7. AlmazON

    AlmazON деревянный © yand3xmail

    Сообщения:
    4.586
    Симпатии:
    1.994
    Оффтоп
    Обновил версию до похожей на твои пожелания. Теперь можно сделать так, чтобы игроки горели только после попадания пули, а всё остальное игнорировалось... Либо от пуль и ножа, пуль/гранаты и пуль/ножа/гранаты.
     
  8. Impulse72

    Impulse72

    Сообщения:
    246
    Симпатии:
    170
    1. Хукай OnTouch ящика
    2. Глобальной переменной присвой индекс челвека который дотронулся.
    3. Если именно этот человек стреляет и попадает, то противник воспламеняется.
     
  9. Impulse72

    Impulse72

    Сообщения:
    246
    Симпатии:
    170
    HookSingleEntityOutput(entity, "OnTakeDamage", EntityOutput:OnTakeDamage, false);

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

    AlmazON деревянный © yand3xmail

    Сообщения:
    4.586
    Симпатии:
    1.994
    Толку то, я предметы создавать не умею. Рядом с респауном, да ещё один... Не видел такого примера, не зная строение кода ничего сделать не смогу) Надо бы твой плагин подарочков раскроить, код, да вместо подарка прикрутить модель боезапасов. :-D
     
  11. AlmazON

    AlmazON деревянный © yand3xmail

    Сообщения:
    4.586
    Симпатии:
    1.994
    Добавлена новая модифицированная версия 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 будет воспламеняться от любых ранений!
     
    Последнее редактирование: 1 янв 2013
  12. AlmazON

    AlmazON деревянный © yand3xmail

    Сообщения:
    4.586
    Симпатии:
    1.994
    Залил версию плагина 1.1.1. :) Имеет ту же функциональность + дополнительный квар, позволяющий легко изменить умолчания для всего списка оружия - купленное оружие с 1 не даст вам поджариться! :-D
    Одно из самых практичных применений данного плагина (по факту) - сделать гранату зажигательной, как и ядовитый дым с поджиганием (что-то вроде химической реакции, химический снаряд-граната) или "слепу" - коктелем Молотова (если "запульнуть" прямо в игрока, отняв хоть 1 хп).
    Также, нетрудно сделать метательный нож зажигательным (назовите, как хотите) - его нет в списке, но действие для него будет по умолчанию.
     
  13. SenatoR

    SenatoR Модератор

    Сообщения:
    712
    Симпатии:
    271
    Что толку от плагина, когда нет исходника?
     
  14. EPacker2

    EPacker2 3D-моделист

    Сообщения:
    1.040
    Симпатии:
    634
    Он не любит их выкладывать. :-D
     
  15. AlmazON

    AlmazON деревянный © yand3xmail

    Сообщения:
    4.586
    Симпатии:
    1.994
    "Практика" показывает, что для полный работы плагина исходник не нужен! :-D
    Оффтоп
    Если сделаю версию с ящичками - выкладу)
     
  16. AlmazON

    AlmazON деревянный © yand3xmail

    Сообщения:
    4.586
    Симпатии:
    1.994
    Поистине гибкость настроек доведена до предела. Теперь "играться с огнём" можно, как угодно! :-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".
    Предыдущие описанные методы справедливы.
    Как только ещё настроить нельзя с огнём, даже не знаю! :)
     
    EPacker2 нравится это.