#1 21-07-2010 20:21

ZAZ
Registered: 05-12-2007
Posts: 55

cleo 4 problem with save function

I allready posted here but nobody noticed my report.

I installed CLEO4_setup.exe from main page
into unmodded SA installation, only hoodlum exe inthere
The save script from below let the game crash if try to load a save
At one time I had luck and player was spawning but the savedisk was flickering what means that the Onmission state is aktiv: $ONMISSION =  1
The script works fine with cleo 3
(The savepoint of the script below is in the Atrium of Los Santos/Commerce)

{$CLEO .cs}
:SAVE_1
03A4: name_thread 'SAVE'
0A95: enable_thread_saving
0570: 1@ = create_asset_radar_marker_with_icon 35 at 1722.2682 -1647.6366 42.4687
018B: show_on_radar 1@ 2

:SAVE_2
0001: wait 0 ms
0213: 2@ = create_pickup 1277 type 3 at 1720.7397 -1645.6292 20.2267

:SAVE_5
0001: wait 0 ms
00D6: if 0
0256: player $PLAYER_CHAR defined
004D: jump_if_false @SAVE_5
00D6: if 0
0214: pickup 2@ picked_up
004D: jump_if_false @SAVE_5
0050: gosub @SAVE_14
0002: jump @SAVE_2

:SAVE_14
00D6: if  0
0038:   $ONMISSION ==  0  // integer values
004D: jump_if_false @SAVE_17
0004: $ONMISSION =  1  // integer values
01B4: set_player $PLAYER_CHAR frozen_state  0 (frozen)
0001: wait  350 ms
03D8: show_SAVE_screen

:SAVE_15
00D6: if  0
83D9:   NOT   save_done
004D: jump_if_false @SAVE_16
0001: wait  0 ms
0002: jump @SAVE_15

:SAVE_16
00A1: put_actor $PLAYER_ACTOR at 1724.3228 -1646.5193 20.2272
0173: set_actor $PLAYER_ACTOR z_angle_to 176.8
01B4: set_player $PLAYER_CHAR frozen_state  1 (unfrozen)
0004: $ONMISSION =  1  // integer values
0001: wait  350 ms
0004: $ONMISSION =  0  // integer values

:SAVE_17
0051: return

Offline

#2 22-07-2010 23:58

Deji
From: UK
Registered: 09-11-2008
Posts: 189
Website

Re: cleo 4 problem with save function

Save game operation fails.

0318: set_latest_mission_passed 'INTRO_1'  // Big Smoke

Required in order to save game. Add this somewhere at the top of your script it works fine.

Your testing in a stripped scm, yes?

Last edited by Deji (23-07-2010 00:03)

Offline

#3 25-07-2010 12:15

ZAZ
Registered: 05-12-2007
Posts: 55

Re: cleo 4 problem with save function

Deji wrote:

Save game operation fails.

0318: set_latest_mission_passed 'INTRO_1'  // Big Smoke

Required in order to save game. Add this somewhere at the top of your script it works fine.

Your testing in a stripped scm, yes?

0318: have nothing to do with it
I said, i'm testing with unmodded sa installation, orig. main, orig files unless exe
started new game, now i made in this state a first savegame, "Big Smoke"

The problem is that 0A95: enable_thread_saving won't work in a savescript which is neccesary for a clasic savedisk script, the game becomes unstability
I could write a savediskscript which works for the half, without 0A95:

{$CLEO .cs}
thread 'SAVE' 
//0A95: enable_thread_saving  <-- needs to be enabled for a full working savedisk

:SAVE_1
wait 0 
2@ = Pickup.Create(1277, 3, 1720.74, -1645.629, 20.2267)

:SAVE_4
wait 0 
if 
   Player.Defined($PLAYER_CHAR)
jf @SAVE_4 
if 
   Pickup.Picked_up(2@)
jf @SAVE_4 
gosub @SAVE_9 
jump @SAVE_1 

:SAVE_9
if 
  $ONMISSION == 0 
jf @SAVE_25 
wait 350 
03D8: show_save_screen 

:SAVE_15
if 
83D9:   not save_done 
jf @SAVE_19 
wait 0 
jump @SAVE_15 

:SAVE_19
Actor.PutAt($PLAYER_ACTOR, 1724.323, -1646.519, 20.2272)
Actor.Angle($PLAYER_ACTOR) = 176.8

:SAVE_25
return

0A95: enable_thread_saving works with other scripts in cleo4
I tested with
-simple parked car script
-PimpmyCar scripts which needs to save the threadpointer

but it won't work in a savescript
it crashes then in same cases, e.g. when running PimpmyCar, especially when leaving Tuning.cm
also by running other cleo scripts

