direstraits Posted November 4, 2011 Share Posted November 4, 2011 how make a particle get out from the exaust from a cars? whitch double exaust? For SA and for Cleo 3 HQ Weapon Icons for SA Click Here Link to comment Share on other sites More sharing options...
fireguy109 Posted November 5, 2011 Share Posted November 5, 2011 Dual exhaust is controlled by a flag in the handling.cfg line, not through Cleo. Link to comment Share on other sites More sharing options...
aStiffSausage Posted November 5, 2011 Share Posted November 5, 2011 But it's also possible through complex memory writing. Let's take the easy route, I'll show a little example of HEX-flags: When you open handling.cfg, you'll find this at the beginning: ; (af) modelFlags!!! WARNING - Now written HEX for easier reading of flags;; 1st digit 1: IS_VAN 2: IS_BUS 4: IS_LOW 8: IS_BIG; 2nd digit 1: REVERSE_BONNET 2: HANGING_BOOT 4: TAILGATE_BOOT 8: NOSWING_BOOT; 3rd digit 1: NO_DOORS 2: TANDEM_SEATS 4: SIT_IN_BOAT 8: CONVERTIBLE; 4th digit 1: NO_EXHAUST 2: DOUBLE_EXHAUST 4: NO1FPS_LOOK_BEHIND 8: FORCE_DOOR_CHECK; 5th digit 1: AXLE_F_NOTILT 2: AXLE_F_SOLID 4: AXLE_F_MCPHERSON 8: AXLE_F_REVERSE; 6th digit 1: AXLE_R_NOTILT 2: AXLE_R_SOLID 4: AXLE_R_MCPHERSON 8: AXLE_R_REVERSE; 7th digit 1: IS_BIKE 2: IS_HELI 4: IS_PLANE 8: IS_BOAT; 8th digit 1: BOUNCE_PANELS 2: DOUBLE_RWHEELS 4: FORCE_GROUND_CLEARANCE 8: IS_HATCHBACK;; (ag) handlingFlags - written in HEX;; 1st digit 1: 1G_BOOST 2: 2G_BOOST 4: NPC_ANTI_ROLL 8: NPC_NEUTRAL_HANDL; 2nd digit 1: NO_HANDBRAKE 2: STEER_REARWHEELS 4: HB_REARWHEEL_STEER 8: ALT_STEER_OPT; 3rd digit 1: WHEEL_F_NARROW2 2: WHEEL_F_NARROW 4: WHEEL_F_WIDE 8: WHEEL_F_WIDE2; 4th digit 1: WHEEL_R_NARROW2 2: WHEEL_R_NARROW 4: WHEEL_R_WIDE 8: WHEEL_R_WIDE2; 5th digit 1: HYDRAULIC_GEOM 2: HYDRAULIC_INST 4: HYDRAULIC_NONE 8: NOS_INST; 6th digit 1: OFFROAD_ABILITY 2: OFFROAD_ABILITY2 4: HALOGEN_LIGHTS 8: PROC_REARWHEEL_1ST; 7th digit 1: USE_MAXSP_LIMIT 2: LOW_RIDER 4: STREET_RACER; 8th digit 1: SWINGING_CHASSIS Those are the HEX-flags that control really various points, hydraulics, wheels, suspension, and some other in-game properties, read more from here. In the link below, you can find explanation for every single flag that has known effect. Let's say you want to have following flags enabled in your vehicle: Model flags:#1: 4: IS_LOW#2: -#3: 8: CONVERTIBLE#4: 2: DOUBLE_EXHAUST & 4: NO1FPS_LOOK_BEHIND & 8: FORCE_DOOR_CHECK#5: 4: AXLE_F_MCPHERSON#6: 4: AXLE_R_MCPHERSON#7: -#8: 4: FORCE_GROUND_CLEARANCEHandling:#1: 1: 1G_BOOST & 2: 2G_BOOST & 4: NPC_ANTI_ROLL #2: -#3: -#4: -#5: -#6: 4: HALOGEN_LIGHTS#7: 1: USE_MAXSP_LIMIT & 4: STREET_RACER#8: - Okay, so let's begin from the model flags. In first chosen model flag, you see there's only one propertie chosen, and it has value of 4, so the first part of HEX-flags will be 4. Second option doesn't have any chosen properties, so it'll stay as 0. Third one goes the same way as the first one, but fourth one can be tricky for some people. 2: DOUBLE_EXHAUST & 4: NO1FPS_LOOK_BEHIND & 8: FORCE_DOOR_CHECK You need to include all of those values in only one number, and you do it by simply adding them together, 2+4+8=14. If the number goes above 9, then following letters are used: 10: a11: b12: c13: d14: e15: fAnd so on... After you've gathered all of your flags in one bunch of numbers, then you need to flip it around: Original code:408C4404 70000450Flipped:4044C804 05400007 And remember to have first model flags, then handling flags, and both in reverse order. Hopefully I explained this simply enough. Link to comment Share on other sites More sharing options...
direstraits Posted November 5, 2011 Author Share Posted November 5, 2011 so I can modify my handling.cfg for the infernus get fire at gear change like GTA IV ???? HQ Weapon Icons for SA Click Here Link to comment Share on other sites More sharing options...
aStiffSausage Posted November 5, 2011 Share Posted November 5, 2011 Oh, you were talking about back-firing... I can't help you in that one, sorry. Link to comment Share on other sites More sharing options...
Silent Posted November 5, 2011 Share Posted November 5, 2011 No, backfiring is absent in SA. It's possible to make a mod for it, not easy though. Link to comment Share on other sites More sharing options...
direstraits Posted November 5, 2011 Author Share Posted November 5, 2011 I found this mod by ZAZ but it just works in one exaust and i want it to the double. http://zazmahall.de/ZAZGTASANATORIUM/zazmo...0/Back-fire.zip HQ Weapon Icons for SA Click Here Link to comment Share on other sites More sharing options...
aStiffSausage Posted November 5, 2011 Share Posted November 5, 2011 You could make a check for the vehicle through memory reading, does it have specific flag enabled. Memory addresses here I have no experience in reading handlings with Cleo, but it's possibly to read/write them through a script. (ZAZ has done that and done a little tutorial somewhere) Link to comment Share on other sites More sharing options...
direstraits Posted November 5, 2011 Author Share Posted November 5, 2011 This is the script: // This file was decompiled using sascm.ini published by Seemann (http://sannybuilder.com/files/SASCM.rar) on 13.10.2007{$VERSION 3.1.0027}{$CLEO .cs}//-------------MAIN---------------thread 'IFLAME' :IFLAME_11wait 0 if Actor.Driving($PLAYER_ACTOR) Actor.DrivingVehicleType($PLAYER_ACTOR, #INTRUDER)else_jump @IFLAME_11 if Actor.Driving($PLAYER_ACTOR) Actor.DrivingVehicleType($PLAYER_ACTOR, #INTRUDER)else_jump @IFLAME_11 if and84A9: not actor $PLAYER_ACTOR driving_heli 84C8: not actor $PLAYER_ACTOR driving_flying_vehicle 84A7: not actor $PLAYER_ACTOR driving_boat 89AE: not actor $PLAYER_ACTOR driving_train else_jump @IFLAME_11 if and not Actor.DrivingVehicleType($PLAYER_ACTOR, #BMX) not Actor.DrivingVehicleType($PLAYER_ACTOR, #BIKE) not Actor.DrivingVehicleType($PLAYER_ACTOR, #MTBIKE) not Actor.DrivingVehicleType($PLAYER_ACTOR, #VORTEX)else_jump @IFLAME_11 03C0: [email protected] = actor $PLAYER_ACTOR car 0AB1: call_scm_func @IFLAME_363 1 [email protected] [email protected] [email protected] [email protected] [email protected] -= 0.1 0AB8: get_vehicle [email protected] current_gear_to [email protected] :IFLAME_185wait 0 if Player.Defined($PLAYER_CHAR)else_jump @IFLAME_351 if Actor.Driving($PLAYER_ACTOR)else_jump @IFLAME_351 0AB8: get_vehicle [email protected] current_gear_to [email protected] if 803B: not [email protected] == [email protected] // (int) else_jump @IFLAME_185 0AB8: get_vehicle [email protected] current_gear_to [email protected] if [email protected] > 1 else_jump @IFLAME_185 066C: [email protected] = attach_particle "explosion_tiny" to_car [email protected] with_offset [email protected] [email protected] [email protected] rotation 0.0 -25.0 0.0 flag 1 064F: remove_references_to_particle [email protected] 018C: play_sound 1131 at 0.0 0.0 0.0 wait 500 jump @IFLAME_185 :IFLAME_351Car.RemoveReferences([email protected])jump @IFLAME_11 :IFLAME_3630A97: [email protected] = car [email protected] struct [email protected] += 34 0A8D: [email protected] = read_memory [email protected] size 2 virtual_protect 0 [email protected] *= 4 [email protected] += 11120840 0A8D: [email protected] = read_memory [email protected] size 4 virtual_protect 0 [email protected] += 92 0A8D: [email protected] = read_memory [email protected] size 4 virtual_protect 0 [email protected] += 72 0A8D: [email protected] = read_memory [email protected] size 4 virtual_protect 0 [email protected] += 4 0A8D: [email protected] = read_memory [email protected] size 4 virtual_protect 0 [email protected] += 4 0A8D: [email protected] = read_memory [email protected] size 4 virtual_protect 0 0AB2: ret 3 [email protected] [email protected] [email protected] You said i have to search for memory adress and i think I have to change it here: :IFLAME_3630A97: [email protected] = car [email protected] struct [email protected] += 34 0A8D: [email protected] = read_memory [email protected] size 2 virtual_protect 0 [email protected] *= 4 [email protected] += 11120840 0A8D: [email protected] = read_memory [email protected] size 4 virtual_protect 0 [email protected] += 92 0A8D: [email protected] = read_memory [email protected] size 4 virtual_protect 0 [email protected] += 72 0A8D: [email protected] = read_memory [email protected] size 4 virtual_protect 0 [email protected] += 4 0A8D: [email protected] = read_memory [email protected] size 4 virtual_protect 0 [email protected] += 4 0A8D: [email protected] = read_memory [email protected] size 4 virtual_protect 0 0AB2: ret 3 [email protected] [email protected] [email protected] HQ Weapon Icons for SA Click Here Link to comment Share on other sites More sharing options...
Wesser Posted November 5, 2011 Share Posted November 5, 2011 Few-minutes code (comments took me an extra time, though ): { FUNCTIONS INCLUDED:- isVehicleNitroEnabled Type: CHECK Description: Check if a vehicle has the nitro currently activated.- getModelOffset Type: GET Description: Get the offset of a loaded model.- getVehiclePartPosXYZ Type: GET Description: Get XYZ positions of a specific vehicle dummy.- getVehicleHandlingID Type: GET Description: Get the vehicle handling ID (not all handling.cfg lines respect the order).- getVehicleHandlingOffset Type: GET Description: Get the vehicle handling offset.- getVehicleModelFlag Type: GET Description: Get the vehicle model flag as defined in handling.cfg.- hasVehicleDoubleExhaust Type: GET Description: Check if a vehicle has 2 exhaust.}{$CLEO}0000: NOPwhile true wait 0 if and 00DF: actor $PLAYER_ACTOR driving 84A7: not actor $PLAYER_ACTOR driving_boat 84A9: not actor $PLAYER_ACTOR driving_heli 84C8: not actor $PLAYER_ACTOR driving_flying_vehicle 89AE: not actor $PLAYER_ACTOR driving_train 80DD: not actor $PLAYER_ACTOR driving_car_with_model #BMX 80DD: not actor $PLAYER_ACTOR driving_car_with_model #BIKE 80DD: not actor $PLAYER_ACTOR driving_car_with_model #MTBIKE then if 00DD: actor $PLAYER_ACTOR driving_car_with_model #INFERNUS // insert any model here then 03C0: [email protected] = actor $PLAYER_ACTOR car if 0AB1: call_scm_func @isVehicleNitroEnabled 1 vehicle [email protected] then continue end 0AB8: get_vehicle [email protected] current_gear_to [email protected] if and [email protected] <> -1 803B: [email protected] <> [email protected] then 0AB1: call_scm_func @getVehiclePartPosXYZ 2 vehicle [email protected] dummy 6 store_to [email protected] [email protected] [email protected] 066C: [email protected] = attach_particle "gunflash" to_car [email protected] with_offset [email protected] [email protected] [email protected] rotation 0.0 -90.0 0.0 flag 1 064F: remove_references_to_particle [email protected] if 0AB1: call_scm_func @hasVehicleDoubleExhaust 1 vehicle [email protected] then [email protected] *= -1.0 066C: [email protected] = attach_particle "gunflash" to_car [email protected] with_offset [email protected] [email protected] [email protected] rotation 0.0 -90.0 0.0 flag 1 064F: remove_references_to_particle [email protected] end 018C: play_sound 1131 at 0.0 0.0 0.0 // SOUND_AMMUNATION_GUN_COLLISION end 0AB8: get_vehicle [email protected] current_gear_to [email protected] end else [email protected] = -1 endend:isVehicleNitroEnabled{ Parameters: Passed: [email protected] - vehicle handle Result: true/false Example: 0AB1: call_scm_func @isVehicleNitroEnabled 1 vehicle 0x0 }0A97: [email protected] = car [email protected] [email protected] += 0x37C 0A8D: [email protected] = read_memory [email protected] size 1 virtual_protect 0 // bNitroActivatedif [email protected] <> 0 then 0485: return_trueelse 059A: return_falseend0AB2: ret 0 :getModelOffset{ Parameters: Passed: [email protected] - model ID Result: [email protected] - model offset Example: 0AB1: call_scm_func @getModelOffset 1 model #LANDSTAL store_to [email protected] }[email protected] *= 0x4 [email protected] += 0xA9B0C8 0A8D: [email protected] = read_memory [email protected] size 4 virtual_protect 0 // CModels (any type)0AB2: ret 1 [email protected] :getVehiclePartPosXYZ{ Parameters: Passed: [email protected] - vehicle handle [email protected] - dummy ID Result: [email protected] - X position [email protected] - Y position [email protected] - Z position Example: 0AB1: call_scm_func @getVehiclePartPosXYZ 2 vehicle 0x0 dummy 0 store_to [email protected] [email protected] [email protected] }0441: [email protected] = car [email protected] model0AB1: call_scm_func @getModelOffset 1 model [email protected] store_to [email protected] [email protected] += 0x5C 0A8D: [email protected] = read_memory [email protected] size 4 virtual_protect 0 [email protected] *= 0xC 005A: [email protected] += [email protected] 0A8D: [email protected] = read_memory [email protected] size 4 virtual_protect 0 [email protected] += 0x4 0A8D: [email protected] = read_memory [email protected] size 4 virtual_protect 0 [email protected] += 0x4 0A8D: [email protected] = read_memory [email protected] size 4 virtual_protect 0 0AB2: ret 3 [email protected] [email protected] [email protected] :getVehicleHandlingID{ Parameters: Passed: [email protected] - vehicle handle Result: [email protected] - vehicle handling ID Example: 0AB1: call_scm_func @getVehicleHandlingID 1 vehicle 0x0 store_to [email protected] }0441: [email protected] = car [email protected] model0AB1: call_scm_func @getModelOffset 1 model [email protected] store_to [email protected] [email protected] += 0x4A 0A8D: [email protected] = read_memory [email protected] size 2 virtual_protect 0 // wHandlingID0AB2: ret 1 [email protected] :getVehicleHandlingOffset{ Parameters: Passed: [email protected] - vehicle handle Result: [email protected] - vehicle handling offset Example: 0AB1: call_scm_func @getVehicleHandlingOffset 1 vehicle 0x0 store_to [email protected] }0AB1: call_scm_func @getVehicleHandlingID 1 vehicle [email protected] store_to [email protected] [email protected] *= 0xE0 [email protected] += 0xC2B9DC 0AB2: ret 1 [email protected] :getVehicleModelFlag{ Parameters: Passed: [email protected] - vehicle handle Result: [email protected] - vehicle model flag Example: 0AB1: call_scm_func @getVehicleModelFlag 1 vehicle 0x0 store_to [email protected] }0AB1: call_scm_func @getVehicleHandlingOffset 1 vehicle [email protected] store_to [email protected] [email protected] += 0xCC 0A8D: [email protected] = read_memory [email protected] size 4 virtual_protect 0 // dwModelFlag0AB2: ret 1 [email protected] :hasVehicleDoubleExhaust{ Parameters: Passed: [email protected] - vehicle handle Result: true/false Example: 0AB1: call_scm_func @hasVehicleDoubleExhaust 1 vehicle 0x0 }0AB1: call_scm_func @getVehicleModelFlag 1 vehicle [email protected] store_to [email protected] if 08B4: test [email protected] bit 13 // DOUBLE_EXHAUSTthen 0485: return_trueelse 059A: return_falseend0AB2: ret 0 Swear* 1 012 345 678 9A BCD EFG HIJK LMN OPQR STUV WX YZ Link to comment Share on other sites More sharing options...
direstraits Posted November 6, 2011 Author Share Posted November 6, 2011 i can't belive It works Thanks Wesser HQ Weapon Icons for SA Click Here Link to comment Share on other sites More sharing options...
Swear* Posted December 5, 2018 Share Posted December 5, 2018 Who can edit this handling line to make it to double exhaust? 1337.0 3300.0 1.0 0.0 -0.15 -0.3 70 0.70 0.75 0.48 5 380.0 65.0 0.8 R P 9.5 0.58 0 46.0 1.1 0.15 5.0 0.25 -0.10 0.40 0.3 0.15 0.54 105000 40000001 200000 0 0 1 Link to comment Share on other sites More sharing options...
ZAZ Posted December 5, 2018 Share Posted December 5, 2018 1337.0 3300.0 1.0 0.0 -0.15 -0.3 70 0.70 0.75 0.48 5 380.0 65.0 0.8 R P 9.5 0.58 0 46.0 1.1 0.15 5.0 0.25 -0.10 0.40 0.3 0.15 0.54 105000 2800 200000 0 0 1 Swear* 1 CLEO MODS CLEO Script Tutorial Link to comment Share on other sites More sharing options...
Swear* Posted December 8, 2018 Share Posted December 8, 2018 On 12/5/2018 at 11:56 PM, ZAZ said: 1337.0 3300.0 1.0 0.0 -0.15 -0.3 70 0.70 0.75 0.48 5 380.0 65.0 0.8 R P 9.5 0.58 0 46.0 1.1 0.15 5.0 0.25 -0.10 0.40 0.3 0.15 0.54 105000 2800 200000 0 0 1 Thanks! Can you explain me what you did and how can I increase max speed to atleast 420km/h? Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now