Jump to content
    1. Welcome to GTAForums!

    1. GTANet.com

    1. GTA Online

      1. The Criminal Enterprises
      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

*DO NOT* SHARE MEDIA OR LINKS TO LEAKED COPYRIGHTED MATERIAL. Discussion is allowed.

[SA] CLEO How to store string literals in memory?


cjfan_
 Share

Recommended Posts

Hi, how can I store string literals (GXT keys  e.g 'GUN1') in a memory allocated array?

 

For example lets say I have this array:

0AC8: [email protected] = allocate_memory_size 16 //2 strings. Is string size 8 bytes?

 

I tried something like this

write_memory [email protected] size 8 value 'GUN1' virtual_protect 0

0A8D: [email protected] = read_memory [email protected] size 8 virtual_protect 0

but it doesn't work.

 

 

Edited by GrGTaGamer
Link to comment
Share on other sites

The command to read and write memory only supports 1, 2, 4 bytes

 

I think you should allocate memory and pass the string directly to the variable.  There is no need to write characters into memory.  Or use character variables s and v

Link to comment
Share on other sites

Keep in mind that each short string (7 bytes plus a null terminator) will use two variables, so @0[1] will be stored in local vars [email protected] and [email protected] There really isn't enough room for string arrays in a custom script. Can you adapt your script to a custom mission so you have access to the full local var set?

 

I often use out of range "extended variable space" for testing with string arrays. The area of SCM memory beyond the global var space and before the main loop in the main script isn't needed any more by the time a cleo script can actually run. If your main script isn't too heavily modified you should be able to safely use global variables $12000 thru $14999 for temporary use.

 

However, the proper strategy, after the bugs have been ironed out with dirty tricks, would be you reserve two local vars to hold the gxt key and use jump tables/switch case or if-then-else constructs to assign a hard coded gxt string as needed. There are examples of this strategy buried in a standard main - forget which missions now. 

 

CrimeSplash, included with the Crimes and Chaos Toolkit I put together for testing the wanted level system might provide a useful example. The script was built using the strategy described above. First I got it working with the easy extended global var string arrays, but didn't think that would be a safe script to share, so I converted the arrays to jump tables.

 

 

Link to comment
Share on other sites

If I have a string in memory loaded with sscanf (0x8220AD) how can I use it in opcodes that take string literals (e.g 08DB)?

 

EDIT: Basically I have a pointer var to a string (4 bytes) and I need to save it in a string variable (characters).

 

nvm I did it using 0A8D

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