RedM Natives

Particle FX (looped)

Notes from the author
		EXAMPLE. MAKE FIRE BREATH FROM PED HEAD:
------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------
		local new_ptfx_dictionary = "anm_fire_dancers"
		local new_ptfx_name = "ent_anim_fire_breathe_loop"

		local is_particle_effect_active = false
		local current_ptfx_dictionary = new_ptfx_dictionary
		local current_ptfx_name = new_ptfx_name

		local current_ptfx_handle_id = false

		local bone_index = 247   -- ["PH_Head"]  = {bone_index = 247, bone_id = 57278},

		local ptfx_offcet_x = 0.0
		local ptfx_offcet_y = 0.0
		local ptfx_offcet_z = 0.0
		local ptfx_rot_x = -90.0
		local ptfx_rot_y = 0.0
		local ptfx_rot_z = 0.0
		local ptfx_scale = 1.0
		local ptfx_axis_x = 0
		local ptfx_axis_y = 0
		local ptfx_axis_z = 0


		Citizen.CreateThread(function()
		   	while true do
		        Citizen.Wait(0)
		        if Citizen.InvokeNative(0x91AEF906BCA88877,0, 0x17BEC168) then   -- just pressed E
		        	if not is_particle_effect_active then
		        		current_ptfx_dictionary = new_ptfx_dictionary
						current_ptfx_name = new_ptfx_name
		        		if not Citizen.InvokeNative(0x65BB72F29138F5D6, GetHashKey(current_ptfx_dictionary)) then -- HasNamedPtfxAssetLoaded
		        			Citizen.InvokeNative(0xF2B2353BBC0D4E8F, GetHashKey(current_ptfx_dictionary))  -- RequestNamedPtfxAsset
		        			local counter = 0
		        			while not Citizen.InvokeNative(0x65BB72F29138F5D6, GetHashKey(current_ptfx_dictionary)) and counter <= 300 do  -- while not HasNamedPtfxAssetLoaded
		        				Citizen.Wait(0)
		        			end
		        		end
		    			if Citizen.InvokeNative(0x65BB72F29138F5D6, GetHashKey(current_ptfx_dictionary)) then  -- HasNamedPtfxAssetLoaded
		    				Citizen.InvokeNative(0xA10DB07FC234DD12, current_ptfx_dictionary) -- UseParticleFxAsset

		    				current_ptfx_handle_id = Citizen.InvokeNative(0x9C56621462FFE7A6,current_ptfx_name,PlayerPedId(),ptfx_offcet_x,ptfx_offcet_y,ptfx_offcet_z,ptfx_rot_x,ptfx_rot_y,ptfx_rot_z,bone_index,ptfx_scale,ptfx_axis_x,ptfx_axis_y,ptfx_axis_z) -- StartNetworkedParticleFxLoopedOnEntityBone
		    				--current_ptfx_handle_id =  Citizen.InvokeNative(0x8F90AB32E1944BDE,current_ptfx_name,PlayerPedId(),ptfx_offcet_x,ptfx_offcet_y,ptfx_offcet_z,ptfx_rot_x,ptfx_rot_y,ptfx_rot_z,ptfx_scale,ptfx_axis_x,ptfx_axis_y,ptfx_axis_z)    -- StartNetworkedParticleFxLoopedOnEntity
		    				is_particle_effect_active = true
						else
							print("cant load ptfx dictionary!")
		    			end
		        	else
		        		if current_ptfx_handle_id then
							if Citizen.InvokeNative(0x9DD5AFF561E88F2A, current_ptfx_handle_id) then   -- DoesParticleFxLoopedExist
								Citizen.InvokeNative(0x459598F579C98929, current_ptfx_handle_id, false)   -- RemoveParticleFx
							end
						end
						current_ptfx_handle_id = false
						is_particle_effect_active = false
		        	end
		        end
		    end
		end)

----------------------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------------------
 ptfx_assets_looped = {
 	[ptfx_dictionary] = {ptfx_name},
 }
1,176 rows
#dictionaryeffectNote
601coreent_amb_wind_snow_bendleft
602coreent_amb_wind_snow_bendright
603coreent_amb_wind_snow_drifts
604coreent_amb_wind_snow_ground
605coreent_amb_wind_snowfall
606coreent_amb_wind_tree_leaves
607coreent_amb_wwheel_strwb_base
608coreent_amb_wwheel_strwb_top
609coreenv_air_debris
610coreenv_ash
611coreenv_cloud
612coreenv_desert_ground_dust
613coreenv_dust_motes
614coreenv_embers
615coreenv_firefly_swarm
616coreenv_firesmoke
617coreenv_flies
618coreenv_fog
619coreenv_interior_dusty
620coreenv_interiorsmoke
621coreenv_pollen
622coreenv_rain_mist
623coreenv_sandstorm
624coreenv_smoke
625coreenv_swamp_flies
626coreenv_wind_debris_city
627coreenv_wind_debris_city_slum
628coreenv_wind_debris_countryside
629coreenv_wind_debris_desert
630coreenv_wind_debris_industrial_ash
631coreenv_wind_debris_mountain
632coreenv_wind_debris_woodland
633coreenv_wind_debris_woodland_pine
634coreenv_wind_mountain_snow
635coreexp_grn_cloud
636coreexp_poison_bottle
637coreexp_sht_flame
638coreexp_sht_steam
639coreexp_water_spout
640corefire_gunpowder_trail
641corefire_map
642corefire_oil_pool
643corefire_oil_trail
644corefire_ped_body
645corefire_ped_limb
646corefire_petrol_pool
647corefire_petrol_script
648corefire_petrol_trail
649corefire_petroltank_car
650corefire_spread_generic
651corefire_spread_generic_obj
652corefire_spread_generic_smoulder_loop
653corefire_spread_generic_smoulder_obj
654corefire_wheel
655corefire_wrecked_boat
656corefire_wrecked_car
657corefire_wrecked_car_vent
658corefire_wrecked_hot_air_balloon
659corefire_wrecked_train
660coreliquid_leak_blood
661coreliquid_leak_flour
662coreliquid_leak_grain
663coreliquid_leak_gunpowder
664coreliquid_leak_kerosene
665coreliquid_leak_moonshine
666coreliquid_leak_oil
667coreliquid_leak_petrol
668coreliquid_leak_sand
669coreliquid_leak_sugar
670coreliquid_leak_water
671coremtl_debris_dirt_light
672coremtl_debris_dirt_medium
673coremtl_debris_gravel_dirt_light
674coremtl_debris_gravel_dirt_medium
675coremtl_debris_gravel_heavy
676coremtl_debris_gravel_light
677coremtl_debris_gravel_medium
678coremtl_debris_sand
679coremtl_debris_snow_loose
680coremtl_debris_woodchips
681coremtl_disturb_dust
682coremtl_disturb_grass
683coremtl_disturb_gravel
684coremtl_disturb_leaves
685coremtl_disturb_mud
686coremtl_disturb_snow_loose
687coremtl_disturb_woodchips
688coremuz_moonshine
689coremuz_smoking_barrel
690coremuz_smoking_barrel_cannon
691coremuz_smoking_barrel_rifle
692coremuz_smoking_barrel_shotgun
693coreped_bear_mouth_froth
694coreped_blood_drips
695coreped_blood_pool_water
696coreped_body_heat_haze_horse
697coreped_breath_fish_bubbles
698coreped_breath_scuba
699coreped_breath_water
700coreped_corpse_flies