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. Forum Support

    3. Suggestions

[SA] Climb in interiors


DavidReyes2250
 Share

Recommended Posts

DavidReyes2250

Hello, do you know if there is a way to make the player climb in the interiors as he does when he is outside?

Although there is a memory address that when overwritten, the player can only climb walls that are nearby and not jump from one place to hang on another and climb.

 

0A8C: write_memory 0x680C9E size 1 value 0 virtual_protect 0
Link to comment
Share on other sites

On 2/7/2023 at 7:26 AM, DavidReyes2250 said:

Hello, do you know if there is a way to make the player climb in the interiors as he does when he is outside?

Although there is a memory address that when overwritten, the player can only climb walls that are nearby and not jump from one place to hang on another and climb.

 

0A8C: write_memory 0x680C9E size 1 value 0 virtual_protect 0

Modify "CTaskSimpleJumpInAir" function also:

//  0x680600    CTaskSimpleJumpInAir
    0x680ABD mov eax, _ZN5CGame8currAreaE
    0x680AC2 test eax, eax
    0x680AC4 jne loc_680C00

And here:   

//  0x680C60    CTaskSimpleJumpLaunch
    0x680C9D mov eax, _ZN5CGame8currAreaE   
    0x680CA2 test eax, eax
    0x680CA4 jne loc_680CC0    

You wrote size 1 while the value is a DWORD.

 

It would be better to Nop the cond. check instead of the variable store:

MakeNOP(0x680AC4, 6);   //  [size 6]
MakeNOP(0x680CA4, 2);   //  [WORD]

To return to default:

WriteMemoryRaw(0x680AC4, "x0F\x85\x36\x01\x00\x00", 6);  
WriteMemory<WORD>(0x680CA4, 0x1A75);
Spoiler
inline void WriteMemoryRaw(memory_pointer_tr addr, void* value, size_t size, bool vp) {
    scoped_unprotect xprotect(addr, vp? size : 0);
    memcpy(addr.get(), value, size);
}

inline void MakeNOP(memory_pointer_tr at, size_t count = 1, bool vp = true) {
    MemoryFill(at, 0x90, count, vp);
}

template<class T>
inline void WriteMemory(memory_pointer_tr addr, T value, bool vp = false)
{
    WriteObject(addr, value, vp);
}

 

 

Edited by Jack
.
  • Like 1
Link to comment
Share on other sites

DavidReyes2250
3 hours ago, Jack said:

Modify "CTaskSimpleJumpInAir" function also:

//  0x680600    CTaskSimpleJumpInAir
    0x680ABD mov eax, _ZN5CGame8currAreaE
    0x680AC2 test eax, eax
    0x680AC4 jne loc_680C00

And here:   

//  0x680C60    CTaskSimpleJumpLaunch
    0x680C9D mov eax, _ZN5CGame8currAreaE   
    0x680CA2 test eax, eax
    0x680CA4 jne loc_680CC0    

You wrote size 1 while the value is a DWORD.

 

It would be better to Nop the cond. check instead of the variable store:

MakeNOP(0x680AC4, 6);   //  [size 6]
MakeNOP(0x680CA4, 2);   //  [WORD]

To return to default:

WriteMemoryRaw(0x680AC4, "x0F\x85\x36\x01\x00\x00", 6);  
WriteMemory<WORD>(0x680CA4, 0x1A75);
  Hide contents
inline void WriteMemoryRaw(memory_pointer_tr addr, void* value, size_t size, bool vp) {
    scoped_unprotect xprotect(addr, vp? size : 0);
    memcpy(addr.get(), value, size);
}

inline void MakeNOP(memory_pointer_tr at, size_t count = 1, bool vp = true) {
    MemoryFill(at, 0x90, count, vp);
}

template<class T>
inline void WriteMemory(memory_pointer_tr addr, T value, bool vp = false)
{
    WriteObject(addr, value, vp);
}

 

 

Thank for the help! But how could I write all this in a SCM/CLEO script? I don't usually handle memory addresses much and I don't understand C++ much.

Edited by DavidReyes2250
Link to comment
Share on other sites

DavidReyes2250

Works fine. Thanks!

Edited by DavidReyes2250
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.