Below the script with 0A95: in the stripped savesisk script

{$CLEO .cs}
thread 'SAVE' 
0A95: enable_thread_saving 

:SAVE_13
wait 0 
2@ = Pickup.Create(1277, 3, 1720.74, -1645.629, 20.2267)

:SAVE_42
wait 0 
if 
   Player.Defined($PLAYER_CHAR)
jf @SAVE_42 
if 
   Pickup.Picked_up(2@)
jf @SAVE_42 
gosub @SAVE_92 
jump @SAVE_13 

:SAVE_92
if 
  $ONMISSION == 0 
jf @SAVE_156
03D8: show_save_screen   
Actor.PutAt($PLAYER_ACTOR, 1724.323, -1646.519, 20.2272)
Actor.Angle($PLAYER_ACTOR) = 176.8 

:SAVE_156
return

Your usage:
"Try downloading CLEO 4. It's got all the supremeness of CLEO 3 x2. CLEO 3 mods are still fully supported"
is not ok

Offline

#4 26-07-2010 16:10

Deji
From: UK
Registered: 09-11-2008
Posts: 189
Website

Re: cleo 4 problem with save function

0318 made your code work perfectly for me, so what else could be the problem?

Offline

#5 26-07-2010 17:49

Alien
Registered: 12-10-2008
Posts: 564

Re: cleo 4 problem with save function

The problem with cleo saves may be caused by UAC or something else (e.g. antivirus).
Make sure, that gta_sa.exe have privelegies to write into folder cleo\cleo_saves. In next version of CLEO I will move cleo saves into user documents directory.

Offline

#6 26-07-2010 20:38

Deji
From: UK
Registered: 09-11-2008
Posts: 189
Website

Re: cleo 4 problem with save function

Nice... Would an opcode along these lines be possible:

0000: 0@ = last_saved_slot

I've found no function for this and a few mods I'm working on (that aim to integrate as part of San Andreas) such as the Black Market Mod (which hijacks the DEALER script and adds drug dealer features) wouldn't really work unless I could save data according to which save game

if
    03D9:   save_done
then
    0000: 1@ = last_saved_slot
    0AD3: 1@v = format "cleomod%d.sav" 1@
    0A9A: 0@ = openfile 1@v mode "wb+"
    0ACA: show_text_box "Save File Created!"
end

Also useful for retrieving/modifying data from the last .b save file?


A bit more on-topic

Hehe... I've not got an A/V installed at the moment, which explains why the script worked fine. I hardly see the need when I know how to detect and remove manually.

Offline

#7 31-07-2010 08:14

ZAZ
Registered: 05-12-2007
Posts: 55

Re: cleo 4 problem with save function

Alien wrote:

The problem with cleo saves may be caused by UAC or something else (e.g. antivirus).
Make sure, that gta_sa.exe have privelegies to write into folder cleo\cleo_saves. In next version of CLEO I will move cleo saves into user documents directory.

I'm on winXP
the save function in general works, look to my script above without 0A95:
but writing a saveDISK-script requires 0A95:

and 0A95: works also in other scripts

but 0A95: in connection with 03D8: show_save_screen crashs

Furthermore is there one more aspect to fix:
If you make a savegame while gangwar is active and the zones are colored
must the game display the colored zones when I load the savegame

Deji wrote:

0318 made your code work perfectly for me, so what else could be the problem?

Not for me
script below with 0318: and 0A95: crashs

{$CLEO .cs}
thread 'SAVE' 
0318: set_latest_mission_passed 'INTRO_1'  // Big Smoke
0A95: enable_thread_saving//  <-- needs to be enabled for a full working savedisk

:SAVE_1
wait 0 
2@ = Pickup.Create(1277, 3, 1720.74, -1645.629, 20.2267)

:SAVE_4
wait 0 
if 
   Player.Defined($PLAYER_CHAR)
jf @SAVE_4 
if 
   Pickup.Picked_up(2@)
jf @SAVE_4 
gosub @SAVE_9 
jump @SAVE_1 

:SAVE_9
if 
  $ONMISSION == 0 
jf @SAVE_25 
03D8: show_save_screen 

:SAVE_15
if 
83D9:   not save_done 
jf @SAVE_19 
wait 0 
jump @SAVE_15 

:SAVE_19
Actor.PutAt($PLAYER_ACTOR, 1724.323, -1646.519, 20.2272)
Actor.Angle($PLAYER_ACTOR) = 176.8

:SAVE_25
return

Last edited by ZAZ (31-07-2010 08:30)

Offline

Board footer

Powered by FluxBB