Forum: GTA IV Mod Releases / W.I.P.s


The above video goes away if you are a member and logged in, so log in now!




 
Would you like to get all the new info from
PSX-Scene in your email each day?




Want to learn more about the team keeping you up to date with the latest scene news?

Read about them now!

Check out our Developer bios, too!

 


User Tag List

Like Tree21Likes

Thread: [release] Particle Effects Manager - Beta 1.1.0
  

Page 1 of 7 1 2 3 ... LastLast
Results 1 to 10 of 70
  1. #1 [release] Particle Effects Manager - Beta 1.1.0 
    ribonucleic's Avatar
    ribonucleic is offline Moderator & Developer
    Join Date
    Mar 2012
    Posts
    641
    Downloads
    4
    Uploads
    0
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)
    Likes Given
    127
    Likes Received
    280
    updated to beta 1.1.0

    i need to do a changelog and other stuff to document the progression of this project but the most significant new feature is there are over 600 effects to choose from i have found a fair number to not work in standard gameplay conditions perhaps they just need to be used correctly


    ok let me start by saying you can do whatever you want with this mod (help me work on it if you want to), all i ask is that you don't just rename it and say you coded it, this thing consists of code borrowed from three-socks for text displaying and the rest i coded.

    this is basically a particle effects manager, its not fully fleshed out yet but i do intend to include all the particle effects i know of and tweak the management features in future so that it can be used to test all particle effects but for now its just one fire effect and management for the player and the vehicle the player is using.

    the player and any vehicle the player enters will automatically have a particle effect placed on them, if you get out of the vehicle all particle effects will be removed from it, this may cause the smoke and/or fire from damage to disappear aswell, i can confirm that effects (smoke/fire) arising from damage do disappear, this is not a major problem so its not a priority to fix atm.


    for a start go to Scocl\inc\natives.h then open it up and change the following:
    Code:
    extern uint START_PTFX(char *name, float x, float y, float z, float, float, float, uint flags);
    extern uint START_PTFX_ON_PED(char *name, Ped ped, float x, float y, float z, float, float, float, uint flags);
    extern uint START_PTFX_ON_PED_BONE(char *name, Ped ped, float x, float y, float z, float, float, float, int pedbone, uint flags);
    extern uint START_PTFX_ON_VEH(char *name, Vehicle veh, float x, float y, float z, float, float, float, float);
    to:
    Code:
    extern uint START_PTFX(char *name, float x, float y, float z, float yaw, float pitch, float roll, float scale);
    extern uint START_PTFX_ON_PED(char *name, Ped ped, float x, float y, float z, float yaw, float pitch, float roll, float scale);
    extern uint START_PTFX_ON_PED_BONE(char *name, Ped ped, float x, float y, float z, float yaw, float pitch, float roll, int pedbone, float scale);
    extern uint START_PTFX_ON_VEH(char *name, Vehicle veh, float x, float y, float z, float yaw, float pitch, float roll, float scale);
    and also if you don't have three-socks natives.h fix then change:
    Code:
    extern int GET_STRING_WIDTH_WITH_STRING(char *gxtName, char *literalString);
    to:
    Code:
    extern float GET_STRING_WIDTH_WITH_STRING(char *gxtName, char *literalString);

    you need a copy of functions.c from three-socks xyzh_coords example mod. (this is the text display library)

    save the following code as effects.c:
    Code:
    /*
    **    if you want to regroup these in your own way thats fine but remember there are 683 entries it would probably take a long time to do so
    */
    
    char* effectsList[50];
    
    void init(int set)
    {
           if (set<0)  { set = 0; }
      else if (set>13) { set = 13; }
    
      if (set==0)
      {
        // ambient set 0 0-49 & set 1 0-20
    
        effectsList[0]   = "ambient_ashtray_smoke";        effectsList[1]   = "ambient_butterflies";             effectsList[2]   = "ambient_butterflies_b";
        effectsList[3]   = "ambient_ceiling_dust";         effectsList[4]   = "ambient_ceiling_spawned";         effectsList[5]   = "ambient_chemical_drips";
        effectsList[6]   = "ambient_cig_clouds";           effectsList[7]   = "ambient_cig_smoke";               effectsList[8]   = "ambient_****roaches";
        effectsList[9]   = "ambient_dry_ice";              effectsList[10]  = "ambient_dust_lit_windows";        effectsList[11]  = "ambient_dust_windy";
        effectsList[12]  = "ambient_electrical_sparks";    effectsList[13]  = "ambient_fire_flames";             effectsList[14]  = "ambient_fire_generic";
        effectsList[15]  = "ambient_fire_glow";            effectsList[16]  = "ambient_fire_smoke";              effectsList[17]  = "ambient_flies_circling";
        effectsList[18]  = "ambient_flies_glow";           effectsList[19]  = "ambient_flies_smoke";             effectsList[20]  = "ambient_flies_sparked";
        effectsList[21]  = "ambient_flies_sparks";         effectsList[22]  = "ambient_flies_spawner";           effectsList[23]  = "ambient_flies_zapped";
        effectsList[24]  = "ambient_horn_blast";           effectsList[25]  = "ambient_horn_steam";              effectsList[26]  = "ambient_hotdogstand";
        effectsList[27]  = "ambient_hot_tub";              effectsList[28]  = "ambient_leaves_windy";            effectsList[29]  = "ambient_oil_drips";
        effectsList[30]  = "ambient_overpass_debris";      effectsList[31]  = "ambient_overpass_spawned";        effectsList[32]  = "ambient_receipts_windy";
        effectsList[33]  = "ambient_receipts_windy_3d";    effectsList[34]  = "ambient_respray_can";             effectsList[35]  = "ambient_rubbish_windy";
        effectsList[36]  = "ambient_sand_windy";           effectsList[37]  = "ambient_sewerage_flows";          effectsList[38]  = "ambient_sewerage_sinks";
        effectsList[39]  = "ambient_steam_chimney";        effectsList[40]  = "ambient_steam_cold";              effectsList[41]  = "ambient_steam_cooking";
        effectsList[42]  = "ambient_steam_exhaust";        effectsList[43]  = "ambient_steam_manhole";           effectsList[44]  = "ambient_steam_vent";
        effectsList[45]  = "ambient_steam_vent_oblong";    effectsList[46]  = "ambient_tower_plume_large";       effectsList[47]  = "ambient_tower_plume_small";
        effectsList[48]  = "ambient_water_drips";          effectsList[49]  = "ambient_water_drips_int";
      }
    
      else if (set==1)
      {
        // ambient (cont.)
    
        effectsList[0]   = "ambient_water_pipe_drips";     effectsList[1]   = "amb_ceiling_area_spawn";          effectsList[2]   = "amb_ceiling_chunks";
        effectsList[3]   = "amb_ceiling_dust";             effectsList[4]   = "amb_ceiling_silt";                effectsList[5]   = "amb_leaves_windy";
        effectsList[6]   = "amb_overpass_area_spawns";     effectsList[7]   = "amb_overpass_chunks";             effectsList[8]   = "amb_overpass_dust";
        effectsList[9]   = "amb_overpass_silt";            effectsList[10]  = "amb_plane_engines";               effectsList[11]  = "amb_receipts_windy";
        effectsList[12]  = "amb_rubbish_windy";            effectsList[13]  = "amb_ship_plume";                  effectsList[14]  = "amb_ship_whitesmoke";
        effectsList[15]  = "amb_steam_chimney";            effectsList[16]  = "amb_steam_cooking";               effectsList[17]  = "amb_steam_exhaust";
        effectsList[18]  = "amb_steam_manhole";            effectsList[19]  = "amb_tower_plume_lg";              effectsList[20]  = "amb_tower_plume_sm";
    
    
        // anim set 1 21-30
    
        effectsList[21]  = "anim_hammer_debris";           effectsList[22]  = "anim_hammer_dirt";                effectsList[23]  = "anim_hammer_dust";
        effectsList[24]  = "anim_hammer_specks";           effectsList[25]  = "anim_pneumatic";                  effectsList[26]  = "anim_pneumatic_dust";
        effectsList[27]  = "anim_pneumatic_specks";        effectsList[28]  = "anim_rake_leaves";                effectsList[29]  = "anim_sweep_dust";
        effectsList[30]  = "anim_watering_can";
    
    
        // bang set 1 31-46
    
        effectsList[31]  = "bang_blood";                   effectsList[32]  = "bang_carmetal";                   effectsList[33]  = "bang_carmetal_dust";
        effectsList[34]  = "bang_concrete";                effectsList[35]  = "bang_concrete_dust";              effectsList[36]  = "bang_dusty";
        effectsList[37]  = "bang_glass";                   effectsList[38]  = "bang_grass";                      effectsList[39]  = "bang_gravel";
        effectsList[40]  = "bang_gravel_dust";             effectsList[41]  = "bang_leaves";                     effectsList[42]  = "bang_mud_soft";
        effectsList[43]  = "bang_mud_splashes";            effectsList[44]  = "bang_sand";                       effectsList[45]  = "bang_wood";
        effectsList[46]  = "bark_chunks_sheet";
    
    
        // blood set 1 47-49 & set 2 0-21
    
        effectsList[47]  = "blood_artery_mist";            effectsList[48]  = "blood_bang_chunks";               effectsList[49]  = "blood_fall_chunks";
      }
    
      else if (set==2)
      {
        // blood (cont.)
    
        effectsList[0] = "blood_gun_chunks";               effectsList[1] = "blood_gun_entry";                   effectsList[2] = "blood_gun_entry_arterial";
        effectsList[3] = "blood_gun_exit";                 effectsList[4] = "blood_gun_exit_arterial";           effectsList[5] = "blood_melee_blunt";
        effectsList[6] = "blood_melee_fluid";              effectsList[7] = "blood_melee_sharp";                 effectsList[8] = "blood_melee_sharp_ig";
        effectsList[9] = "blood_mouth_chunks";             effectsList[10] = "blood_mouth_mist";                 effectsList[11] = "blood_scrape_mist";
        effectsList[12] = "blood_sharp_cloud";             effectsList[13] = "blood_sharp_fluid";                effectsList[14] = "blood_shotgun_entry";
        effectsList[15] = "blood_shotgun_exit";            effectsList[16] = "blood_shotgun_mist";               effectsList[17] = "blood_sniper_entry";
        effectsList[18] = "blood_sniper_exit";             effectsList[19] = "blood_sniper_mist";                effectsList[20] = "blood_stun_punch";
        effectsList[21] = "blood_wheel_squash";
    
    
        // break set 2 22-49 & set 3 0-14
    
        effectsList[22] = "break_cardboard";               effectsList[23] = "break_card_flaps";                 effectsList[24] = "break_card_small_chunks";
        effectsList[25] = "break_card_small_slivers";      effectsList[26] = "break_ceramic";                    effectsList[27] = "break_ceramic_bits";
        effectsList[28] = "break_ceramic_dots";            effectsList[29] = "break_ceramic_dust";               effectsList[30] = "break_ceramic_slabs";
        effectsList[31] = "break_dino_bones";              effectsList[32] = "break_drugs_cloud";                effectsList[33] = "break_drugs_jar_dots";
        effectsList[34] = "break_electrical";              effectsList[35] = "break_electrical_dust";            effectsList[36] = "break_electrical_fire_lg";
        effectsList[37] = "break_electrical_fire_sm";      effectsList[38] = "break_electrical_glow";            effectsList[39] = "break_electrical_sparks";
        effectsList[40] = "break_laundry_basket";          effectsList[41] = "break_laundry_socks_1";            effectsList[42] = "break_metal";
        effectsList[43] = "break_metal_dust";              effectsList[44] = "break_metal_shards";               effectsList[45] = "break_metal_slivers";
        effectsList[46] = "break_metal_sparks";            effectsList[47] = "break_plasterboard";               effectsList[48] = "break_sparks";
        effectsList[49] = "break_sparks_dust";
      }
    
      else if (set==3)
      {
        // break (cont.)
    
        effectsList[0]  = "break_sparks_fast";             effectsList[1]  = "break_sparks_glow";                effectsList[2]  = "break_SPAWN_fire";
        effectsList[3]  = "break_stone";                   effectsList[4]  = "break_stone_bits";                 effectsList[5]  = "break_stone_dots";
        effectsList[6]  = "break_stone_dust";              effectsList[7]  = "break_stone_slabs";                effectsList[8]  = "break_water_barrel";
        effectsList[9]  = "break_water_barrel_core";       effectsList[10] = "break_water_barrel_splash";        effectsList[11] = "break_wood";
        effectsList[12] = "break_wood_chunks";             effectsList[13] = "break_wood_planks";                effectsList[14] = "break_wood_shards";
    
    
        // col set 3 15-49 & set 4 0-3
    
        effectsList[15] = "col_bin_bits_max10";           effectsList[16] = "col_bin_bits_max25";              effectsList[17] = "col_bin_bits_max5";
        effectsList[18] = "col_bin_bits_max50";           effectsList[19] = "col_bin_fastfood_chips";          effectsList[20] = "col_bin_fastfood_cups";
        effectsList[21] = "col_bin_fastfood_lids";        effectsList[22] = "col_bin_fastfood_napkins";        effectsList[23] = "col_bin_gunk_splash";
        effectsList[24] = "col_bin_household_apple3";     effectsList[25] = "col_bin_household_banana8";       effectsList[26] = "col_bin_household_fagp2";
        effectsList[27] = "col_bin_household_paper";      effectsList[28] = "col_bin_street_banana8";          effectsList[29] = "col_dumpsters_cardboard";
        effectsList[30] = "col_dumpsters_paint";          effectsList[31] = "col_dumpsters_paper";             effectsList[32] = "col_dumpsters_slabs";
        effectsList[33] = "col_dumpsters_wood";           effectsList[34] = "col_electrical";                  effectsList[35] = "col_electrical_arcexp_arc";
        effectsList[36] = "col_electrical_arcexp_dust";   effectsList[37] = "col_electrical_arcexp_glow";      effectsList[38] = "col_electrical_arcing";
        effectsList[39] = "col_fastfood_nuts";            effectsList[40] = "col_fruitpile_apples";            effectsList[41] = "col_fruitpile_bananas";
        effectsList[42] = "col_fruitpile_mix";            effectsList[43] = "col_fruitpile_oranges";           effectsList[44] = "col_leaves_autumnal";
        effectsList[45] = "col_leaves_pale";              effectsList[46] = "col_mail_bundle";                 effectsList[47] = "col_napkins";
        effectsList[48] = "col_newspaper_bundle";         effectsList[49] = "col_soda_cans_ecola";
      }
    
      else if (set==4)
      {
        // col (cont.)
    
        effectsList[0]  = "col_soda_cans_ginger";         effectsList[1]  = "col_soda_cans_lemon";             effectsList[2]  = "col_soda_cans_mix";
        effectsList[3]  = "col_soda_cans_sprunk";
    
    
        // CS set 4 4-44
    
        effectsList[4] = "CS_blood_saw_mist";             effectsList[5] = "CS_blowtorch_core";                effectsList[6] = "CS_blowtorch_glow";
        effectsList[7] = "CS_burn_box_flames";            effectsList[8] = "CS_burn_box_smoke";                effectsList[9] = "CS_cabaret_dry_ice";
        effectsList[10] = "CS_cabbit_chunks_B";           effectsList[11] = "CS_cabbit_chunks_F";              effectsList[12] = "CS_cabbit_mist_B";
        effectsList[13] = "CS_cabbit_mist_F";             effectsList[14] = "CS_chest_chunks_B";               effectsList[15] = "CS_chest_chunks_F";
        effectsList[16] = "CS_chin_chunks_B";             effectsList[17] = "CS_chin_chunks_F";                effectsList[18] = "CS_clarence_mist_B";
        effectsList[19] = "CS_clarence_mist_F";           effectsList[20] = "CS_dimitri_brain_B";              effectsList[21] = "CS_dimitri_mist_B";
        effectsList[22] = "CS_dimitri_mist_F";            effectsList[23] = "CS_end_blood_drool";              effectsList[24] = "CS_execution_blood";
        effectsList[25] = "CS_execution_chest";           effectsList[26] = "CS_execution_chin";               effectsList[27] = "CS_execution_eye";
        effectsList[28] = "CS_execution_incar";           effectsList[29] = "CS_Fau7a_cigar_smoke";            effectsList[30] = "CS_Fau7a_lingering_smoke";
        effectsList[31] = "CS_faustin_mist_B";            effectsList[32] = "CS_faustin_mist_F";               effectsList[33] = "CS_food_splatter";
        effectsList[34] = "CS_GT02_dry_ice";              effectsList[35] = "CS_incar_brain_B";                effectsList[36] = "CS_incar_chunks_B";
        effectsList[37] = "CS_incar_chunks_F";            effectsList[38] = "CS_interior_smoke";               effectsList[39] = "CS_kneecaps_mist_B";
        effectsList[40] = "CS_kneecaps_mist_F";           effectsList[41] = "CS_lighter_flame";                effectsList[42] = "CS_lighter_flames";
        effectsList[43] = "CS_peg_blood_loop";            effectsList[44] = "CS_peg_blood_nose";
    
    
        // Destruction set 4 45-49, set-5 0-49 & set 6 0-28
    
        effectsList[45] = "dest_banknote_pile";           effectsList[46] = "dest_bin_fastfood";               effectsList[47] = "dest_bin_household";
        effectsList[48] = "dest_bin_street";              effectsList[49] = "dest_bin_street";
      }
    
      else if (set==5)
      {
        // Destruction (cont.)
    
        effectsList[0]  = "dest_ceramic";                 effectsList[1]  = "dest_ceramic_plate";              effectsList[2]  = "dest_ceramic_plates";
        effectsList[3]  = "dest_chips";                   effectsList[4]  = "dest_chip_packet";                effectsList[5]  = "dest_coin_pile";
        effectsList[6]  = "dest_crispbag_full";           effectsList[7]  = "dest_dumpsters";                  effectsList[8]  = "dest_dumpsters";
        effectsList[9]  = "dest_electrical";              effectsList[10] = "dest_electrical_plastic";         effectsList[11] = "dest_flower_leaves";
        effectsList[12] = "dest_flower_petals";           effectsList[13] = "dest_food_debris";                effectsList[14] = "dest_fruitpile_apples";
        effectsList[15] = "dest_fruitpile_bananas";       effectsList[16] = "dest_fruitpile_mix";              effectsList[17] = "dest_fruitpile_oranges";
        effectsList[18] = "dest_fuel_dump";               effectsList[19] = "dest_glass_brown_empty";          effectsList[20] = "dest_glass_clear_dots";
        effectsList[21] = "dest_glass_clear_dust";        effectsList[22] = "dest_glass_clear_empty";          effectsList[23] = "dest_glass_clear_lager";
        effectsList[24] = "dest_glass_clear_redwine";     effectsList[25] = "dest_glass_clear_shards";         effectsList[26] = "dest_glass_green_empty";
        effectsList[27] = "dest_glass_lager";             effectsList[28] = "dest_glass_panes";                effectsList[29] = "dest_glass_redwine";
        effectsList[30] = "dest_glass_water";             effectsList[31] = "dest_juice_cups";                 effectsList[32] = "dest_juice_splash";
        effectsList[33] = "dest_lightbulb_dots";          effectsList[34] = "dest_lightbulb_dust";             effectsList[35] = "dest_lightbulb_glass";
        effectsList[36] = "dest_lightbulb_glow";          effectsList[37] = "dest_lightbulb_off";              effectsList[38] = "dest_lightbulb_on";
        effectsList[39] = "dest_lightbulb_sparks";        effectsList[40] = "dest_mail_bundle";                effectsList[41] = "dest_metal_objects";
        effectsList[42] = "dest_metal_shards";            effectsList[43] = "dest_metal_slivers";              effectsList[44] = "dest_metal_sparks";
        effectsList[45] = "dest_money_mixed";             effectsList[46] = "dest_napkin_pieces";              effectsList[47] = "dest_newspaper_bundle";
        effectsList[48] = "dest_paint_pot";               effectsList[49] = "dest_paint_pot_goop";
      }
    
      else if (set==6)
      {
        // Destruction (cont.)
    
        effectsList[0]  = "dest_paint_pot_metal";         effectsList[1]  = "dest_pigeon_blood";               effectsList[2]  = "dest_pigeon_fluff";
        effectsList[3]  = "dest_pigeon_mist";             effectsList[4]  = "dest_plasterboard";               effectsList[5]  = "dest_plastic";
        effectsList[6]  = "dest_plastic_brown_cider";     effectsList[7]  = "dest_plastic_chunks";             effectsList[8]  = "dest_plastic_clear_empty";
        effectsList[9]  = "dest_plastic_clear_water";     effectsList[10] = "dest_plastic_dust";               effectsList[11] = "dest_plastic_specks";
        effectsList[12] = "dest_sauce_bottle";            effectsList[13] = "dest_sodapile_ecola";             effectsList[14] = "dest_sodapile_ginger";
        effectsList[15] = "dest_sodapile_lemon";          effectsList[16] = "dest_sodapile_mix";               effectsList[17] = "dest_sodapile_sprunk";
        effectsList[18] = "dest_sparking_SPAWN_sparks";   effectsList[19] = "dest_sparking_wires";             effectsList[20] = "dest_sparks_fast";
        effectsList[21] = "dest_stone_objects";           effectsList[22] = "dest_stone_pillars";              effectsList[23] = "dest_stone_slabs";
        effectsList[24] = "dest_sweeties";                effectsList[25] = "dest_wood";                       effectsList[26] = "dest_wood_crate";
        effectsList[27] = "dest_wood_planks";             effectsList[28] = "dest_wood_shards";
    
    
        // Explosion set 6 30-49 & set 7 0-32
                                                                                                               effectsList[29] = "explosion_a_anim";
        effectsList[30] = "exp_air_car_chunks";           effectsList[31] = "exp_bridge_explosion";            effectsList[32] = "exp_chopper_chase";
        effectsList[33] = "exp_fireball";                 effectsList[34] = "exp_fireball_air";                effectsList[35] = "exp_fireball_explosion";
        effectsList[36] = "exp_fireball_lingeringsmoke";  effectsList[37] = "exp_fireball_simpleglow";         effectsList[38] = "exp_fireball_smoke";
        effectsList[39] = "exp_fireball_smokeRing";       effectsList[40] = "exp_grenade";                     effectsList[41] = "exp_grenade_air";
        effectsList[42] = "exp_grenade_core";             effectsList[43] = "exp_grenade_smoke";               effectsList[44] = "exp_grenade_spikes";
        effectsList[45] = "exp_missed_chopper";           effectsList[46] = "exp_molotov";                     effectsList[47] = "exp_molotov_air";
        effectsList[48] = "exp_mol_air_glass";            effectsList[49] = "exp_mol_air_sparks";
      }
    
      else if (set==7)
      {
        // Explosion (cont.)
    
        effectsList[0]  = "exp_mol_explosion";            effectsList[1]  = "exp_mol_simpleglow";              effectsList[2]  = "exp_petrol_boom";
        effectsList[3]  = "exp_petrol_boom_back";         effectsList[4]  = "exp_petrol_burst";                effectsList[5]  = "exp_petrol_chunks";
        effectsList[6]  = "exp_petrol_flaming_debris";    effectsList[7]  = "exp_petrol_pump";                 effectsList[8]  = "exp_petrol_slivers";
        effectsList[9]  = "exp_petrol_smoke";             effectsList[10] = "exp_petrol_sparks";               effectsList[11] = "exp_petrol_spike";
        effectsList[12] = "exp_rigged_boom_up";           effectsList[13] = "exp_rigged_chunks";               effectsList[14] = "exp_rigged_smoke";
        effectsList[15] = "exp_rigged_spikes";            effectsList[16] = "exp_rocket";                      effectsList[17] = "exp_rocket_air";
        effectsList[18] = "exp_ship_destroy";             effectsList[19] = "exp_trespass_boom";               effectsList[20] = "exp_trespass_boom2";
        effectsList[21] = "exp_trespass_core";            effectsList[22] = "exp_trespass_core2";              effectsList[23] = "exp_trespass_huge";
        effectsList[24] = "exp_trespass_mid";             effectsList[25] = "exp_trespass_upper";              effectsList[26] = "exp_upper1_SPAWN";
        effectsList[27] = "exp_upper2_SPAWN";             effectsList[28] = "exp_upper3_SPAWN";                effectsList[29] = "exp_upper4_SPAWN";
        effectsList[30] = "exp_upper5_SPAWN";             effectsList[31] = "exp_vehicle";                     effectsList[32] = "exp_vehicle_air";
    
    
        // Fire set 7 33-49 & set 8 0-4
    
        effectsList[33] = "fire_blast_spawned";           effectsList[34] = "fire_blocks_flames";              effectsList[35] = "fire_blocks_road";
        effectsList[36] = "fire_blocks_smoke";            effectsList[37] = "fire_chopper_tail";               effectsList[38] = "fire_gas_blast_flames";
        effectsList[39] = "fire_gas_blast_glow";          effectsList[40] = "fire_gas_burner";                 effectsList[41] = "fire_gas_burner_flames";
        effectsList[42] = "fire_gas_burner_glow";         effectsList[43] = "fire_gas_burn_blast";             effectsList[44] = "fire_gas_intermittent";
        effectsList[45] = "fire_hotdog_blaze";            effectsList[46] = "fire_object_flames";              effectsList[47] = "fire_object_glow";
        effectsList[48] = "fire_object_smoke";            effectsList[49] = "fire_ped_body_glow";
      }
    
      else if (set==8)
      {
        // Fire (cont.)
    
        effectsList[0]  = "fire_ped_limb_glow";           effectsList[1]  = "fire_ped_smoking";                effectsList[2]  = "fire_plume_large";
        effectsList[3]  = "fire_tyre_flames";             effectsList[4]  = "fire_vehicle_smoke";
    
    
        // Glass set 8 5-6
    
        effectsList[5]  = "glass_chunk_sheet";            effectsList[6]  = "glass_dots_sheet";
    
    
        // Impact set 8 7-37
    
        effectsList[7]  = "imp_bullet_armour";            effectsList[8]  = "imp_bullet_cardboard";            effectsList[9]  = "imp_bullet_carpet";
        effectsList[10] = "imp_bullet_concrete";          effectsList[11] = "imp_bullet_default";              effectsList[12] = "imp_bullet_dirt_dry";
        effectsList[13] = "imp_bullet_glass";             effectsList[14] = "imp_bullet_gravel";               effectsList[15] = "imp_bullet_leaves";
        effectsList[16] = "imp_bullet_mattress_foam";     effectsList[17] = "imp_bullet_metal";                effectsList[18] = "imp_bullet_mud_soft";
        effectsList[19] = "imp_bullet_paper";             effectsList[20] = "imp_bullet_pillow_feathers";      effectsList[21] = "imp_bullet_sand";
        effectsList[22] = "imp_bullet_tvscreen";          effectsList[23] = "imp_bullet_videowall";            effectsList[24] = "imp_bullet_water";
        effectsList[25] = "imp_bullet_wood";              effectsList[26] = "imp_exp_concrete";                effectsList[27] = "imp_exp_metal";
        effectsList[28] = "imp_exp_metal_core";           effectsList[29] = "imp_exp_wood";                    effectsList[30] = "imp_exp_wood_core";
        effectsList[31] = "imp_glass_shards";             effectsList[32] = "imp_leaves_falling";              effectsList[33] = "imp_melee_concrete";
        effectsList[34] = "imp_melee_glass";              effectsList[35] = "imp_melee_wood";                  effectsList[36] = "imp_shotgun_glass";
        effectsList[37] = "imp_shotgun_water";
    
    
        // Leaves set 8 38-42
    
        effectsList[38] = "leaves_fallinginwind";         effectsList[39] = "leaves_windy_autumnal";           effectsList[40] = "leaves_windy_pale";
        effectsList[41] = "leaves_wind_autumnal";         effectsList[42] = "leaves_wind_pale";
    
    
        // Metal set 8 43-44
    
        effectsList[43] = "metal_chunk_sheet";            effectsList[44] = "metal_shard_spec";
    
    
        // Misc set 8 45-49 & set 9 0-8
    
        effectsList[45] = "Cardboard_Flap_A";             effectsList[46] = "Cardboard_Flap_B";               effectsList[47] = "cardboard_pieces";
        effectsList[48] = "china_chunks_sheet";           effectsList[49] = "****roaches_anim";
      }
    
      else if (set==9)
      {
        // Misc (cont.)
    
        effectsList[0] = "disco_ice";                    effectsList[1] = "draw_screenspace";                effectsList[2] = "grainy_dirt_sheet";
        effectsList[3] = "gravel_chunk_sheet";           effectsList[4] = "gravel_lots_sheet";               effectsList[5] = "interior_gunsmoke";
        effectsList[6] = "normal_sphere_128";            effectsList[7] = "player_wasted_cash";              effectsList[8] = "raindrop_blurred";
    
    
        // Multi set 9 9-11
    
        effectsList[9] = "multi_objects_01";             effectsList[10] = "multi_objects_02";                effectsList[11] = "multi_objects_03";
    
    
        // Muzzle set 9 12-30
    
        effectsList[12] = "muz_launcher_smoke";          effectsList[13] = "muz_machine";                     effectsList[14] = "muz_machine_core";
        effectsList[15] = "muz_machine_front";           effectsList[16] = "muz_machine_glow";                effectsList[17] = "muz_minigun";
        effectsList[18] = "muz_minigun_smoke";           effectsList[19] = "muz_pistol_large";                effectsList[20] = "muz_pistol_small";
        effectsList[21] = "muz_pistol_smoke";            effectsList[22] = "muz_rocket";                      effectsList[23] = "muz_rocket_front";
        effectsList[24] = "muz_rocket_smoke";            effectsList[25] = "muz_shotgun";                     effectsList[26] = "muz_shotgun_core";
        effectsList[27] = "muz_shotgun_glow";            effectsList[28] = "muz_shotgun_smoke";               effectsList[29] = "muz_shotgun_sparks";
        effectsList[30] = "muz_smg";
    
    
        // Overhang set 9 31-39
    
        effectsList[31] = "overhang_drips_10m";          effectsList[32] = "overhang_drips_1m";               effectsList[33] = "overhang_drips_2m";
        effectsList[34] = "overhang_drips_5m";           effectsList[35] = "overhang_drips_spawner";          effectsList[36] = "overhang_littledrips_10m";
        effectsList[37] = "overhang_littledrips_1m";     effectsList[38] = "overhang_littledrips_2m";         effectsList[39] = "overhang_littledrips_5m";
    
    
        // Ped set 9 40-49 & set 10 0-1
    
        effectsList[40] = "ped_exhale_linger";           effectsList[41] = "ped_exhale_vapour";               effectsList[42] = "ped_foot_dirt_dry";
        effectsList[43] = "ped_foot_gravel";             effectsList[44] = "ped_foot_leaves";                 effectsList[45] = "ped_foot_mud_dust";
        effectsList[46] = "ped_foot_mud_soft";           effectsList[47] = "ped_foot_sand";                   effectsList[48] = "ped_foot_water";
        effectsList[49] = "ped_foot_water_L";
      }
    
      else if (set==10)
      {
        // Ped (cont.)
    
        effectsList[0] = "ped_pissing_mist";             effectsList[1] = "ped_smoke_exhale";
    
    
        // Qub3d set 10 2-22
    
        effectsList[2]  = "qub_explode_dust";            effectsList[3]  = "qub_explode_glow";                effectsList[4]  = "qub_explode_rings";
        effectsList[5]  = "qub_explode_sparks";          effectsList[6]  = "qub_explode_streaks";             effectsList[7]  = "qub_lg_explode_blue";
        effectsList[8]  = "qub_lg_explode_green";        effectsList[9]  = "qub_lg_explode_orange";           effectsList[10] = "qub_lg_explode_purple";
        effectsList[11] = "qub_lg_explode_red";          effectsList[12] = "qub_lg_explode_yellow";           effectsList[13] = "qub_merge_orange";
        effectsList[14] = "qub_merge_purple";            effectsList[15] = "qub_merge_sparks";                effectsList[16] = "qub_merge_yellow";
        effectsList[17] = "qub_sm_explode_blue";         effectsList[18] = "qub_sm_explode_green";            effectsList[19] = "qub_sm_explode_orange";
        effectsList[20] = "qub_sm_explode_purple";       effectsList[21] = "qub_sm_explode_red";              effectsList[22] = "qub_sm_explode_yellow";
    
    
        // Scrape set 10 23-29
    
        effectsList[23] = "scrape_bark_shards";          effectsList[24] = "scrape_carpet";                   effectsList[25] = "scrape_carpet_dust";
        effectsList[26] = "scrape_dusty";                effectsList[27] = "scrape_leaves_3D";                effectsList[28] = "scrape_mud_specks";
        effectsList[29] = "scrape_wood_shards";
    
    
        // Shot set 10 30-47
    
        effectsList[30] = "shot_chemical_glug";           effectsList[31] = "shot_directed_chem";             effectsList[32] = "shot_directed_chem_core";
        effectsList[33] = "shot_directed_flame";          effectsList[34] = "shot_directed_oil";              effectsList[35] = "shot_directed_oil_core";
        effectsList[36] = "shot_directed_steam";          effectsList[37] = "shot_directed_steam_core";       effectsList[38] = "shot_directed_steam_linger";
        effectsList[39] = "shot_directed_water";          effectsList[40] = "shot_directed_water_core";       effectsList[41] = "shot_gas_canister";
        effectsList[42] = "shot_gas_explosion";           effectsList[43] = "shot_oil_glug";                  effectsList[44] = "shot_plasterboard";
        effectsList[45] = "shot_water_glug";              effectsList[46] = "shot_water_tower";               effectsList[47] = "shot_water_tower_core";
    
    
        // Smoke set 10 48-49 & set 11 0-8
    
        effectsList[48] = "smoke_chimney_sheet";          effectsList[49] = "smoke_cloud_anim";
      }
    
      else if (set==11)
      {
        // Smoke (cont.)
    
        effectsList[0]  = "smoke_filled_car";             effectsList[1]  = "smoke_new_plumes";
        effectsList[2]  = "smoke_only_cinders";           effectsList[3]  = "smoke_only_flames";              effectsList[4] = "smoke_only_smoke";
        effectsList[5]  = "smoke_plume_float";            effectsList[6]   = "smoke_plume_window";            effectsList[7] = "smoke_vault_lingers";
        effectsList[8]  = "sparks_arcing_anim";
    
    
        // Vehicle set 11 9-30
    
        effectsList[9]  = "veh_backfire_glow";            effectsList[10] = "veh_exhaust_banger";             effectsList[11] = "veh_exhaust_core";
        effectsList[12] = "veh_exhaust_front";            effectsList[13] = "veh_exhaust_truck";              effectsList[14] = "veh_headlight_dots";
        effectsList[15] = "veh_headlight_dust";           effectsList[16] = "veh_heli_downwash";              effectsList[17] = "veh_heli_tail_dust";
        effectsList[18] = "veh_petroltank_car";           effectsList[19] = "veh_plume_rising";               effectsList[20] = "veh_respray_smoke";
        effectsList[21] = "veh_rim_disp_conc";            effectsList[22] = "veh_train_sparks";               effectsList[23] = "veh_tyre_puncture";
        effectsList[24] = "veh_wrecked_bike";             effectsList[25] = "veh_wrecked_boat";               effectsList[26] = "veh_wrecked_flames";
        effectsList[27] = "veh_wrecked_heli";             effectsList[28] = "veh_wrecked_linger";             effectsList[29] = "veh_wrecked_smoke";
        effectsList[30] = "veh_wrecked_truck";
    
    
        // Water set 11 31-49 & set 12 0-35
    
        effectsList[31] = "water_boat_entry";             effectsList[32] = "water_boat_entry_L";             effectsList[33] = "water_boat_entry_R";
        effectsList[34] = "water_carwash_drips";          effectsList[35] = "water_carwash_drips_droplets";   effectsList[36] = "water_carwash_drips_spawnpoints";
        effectsList[37] = "water_carwash_jets";           effectsList[38] = "water_carwash_mist";             effectsList[39] = "water_carwash_spawn";
        effectsList[40] = "water_carwash_spit";           effectsList[41] = "water_carwash_spray";            effectsList[42] = "water_casino_drop";
        effectsList[43] = "water_castle_dir";             effectsList[44] = "water_castle_drop";              effectsList[45] = "water_castle_jet";
        effectsList[46] = "water_central_drop";           effectsList[47] = "water_cityhall_dir";             effectsList[48] = "water_corner_jet";
        effectsList[49] = "water_drips_sheet";
      }
    
      else if (set==12)
      {
        // Water (cont.)
    
        effectsList[0]  = "water_fountain_5th";           effectsList[1]  = "water_fountain_castle_low";      effectsList[2]  = "water_fountain_castle_up";
        effectsList[3]  = "water_fountain_central";       effectsList[4]  = "water_fountain_cityhall";        effectsList[5]  = "water_fountain_corners";
        effectsList[6]  = "water_fountain_directional";   effectsList[7]  = "water_fountain_jet";             effectsList[8]  = "water_fountain_pour";
        effectsList[9]  = "water_fountain_rock";          effectsList[10] = "water_fountain_spout";           effectsList[11] = "water_fountain_spray";
        effectsList[12] = "water_fountain_tier";          effectsList[13] = "water_fountain_tier_L";          effectsList[14] = "water_generic_dir";
        effectsList[15] = "water_generic_jet";            effectsList[16] = "water_heli_blades";              effectsList[17] = "water_hose_spray";
        effectsList[18] = "water_hydrant_dir";            effectsList[19] = "water_hydrant_jet";              effectsList[20] = "water_hydrant_side";
        effectsList[21] = "water_hydrant_SP";             effectsList[22] = "water_hydrant_top";              effectsList[23] = "water_hydrant_vertical_jet";
        effectsList[24] = "water_jets_misty";             effectsList[25] = "water_pipe_bubble";              effectsList[26] = "water_pipe_bubble2";
        effectsList[27] = "water_pipe_casino";            effectsList[28] = "water_pipe_flow";                effectsList[29] = "water_rock_bubble";
        effectsList[30] = "water_rock_bubble2";           effectsList[31] = "water_splashes_sheet";           effectsList[32] = "water_splash_cam";
        effectsList[33] = "water_splash_ped";             effectsList[34] = "water_tier_spray";               effectsList[35] = "water_vehicle_ring";
    
    
        // Weapon set 12 36-49
    
        effectsList[36] = "weap_ejected_pistol";          effectsList[37] = "weap_ejected_rifle";              effectsList[38] = "weap_ejected_shotgun";
        effectsList[39] = "weap_ejected_smg";             effectsList[40] = "weap_glow_spike_L";               effectsList[41] = "weap_molotov_flame";
        effectsList[42] = "weap_molotov_glow";            effectsList[43] = "weap_molotov_smoke";              effectsList[44] = "weap_molotov_trail";
        effectsList[45] = "weap_rocket_glow";             effectsList[46] = "weap_rocket_player";              effectsList[47] = "weap_rocket_smoke";
        effectsList[48] = "wpn_bullet_smoke";             effectsList[49] = "wpn_bullet_trace";
      }
    
      else if (set==13)
      {
        // Wheel set 13 0-29
    
        effectsList[0]  = "wheel_burnout_dirt";           effectsList[1]  = "wheel_burnout_pool";              effectsList[2]  = "wheel_disp_conc_rim";
        effectsList[3]  = "wheel_disp_grass";             effectsList[4]  = "wheel_disp_gravel";               effectsList[5]  = "wheel_disp_gravel_w";
        effectsList[6]  = "wheel_disp_hard_rim";          effectsList[7]  = "wheel_disp_hard_w";               effectsList[8]  = "wheel_disp_leaves";
        effectsList[9]  = "wheel_disp_leaves_w";          effectsList[10] = "wheel_disp_mud";                  effectsList[11] = "wheel_disp_wood_rim";
        effectsList[12] = "wheel_friction_conc_rim";      effectsList[13] = "wheel_friction_dirt_dry";         effectsList[14] = "wheel_friction_dirt_dry_rim";
        effectsList[15] = "wheel_friction_grass";         effectsList[16] = "wheel_friction_gravel";           effectsList[17] = "wheel_friction_gravel_rim";
        effectsList[18] = "wheel_friction_hard";          effectsList[19] = "wheel_friction_hard_rim";         effectsList[20] = "wheel_friction_hard_w";
        effectsList[21] = "wheel_friction_leaves";        effectsList[22] = "wheel_friction_leaves_w";         effectsList[23] = "wheel_friction_mud";
        effectsList[24] = "wheel_friction_sand";          effectsList[25] = "wheel_friction_sand_rim";         effectsList[26] = "wheel_friction_water";
        effectsList[27] = "wheel_friction_wood_rim";      effectsList[28] = "Wheel_Gravel_Lots";               effectsList[29] = "wheel_sand_burnout";
    
    
        // Wind set 13 30-32
    
        effectsList[30] = "wind_debris_leaves";           effectsList[31] = "wind_debris_mail";                effectsList[32] = "wind_debris_paper";
      }
    }
    the effects manager code (save this as main.c or "whatever you want".c just make sure its in the same directory as effects.c and Functions.c):
    Code:
    #include <natives.h>
    #include <common.h>
    #include <strings.h>
    #include <types.h>
    #include <consts.h>
    
    #include "Functions.c"
    #include "effects.c"
    
    
    /* PS3 CONTROLLER BUTTON MAP */
    #define L1         0x4
    #define L2         0x5
    #define R1         0x6
    #define R2         0x7
    #define DPAD_UP    0x8
    #define DPAD_DOWN  0x9
    #define DPAD_LEFT  0xA
    #define DPAD_RIGHT 0xB
    #define START      0xC
    #define SELECT     0xD
    #define SQUARE     0xE
    #define TRIANGLE   0xF
    #define X          0x10
    #define CIRCLE     0x11
    #define STICK_L    0x12  //L3
    #define STICK_R    0x13  //R3
    
    
    
    uint rA=200, gA=255, bA=200, aA=255, //text rgb/alpha
         rB=200, gB=255, bB=200, aB=255, //marker rgb/alpha
    
         ptfxmode=1; // 1=tweak variables mode, 2=gameplay mode
    
    
    float pos_xA=0.06000000, pos_xB=0.05000000, pos_xC=0.10000000,
          width=0.30000000, height=0.30000000,
    
          changeby = 0.0,
    
          Pxoff  = 0.0, Pyoff  = 0.0, Pzoff = 0.0, //player ptfx coord offsets
          Pyaw   = 0.0, Ppitch = 0.0, Proll = 0.0, //player ptfx rotational offsets
          Pscale = 0.5,                            //player ptfx scale/intensity
    
          Vxoff  = 0.0, Vyoff  = 0.0, Vzoff = 0.0, //vehicle ptfx coord offsets
          Vyaw   = 0.0, Vpitch = 0.0, Vroll = 0.0, //vehicle ptfx rotational offsets
          Vscale = 1.0,                            //vehicle ptfx scale/intensity
    
          pos_yA=0.22000000, pos_yB=0.24000000, pos_yC=0.26000000,
          pos_yD=0.28000000, pos_yE=0.30000000, pos_yF=0.32000000,
          pos_yG=0.34000000, pos_yH=0.38000000, pos_yI=0.40000000,
          pos_yJ=0.42000000, pos_yK=0.44000000, pos_yL=0.46000000,
          pos_yM=0.48000000, pos_yN=0.50000000, pos_yO=0.53000000,
          pos_yP=0.19000000, pos_yQ=0.17000000,
    
          markerposY = 0.22000000;
    
    
    int markerpos = 0,
    
        effIndex = 0, effSet = 0,
    
        Pptfx = 0, Vptfx = 0, //player ptfx and vehicle ptfx pointers
        carptr = 0; //players car pointer
    
    
    int *chosenEffect = 0;
    
    
    void NumberDisplayLoop(void)
    {
      if (ptfxmode==1)
      {
        set_up_draw(2, width, height, rB, gB, bB, aB);  draw_text("STRING", pos_xB, markerposY, ">");
    
        set_up_draw(2, width, height, rA, gA, bA, aA);  draw_text("STRING", pos_xA, pos_yQ, "Set");
        set_up_draw(2, width, height, rA, gA, bA, aA);  draw_number("NUMBR", pos_xC, pos_yQ, effSet);
    
        set_up_draw(2, width, height, rA, gA, bA, aA);  draw_number("NUMBR", pos_xA, pos_yP, effIndex);
        set_up_draw(2, width, height, rA, gA, bA, aA);  draw_text("STRING", pos_xC, pos_yP, chosenEffect);
    
        set_up_draw(2, width, height, rA, gA, bA, aA);  draw_float("NUMBR", pos_xA, pos_yA, Pxoff);
        set_up_draw(2, width, height, rA, gA, bA, aA);  draw_float("NUMBR", pos_xA, pos_yB, Pyoff);
        set_up_draw(2, width, height, rA, gA, bA, aA);  draw_float("NUMBR", pos_xA, pos_yC, Pzoff);
        set_up_draw(2, width, height, rA, gA, bA, aA);  draw_float("NUMBR", pos_xA, pos_yD, Pyaw);
        set_up_draw(2, width, height, rA, gA, bA, aA);  draw_float("NUMBR", pos_xA, pos_yE, Ppitch);
        set_up_draw(2, width, height, rA, gA, bA, aA);  draw_float("NUMBR", pos_xA, pos_yF, Proll);
        set_up_draw(2, width, height, rA, gA, bA, aA);  draw_float("NUMBR", pos_xA, pos_yG, Pscale);
    
        set_up_draw(2, width, height, rA, gA, bA, aA);  draw_float("NUMBR", pos_xA, pos_yH, Vxoff);
        set_up_draw(2, width, height, rA, gA, bA, aA);  draw_float("NUMBR", pos_xA, pos_yI, Vyoff);
        set_up_draw(2, width, height, rA, gA, bA, aA);  draw_float("NUMBR", pos_xA, pos_yJ, Vzoff);
        set_up_draw(2, width, height, rA, gA, bA, aA);  draw_float("NUMBR", pos_xA, pos_yK, Vyaw);
        set_up_draw(2, width, height, rA, gA, bA, aA);  draw_float("NUMBR", pos_xA, pos_yL, Vpitch);
        set_up_draw(2, width, height, rA, gA, bA, aA);  draw_float("NUMBR", pos_xA, pos_yM, Vroll);
        set_up_draw(2, width, height, rA, gA, bA, aA);  draw_float("NUMBR", pos_xA, pos_yN, Vscale);
    
        set_up_draw(2, width, height, rA, gA, bA, aA);  draw_text("STRING", pos_xB, pos_yO, "tweak");
      }
      else if (ptfxmode==2)
      {
        set_up_draw(2, width, height, rA, gA, bA, aA);  draw_text("STRING", pos_xB, pos_yO, "play");
      }
    }
    
    
    void movemarker(void)
    {
      if (ptfxmode==1)
      {
        if (IS_BUTTON_JUST_PRESSED(0,DPAD_DOWN))
        {
          if (markerpos==15) { markerpos = 0; } else { markerpos = markerpos+1; }
        }
    
        if (IS_BUTTON_JUST_PRESSED(0,DPAD_UP))
        {
          if (markerpos==0) { markerpos = 15; } else { markerpos = markerpos-1; }
        }
        if (IS_BUTTON_PRESSED(0,DPAD_DOWN) || IS_BUTTON_PRESSED(0,DPAD_UP))
        {
               if (markerpos==0)  { markerposY = pos_yA; }   else if (markerpos==1)  { markerposY = pos_yB; }
          else if (markerpos==2)  { markerposY = pos_yC; }   else if (markerpos==3)  { markerposY = pos_yD; }
          else if (markerpos==4)  { markerposY = pos_yE; }   else if (markerpos==5)  { markerposY = pos_yF; }   // will have to substitute all
          else if (markerpos==6)  { markerposY = pos_yG; }   else if (markerpos==7)  { markerposY = pos_yH; }   // this for an array assignment
          else if (markerpos==8)  { markerposY = pos_yI; }   else if (markerpos==9)  { markerposY = pos_yJ; }   // it will remove this bulk of
          else if (markerpos==10) { markerposY = pos_yK; }   else if (markerpos==11) { markerposY = pos_yL; }   // code
          else if (markerpos==12) { markerposY = pos_yM; }   else if (markerpos==13) { markerposY = pos_yN; }
          else if (markerpos==14) { markerposY = pos_yP; }   else if (markerpos==15) { markerposY = pos_yQ; }
        }
      }
    }
    
    
    void changeoffsets(void)
    {
      /*buttons used:  DPAD_UP DPAD_DOWN DPAD_LEFT DPAD_RIGHT
    
        markerpos values and relative value types
                 coord offsets: 0,1,2,7,8,9
            rotational offsets: 3,4,5,10,11,12
                    ptfx scale: 6,13
    
          0/7   1/8   2/9    3/10  4/11  5/12     6/13
         Pxoff Pyoff Pzoff   Pyaw Ppitch Proll   Pscale
         Vxoff Vyoff Vzoff   Vyaw Vpitch Vroll   Vscale
      */
    
      if (ptfxmode==1 && markerpos<14)
      {
        if (IS_BUTTON_JUST_PRESSED(0,DPAD_RIGHT)) { changeby = 0.1; }  // by adding a negative i am effectively subtracting therby
        if (IS_BUTTON_JUST_PRESSED(0,DPAD_LEFT))  { changeby = -0.1; } // making my code shorter by using just additions
    
        while (IS_BUTTON_PRESSED(0,DPAD_RIGHT) || IS_BUTTON_PRESSED(0,DPAD_LEFT))
        {
               if (markerpos==0) { Pxoff = Pxoff+changeby; WAIT(5); }
          else if (markerpos==1) { Pyoff = Pyoff+changeby; WAIT(5); }
          else if (markerpos==2) { Pzoff = Pzoff+changeby; WAIT(5); }
    
          else if (markerpos==3) { Pyaw = Pyaw+changeby;     if (Pyaw > 359.9)   { Pyaw   = 0.0; }  else if (Pyaw < 0.0)   { Pyaw   = 359.9; } WAIT(5); }
          else if (markerpos==4) { Ppitch = Ppitch+changeby; if (Ppitch > 359.9) { Ppitch = 0.0; }  else if (Ppitch < 0.0) { Ppitch = 359.9; } WAIT(5); }
          else if (markerpos==5) { Proll = Proll+changeby;   if (Proll > 359.9)  { Proll  = 0.0; }  else if (Proll < 0.0)  { Proll  = 359.9; } WAIT(5); }
          else if (markerpos==6) { Pscale = Pscale+changeby; if (Pscale > 5.0) { Pscale = 0.1; }  else if (Pscale < 0.1) { Pscale = 5.0; } WAIT(5); }
    
          else if (markerpos==7)  { Vxoff = Vxoff+changeby; WAIT(5); }
          else if (markerpos==8)  { Vyoff = Vyoff+changeby; WAIT(5); }
          else if (markerpos==9)  { Vzoff = Vzoff+changeby; WAIT(5); }
    
          else if (markerpos==10) { Vyaw  = Vyaw+changeby;    if (Vyaw > 359.9)   { Vyaw   = 0.0; }  else if (Vyaw < 0.0)   { Vyaw   = 359.9; } WAIT(5); }
          else if (markerpos==11) { Vpitch = Vpitch+changeby; if (Vpitch > 359.9) { Vpitch = 0.0; }  else if (Vpitch < 0.0) { Vpitch = 359.9; } WAIT(5); }
          else if (markerpos==12) { Vroll = Vroll+changeby;   if (Vroll > 359.9)  { Vroll  = 0.0; }  else if (Vroll < 0.0)  { Vroll  = 359.9; } WAIT(5); }
          else if (markerpos==13) { Vscale = Vscale+changeby; if (Vscale > 5.0) { Vscale = 0.1; }  else if (Vscale < 0.1) { Vscale = 5.0; } WAIT(5); }
        }
      }
    }
    
    
    void applyoffsets(void)
    {
      if (ptfxmode==1)
      {
        if (!IS_BUTTON_JUST_PRESSED(0,STICK_L) && IS_BUTTON_JUST_PRESSED(0,STICK_R))
        {
          /* i don't think these 2 lines work but if you want to try them here they are */
          /*
    
          if (Vptfx!=0) { UPDATE_PTFX_OFFSETS(Vptfx,Vxoff,Vyoff,Vzoff,Vyaw,Vpitch,Vroll); }
          if (Pptfx!=0) { UPDATE_PTFX_OFFSETS(Pptfx,Pxoff,Pyoff,Pzoff,Pyaw,Ppitch,Proll); }
          //*/
    
          Vptfx=0;
          Pptfx=0;
    
          REMOVE_PTFX_FROM_VEHICLE(carptr);
          REMOVE_PTFX_FROM_PED(GetPlayerPed());
        }
      }
    }
    
    
    void changeEffect(void)
    {
      /*
        EFFECT GROUP NAMES, SETS AND INDEX RANGES WITHIN SETS (groups are not in this beta it will need
                                                                   a whole series of checks to implement)
        --------------------------------------------------------------------------------
        NAME       SET(S)  INDEX RANGES         NAME         SET(S)  INDEX RANGES
        --------------------------------------------------------------------------------
        ambient    0-1      0-49 & 0-20         anim         1       21-30
        bang       1       31-46                blood        1-2     47-49 & 0-21
        break      2-3     22-49 & 0-14         col          3-4     15-49 & 0-3
        CS         4        4-44                Destruction  4-6     45-49 & 0-49 & 0-28
        Explosion  6-7     30-49 & 0-32         Fire         7-8     33-49 & 0-4
        Glass      8        5-6                 Impact       8        7-37
        Leaves     8       38-42                Metal        8       43-44
        Misc       8-9     45-49 & 0-8          Multi        9        9-11
        Muzzle     9       12-30                Overhang     9       31-39
        Ped        9-10    40-49 & 0-1          Qub3d        10       2-22
        Scrape     10      23-29                Shot         10      30-47
        Smoke      10-11   48-49 & 0-8          Vehicle      11       9-30
        Water      11-12   31-49 & 0-35         Weapon       12      36-49
        Wheel      set 13   0-29                Wind         13      30-32
      */
    
      if (ptfxmode==1 && markerpos==14)
      {
        if (IS_BUTTON_JUST_PRESSED(0,DPAD_RIGHT)) { changeby = 1; }  // by adding a negative i am effectively subtracting therby
        if (IS_BUTTON_JUST_PRESSED(0,DPAD_LEFT))  { changeby = -1; } // making my code shorter by using just additions
    
        while (IS_BUTTON_PRESSED(0,DPAD_RIGHT) || IS_BUTTON_PRESSED(0,DPAD_LEFT))
        {
          if ((effSet<13 && (effIndex>=0 && effIndex<=49)) || (effSet>12 && (effIndex>=0 && effIndex<=32)))
          {
            effIndex = effIndex+changeby;
          }
          if (effSet<=0  && effIndex<0)                { effIndex = 32; effSet = 13; init(effSet); }
          if ((effSet>=0  && effSet<13) && effIndex<0) { effIndex = 49; effSet = effSet+changeby; init(effSet); }
          if ((effSet>=0 && effSet<13) && effIndex>49) { effIndex = 0;  effSet = effSet+changeby; init(effSet); }
          if (effSet>=13 && effIndex>32)               { effIndex = 0;  effSet = 0; init(effSet); }
          if (effSet>=13 && effIndex<0)                { effIndex = 49; effSet = 12; init(effSet); }
    
          if ((effSet<13 && (effIndex>=0 && effIndex<=49)) || (effSet>12 && (effIndex>=0 && effIndex<=32)))
          {
            chosenEffect = effectsList[effIndex];
          }
    
          WAIT(50);
        }
      }
      else if (ptfxmode==1 && markerpos==15)
      {
        if (IS_BUTTON_JUST_PRESSED(0,DPAD_RIGHT)) { changeby = 1; }  // by adding a negative i am effectively subtracting therby
        if (IS_BUTTON_JUST_PRESSED(0,DPAD_LEFT))  { changeby = -1; } // making my code shorter by using just additions
    
        if (IS_BUTTON_JUST_PRESSED(0,DPAD_RIGHT) || IS_BUTTON_JUST_PRESSED(0,DPAD_LEFT))
        {
          if (effSet>=0 && effSet<=13) { effSet = effSet+changeby; }
          if ((effSet<0))              { effSet = 13; }
          if (effSet>13)               { effSet = 0; }
    
          effIndex = 0; // goto the start of the new set
          if (((effIndex>-1 && effIndex<50) && effSet<13) || ((effIndex>-1 && effIndex<33) && effSet==13))
          {
            init(effSet);
            chosenEffect = effectsList[effIndex];
          }
        }
      }
    }
    
    
    void changemode(void)
    {
      // 1=tweak variables mode, 2=gameplay mode
      if (IS_BUTTON_PRESSED(0,STICK_L) && IS_BUTTON_PRESSED(0,STICK_R))
      {
        if (ptfxmode==2)
        {
          ptfxmode=1;
          aB=aA;
        }
        else
        {
          ptfxmode=ptfxmode+1;
    
          if (ptfxmode==2) { aB=0; } else { aB=aA; }
        }
        WAIT(100);
      }
    }
    
    
    void burn(void)
    {
      if (!IS_CHAR_SITTING_IN_ANY_CAR(GetPlayerPed()))
      {
        if (Vptfx!=0)
        {
          REMOVE_PTFX_FROM_VEHICLE(carptr);
          Vptfx = 0;
        }
      }
      else if (IS_CHAR_SITTING_IN_ANY_CAR(GetPlayerPed()))
      {
        GET_CAR_CHAR_IS_USING(GetPlayerPed(), &carptr);
    
        if (Vptfx==0)
        {
          if (DOES_VEHICLE_EXIST(carptr))
          {
            Vptfx = START_PTFX_ON_VEH(chosenEffect, carptr, Vxoff, Vyoff, Vzoff, Vyaw, Vpitch, Vroll, Vscale);
          }
        }
      }
      if (Pptfx==0)
      {
        //Pptfx = START_PTFX_ON_PED("fire_chopper_tail", GetPlayerPed(), Pxoff, Pyoff, Pzoff, Pyaw, Ppitch, Proll, Pscale); // set the whole of niko on fire
        Pptfx = START_PTFX_ON_PED_BONE(chosenEffect, GetPlayerPed(), Pxoff, Pyoff, Pzoff, Pyaw, Ppitch, Proll, 1205, Pscale); //set nikos head on fire
      }
    }
    
    
    void main(void)
    {
      init(0); // the '0' selects effect set 0, without a number from
               // 0-13 calling this function would be pointless but
               // calling this function is needed the array this function
               // manipulates is now a core piece of this script
    
      chosenEffect = *(effectsList+0);
    
      while(true)
      {
        WAIT(0);
    
        movemarker();
        NumberDisplayLoop();
    
        burn();
        changeEffect();
        changeoffsets();
        changemode();
        applyoffsets();
      }
    }

    this thing is very simple to use

    d-pad up and down scroll up and down the list of numbers
    d-pad left and right adjust the number you stop at
    R3 (right stick button) applies the changes you have made
    L3 (left stick button) changes between play and tweak modes
    play mode lets you play the game as usual and tweak mode lets you tweak the effects

    the code currently contains a glitch in that when you apply new coordinates on the vehicles particle effect it spawns a new particle effect alongside any already existing on the vehicle

    the numbers are as follows

    there are two sets of seven numbers the top set is for the players effects and the bottom set is for the vehicle effects and they go as follows:
    the first three numbers are: x, y and z relative coords offsets of the effect from the player or vehicle.
    the next three number are: yaw, pitch, and roll rotational offsets of the effect.
    and the last number is: effect intensity/size.

    so far i haven't found yaw, pitch and roll to make a difference but perhaps with fire you can't tell.
    Last edited by ribonucleic; 01-12-2013 at 12:34 AM.
    jumper, EvilB, nativesith and 3 others like this.
    Reply With Quote  

  2. #2  
    nativesith's Avatar
    nativesith is offline Moderator
    Join Date
    Jun 2011
    Location
    Los Santos
    Posts
    1,363
    Downloads
    12
    Uploads
    7
    Mentioned
    37 Post(s)
    Tagged
    1 Thread(s)
    Likes Given
    962
    Likes Received
    648
    Getting started on this now...
    Reply With Quote  

  3. #3  
    EvilB's Avatar
    EvilB is offline Bringin' that funky flava
    Join Date
    Jan 2011
    Posts
    407
    Downloads
    16
    Uploads
    0
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)
    Likes Given
    68
    Likes Received
    458
    good job dude, is this what the pigeons use when you shoot them and they blow up into feathers.
    Reply With Quote  

  4. #4  
    Three-Socks's Avatar
    Three-Socks is offline Developer
    Join Date
    Feb 2011
    Posts
    362
    Downloads
    16
    Uploads
    0
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)
    Likes Given
    83
    Likes Received
    308
    I tried it and it looks awesome. Nice job

    Just one question.. I was looking at the code and I couldn't make out what the "waittime" was all about. Do you mind filling me in? I'm intrigued lol

    Quote Originally Posted by nativesith View Post
    Getting started on this now...
    BTW nativesith you PM inbox is full
    Reply With Quote  

  5. #5  
    nativesith's Avatar
    nativesith is offline Moderator
    Join Date
    Jun 2011
    Location
    Los Santos
    Posts
    1,363
    Downloads
    12
    Uploads
    7
    Mentioned
    37 Post(s)
    Tagged
    1 Thread(s)
    Likes Given
    962
    Likes Received
    648
    Taking ou the trash now, lol...
    Reply With Quote  

  6. #6  
    ribonucleic's Avatar
    ribonucleic is offline Moderator & Developer
    Join Date
    Mar 2012
    Posts
    641
    Downloads
    4
    Uploads
    0
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)
    Likes Given
    127
    Likes Received
    280
    Quote Originally Posted by Three-Socks View Post
    I tried it and it looks awesome. Nice job

    Just one question.. I was looking at the code and I couldn't make out what the "waittime" was all about. Do you mind filling me in? I'm intrigued lol



    BTW nativesith you PM inbox is full
    without a delay the numbers change as quickly as the code runs (which i found too fast sometimes) but i set up the numbers with different ranges x, y, z are infinite in range, yaw, pitch and roll have the range 0.0-359.9 and scale is supposed to have the range 0.1-5.0 but i think i messed up somewhere for that one...

    anyway i intially wanted to change the rate at which you rotate through any set of numbers, but it went to slow for getting through the range of yaw, pitch and roll (it would have took all night)...

    so i setup waittime with the intention of slowing down for all but yaw, pitch and roll, look at the conditions for the ifs which assign waittime a number then check out the documentation at the top of the changeoffsets() function you'll find that the if that sets waittime to 0 checks for a markerpos value of 3, 4, 5, 10, 11 or 12 which you'll find correspond to rotational offsets which are yaw, pitch and roll

    the code that causes the delay (in red):
    Code:
        if (IS_BUTTON_PRESSED(0,DPAD_RIGHT) || IS_BUTTON_PRESSED(0,DPAD_LEFT))
        {
               if (markerpos==0.0) { Pxoff = Pxoff+changeby; }   else if (markerpos==1.0) { Pyoff = Pyoff+changeby; }
          else if (markerpos==2.0) { Pzoff = Pzoff+changeby; }   else if (markerpos==7.0) { Vxoff = Vxoff+changeby; }
          else if (markerpos==8.0) { Vyoff = Vyoff+changeby; }   else if (markerpos==9.0) { Vzoff = Vzoff+changeby; }
    
          else if (markerpos==3.0)  { if (Pyaw>=359.9)   { Pyaw   = 0.0; } else { Pyaw   = Pyaw+changeby; } }
          else if (markerpos==4.0)  { if (Ppitch>=359.9) { Ppitch = 0.0; } else { Ppitch = Ppitch+changeby; } }
          else if (markerpos==5.0)  { if (Proll>=359.9)  { Proll  = 0.0; } else { Proll  = Proll+changeby; } }
          else if (markerpos==10.0) { if (Vyaw>=359.9)   { Vyaw   = 0.0; } else { Vyaw   = Vyaw+changeby; } }
          else if (markerpos==11.0) { if (Vpitch>=359.9) { Vpitch = 0.0; } else { Vpitch = Vpitch+changeby; } }
          else if (markerpos==12.0) { if (Vroll>=359.9)  { Vroll  = 0.0; } else { Vroll  = Vroll+changeby; } }
    
          else if (markerpos==6.0)  { if (Pscale>=5.0) { Pscale = changeby; } else { Pscale = Pscale+changeby; } }
          else if (markerpos==13.0) { if (Vscale>=5.0) { Vscale = changeby; } else { Vscale = Vscale+changeby; } }
    
          WAIT(waittime);
        }
    edit: just realised how extensive the logic is for such a small detail lol
    Last edited by ribonucleic; 01-12-2013 at 12:35 AM.
    Reply With Quote  

  7. #7  
    Three-Socks's Avatar
    Three-Socks is offline Developer
    Join Date
    Feb 2011
    Posts
    362
    Downloads
    16
    Uploads
    0
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)
    Likes Given
    83
    Likes Received
    308
    Ahh yes I understand.

    For somereason while looking at the code I thought where using "IS_BUTTON_JUST_PRESSED". But using IS_BUTTON_PRESSED makes sense now why you would need the delay

    BTW heres a suggestion for you..Convert the code to use my Menu Library you won't have to worry about any of the menu aspect then.

    You could easily make it look the same too. I'm planning on adding more styles in the future aswell
    Reply With Quote  

  8. #8  
    ribonucleic's Avatar
    ribonucleic is offline Moderator & Developer
    Join Date
    Mar 2012
    Posts
    641
    Downloads
    4
    Uploads
    0
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)
    Likes Given
    127
    Likes Received
    280
    Quote Originally Posted by Three-Socks View Post
    Ahh yes I understand.

    For somereason while looking at the code I thought where using "IS_BUTTON_JUST_PRESSED". But using IS_BUTTON_PRESSED makes sense now why you would need the delay

    BTW heres a suggestion for you..Convert the code to use my Menu Library you won't have to worry about any of the menu aspect then.

    You could easily make it look the same too. I'm planning on adding more styles in the future aswell
    i think i will make use of it, currently trying to understand it lol
    Last edited by ribonucleic; 01-12-2013 at 12:36 AM.
    Reply With Quote  

  9. #9  
    Three-Socks's Avatar
    Three-Socks is offline Developer
    Join Date
    Feb 2011
    Posts
    362
    Downloads
    16
    Uploads
    0
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)
    Likes Given
    83
    Likes Received
    308
    Quote Originally Posted by ribonucleic View Post
    i think i will make use of it, currently trying to understand it lol
    I can see how it would be confusing at first look. But once you get the basic structure right and know how to use the menu functions. Its so easy

    You can use the menu sample and function api - from the Menu Library thread. You could also get bits from my trainer to help get a better understanding.
    Reply With Quote  

  10. #10  
    HuN's Avatar
    HuN
    HuN is offline Moderator
    Join Date
    Feb 2012
    Posts
    463
    Downloads
    2
    Uploads
    0
    Mentioned
    23 Post(s)
    Tagged
    0 Thread(s)
    Likes Given
    446
    Likes Received
    402
    @ribonucleic ... in Three-Socks menu library thread , i offered to test 1st project using said library... so , if you want my help as tester , just ask when needed .
    ribonucleic likes this.
    Reply With Quote  

Page 1 of 7 1 2 3 ... LastLast
Posting Permissions
  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •