Jump to content
    1. Welcome to GTAForums!

    1. GTANet.com

    1. GTA Online

      1. Los Santos Drug Wars
      2. Updates
      3. Find Lobbies & Players
      4. Guides & Strategies
      5. Vehicles
      6. Content Creator
      7. Help & Support
    2. Red Dead Online

      1. Blood Money
      2. Frontier Pursuits
      3. Find Lobbies & Outlaws
      4. Help & Support
    3. Crews

    1. Grand Theft Auto Series

      1. Bugs*
      2. St. Andrews Cathedral
    2. GTA VI

    3. GTA V

      1. Guides & Strategies
      2. Help & Support
    4. GTA IV

      1. The Lost and Damned
      2. The Ballad of Gay Tony
      3. Guides & Strategies
      4. Help & Support
    5. GTA San Andreas

      1. Classic GTA SA
      2. Guides & Strategies
      3. Help & Support
    6. GTA Vice City

      1. Classic GTA VC
      2. Guides & Strategies
      3. Help & Support
    7. GTA III

      1. Classic GTA III
      2. Guides & Strategies
      3. Help & Support
    8. Portable Games

      1. GTA Chinatown Wars
      2. GTA Vice City Stories
      3. GTA Liberty City Stories
    9. Top-Down Games

      1. GTA Advance
      2. GTA 2
      3. GTA
    1. Red Dead Redemption 2

      1. PC
      2. Help & Support
    2. Red Dead Redemption

    1. GTA Mods

      1. GTA V
      2. GTA IV
      3. GTA III, VC & SA
      4. Tutorials
    2. Red Dead Mods

      1. Documentation
    3. Mod Showroom

      1. Scripts & Plugins
      2. Maps
      3. Total Conversions
      4. Vehicles
      5. Textures
      6. Characters
      7. Tools
      8. Other
      9. Workshop
    4. Featured Mods

      1. Design Your Own Mission
      2. OpenIV
      3. GTA: Underground
      4. GTA: Liberty City
      5. GTA: State of Liberty
    1. Rockstar Games

    2. Rockstar Collectors

    1. Off-Topic

      1. General Chat
      2. Gaming
      3. Technology
      4. Movies & TV
      5. Music
      6. Sports
      7. Vehicles
    2. Expression

      1. Graphics / Visual Arts
      2. GFX Requests & Tutorials
      3. Writers' Discussion
      4. Debates & Discussion
    1. Announcements

    2. Support

    3. Suggestions

Car steering


pinky
 Share

Recommended Posts

I have currently decided to try some memory address foolery to try and make proper 4 front wheel steering work.

Now my current code is as follows, basically just to display the steering angles themselves as a trial to see if I can read the addresses.

 

//-------------MAIN---------------0000: NOP :steer03A4: name_thread 'steer':start0001: wait 0 ms 00D6: if 00DF:   actor $PLAYER_ACTOR driving 004D: jump_if_false @start0A8D: [email protected] = read_memory 0xB7CD98 size 4 virtual_protect 0 //CPedPtr = ReadMemory ( 0xB7CD98 ) 00D6: if 1                  0A8D: [email protected] = read_memory [email protected] + 0x58C size 4 virtual_protect 0 //CVehiclePtr = ReadMemory ( CPedPtr + 0x58C )00D6: if 1              0A8D: $ANGLE1 = read_memory [email protected] + 0x494 size 4 virtual_protect 0 //SteeringAngle1 = ReadMemory ( CVehiclePtr + 0x494 )00D6: if 1  0A8D: $ANGLE2 = read_memory [email protected] + 0x498 size 4 virtual_protect 0 //SteeringAngle2 = ReadMemory ( CVehiclePtr + 0x498 )00D6: if 1  03F0: enable_text_draw 1 04F7: status_text $ANGLE1 type 0 line 1 GXT 'DUMMY' // global_variable04F7: status_text $ANGLE2 type 0 line 2 GXT 'DUMMY' // global_variable0002: jump @start004E: end_thread

 

 

My problems so far are that the displayed values don't float and I am unsure how to clear the memory once finished.

These values don't particulary make sense to me either as they are quite large, any clues?

 

Is it possible to write to the + 0x494 and the + 0x498 addresses to control the steering angle with keypresses at a later date?

 

