кенитееку 📅Вторник 🕑20:49:15 |
ispodtankaboom 📅Вторник 🕑20:17:11 |
volk 📅Вторник 🕑18:57:02 |
волк2786 📅Вторник 🕑18:52:20 |
advikjaeger 📅Вторник 🕑17:02:25 |
xesali3252 📅Вторник 🕑16:06:56 |
|
Форум сталкер S.T.A.L.K.E.R.: Школа моддинга Анимация и 3D-графика Эффект критического ранения гг (Эффект критического ранения главного героя) |
Эффект критического ранения гг |
Эффект критического ранения главного героя, персонажа:
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 Далее открываем 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() |
Зона - самое удивительное, с чем сталкивался человек! |
ага всё понятно
|
| |||
| |||