Перейти к содержанию
Авторизация  
Hardtmuth

Эффект критического ранения

Рекомендуемые сообщения

 

Эффект критического ранения 

Автор: XMK

1. Создаем файл effect_blood.script и записываем туда следующее:

lite_treshold = 0.05 -- насколько должно уменьшиться здоровье с предыдущего обновления чтоб экран окрасился в красный
crit_treshold = 0.30 -- насколько должно уменьшиться здоровье с предыдущего обновления чтоб ГГ начало шатать
drop_item_on_crit_prob = 0.20 -- вероятность того что ГГ выронит оружие
effector_power_coeff = 0.7
prev_health = -1
chk_h_t = 0

function wounded_pp_update()
   if (chk_h_t or 0) < time_global() then
     chk_h_t = time_global()+1000
     if prev_health > (db.actor.health + lite_treshold) then
       level.add_pp_effector("fire_hit.ppe", 2011, false)
       local effector_power = (prev_health - db.actor.health)*100*effector_power_coeff
       level.set_pp_effector_factor(2011, effector_power)
       if prev_health > db.actor.health + crit_treshold then
         level.add_cam_effector("camera_effects\\fusker.anm", 999, false, "")     
         local snd_obj = xr_sound.get_safe_sound_object([[actor\pain_3]])
         snd_obj:play_no_feedback(db.actor, sound_object.s2d, 0, vector(), 1.0)
         if math.random() < drop_item_on_crit_prob then
           local active_item = db.actor:active_item()
           if active_item and active_item:section() ~= "bolt" and active_item:section()~= "wpn_knife" then
             db.actor:drop_item(active_item)
           end
         end
       end
     end
     prev_health = db.actor.health
   end
end

2. Далее открываем bind_stalker.script и после строчек:

function actor_binder:update(delta)
   object_binder.update(self, delta)
   local time = time_global()
   game_stats.update (delta, self.object)

пишем:

effect_blood.wounded_pp_update()

 

  • Хабар 1
  • Спасибо 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Попрошу заметить, что данный эффект хорошо работает на платформе Тень Чернобыля. На Платформе Чистого Неба данный скрипт не работает!

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

ShadowStalker работает, только local snd_obj надо назначать так local snd_obj = sound_object("actor\\pain_3")  иначе вылет будет. В остальном всё прекрасно работает

  • Хабар 1

В беге за рассветом приближаешь свой закат

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

vader_33 Cпасибо что помог. И правда работает.

 


Дополнено 0 минут спустя

vader_33  Cпасибо что помог. И правда работает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу