Форум

Воскресенье, 29.06.2025, 06:50 Приветствую Вас Гость
Главная | Регистрация | Вход | RSS
[ Новые сообщения · Участники · Правила форума · Поиск ]
  • Страница 1 из 1
  • 1
Модератор форума: [Try]DiGGeR225  
Эффект критического раненния
[Try]DiGGeR225Дата: Воскресенье, 05.06.2011, 12:44 | Сообщение # 1
Прибывший
Группа: Администраторы
Сообщений: 501
Награды: 5
Репутация: 4
Статус:
1. Создаем файл effect_blood.script и записываем туда следущее:
Code
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
              p  rev_health = db.actor.health
            end
end

2. Далее открываем bind_stalker.script:
после строчек:
Code
function actor_binder:update(delta)
          object_binder.update(self, delta)
          local time = time_global()
          game_stats.update (delta, self.object)

пишем:
Code
effect_blood.wounded_pp_update()



 
  • Страница 1 из 1
  • 1
Поиск:

Чат доступен только пользователям сайта
Зарегистрироваться

ТОП самых общительных:

[Try]DiGGeR225
Репутация:4
Постов: 501
Файлов: 43
Krendelyok
Репутация:0
Постов: 108
Файлов: 0
Sniper
Репутация:0
Постов: 82
Файлов: 0
Инквизитор
Репутация:0
Постов: 27
Файлов: 0
[K715]
Репутация:0
Постов: 22
Файлов: 0
Конструктор сайтовuCoz