boutch71 Fondateur et Admin
Messages : 1672 Date d'inscription : 25/03/2011 Age : 53 Localisation : Panneau De Control du Réacteur!
| Sujet: New Nanosuit ver.2 Dynamic HUD Mask Textures (Created By Boutch71) Lun 11 Mar - 21:12 | |
| ~ New Nanosuit Dynamic HUD Mask Textures ~(Created By Boutch71)~ Project creation New Nanosuit HUD.. Bonjour à tous! Après avoir modder une grande partie du DMX 1.3.5 avec le "Addon by Saruman 1.1" ainsi que ma version évoluer du "Nature Winter 2.3" qui n'est pas encore terminer j'ai décidez de vous présenter la creation de mon tout premier HUD Dynamic pour la Nanosuit qui seras surement (une fois terminer!) intégré (rajout d'un script) et fusionner dans le "Nature Winter 2.3 v1.01 Deluxe Version ainsi que le DMX 1.3.5 ENGMOD. En visonnant les différents HUD AMK créer sur plusieurs Mod pour SOC je me suis tourné du coté des HUD du mod OGSE et call Of Pripyat qui sont beaucoups plus beaux et plus réaliste je parle de la création estétique des HUD mis a part les HUD du DMX 1.3.4 & 1.3.5 pour SOC qui fut pour moi les plus raffinés. Parlons plutôt du premier HUD créer pour la nanosuit qu'on as pu voir pour la première fois dans le très sanglant et Horrifiant mod ABC INFERNO, la texture du HUD est en faite celle de la combinaison des scientifiques mais, plus coloré avec un léger design hi-tech avec biensûr les 6 séquences de textures pour les dommages causer lors des attaques. La véritable raison qui ma motiver a créer un nouveau HUD pour la nanosuite est en faite du a l'absence de la textures du HUD pour la version 2 destiné et configurer pour être utilisez avec le "Addon by Saruman 1.1" dans le DMX 1.3.5 de Shadow je me suis dit comment je vais réussir à créer la texture du HUD qui représenteras le mieux la "Nanosuit ver.2"? j'ai alors commencer par visionner certaines images et vidéos du HUD d'origine du jeux "Crysis 2" ensuite j'ai laissez libre a mon imagination il fallais à tout pris créer une texture comme si le personnage étais a l'intérieur du casque de la Nanosuit en me référant sur le profil du casque avec une vue sur plusieurs angles. J'ai alors utilisez le logiciel de retouche Gimp 2.0 ainsi que Photofiltre Studio x et commencer à dessiné le motif sur fond transparent avec les outils nécessaires ainsi que l'une des textures du HUD du DMX 1.3.5 celle de la combinaison des militaires, ce fût au départ assez pénible mais, réalisable tout de même! après plusieurs heures j'ai décidez de mettre la textures de coté et my remettre plutard. Après deux mois d'attente j'ai retravaillez sur la texture afin de la finaliser une fois pour toute! et voici le résultât final en image rien que pour vos yeux - ~ Nanosuit Dynamic HUD Mask Textures Version 1# ~- Spoiler:
~ New Nanosuit Dynamic HUD Mask Textures Version 2# ~~ With Crytech System Damaged Séquences ~- Sequence 1:- Spoiler:
- Sequence 2:- Spoiler:
- Sequence 3:- Spoiler:
- Sequence 4:- Spoiler:
- Sequence 5:- Spoiler:
- Sequence 6:- Spoiler:
Vous aurez l'occasion de voir en temps réel ou peut-être même en vidéo montage le résultât final du nouveau HUD pour la Nanosuit version:2 Qui seras aussi rajouter avec les autres HUD (Mask à gaz) du "Dynamic HUD from ABC Inferno and AMK by Rulix aka Bak" dans le "Nature Winter 2.3 BE Deluxe" et le "DMX 1.3.5 ENGMOD v1.0 Beta" d'ici peu et soyez patient mes amis car ses images sont pour l'instant mon model de base sans le "HUD Blood Splatters" Au fils du temps quelques modders on repris ou bien créer de nouveaux HUD pour nous en mettre plein la vue! Comparatif des différents HUD - AMK ABC Inferno - - Spoiler:
Nanosuit Exo Merc Gaz Milita scient DMX DKZ-02 - Improved & Blood- Spoiler:
DMX 1.3.4 & 1.3.5 By Shadow - - Spoiler:
OGSE 0.6.9.2 HUD - - Spoiler:
NEW HUD AMK que j'ai utilisez pour le "Nature Winter 2.3 BE Deluxe" - Et que je vais vous présenter d'ici quelques jours sur le poste principale. - Spoiler:
Afin de pouvoir faire fonctionner et intégrer les textures du HUD il vous faut nul autre que le mod "Dinamic HUD from ABC Inferno and AMK by Rulix aka Bak" mais, si vous vous y connaissez en script il vous faudras l'intégrer a votre mod et y ajouter le nom de toutes les armures qui disposent d'un masque a gaz et vous pouvez aussi intégrer le son de la respiration dans les casques avec un script assez simple a créer et installez - Exemple: 1 - Commencez par vous créer un fichier .txt avec le bloc-note ou bien notepad++. 2 - Et collez ce script a l'intérieur - - Spoiler:
- Code:
-
------------------------------Dynamic HUD Breating Sounds Effects-----------------------------
-- The table contains a section of suits with a helmet. Supplement those that are in your mod! local outfits = { ["mp_military_outfit"]=true, ["specnaz_outfit_m1"]=true, }
-- the sound of breathing ( Need file sounds\actor\gasmask_idle_2.ogg ) local snd = xr_sound.get_safe_sound_object([[actor\gasmask_idle_2]])
-- call from update (actor_binder:update(delta) ) function sound_update() local outfit = db.actor:item_in_slot(6) if outfit and outfits[outfit:section()] then if not snd:playing() then snd:play_at_pos(db.actor, vector ():set (0, 0, 0), 0, sound_object.s2d) end else if snd:playing() then snd:stop() end end end
3 - Sauvegardez votre fichier en lui donnant un nom comme "sound_breath.script" n'oubliez pas de le créer avec l'extention .script 4 - Ensuite trouvez et ouvrez le fichier gamedata\script\bind_stalker.script 5 - Trouvez la ligne - function actor_binder:update(delta) et collez ceci juste après - - Spoiler:
- Code:
-
-- sound of breathing on sound_breath.sound_update() -- sound of breathing off
ça donne ceci - - Spoiler:
- Code:
-
function actor_binder:update(delta) object_binder.update(self, delta)
-- sound of breathing on sound_breath.sound_update() -- sound of breathing off
-- Meltac start shader_control.Update() -- end -- ðàöèÿ äëÿ ÃÃ if update_cnt <= 50 then update_cnt = update_cnt + 1
6 - Vous sauvegardez en acceptant le changement (en sauvegardant avant le fichier d'origine) il est nécessaire d'avoir le mod "Dynamic HUD from ABC Inferno and AMK by Rulix aka Bak" pour que la respiration dans les casques soit plus réaliste. Pour arrivez a intégrer ou bien combiner le "Dynamic HUD from ABC Inferno and AMK by Rulix aka Bak" ce n'est pas de tout repos car il faut savoir ou et comment et dans quel fichier l'intégrer pour évitez que votre mod crash ou que vous vous retrouvez avec plusieurs bug! Voici le script en question - - Spoiler:
- Code:
-
-------------------------------------------------------------------------------- --Dinamic HUD from ABC Inferno and AMK --by Rulix aka Bak -------------------------------------------------------------------------------- local dh_ini = ini_file("misc\\dinamic_hud.ltx") local suithud_enable = rx_utils.read_from_ini(dh_ini,"main","suithud_enable",true,0) -- õóä øëåìà local zoom_enable = rx_utils.read_from_ini(dh_ini,"main","zoom_enable",true,0) -- ñìåùåíèå õóäà local blurs_enable = rx_utils.read_from_ini(dh_ini,"main","blurs_enable",true,0) -- ýôôåêò çàïîòåâàíèÿ local blood_enable = rx_utils.read_from_ini(dh_ini,"main","blood_enable",true,0) -- ýôôåêò ðàíåíèÿ local bleed_enable = rx_utils.read_from_ini(dh_ini,"main","bleed_enable",true,0) -- ýôôåêò ïëîõîãî ñàìî÷óâñòâèÿ local hit_enable = rx_utils.read_from_ini(dh_ini,"main","hit_enable",true,0) -- ýôôåêò ïîïàäàíèÿ ïî èãðîêó local brnv_enable = rx_utils.read_from_ini(dh_ini,"main","brnv_enable",true,0) -- ñëîìàííûé ÏÍÂ local shoot_enable = rx_utils.read_from_ini(dh_ini,"main","shoot_enable",true,0) -- ýôôåêò ñòðåëüáû ui_disabled = nil -------------------------------------------------------------------------------- local helmets = {stalker_outfit = {hud = "hud_gas",breakable = true,blurs = 4}, outfit_stalker_ = {hud = "hud_gas",breakable = true,blurs = 3.5}, dolg_outfit = {hud = "hud_gas",breakable = true,blurs = 3.6}, outfit_dolg_m1 = {hud = "hud_gas",breakable = true,blurs = 3.2}, scientific = {hud = "hud_sci",breakable = true,blurs = 1.8}, svoboda_heavy_outfit = {hud = "hud_mil",breakable = true,blurs = 2.8}, specops_outfit = {hud = "hud_mil",breakable = true,blurs = 2.6}, outfit_specnaz_m1 = {hud = "hud_mil",breakable = true,blurs = 2.4}, military_outfit = {hud = "hud_mil",breakable = true,blurs = 3}, -- killer_outfit = {hud = "hud_kill",breakable = true,blurs = 2.4}, dolg_heavy_outfit = {hud = "hud_kill",breakable = true,blurs = 3}, exo_outfit = {hud = "hud_exo",breakable = true,blurs = 3.3}, outfit_exo_m1 = {hud = "hud_exo",breakable = true,blurs = 3.1}, svoboda_exo_outfit = {hud = "hud_exo",breakable = true,blurs = 2.8}} helmets.ecolog_outfit = helmets.scientific helmets.protection_outfit = helmets.scientific --helmets.outfit_killer_m1 = helmets.killer_outfit
local no_drop_items = {bolt = true,wpn_knife = true} -------------------------------------------------------------------------------- local seldom_upd_time,often_upd_time function update() if db.actor then local tg = time_global() if tg > (seldom_upd_time or 100) then seldom_upd_time = tg+400 bleedcondition() end init_blurs() if tg > (often_upd_time or 50) then often_upd_time = tg+120 helmet_hud() blood() end hit_effect() broken_nv() zoom_hud() shoot_effect() end end --------------------------------------------------------------------------------
local wpn_tbl = {} local ammon = 0 local shotc = 1 local curwpn local shott local function parse_anims(sec) local hud = rx_utils.read_from_ini(nil,sec,"hud","o_O",1) local anim = rx_utils.read_from_ini(nil,hud,"shoot_effect",nil,1) or rx_utils.read_from_ini(dh_ini,hud,"shoot_effect",nil,1) if not anim then rx_utils.read_from_ini(dh_ini,rx_utils.read_from_ini(nil,sec,"class","O_o",1),"shoot_effect",nil,1) end if anim and dh_ini:section_exist(anim) then -- rx_ai.printf("parse %s for %s",anim,sec) local tbl = {} tbl.s = rx_utils.parse_list(dh_ini,anim,"strength") tbl.r = rx_utils.read_from_ini(dh_ini,anim,"strength_rnd",1) tbl.e = {} for i=0,5 do tbl.e[i] = rx_utils.parse_list(dh_ini,anim,tostring(i)) for k,v in pairs(tbl.e[i]) do tbl.e[i][k] = v and tonumber(v) end end tbl.p = {} tbl.c = {} local n = dh_ini:line_count(anim) if n > 8 then for i=6,n-1 do local r,id,val = dh_ini:r_line(anim,i,"","") val = rx_utils.str_explode(",",val,true) local shr = "ppe" if val[2] then shr = val[2] end local ex if getFS():exist("$game_anims$",string.format("shoot\\%s.%s",id,shr)) then ex = false elseif getFS():exist("$game_anims$",string.format("shoot\\%s_s1.%s",id,shr)) then ex = true end val[1] = tonumber(val[1]) if ex ~= nil and val[1] and val[1] ~= 0 then if shr == "ppe" then -- rx_ai.printf("ppe %s = %s",id,val[1]) tbl.p[id] = {f = val[1],s = ex} else -- rx_ai.printf("anm %s = %s",id,val[1]) tbl.c[id] = {f = val[1],s = ex} end end end end wpn_tbl[sec] = tbl else wpn_tbl[sec] = true end end
function shoot_effect() if not shoot_enable then return end if shott and shott < time_global() then shotc = 1 shott = nil end local wpn = db.actor:active_item() -- rx_ai.printf("%s %s",tostring(db.actor:dont_has_info("ui_inventory")),tostring(db.actor:dont_has_info("ui_car_body"))) if rx_utils.item_is_fa(wpn) then local sect = wpn:section() if not wpn_tbl[sect] then parse_anims(sect) end if wpn_tbl[sect] ~= true then if wpn:name() == curwpn then local aminmag = wpn:get_ammo_in_magazine() if (aminmag == 0 and aminmag == ammon-1) or (aminmag ~= 0 and aminmag < ammon) then shoot_anim(sect) end ammon = aminmag else curwpn = wpn:name() ammon = wpn:get_ammo_in_magazine() end else curwpn = nil end else curwpn = nil end end
function shoot_anim(sect) local anims = {} local s = wpn_tbl[sect].s if #s > 1 then if wpn_tbl[sect].r == 1 then s = s[math.random(#s)] elseif wpn_tbl[sect].r == 2 then if shotc == 1 then s = shotc else s = s[math.random(2,#s)] end else local sc = #s sc = shotc <= sc and shotc or (sc > 2 and math.random(sc-1,sc)) or sc s = s[sc] end else s = s[1] end for i,v in pairs(wpn_tbl[sect].e) do local cnt,r = math.modf(v[1]) if r ~= 0 and cnt > 4 then --fmb cnt = cnt-cnt*math.random(0,r*100)/100 --fmb cnt,r = math.modf(cnt) end if r ~= 0 and math.random() < r then cnt = cnt+1 end if cnt > 0 then local dir = v[2] if not dir then dir = math.random(0,1) end table.insert(anims,{e = i,d = dir,c = cnt}) end end for i,a in ipairs(anims) do local n = string.format([[shoot\s%s_e%s_%s.anm]],s,a.e,a.d) for ii=1,a.c do level.add_cam_effector(n,math.random(5000,8000),false,"") end end for k,v in pairs(wpn_tbl[sect].c) do local cnt,r = math.modf(v.f) if r ~= 0 and cnt > 4 then cnt = cnt-cnt*math.random(0,r*100)/100 cnt,r = math.modf(cnt) end if r ~= 0 and math.random() < r then cnt = cnt+1 end local n = v.s and string.format([[shoot\%s_s%s.anm]],k,s) or string.format([[shoot\%s.anm]],k) for i=1,cnt do level.add_cam_effector(n,math.random(8000,9000),false,"") end end for k,v in pairs(wpn_tbl[sect].p) do local n = v.s and string.format([[shoot\%s_s%s.ppe]],k,s) or string.format([[shoot\%s.ppe]],k) local cnt,f = math.modf(v.f) if f > 0 then cnt = cnt+1 end for i=1,cnt do local eid = math.random(5000,8000) level.add_pp_effector(n,eid,false) if i == 1 then level.set_pp_effector_factor(eid,f) end end end shotc = shotc+1 shott = time_global()+300 end
local suithud local pre_suithud local pre_cond local pre_helmet local hud_blurs = 0 local helmet_d local hct = {[1] = "blue",[2] = "green",[3] = "yellow",[4] = "red",[5] = "red2",[6] = "red3"} local function get_condition_sf(c) if c > 0.86 then return 1 elseif c > 0.67 then return 2 elseif c > 0.54 then return 3 elseif c > 0.43 then return 4 elseif c > 0.25 then return 5 else return 6 end end function helmet_hud() if not suithud_enable then return end local helmet = db.actor:alive() and db.actor:get_current_outfit() local helmet_id = helmet and helmet:id() if not helmet then helmet_d = nil pre_helmet = nil elseif helmet_id ~= pre_helmet then local sect = helmet:section() for k,v in pairs(helmets) do if string.find(sect,k) then helmet_d = v end end if helmet_d then pre_cond = 1 if helmet_d.breakable == true then pre_cond = get_condition_sf(helmet:condition()) end hud_blurs = helmet_d.blurs suithud = helmet_d.hud.."_"..hct[pre_cond] end pre_helmet = helmet_id elseif helmet and helmet_d and helmet_d.breakable == true then local cond = get_condition_sf(helmet:condition()) if cond ~= pre_cond then if cond > pre_cond and cond > 2 then local snd_obj = sound_object("material\\glass\\glass_fall03hl") snd_obj:play(db.actor,0,sound_object.s2d) end pre_cond = cond suithud = helmet_d.hud.."_"..hct[pre_cond] end end setmysuithud() end
function setmysuithud() local hud = get_hud() local actor_pos = db.actor:bone_position("bip01_head") if not helmet_d or ui_disabled or actor_pos:distance_to_sqr(device().cam_pos) > 4 then local wchud = pre_suithud and hud:GetCustomStatic(pre_suithud) if wchud then hud:RemoveCustomStatic(pre_suithud) end pre_suithud = nil elseif pre_suithud ~= suithud then -- rx_ai.printf("change suithud from %s to %s",tostring(pre_suithud),suithud) if pre_suithud then hud:RemoveCustomStatic(pre_suithud) end hud:AddCustomStatic(suithud) pre_suithud = suithud end end
local pre_fov = 0 local precf = 0 local ztime = time_global() local zbias = Frect():set(0,0,1024,768) local zenc function zoom_hud() if not zoom_enable then return end if helmet_d then local hud = get_hud():GetCustomStatic(suithud) if hud then local cf = precf local fov = math.floor((device().fov+0.02)*10) local delta = time_global()-ztime ztime = time_global() if not zenc or fov > 38*10 and pre_fov < fov then zenc = nil if cf > 0 then cf = cf-(delta/400) if cf < 0 then cf = 0 end end end if zenc or fov < 58*10 and pre_fov > fov then zenc = true if cf < 1 then cf = cf+(delta/400) if cf > 1 then cf = 1 end end end if cf ~= precf then local wpn = db.actor:active_item() if wpn then if wpn:clsid() == clsid.wpn_binocular_s then zbias:set(-100*cf,-100*cf,1024+100*cf,768+100*cf) elseif rx_utils.addon_attached(wpn,"sc") then zbias:set(-350*cf,-175*cf,1024,768+175*cf) else zbias:set(-200*cf,-100*cf,1024,768+100*cf) end hud:wnd():SetWndRect(zbias) elseif precf ~= 0 then zbias:set(0,0,1024,768) hud:wnd():SetWndRect(zbias) end precf = cf end pre_fov = fov end end end
function broken_nv() if not brnv_enable then return end if helmet_d then local rnd = math.random(1000) if pre_cond == 4 then if rnd < 30 then enable_nv(false) end elseif pre_cond == 5 then if rnd < 60 then enable_nv(false) end elseif pre_cond == 6 then enable_nv(false) end end end
function enable_nv(enable) if enable == false then level.remove_pp_effector(55) end end
function init_blurs() if not blurs_enable then return end if helmet_d and helmet_d.blurs >= 1 and pre_cond ~= 6 then set_blurs(true) else set_blurs(false) end end
local blurs local blurval = 0 -- óðîâåíü çàïîòåâàíèÿ îò 0 äî 1 local blurlt = 0 -- âðåìÿ ïîñëåäíåãî îáíîâëåíèÿ local blurcyctime = 0 -- âðåìÿ íà÷àëà ïîñëåäíåãî öèêëà äûõàíèÿ (âûäîõ) local blurlastphase = 0 function set_blurs(enabled) local hud = get_hud() if not (blurs and hud:GetCustomStatic("hud_blur1")) then blurs = {} for i=1,4 do hud:AddCustomStatic("hud_blur"..i) blurs[i] = hud:GetCustomStatic("hud_blur"..i):wnd() blurs[i]:SetWidth(0) blurs[i]:SetColor(GetARGB(0,255,255,255)) end end if not enabled then for i=1,4 do blurs[i]:SetWidth(0) end return end -- Öèêëû â çàâèñèìîñòè îò ñèëû äûõàíèÿ: 0->1->0 0->1->2->4->5->0 0->1->2->3->4->5->0 5->4->3->4->5 4->3->4 local power = db.actor.power local period = 1.0+power*power*1.0 -- òåêóùàÿ ÷àñòîòà äûõàíèÿ îò 30 äî 120 öèêëîâ â ìèíóòó local expirt = 0.3 local breathpower = hud_blurs local delta = (time_global()-blurlt)/1000 -- äåëüòà â ñåêóíäàõ local phase = (time_global()-blurcyctime)/1000 -- ôàçà äûõàòåëüíîãî öèêëà â ñåê. blurlt = time_global() if phase > period then phase = phase%period blurcyctime = blurlt-phase*1000 end if blurlastphase > phase then blurlastphase = 0 end local blurdelta = delta*-0.7 -- ðàáîòà âåíòèëëÿöèè if blurlastphase < expirt and phase < expirt then blurdelta = blurdelta+(phase-blurlastphase)*breathpower elseif blurlastphase < expirt then blurdelta = blurdelta+(expirt-blurlastphase)*breathpower end blurlastphase = phase blurval = blurval+blurdelta if blurval > 0.999 then blurval = 0.999 elseif blurval < 0 then blurval = 0 end local tm = math.floor(blurval*3) local tmn = (tm+1) local v = blurval*3-math.floor(blurval*3) v = 1-v local v1 = 1-v if tm ~= 0 then blurs[tm]:SetColor(GetARGB(v*255,255,255,255)) end if tmn ~= 0 then blurs[tmn]:SetColor(GetARGB(v1*255,255,255,255)) end for i=1,4 do if i == tm or i == tmn then blurs[i]:SetWndRect(Frect():set(zbias.x1,zbias.y1,zbias.x2,zbias.y2+56)) else blurs[i]:SetWndRect(Frect():set(zbias.x1,zbias.y1,zbias.x2,zbias.y2+56)) end end end
local prev_health = 0 function hit_effect() if not hit_enable then return end if prev_health > db.actor.health+0.05 then level.add_pp_effector("amk_shoot.ppe",2011,false) level.set_pp_effector_factor(2011,(prev_health-db.actor.health)*100) if prev_health > db.actor.health+0.2 then local cameffs,sounds if prev_health > db.actor.health+0.5 then level.add_pp_effector("total_recall.ppe",2016,false) level.set_pp_effector_factor(2016,(prev_health-db.actor.health)*100) cameffs = {"head_shot","fusker"} sounds = {"pain_4","pain_1","hit_5","hit_6"} else cameffs = {"shell_shock","hit_front","hit_right","hit_back","hit_left","hit_front_left","hit_back_left","hit_front_right","hit_back_right"} sounds = {"pain_2","pain_3","pain_5","pain_6","pain_7","pain_8"} end if not shott then level.add_cam_effector("camera_effects"..cameffs[math.random(#cameffs)]..".anm",999,false,"") end local snd_obj = sound_object("actor"..sounds[math.random(#sounds)]) snd_obj:play(db.actor,0,sound_object.s2d) if math.random() < (prev_health-db.actor.health)/2.5 then local active_item = db.actor:active_item() if active_item and not no_drop_items[active_item:section()] then db.actor:drop_item(active_item) end end end end prev_health = db.actor.health end
local actor_last_health = 0 local bloodtime = 0 local bloodtimeb = 0 local isbleeding = "no" local countblood = 0 function blood() if not blood_enable then return end local hud = get_hud() if db.actor:alive() and not ui_disabled then local current_health = math.floor(db.actor.health*100) local tg = time_global() if tg > bloodtime then if isbleeding == "stopit" then if hud:GetCustomStatic("hud_blood"..countblood) then hud:RemoveCustomStatic("hud_blood"..countblood) end countblood = countblood-1 if countblood == 0 then isbleeding = "no" end bloodtime = time_global()+110 else if actor_last_health ~= 0 and actor_last_health > current_health and db.actor.radiation < 0.12 then if current_health < math.random(100) then isbleeding = "yes" end level.add_pp_effector("bloody.ppe",2010,false) end if isbleeding == "yes" then bloodtime = time_global()+math.random(500,2000) else bloodtime = time_global()+math.random(2000,5000) end actor_last_health = current_health end end if tg > bloodtimeb and isbleeding == "yes" then bloodtimeb = time_global()+130 countblood = countblood+1 hud:AddCustomStatic("hud_blood"..countblood) if countblood == 4 then isbleeding = "stopit" end end else for i=1,4 do if hud:GetCustomStatic("hud_blood"..i) then hud:RemoveCustomStatic("hud_blood"..i) end end end end
local isactcondset = false local radeffect = false local ble1 = 0 local ble2 = false function bleedcondition() if not bleed_enable then return end if db.actor.health < 0.31 and isactcondset ~= true then level.add_pp_effector("alcohol.ppe",2012,true) isactcondset = true end if db.actor.health > 0.30 and isactcondset ~= false then level.remove_pp_effector(2012) isactcondset = false end if db.actor.radiation > 0.3 and radeffect ~= true then level.add_pp_effector("alcohol.ppe",2013,true) radeffect = true end if db.actor.radiation == 0 and radeffect ~= false then level.remove_pp_effector(2013) radeffect = false end if db.actor:get_bleeding() > 0.5 and db.actor.health < 0.4 and ble1 < time_global() then level.add_pp_effector("deimos1.ppe",2014,false) ble1 = time_global()+math.random(4000,10000) end if db.actor:get_bleeding() > 0.4 and db.actor.power < 0.35 and ble2 ~= true then level.add_cam_effector("camera_effects\\pripyat_horror.anm",1001,false,"") level.add_pp_effector("snd_shock.ppe",2015,true) ble2 = true end if db.actor:get_bleeding() < 0.2 or db.actor.power > 0.7 and ble2 ~= false then level.remove_pp_effector(2015) ble2 = false end end
Pour certain le fonctionnement ou le language des scripts sont plus difficile a comprendre sauf si vous travaillez déja comme programmeur de jeux vidéo ou que vous êtes novice en la matière et que vous vous débrouillez en trouvant de l'information sur les forum russe ou sur le site de GSC Game ce qui paraît être la meilleur méthode afin d'apprendre le modding ou même créer ses propres mods. j'arrête temporairement je met le poste en suspend pour l'ajout de d'autres information... Vous pouvez quand-même publier vos commentaires qui serons les bienvenues!! à suivre...
Dernière édition par boutch71 le Dim 5 Avr - 1:46, édité 3 fois |
|