[OSP] Poisoned weapons


Poisoned weapons 

Минимод, OSP, добавление отравленного оружия в игру.
Как это работает? Вы можете сделать любое оружие отравленным. После того, как ваши враги будут поражены таким оружием, их очки здоровьея начнут уменьшаться с течением времени (-1% в секунду, поэтому для того, чтобы убить врага со здоровьем 40 хп или 1000 за, потребуются те же 100 секунд). Когда их здоровье становится равным нулю, они всегда умирают, если у них нет флага героя. Рекомендуется установить какую-нибудь камеру после смерти, чтобы битва продолжалась после вашего падения, чтобы через некоторое время вы могли наблюдать, как яд мстит за вас.


Теперь давайте перейдем к самой реализации. Есть 3 шага:

1) Добавьте это где-нибудь в module_constants.py:

Код:
slot_agent_is_poisoned = 30

2) Добавьте это в конец скрипта game_get_item_extra_text в module_scripts.py:

Код:
(else_try),                   
 (this_or_next|eq, ":item_no", "itm_falchion"), #This is a list of weapons that should have poison effect
 (eq, ":item_no", "itm_arrows"),          
  (try_begin),
   (eq, ":extra_text_id", 0),
   (set_result_string, "@Poisoned"),
   (set_trigger_result, 0x3F8000),
  (try_end),
 ]),


3) Добавьте эти триггеры миссии в mission_templates.py, а затем добавьте их имена в любой необходимый шаблон:

toxic1 => помечает цель как отравленную после того, как она получает удар по определенному оружию.
toxic2 => наносит урон в течение долгого времени, если цель активна
toxic3 => определяет, что должно произойти, если цель умерла от яда, а не от чего-то другого

Код:
poison1 = (ti_on_agent_hit, 0, 0, [], [
(store_trigger_param_1, ":victim"),
        (store_trigger_param_2, ":attacker"),
(store_trigger_param, ":missile", 5),  
  
#Here we should add weapons that were listed before. Note that weapons are added in reg0 and missiles in ":missile" 
variable. It is important. Also do keep in mind that in this case, throwing weapons are treated as missiles
(this_or_next|eq, reg0, "itm_falchion"), 
(eq, ":missile", "itm_arrows"),
 (try_begin),
  (agent_get_slot, ":is_poisoned", ":victim", slot_agent_is_poisoned),  
  (get_player_agent_no, ":player"),
          (agent_get_horse, ":p_horse", ":player"),    
   (try_begin),   
    (eq, ":attacker", ":player"),
    (neq, ":is_poisoned", 1),
     (try_begin),
      (neg|agent_is_human, ":victim"), 
      (display_message, "@You have poisoned a horse!", 0x3F8000),      
      (agent_set_slot, ":victim", slot_agent_is_poisoned, 1),   
     (else_try),      
      (display_message, "@You have poisoned the enemy!", 0x3F8000), 
      (agent_set_slot, ":victim", slot_agent_is_poisoned, 1),
             (try_end), 
            (else_try),
     (eq, ":victim", ":player"),          
     (neq, ":is_poisoned", 1),         
     (display_message, "@You are poisoned!", 0x3F8000),
     (agent_set_slot, ":victim", slot_agent_is_poisoned, 1),
    (else_try),         
     (eq, ":victim", ":p_horse"),          
     (neq, ":is_poisoned", 1),
     (display_message, "@Your horse is poisoned!", 0x3F8000),
     (agent_set_slot, ":victim", slot_agent_is_poisoned, 1),
    (else_try),
             (neq, ":is_poisoned", 1),      
     (agent_set_slot, ":victim", slot_agent_is_poisoned, 1),
            (try_end),
           (try_end),
     ])
poison2 = (1, 0, 0, [], [ 
   
          (try_for_agents,":cur_agent"),
  (agent_is_alive, ":cur_agent"),
  (agent_get_slot, ":is_poisoned", ":cur_agent", slot_agent_is_poisoned),            
          (eq, ":is_poisoned", 1),   
           (try_begin),
            (store_agent_hit_points,":agent_hp",":cur_agent", 0),
            (val_sub,":agent_hp", 1),
    (agent_set_hit_points,":cur_agent",":agent_hp", 0),
    (le,":agent_hp", 1),
            (remove_agent,":cur_agent"),
           (try_end), 
          (try_end),
     ])
 
poison3 = (ti_on_agent_killed_or_wounded, 0, 0, [], [
        (store_trigger_param_1, ":victim"),  
(agent_get_troop_id, ":troop", ":victim"),
(str_store_troop_name, s33, ":troop"),
(agent_get_slot, ":is_poisoned", ":victim", slot_agent_is_poisoned),
 (try_begin),
          (eq, ":is_poisoned", 1), 
  (agent_is_human, ":victim"),
  (troop_is_hero, ":troop"), 
  (display_message, "@{s33} fainted of poison.", 0x3F8000),
  (set_trigger_result, 2),
 (else_try),
  (eq, ":is_poisoned", 1), 
  (agent_is_human, ":victim"),
  (display_message, "@{s33} died of poison.", 0x3F8000),
  (set_trigger_result, 1),
 (else_try),
  (eq, ":is_poisoned", 1),          
  (display_message, "@Horse died of poison.", 0x3F8000),
  (set_trigger_result, 1),
 (try_end),
    ]) 


Это всё!

Родная страница 



- используйте эту кнопку если вы обнаружили ошибку/искажение содержимого/отсутствие контента в новости или если хотите сообщить администрации о выходе новой версии мода и т.п.

Комментариев 0

Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.

Онлайн

Сейчас на сайте: 32
Гостей: 30

Пользователи: 
- отсутствуют

Последние комментарии

MOD wind of the war - New Era 74fix8
nerstarg, 21 октября 2024 22:22
вроде бы у мода слили новую версию под номером 75 Fix 30.2 (точно не 75fix3 - там файлы датированы...
MOD Napoleonic Wars Functional/UI pack
glik, 20 октября 2024 13:33
Есть ли у кого-нибудь еще такая модификация?...
MOD NOVA AETAS (ОБСУЖДЕНИЕ)
Hezed, 17 октября 2024 13:55
gogotop, Вашу проблему легче решить. Вам нужно дождаться пока лорды будут проходить рядом с...
MOD Honour&Glory (Честь и Слава)
Дима Гончар, 15 октября 2024 17:18
Andriyko, запрошую доречі у наш discord сервер, там ми можемо оперативно відповідати на питання і...
MOD Honour&Glory (Честь и Слава)
Кривий Ніс, 15 октября 2024 17:15
Andriyko, це фракційний козацький квест. Береться в Байди Вишневецького, якщо з козаками позитивні...
Sunset Racer - Моя новая игра про ретро авто!
the_raven, 14 октября 2024 02:01
А где Советский автопром, прастихоспади?   А вообще, напнило мне Ford Racing 2. Прикольная была...
MOD Horses
the_raven, 14 октября 2024 01:58
А разве этот мод не называется просто Horses? На Нексусе она называется просто Horses....
MOD Honour&Glory (Честь и Слава)
Andriyko, 13 октября 2024 13:54
Привет народ, подскажите, где брать квест на Казацкую бухту, для получения лодки?...
MOD Honour&Glory (Честь и Слава)
Andriyko, 12 октября 2024 16:59
Привет всем! Кто знает, как взять квест для получения лодки? Играл первый раз и помню, что возле...