Cały skrypt działa w procedurze "Mission", a do pozostałych: "Mission_Cleanup", "Mission_Failed", "Mission_Passed" tylko się odwołujemy poprzez instrukcję gosub.
Teraz podstawowe pytanie: jak to działa? Otóż, kiedy zmienna globalna $ONMISSION ma wartość 1, silnik skryptowy GTA San Andreas automatycznie wykonuje sprawdzenie "w tle", czy gracz zginął lub został złapany przez policję. Jeśli którakolwiek z tych sytuacji będzie miała miejsce, to zostanie wywołana instrukcja return. To wszystko dzieje się poza naszą kontrolą, dlatego trzeba stworzyć szablon dostosowując się do podanego zachowania.
Takie automatyczne działanie silnika skryptowego zwalnia nas z ciągłego sprawdzania, czy gracz zginął bądź został aresztowany, gdyż jeśli to nastąpi, skrypt od razu przejdzie do naszego warunku if. Jeśli skrypt wyjdzie z procedury "Mission Start" bez naszej wiedzy (opisane wcześniej zachowanie), będzie to oznaczało tylko jedno - gracz zginął lub został złapany przez policję. Właśnie dlatego warunek wasted_or_busted możemy sprawdzać tylko raz.
Możemy jeszcze sami wyjść z procedury "Mission_Start" instrukcją "return", co będzie jednoznaczne z zakończeniem misji. W takim przypadku, warunek if będzie fałszywy (jeśli gracz by zginął, to procedura zostałaby opuszczana już wcześniej) i skrypt przejdzie do kolejnej procedury - "Mission_Cleanup", w której wykonujemy wszystkie niezbędne czynności przed wyjściem z całej misji (usuwanie obiektów itd.).
Do procedur "Mission_Failed" i "Mission_Passed" odwołujemy się tylko w kodzie "Mission_Start". Wiadomo kiedy - w przypadku nieudanej misji - do Mission_Failed, a gdy gracz ukończy misję - do Mission_Passed.
Mam nadzieję, że objaśniłem to w przejrzysty sposób. Jeśli nie rozumiesz jakiejkolwiek części, zapytaj na naszym forum. Poniżej znajduje się pełny przykład, razem z mini-misją, aby lepiej przybliżyć Wam takie działanie:
Skrypt *.cm nie wczyta się automatycznie, w przeciwieństwie do *.cs, dlatego trzeba go uruchomić poprzez skrypt *.cs za pomocą opcodu:
Zakładając, że nazwa pliku misji to "mission.cm", który znajduje się w katalogu CLEO.
Specjalnie podziękowania dla użytkownika Silent, który podzielił się z nami tą metodą na naszym forum.