Jump to content

manual transmission


tsj

Recommended Posts

hi i wish to be able to drive any vehicle in gtasa with a manual transmission. but no one has ever made such a mods. so i thought of sharing it with all of you, if anyone could create it, he will be a very good modder. if mod created will ya please email it to me [email protected] or just post it on thegtaplace/gtagaming/gtagarage if possible. Thanks in advance pal

Link to comment
Share on other sites

Sounds interesting but as I remember the one I have for VC is a DLL and not a script. Which means you would need to know a lot more about making a dll and not just modding the scm with a cleo script. I am not saying it couldn't be done with a CLEO script, however it wouldn't make the cars performance any better.

02E3: 188@ = car 59@ speed

This opcode would fetch the car speed and could be used as a speedometer. Then since most cars have 3 to 4 gears and various top speeds you would need a table for each car. If the player's car is in first gear it should not be allowed past a certain speed 0-7 for example then 2nd gear 8-15, 3rd gear 16-30, then 4th gear 31 and up.

Need 4 Speed is made to run manual transmission or auto. The idea is you can burn rubber in 1st and hang in lower gears to get better performance. GTA game engine is not built that way the focus is more on fighting shooting and story, so if anything this type of mod wouldn't be for better performance just the illusion you have a stick shift.

BTW I did a search and found this on a Russian Forum, so it is not my code:

{$VERSION 3.1.0027}
{$CLEO .cs}

//-------------MAIN---------------
0000: NOP 

:Noname_2
0001: wait 0 ms 
00D6: if and
0256:   player $PLAYER_CHAR defined 
0038:   $ONMISSION == 0 
004D: jump_if_false @Noname_2 
00D6: if and
00DF:   actor $PLAYER_ACTOR driving 
84A7:   not actor $PLAYER_ACTOR driving_boat 
84A9:   not actor $PLAYER_ACTOR driving_heli 
84AB:   not actor $PLAYER_ACTOR driving_plane 
84C8:   not actor $PLAYER_ACTOR driving_flying_vehicle 
89AE:   not actor $PLAYER_ACTOR driving_train 
004D: jump_if_false @Noname_2 
00D6: if and
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 
80DD:   not actor $PLAYER_ACTOR driving_car_with_model #COMBINE 
80DD:   not actor $PLAYER_ACTOR driving_car_with_model #TRACTOR 
004D: jump_if_false @Noname_2 
0050: gosub @Noname_1093 
077E: get_active_interior_to $Active_Interior 
00D6: if and
0039:   29@ == 0 
0038:   $Active_Interior == 0 
004D: jump_if_false @Noname_2 
03C0: 0@ = actor $PLAYER_ACTOR car 
0006: 5@ = 1 
0006: 31@ = 0 

:Noname_180
0001: wait 0 ms 
0050: gosub @Noname_1093 
00D6: if and
00DB:   actor $PLAYER_ACTOR in_car 0@ 
0038:   $ONMISSION == 0 
8039:   not  29@ == 1 
004D: jump_if_false @Noname_1070 
02E3: 1@ = car 0@ speed 
0A97: 6@ = car 0@ struct 
0A8E: 23@ = 6@ + 1180 
0A8D: 23@ = read_memory 23@ size 4 virtual_protect 0 
008E: 23@ = float 23@ to_integer 
00D6: if 
0039:   23@ == -1 
004D: jump_if_false @Noname_296 
0006: 5@ = 6 

:Noname_296
00D6: if and
0039:   5@ == 6 
0039:   23@ == 1 
004D: jump_if_false @Noname_328 
0006: 5@ = 1 

:Noname_328
00D6: if 
0039:   23@ == 1 
004D: jump_if_false @Noname_353 
0006: 31@ = 0 

:Noname_353
0050: gosub @Noname_407 
03F0: enable_text_draw 1 
033F: set_text_draw_letter_size 0.6 1.6 
045A: draw_text_1number 208.55 425.333 GXT 'NUMBER' number 5@  
0002: jump @Noname_180 

