HzanRsxa2959 Posted July 17, 2020 Share Posted July 17, 2020 Hey guys, I am developing this mod: CarStorage. If anyone here has used any experience , I was wondering if they could help me with implementing GSX in my mod so that the CLEO+ extended vars are saved to and loaded from garages accordingly. Here is the example GSX code: Spoiler {$CLEO} 0AA2: 0@ = load_library "gsx.asi" // IF and SET 0AA4: 6@ = get_proc_address "getNewCarGrgForeach" library 0@ // IF and SET const LOAD_CAR = 0 SAVE_CAR = 1 end while true wait 0 // Other things 0AC7: 13@ = var 16@ offset // carInfo - 8 bytes 0AC6: 14@ = label @positionRegister offset // 8 bytes while true 0AA7: call_function 6@ num_params 2 pop 2 13@ 14@ retorno 15@ // getNewCarGrgForeach / GSX::getNewCarForeach(i, out) if 15@ <> 0 jf break 0AD0: show_formatted_text_lowpriority "Teste car %.8X status %d" time 1500 16@ 17@ // status: 0 loaded / 1 saved wait 2000 end // Other things end :carInfo hex 00 00 00 00 // veh ptr 00 00 00 00 // status end :positionRegister hex 00 00 00 00 00 00 00 00 end Here is the code I have written to make sense of it: Spoiler {$CLEO .cs} const bGSXInstalled = 0@ hProcGSXgetNewCarGrgForeach = 1@ hProcGSXsetDataToSaveLaterVehPtr = 2@ hProcGSXgetLoadDataByVehPtr = 3@ iGSXVehicleStatusLoaded = 0 iGSXVehicleStatusSaved = 1 t0 = 20@ t1 = 21@ t2 = 22@ t3 = 23@ t4 = 24@ t5 = 25@ t6 = 26@ t7 = 27@ end bGSXInstalled = false if 0AA2: t0 = load_library "gsx.asi" then if and 0AA4: hProcGSXgetNewCarGrgForeach = get_proc_address "getNewCarGrgForeach" library t0 0AA4: hProcGSXsetDataToSaveLaterVehPtr = get_proc_address "setDataToSaveLaterVehPtr" library t0 0AA4: hProcGSXgetLoadDataByVehPtr = get_proc_address "getLoadDataByVehPtr" library t0 then bGSXInstalled = true end end //static int(__cdecl *getNewCarGrgForeach)(size_t *i, GSX::apiCarNotify *out) = nullptr; //static void(__cdecl *setDataToSaveLaterVehPtr)(CVehicle *veh, const char *name, int size, void *ptr, bool forceCopyNow) = nullptr; //static void* (__cdecl *getLoadDataByVehPtr)(CVehicle *veh, const char *name) = nullptr; while true 0AC7: t4 = var t0 offset 0AC7: t5 = var t2 offset 0AA7: call_function hProcGSXgetNewCarGrgForeach num_params 2 pop 2 t4 t5 t6 if t6 <> 0 then if t6 == iGSXVehicleStatusSaved then end if t6 == iGSXVehicleStatusLoaded then end end wait 0 if 0ADC: test_cheat "RSGSX" then 0ACE: show_formatted_text_box "GSX Script Reloaded Reloaded." 0A92: create_custom_thread "GSXTest.cs" 0A93: end_custom_thread end end An example script that saves and loads vehicle data with explanation would be extremely helpful. I only know basic C++, and I do not understand a thing. I am not even sure if the above code is correct, and have no further idea of where to go. Any help would be appreciated. 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