Whytz SA Posted August 13 Share Posted August 13 Hi Guys, Can You help me? in Yesterday i make cleo cheats but i getting problem in memory address I want Make the player is immortal but is getting problem in opcodes : 0DD9: write_mem_addr 0x96916D value 1 size 1 add_ib 0 protect 0 I know infinite health addr is 0x96916D but i try in my gta sa mobile, isnt work Please help me, have i wrong in implementation of opcodes? Link to comment Share on other sites More sharing options...
OrionSR Posted August 13 Share Posted August 13 (edited) 19 hours ago, Whytz SA said: Please help me, have i wrong in implementation of opcodes? The main problem is that the address you are working with is for PC. Android requires a much different strategy for finding addresses. It's too late to explain fully. Hopefully you can figure it out based on these notes. Also, I made quite a few guesses and have not verified anything. My confidence in these codes is not very high. 0DD0: [email protected] = get_label_addr @_ZN6CCheat15m_aCheatsActiveE 0DD1: [email protected] = get_func_addr_by_cstr_name [email protected] 000A: [email protected] += 0x7 // TogglePlayerInvincibility = 7 0DD9: write_mem_addr [email protected] value 1 size 1 add_ib 0 protect 0 004E: terminate_this_script //outside of the main body of the script :_ZN6CCheat15m_aCheatsActiveE hex "_ZN6CCheat15m_aCheatsActiveE" 00 end Basically you are trying to change one byte in a block of flags for each cheat. Sometimes setting the flag will implement a change to the environment; but sometimes the cheat requires a function that executes codes (like spawn a vehicle). In case I've missed the target flag, here's a list of cheats that might help you narrow the search for the proper flag. Spoiler WeaponCheat1 = 0 WeaponCheat2 = 1 WeaponCheat3 = 2 WeaponCheat4 = 3 TimeTravelCheat = 4 ScriptBypassCheat = 5 ShowMappingsCheat = 6 TogglePlayerInvincibility = 7 ToggleShowTapToTarget = 8 ToggleShowTargeting = 9 Edited August 14 by OrionSR Link to comment Share on other sites More sharing options...
Whytz SA Posted August 13 Author Share Posted August 13 1 hour ago, OrionSR said: The main problem is that the address you are working with is for PC. Android requires a much different strategy for finding addresses. It's too late to explain fully. Hopefully you can figure it out based on these notes. Also, I made quite a few guesses and have not verified anything. My confidence in these codes is not very high. 0DD0: [email protected] = get_label_addr @_ZN6CCheat15m_aCheatsActiveE 0DD1: [email protected] = get_func_addr_by_cstr_name [email protected] 000A: [email protected] += 0x7 // TogglePlayerInvincibility = 7 0DD9: write_mem_addr [email protected] value 1 size 1 add_ib 0 protect 0 004E: terminate_this_script //outside of the main body of the script :_ZN6CCheat15m_aCheatsActiveE hex "_ZN6CCheat15m_aCheatsActiveE" 00 end Basically you are trying to change one byte in a block of flags for each cheat. Sometimes setting the flag will implement a change to the environment; but sometimes the cheat requires a function that executes codes (like spawn a vehicle). In case I've missed the target flag, here's a list of cheats that might help you narrow the search for the proper flag. Reveal hidden contents CWeaponCheat1 = 0 CWeaponCheat2 = 1 CWeaponCheat3 = 2 CWeaponCheat4 = 3 CTimeTravelCheat = 4 CScriptBypassCheat = 5 CShowMappingsCheat = 6 CTogglePlayerInvincibility = 7 CToggleShowTapToTarget = 8 CToggleShowTargeting = 9 CMoneyArmourHealthCheat = 10 CWantedLevelUpCheat = 11 CWantedLevelDownCheat = 12 CSunnyWeatherCheat = 13 CExtraSunnyWeatherCheat = 14 CCloudyWeatherCheat = 15 CRainyWeatherCheat = 16 CFoggyWeatherCheat = 17 CFastTimeCheat = 18 CSlowTimeCheat = 19 CMayhemCheat = 20 CEverybodyAttacksPlayerCheat = 21 CTankCheat = 22 CStockCarCheat = 23 CStockCar2Cheat = 24 CStockCar3Cheat = 25 CStockCar4Cheat = 26 CHearseCheat = 27 CLovefistCheat = 28 CTrashmasterCheat = 29 CGolfcartCheat = 30 CBlowUpCarsCheat = 31 CSuicideCheat = 32 CPinkCarsCheat = 33 CBlackCarsCheat = 34 CFatCheat = 35 CMuscleCheat = 36 CTheGamblerCheat = 37 CSkinnyCheat = 38 CElvisLivesCheat = 39 CVillagePeopleCheat = 40 CBeachPartyCheat = 41 CGangsCheat = 42 CGangLandCheat = 43 CNinjaCheat = 44 CLoveConquersAllCheat = 45 CAllCarsAresh*tCheat = 46 CAllCarsAreGreatCheat = 47 CFlyboyCheat = 48 CVortexCheat = 49 CMidnightCheat = 50 CDuskCheat = 51 CStormCheat = 52 CSandstormCheat = 53 CPredatorCheat = 54 CParachuteCheat = 55 CJetpackCheat = 56 CNotWantedCheat = 57 CWantedCheat(CCheat = 58 CRiotCheat = 59 CFunhouseCheat = 60 CAdrenalineCheat = 61 CDrivebyCheat = 62 CCountrysideInvasionCheat = 63 CStaminaCheat = 64 CWeaponSkillsCheat = 65 CVehicleSkillsCheat = 66 CApacheCheat = 67 CQuadCheat = 68 CTankerCheat = 69 CDozerCheat = 70 CStuntPlaneCheat = 71 CMonsterTruckCheat = 72 CWeaponSlotCheat = 73 CxboxHelperCheat = 74 Thank You OrionSR for Replying, but can you share example of script? I try this but isnt work : {$CLEO .csi} thread 'Immortal' :IMMOR 0DD0: [email protected] = get_label_addr @_ZN6CCheat15m_aCheatsActiveE 0DD1: [email protected] = get_func_addr_by_cstr_name [email protected] 000A: [email protected] += 0x7 // TogglePlayerInvincibility = 7 0DD9: write_mem_addr [email protected] value 1 size 1 add_ib 0 protect 0 end_thread :_ZN6CCheat15m_aCheatsActiveE hex "_ZN6CCheat15m_aCheatsActiveE" 00 end Link to comment Share on other sites More sharing options...
OrionSR Posted August 13 Share Posted August 13 (edited) 6 hours ago, Whytz SA said: I try this but isnt work That is disappointing but not a big surprise. Your script looks fine. I think the problem is due to unlucky guesses. Let's try another guess. This code is very likely to crash or do nothing but the label sounds promising. Maybe we'll be lucky. If this script does not work then throw it out. The previous strategy is more flexible. {$CLEO .csi} 0000: 0DD0: [email protected] = get_label_addr @_ZN10CPlayerPed22bDebugPlayerInvincibleE_ptr 0DD1: [email protected] = get_func_addr_by_cstr_name [email protected] 0DD8: [email protected] = read_mem_addr [email protected] size 1 add_ib 0 0DD9: write_mem_addr [email protected] value 1 size 1 add_ib 0 protect 0 00BB: show_text_lowpriority GXT 'FESZ_LS' time 2000 flag 1 // Load Successful. 004E: terminate_this_script :_ZN10CPlayerPed22bDebugPlayerInvincibleE_ptr hex "_ZN10CPlayerPed22bDebugPlayerInvincibleE_ptr" 00 end I'll do some more research; maybe I can find a reference that has done something similar. In the meantime, you could try enabling other cheat flags that change weather, ped behavior or game environment, to verify the overall strategy is working. The flags for cheats that spawn cars or give stuff to the player won't do anything using this strategy. If some cheat flags work, then you should eventually find the immortal flag by testing them one at a time, or in batches. Added: Do you have a way to enter cheat strings with a keyboard? Edited August 13 by OrionSR Link to comment Share on other sites More sharing options...
OrionSR Posted August 14 Share Posted August 14 (edited) Cheats are a difficult subject to research; far too many false hits. But I think I managed to track down everything I was hoping to find, which only verified my initial guesses. Alexander Blade, the original author of Cleo for Android, wrote a cheat activation script that was included with CleoA. I managed to track down the source script. This snippet from the cheat flag section of the script seems to confirm the strategy I posted. From Scripts\gtasa.cheats.txt: 0DD0: [email protected] = get_label_addr @earr_bool_cheats 0DD1: [email protected] = get_func_addr_by_cstr_name [email protected] [email protected] += [email protected] 0DD8: [email protected] = read_mem_addr [email protected] size 1 add_ib 0 if [email protected] == 0 then [email protected] = 1 else [email protected] = 0 end {...} 0DD9: write_mem_addr [email protected] value [email protected] size 1 add_ib 0 protect 0 {...} :earr_bool_cheats hex "_ZN6CCheat15m_aCheatsActiveE" 00 end And I finally tracked down this Google Sheet that has technical details for each cheat in the pre-DE versions of GTASA for in the original order. It looks like 7 is the proper index, so I'm not sure what the problem might be. Edited August 14 by OrionSR Link to comment Share on other sites More sharing options...
Whytz SA Posted August 14 Author Share Posted August 14 1 hour ago, OrionSR said: Alexander Blade, the original author of Cleo for Android, wrote a cheat activation script that was included with CleoA. I managed to track down the source script. This snippet from the cheat flag section of the script seems to confirm the strategy I posted. I just Try But Its make my gta crash Link to comment Share on other sites More sharing options...
Whytz SA Posted August 14 Author Share Posted August 14 In 3 days i experiment with Memory Addresess but the result is Crash or Not Working huh.... I feel like giving up Link to comment Share on other sites More sharing options...
crashoverride93 Posted August 14 Share Posted August 14 (edited) No need for a hardcoded address on this one {$CLEO .cs} thread 'HEALTH' :HEALTH_00 wait 100 ms 0256: player $PLAYER_CHAR defined jf @HEALTH_00 0223: set_actor $PLAYER_ACTOR health_to 1000 jump @HEALTH_00 I know how to use memory write opcodes but the ones in the documenttation mostly apply to 1.0 hoodlum patch on pc. So bassicly you would have to use some kind of android debugger to get the mobile addresses. Edited August 14 by crashoverride93 Link to comment Share on other sites More sharing options...
OrionSR Posted August 14 Share Posted August 14 (edited) I'm stumped. I thought I was close but can't get it to work. I can set cheat flags for stuff like Rainy Weather or Cars Drive on Water but it doesn't work for the immortal cheat. According to what I learned from Alexander Blade's cheat code script, the immortal cheat should be implemented with a function. However, I can't get the functions to work for immortality or any other cheat function that I tried. For that matter, I've never been able to implement a function on Android, so maybe my game is broken. This version of the script will read the function pointers and will set a cheat flag if none is found, otherwise it tries to call the function. Maybe it'll work for you. {$CLEO .csi} 0000: [email protected] = 7 // CCheat__TogglePlayerInvincibility = 7 0DD0: [email protected] = get_label_addr @_ZN6CCheat17m_aCheatFunctionsE 0DD1: [email protected] = get_func_addr_by_cstr_name [email protected] [email protected] *= 4 005A: [email protected] += [email protected] [email protected] /= 4 0DD8: [email protected] = read_mem_addr [email protected] size 4 add_ib 0 if [email protected] == 0 then 0DD0: [email protected] = get_label_addr @_ZN6CCheat15m_aCheatsActiveE 0DD1: [email protected] = get_func_addr_by_cstr_name [email protected] 005A: [email protected] += [email protected] 0DD9: write_mem_addr [email protected] value 1 size 1 add_ib 0 protect 0 00BB: show_text_lowpriority GXT 'BEEFY' time 2000 flag 1 // Beefy Baron else //0DDE: call_func [email protected] add_ib 0 // WRONG 0DD2: context_call_func [email protected] 00BB: show_text_lowpriority GXT 'FESZ_LS' time 2000 flag 1 // Load Successful. end 004E: end_thread :_ZN6CCheat17m_aCheatFunctionsE hex "_ZN6CCheat17m_aCheatFunctionsE" 00 end :_ZN6CCheat15m_aCheatsActiveE hex "_ZN6CCheat15m_aCheatsActiveE" 00 end Edited August 26 by OrionSR Updated with working function call Link to comment Share on other sites More sharing options...
crashoverride93 Posted August 14 Share Posted August 14 cleo .csi? orion? remove the I its cleo .cs unless thats a diffrence between mobile I dont know about. Link to comment Share on other sites More sharing options...
Whytz SA Posted August 14 Author Share Posted August 14 2 hours ago, OrionSR said: Maybe it'll work for you. Yes no crash, but the script not make the player immortal Link to comment Share on other sites More sharing options...
OrionSR Posted August 14 Share Posted August 14 (edited) 20 hours ago, crashoverride93 said: cleo .csi? orion? remove the I its cleo .cs unless thats a diffrence between mobile I dont know about. Yeah, that's a feature of Cleo for Android. *.csa scripts run automatically, like *.cs scripts for PC. *.csi scripts are launched from a built-in cleo menu. It's a nice feature as I don't need to worry about triggering with widgets and conflicts with other tools. On 8/13/2022 at 7:22 PM, Whytz SA said: I feel like giving up I'm not a big fan of giving up, but I think it might be time to change to another strategy. I tracked down a few stray leads and managed to track your original PC address to "0x96916D – Infinite Health" from the memory wiki. This corresponds to CHEAT_BULLETPROOF, index 69, on the cheat sheet. I've been tracking the wrong cheat, a new to mobile and remastered cheat, this whole time. So, one more try for the original request. {$CLEO .csi} 0000: [email protected] = 0x45 // CHEAT_BULLETPROOF = 69 0DD0: [email protected] = get_label_addr @_ZN6CCheat15m_aCheatsActiveE 0DD1: [email protected] = get_func_addr_by_cstr_name [email protected] 005A: [email protected] += [email protected] 0DD9: write_mem_addr [email protected] value 1 size 1 add_ib 0 protect 0 03E5: show_text_box 'CHEAT1' 004E: end_thread :_ZN6CCheat15m_aCheatsActiveE hex "_ZN6CCheat15m_aCheatsActiveE" 00 end This cheat flag seems to be working as described. It makes CJ bulletproof. It does not protect CJ from damage from satchel charge explosions or fall damage. If bulletproof is all the cheat is going to do then you may as well implement it with standard SCM commands. 02AB: set_actor $Player_Actor immunities BP 1 FP 1 EP 1 CP 1 MP 1 02A9: set_actor $Player_Actor immune_to_nonplayer 1 04D8: set_actor $Player_Actor drowns_in_water 0 Added: No Food cheat (so the work on memory addresses isn't a complete waste): Spoiler {$CLEO .csi} 0000: [email protected] = 0x4C // CHEAT_NOFOOD = 76 0DD0: [email protected] = get_label_addr @_ZN6CCheat15m_aCheatsActiveE 0DD1: [email protected] = get_func_addr_by_cstr_name [email protected] 005A: [email protected] += [email protected] 0DD9: write_mem_addr [email protected] value 1 size 1 add_ib 0 protect 0 03E5: show_text_box 'CHEAT1' 004E: end_thread :_ZN6CCheat15m_aCheatsActiveE hex "_ZN6CCheat15m_aCheatsActiveE" 00 end Other deaths not addressed: Vehicle health, immunities, jacking, etc. (see God Mode mod, PC/Android) Death by plane crashing into water (built into game engine) Death by failing to deploy parachute (parachute script in main.scm) Edited August 15 by OrionSR Link to comment Share on other sites More sharing options...
crashoverride93 Posted August 17 Share Posted August 17 (edited) @OrionSR so if I understand you correctly .csa is for android and .csi is for IOS? Thats cool if so. Also the immunitys cheat would get canceled out very quickly anytime main scm 01B4: set_player $PLAYER_CHAR can_move 1 Which happens a lot. Edited August 17 by crashoverride93 Link to comment Share on other sites More sharing options...
OrionSR Posted August 17 Share Posted August 17 3 hours ago, crashoverride93 said: so if I understand you correctly .csa is for android and .csi is for IOS? No, strictly speaking, cleo scripts don't work on iOS. The primary difference is that the .csi files won't activate when you start the game or load a save. Instead, they are discovered by the cleo menu. Swipe the screen to activate the menu, and choose the script from the list. It's a nice feature as you can have multiple scripts ready to activate when needed. Link to comment Share on other sites More sharing options...
crashoverride93 Posted August 18 Share Posted August 18 Oh thats intresting I guess thats to make up for the fact on mobile you cant use a keyboard to load them when needed like on the pc. Link to comment Share on other sites More sharing options...
OrionSR Posted August 26 Share Posted August 26 On 8/14/2022 at 1:20 AM, Whytz SA said: Yes no crash, but the script not make the player immortal Give the immortal script posted above another try. The code has been fixed and updated, but only tested for the weapon set 1 cheat. 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