W .cm trzeba używać 004E zamiast 0A93 - ten jest tylko dla skryptów CLEO, nie dla misji.
I wcale nie trzeba tworzyć katalogu 'missions', wystarczy że plik .cm będzie w katalogu CLEO.
Co do zalet - Cytrus, nie zasługujesz żebym Ci przy tym pomagał, ale może się przydać to innym osobom:
.cm najlepiej używać właśnie dla skryptów, które po prostu są misjami. Dlaczego? Ponieważ taka CLEO misja ma wtedy 1024 zamiast 34 zmiennych oraz akceptuje specjalną strukturę, która jest użyta w każdej misji z SA i sprawdza AUTOMATYCZNIE, czy gracz został zabity/aresztowany.
Przykład takiej konstrukcji z MAIN project:
Kod:
:INTRO
03A4: name_thread 'INTRO'
0050: gosub @INTRO_47
if
0112: wasted_or_busted // mission only
then
0050: gosub @INTRO_9994
end
0050: gosub @INTRO_9996
004E: end_thread
W nagłówku @INTRO_47 znajduje się cała misja. W @INTRO_9994 jest wszystko to, co ma rozegrać się w momencie porażki (napis MISSION FAILED itp.), @INTRO_9996 wszystko czyści, oraz kończy się ustawieniem flagi $ONMISSION na 0 (WAŻNE - by konstrukcja działała poprawnie, przed odpaleniem misji tą flagę
należy ustawić na 1!) i mission_cleanup.
Najprostsza misja:
Kod:
:MISJA
thread "CLEO"
gosub @MISJA
if
0112: wasted_or_busted // mission only
then
gosub @MISJA_FAIL
end
gosub @MISJA_CLEANUP
end_thread
:MISJA
0004: $ONMISSION = 1
increment_mission_attempts
// Cały skrypt misji tu
return
:MISJA_FAIL
00BA: show_text_styled GXT "M_FAIL" time 5000 style 1 // ~r~MISSION FAILED!
return
:MISJA_CLEANUP
mission_cleanup
0004: $ONMISSION = 0
return