59 lines
1.6 KiB
Plaintext
59 lines
1.6 KiB
Plaintext
--[[
|
|
cigarettes smoke effect script
|
|
Author: Feel_Fried
|
|
--]]
|
|
local smoke = false
|
|
local ltx = ini_file("items\\items\\anims_cigga_smoke.ltx")
|
|
local function create_smoke()
|
|
if not smoke then
|
|
smoke = particles_object("damage_fx\\mod_cig_smoke")
|
|
local dir2 = device().cam_dir
|
|
smoke:set_direction(dir2)
|
|
smoke:play_at_pos(db.actor:bone_position("jaw_1"))
|
|
end
|
|
return true
|
|
end
|
|
|
|
local function move_smoke()
|
|
if smoke then
|
|
local dir2 = device().cam_dir
|
|
local pos = device().cam_pos
|
|
pos.y = pos.y - 0.35 + 0.3*dir2.y
|
|
pos.x = pos.x + 0.3*dir2.x
|
|
pos.z = pos.z + 0.3*dir2.z
|
|
smoke:set_direction(dir2)
|
|
smoke:move_to(pos, dir2)
|
|
return false
|
|
else
|
|
return true
|
|
end
|
|
end
|
|
|
|
local function destroy_smoke()
|
|
if smoke then
|
|
smoke:stop()
|
|
smoke = nil
|
|
end
|
|
return true
|
|
end
|
|
|
|
function ciga_start(used_item)
|
|
CreateTimeEvent("ea_cig_light","ea_cig_light",6,ea_light.light_on,1,0.9,0.2,1,0.1,0.15,0.25,0.2)
|
|
CreateTimeEvent("ea_cig_light2","ea_cig_light2",6.5,ea_light.light_on,0.8,0.5,0,3,0.5,1.3,0.7,0.1)
|
|
local t = {}
|
|
if not ltx:section_exist(used_item) then return end
|
|
local lines = ltx:line_count(used_item)
|
|
if lines % 2 ~= 0 then return end
|
|
local variable, value, result, i = "", "", "", ""
|
|
for current_line = 0, lines - 1 do
|
|
i = current_line+1
|
|
result, variable, value = ltx:r_line(used_item, current_line, "", "")
|
|
t[i] = value
|
|
if i % 2 == 0 then
|
|
CreateTimeEvent("ea_s_c".. i, "ea_s_c" .. i, t[current_line], create_smoke)
|
|
CreateTimeEvent("ea_s_m".. i, "ea_s_m".. i, t[current_line] + 0.050, move_smoke)
|
|
CreateTimeEvent("ea_s_d".. i, "ea_s_d".. i, t[i], destroy_smoke)
|
|
end
|
|
end
|
|
end
|