psychedelist Posted December 24, 2017 Share Posted December 24, 2017 (edited) I need to be able to do some things upon pay n spray usage. Easy ways to detect it have failed (I can't check for money because they're not charged if car health is full, and i can't check for color because taxis aren't repainted). I tried to check it using this opcode in a loop with "wait 0" and it doesn't work (8 is int id of Idlewood pay n spray, according to this thread): if 0329: has_respray_happened 8then // Pay n spray usedend I also tried using this code (taken from the same thread): 0006: [email protected] = 8 // Garage to Modify 0085: [email protected] = [email protected] // write address = garage index0012: [email protected] *= 216 // *= record size (wiki link says it should be 212)000A: [email protected] += 0x96C048 // += start of garagezone data000A: [email protected] += 78 // += door flags offset 0A8D: [email protected] = read_memory [email protected] size 1 virtual_protect 0if 88B4: test [email protected] bit 3then // used pay n sprayend It doesn't work too. Maybe i'm testing the bit incorrectly, or... Wiki link says that "that the memory location of garages can vary depending on the scm script you use". I've edited main.scm a lot, so that is probably the problem. Can someone help me, what do I need to do to figure out the garage array address in my game? Or if there's any other way to detect pay n spray usage? Edit: I'd prefer the memory address way but if it fails, maybe i'll try checking for "Vehicle Resprays" stat. Edited December 24, 2017 by psychedelist Link to comment Share on other sites More sharing options...
DK22Pac Posted December 24, 2017 Share Posted December 24, 2017 0329 works only in III and VC. Maybe this flag? Link to comment Share on other sites More sharing options...
psychedelist Posted December 24, 2017 Author Share Posted December 24, 2017 0329 works only in III and VC. Maybe this flag? Thanks, how would I figure out its address? I'm a little lost on where the point of reference would be. Maybe it's same as what this opcode does. I tired it before and i thought it didn't work. I must had done something wrong because i tried it again now and it worked, even for taxis at full health. So my problem seems to be solved. Link to comment Share on other sites More sharing options...
DK22Pac Posted December 24, 2017 Share Posted December 24, 2017 Yes, HAS_CAR_BEEN_RESPRAYED checks for this flag (and also resets it). Also: that's not a perfect solution if you need this check in multiple scripts. Link to comment Share on other sites More sharing options...
psychedelist Posted December 24, 2017 Author Share Posted December 24, 2017 I need it in only one script but that resetting behavior sounds like it could break logic in original game, or it's not used for anything? I'd check the flag manually if I knew its address or how to find it. Link to comment Share on other sites More sharing options...