I am completely new to the memory handling aspect of SCM coding so put everything in n00b terms please.

Link to comment
Share on other sites

As I know you can't add another value to 0A8D even if I didn't try this way. Use 0A8E to store the result of two values or arrays but first convert them to an integer value and then repeat the inverse procedure. See the documentation here. Reply my answer if I'm completely wrong.

012          345
678   9A   BCD
EFG HIJK LMN
OPQR  STUV
WX    YZ

Link to comment
Share on other sites

spaceeinstein

You can look at an example here.

Link to comment
Share on other sites

 

You can look at an example here.

Cheers Spaceeinstein. smile.gif

 

Code works now, the reading is still high and I notice there is no data for turning left, only right.

 

 

:steer03A4: name_thread 'steer':start0001: wait 0 ms 00D6: if 00DF:   actor $PLAYER_ACTOR driving 004D: jump_if_false @start 03C0: [email protected] = actor $PLAYER_ACTOR car0A97: [email protected] = car [email protected] struct0A8E: [email protected] = [email protected] + 0x494 // steering angle 10A8E: [email protected] = [email protected] + 0x498 // steering angle 20A8D: $ANGLE1 = read_memory [email protected] size 4 virtual_protect 0 //SteeringAngle1 = ReadMemory ( CVehiclePtr + 0x494 )0A8D: $ANGLE2 = read_memory [email protected] size 4 virtual_protect 0 //SteeringAngle2 = ReadMemory ( CVehiclePtr + 0x498 )03F0: enable_text_draw 1 04F7: status_text $ANGLE1 type 0 line 1 GXT 'DUMMY' // global_variable04F7: status_text $ANGLE2 type 0 line 2 GXT 'DUMMY' // global_variable0002: jump @start004E: end_thread

 

 

This will help me no end, thanks to you both for helping.

 

Righto, my next problem. Using the code below I attempted to write to the steering to control it, or force a turn angle of some sort.

 

:steer03A4: name_thread 'steer':start0001: wait 0 ms 00D6: if 00DF:   actor $PLAYER_ACTOR driving 004D: jump_if_false @start 03C0: [email protected] = actor $PLAYER_ACTOR car0A97: [email protected] = car [email protected] struct0A8E: [email protected] = [email protected] + 0x494 // steering angle 10A8E: [email protected] = [email protected] + 0x498 // steering angle 20A8C: write_memory [email protected] size 10 value 1000000000 virtual_protect 00A8C: write_memory [email protected] size 10 value 500000000 virtual_protect 00002: jump @start004E: end_thread

 

 

Now all this does is write to memory address but has no effect on the steering whatsoever, I was hoping for at least a crash as an indicator that something treid.

These values show up in my display created in the previous reader codes but the steering itself is unaffected. The values are so high as I recorded a max of 1058824617 on full left lock of the steering, only shows 0 for centre or any right movement. Any idea why?

 

My main question, how do I control the steering by inputting back into the addresses.?

Edited by pinky
Link to comment
Share on other sites

 

0A8C: write_memory [email protected] size 10 value 1000000000 virtual_protect 0

0A8C: write_memory [email protected] size 10 value 500000000 virtual_protect 0

 

try floating-point numbers to write in as value. (100.0, -0.5, 0.0, etc).

Link to comment
Share on other sites

0A8C: write_memory [email protected] size 10 value 1000000000 virtual_protect 0

0A8C: write_memory [email protected] size 10 value 500000000 virtual_protect 0

 

try floating-point numbers to write in as value. (100.0, -0.5, 0.0, etc).

Sorry for the long wait, was away for weekend getting blitzed.

Gave those a try, still the same result. It just shows up the number with that first script I made to read the position and stays there without actually altering the steering of the vehicle itself.

I have another idea to try and force the steering though, I made a script to give the helis similar crash characteristics as GTA IV and it may be possible to do something that way.

Unless someone has the memory way beat?

 

I will try some other ideas too, won't be beat.

Link to comment
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • 1 User Currently Viewing
    0 members, 0 Anonymous, 1 Guest

×
×
  • Create New...

Important Information

By using GTAForums.com, you agree to our Terms of Use and Privacy Policy.