:Noname_407
00D6: if 
81F3:   not car 0@ in_air 
004D: jump_if_false @Noname_1068 
00D6: if 
81F4:   not car 0@ flipped 
004D: jump_if_false @Noname_1068 
00D6: if 
0AB0:   key_pressed 107 
004D: jump_if_false @Noname_626 
00D6: if 
0039:   5@ == 0 
004D: jump_if_false @Noname_479 
000A: 5@ += 1 

:Noname_479
00D6: if and
0039:   5@ == 1 
0021:   1@ > 10.0 
004D: jump_if_false @Noname_514 
000A: 5@ += 1 

:Noname_514
00D6: if and
0039:   5@ == 2 
0021:   1@ > 16.5 
004D: jump_if_false @Noname_549 
000A: 5@ += 1 

:Noname_549
00D6: if and
0039:   5@ == 3 
0021:   1@ > 21.9 
004D: jump_if_false @Noname_584 
000A: 5@ += 1 

:Noname_584
00D6: if and
0039:   5@ == 4 
0021:   1@ > 41.0 
004D: jump_if_false @Noname_626 
000A: 5@ += 1 
0002: jump @Noname_733 

:Noname_626
00D6: if 
0AB0:   key_pressed 109 
004D: jump_if_false @Noname_783 
0A97: 6@ = car 0@ struct 
0A8E: 23@ = 6@ + 1180 // int 
0A8D: 23@ = read_memory 23@ size 4 virtual_protect 0 
008E: 23@ = float 23@ to_integer 
00D6: if and
0039:   31@ == 0 
8039:   not  23@ == -1 
0039:   23@ == 0 
004D: jump_if_false @Noname_726 
0006: 31@ = 1 
000E: 5@ -= 1 

:Noname_726
0002: jump @Noname_758 

:Noname_733
00D6: if 
0019:   5@ > 5 
004D: jump_if_false @Noname_758 
0006: 5@ = 5 

:Noname_758
00D6: if 
002B:   0 >= 5@ 
004D: jump_if_false @Noname_783 
0006: 5@ = 1 

:Noname_783
00D6: if 
0039:   5@ == 0 
004D: jump_if_false @Noname_811 
04BA: set_car 0@ speed_to 0.0 

:Noname_811
00D6: if and
0039:   5@ == 1 
0031:   1@ >= 11.3 
004D: jump_if_false @Noname_849 
04BA: set_car 0@ speed_to 11.3 

:Noname_849
00D6: if and
0039:   5@ == 2 
0031:   1@ >= 17.0 
004D: jump_if_false @Noname_887 
04BA: set_car 0@ speed_to 17.0 

:Noname_887
00D6: if and
0039:   5@ == 3 
0031:   1@ >= 22.5 
004D: jump_if_false @Noname_925 
04BA: set_car 0@ speed_to 22.5 

:Noname_925
00D6: if and
0039:   5@ == 4 
0031:   1@ >= 41.5 
004D: jump_if_false @Noname_963 
04BA: set_car 0@ speed_to 41.5 

:Noname_963
00D6: if and
0039:   5@ == 3 
0023:   3.0 > 1@ 
004D: jump_if_false @Noname_998 
0006: 5@ = 1 

:Noname_998
00D6: if and
0039:   5@ == 4 
0023:   3.0 > 1@ 
004D: jump_if_false @Noname_1033 
0006: 5@ = 1 

:Noname_1033
00D6: if and
0039:   5@ == 5 
0023:   3.0 > 1@ 
004D: jump_if_false @Noname_1068 
0006: 5@ = 1 

:Noname_1068
0051: return 

:Noname_1070
01C3: remove_references_to_car 0@ 
03F0: enable_text_draw 0 
0006: 31@ = 0 
0002: jump @Noname_2 

:Noname_1093
00D6: if 
0AB0:   key_pressed 106 
004D: jump_if_false @Noname_1175 
00D6: if 
0039:   29@ == 0 
004D: jump_if_false @Noname_1145 
0006: 29@ = 1 
0001: wait 1000 ms 
0002: jump @Noname_1175 

:Noname_1145
00D6: if 
0039:   29@ == 1 
004D: jump_if_false @Noname_1175 
0006: 29@ = 0 
0001: wait 1000 ms 

:Noname_1175
0051: return

I haven't tried it so don't blame me if it bites.

JAB B)

Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
×
×
  • Create New...