Najlepiej to zrobić jako External Script
(tutorial).
Jeśli robisz kilka misji, to najlepiej po poprawnym ukończeniu każdej twórz odpowiednią zmienną. Przykładowo, jeśli gracz ukończył pierwszą misję, to tam gdzie wyświetlasz "Mission Passed" dajesz jeszcze:
Kod:
$MISSION1_STATUS = 1
W swoim "External Script" musisz po prostu sprawdzić stan zmiennych i na ich podstawie utworzyć odpowiednie sfery:
Kod:
:SPHERES
thread 'SPHERES'
:IS_MISSION
if
0038: $ONMISSION == 0
jf @END
:MISSION1
if
0038: $MISSION1 == 1
jf @MISSION2
03BC: $SFERA1 = create_sphere_at 2596.589 2758.158 22.862 radius 1.0
:MISSION2
if
0038: $MISSION2 == 1
jf @CHECK
03BC: $SFERA2 = create_sphere_at 2596.589 2758.158 22.862 radius 1.0
:CHECK
:CHECK1
wait 10
if
00ED: actor $PLAYER_ACTOR 0 near_point 2043.68 -1635.73 radius 4.0 4.0 on_foot
jf @CHECK2
start_mission 1
:CHECK2
wait 10
if
00ED: actor $PLAYER_ACTOR 0 near_point 2043.68 -1635.73 radius 4.0 4.0 on_foot
jf @CHECK1
start_mission 2
jump @CHECK1
:END
end_thread
Myślę, że kod jest zrozumiały. Powiem tylko, że na początku sprawdzamy, czy gracz aktualnie wykonuje jakąś misję (na podstawie zmiennej $ONMISSION, która jest odpowiednio ustawiana podczas misji, więcej o tym w tutorialu "SaveGame"). Współrzędne są przypadkowe, musisz zmienić na swoje.
Jeszcze na końcu każdej misji uruchom ponownie ten External Script, żeby zaktualizowało pozycje sfer.
Kod:
0913: run_external_script 66 (CARMOD1)
Nazwę i ID musisz oczywiście zmienić na swoje.