Сповіщення
Очистити все

SoC. Критичне поранення


Ранг:
Майстер
Роль:
Гість
Записи:
752
Приєднався:
2 роки тому
 

Ефект критичного поранення ГГ у "Тіні Чорнобиля"

1. Створити файл effect_blood.script та записати наступне:

 
lite_treshold = 0.05     --'наскільки має зменшитися здоров'я з попереднього оновлення, щоб екран забарвився в червоний crit_treshold 
= 
0.30 --     'наскільки має зменшитися здоров'я з попереднього оновлення, щоб ГГ почало хитати 
effector_power_coeff = 0.7 
prev_health = -1    
 
функція ranjen_pp_update ( ) 
    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 ( [ [ актор \ 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 
        кінець 
      кінець
    prev_health = db.actor.health
    кінець 
кінець
 

2. Далі відкриваємо bind_stalker.script та у функцію

 
функція actor_binder:update ( delta ) 
  object_binder.update ( self, delta ) 
  локальний  час = time_global ( ) 
  game_stats.update ( delta, self.object )
 

додаємо рядок

 
effect_blood.wounded_pp_update ( )

   
Цитата