In deze tutorial ga ik een je leren een missie te maken, aan de hand van een voorbeeld dat ik zelf geschreven heb, de missie "Shooting the Balla". Het plot van de missie is als volgt: Je krijgt een auto, daarmee moet je naar het station in LS rijden. Vlakbij het station krijg je een filmpje, waarin je ziet hoe je naar het station rijd. Eenmaal daar aangekomen, moet je een Balla neerschieten. Ik heb het geschreven in Sanny Builder. Een downloadlink vind je op die site. Je moet al een beetje overweg kunnen met Sanny Builder en het script, volg anders mijn andere 2 tutorials. Ook moet je om kunnen gaan met de GXT-editor, en als je dat niet kunt, dan kun je mijn voorgebakken GXT gebruiken (check de bijlage van deze post).
In deze tutorial zal ik gebruik maken van een licht gemodificeerde gestripte main.scm. Ik zal de code hier neerzetten:
DEFINE OBJECTS 0
DEFINE MISSIONS 0
DEFINE EXTERNAL_SCRIPTS -1 // Use -1 to not write AAA script
DEFINE UNKNOWN_EMPTY_SEGMENT 0
DEFINE UNKNOWN_THREADS_MEMORY 0
// --------------------
// THE STRIPPED MAIN THREAD
// contains initial info
// --------------------
thread 'MAIN'
var
$PLAYER_CHAR: Player
$PLAYER_ACTOR: Actor
$ON_MISSION: Integer
end // var
01F0: set_max_wanted_level_to 6
042C: set_total_missions_to 1
030D: set_total_mission_points_to 1
set_wb_check_to 0
00C0: set_current_time 8 0
04E4: unknown_refresh_game_renderer_at 2488.5601 -1666.84
Camera.SetAtPos(2488.5601, -1666.84, 13.38)
$PLAYER_CHAR = Player.Create(#NULL, 2488.5601, -1666.84, 13.38)
$PLAYER_ACTOR = Actor.EmulateFromPlayer($PLAYER_CHAR)
Camera.SetBehindPlayer
set_weather 0
wait 0
0180: set_on_mission_flag_to $ON_MISSION
$PLAYER_CHAR.SetClothes("PLAYER_FACE", "HEAD", Head)
$PLAYER_CHAR.SetClothes("JEANSDENIM", "JEANS", Legs)
$PLAYER_CHAR.SetClothes("SNEAKERBINCBLK", "SNEAKER", Shoes)
$PLAYER_CHAR.SetClothes("VEST", "VEST", Torso)
$PLAYER_CHAR.Build
$PLAYER_CHAR.CanMove = True
fade 1 (out) 0
select_interior 0
0629: change_stat 181 (islands unlocked) to 4
016C: restart_if_wasted at 2027.77 -1420.52 15.99 angle 137.0 unknown 0
016D: restart_if_busted at 1550.68 -1675.49 14.51 angle 90.0 unknown 0
end_thread
Kopieer deze code in Sanny. We beginnen met de startthread van de missie, deze thread zal ik niet verder uitleggen, dat laat ik aan jezelf over. Het eerste wat we moeten doen is aangeven waar de missie staat, bij het DEFINE MISSION-blok. Maak van
// --------------------------
// Tutorialmissie startthread
// Shooting the Balla
// Gemaakt door JGuntherS
// ---------------------------
:StrtTh1
var
$MarkerX: Float
$MarkerY: Float
$MarkerZ: Float
$MarkerH: Marker
$MarkerOn: Float
$MissionRunning: Integer
$MTried: Integer
$MPassed: Integer
end
thread 'StrtTh'
$MarkerX = 2492.378
$MarkerY = -1667.843
$MarkerZ = 13.34375
:StrtTh1_0
$MarkerH.CreateIconAndSphere(34, $MarkerX, $MarkerY, $MarkerZ)
$MarkerOn = 1
:StrtTh1_2
wait 100
if
$ON_MISSION == 0
jf @StrtTh1_5
if and
$ON_MISSION == 0
$MarkerOn == 0
jf @StrtTh1_3
$MarkerH.CreateIconAndSphere(34, $MarkerX, $MarkerY, $MarkerZ)
$MarkerOn = 1
:StrtTh1_3
wait 0
if
$PLAYER_CHAR.Defined
jf @StrtTh1_3
if
00FF: actor $PLAYER_ACTOR 0 ()near_point_on_foot $MarkerX $MarkerY $MarkerZ radius 3.0 3.0 2.0
jf @StrtTh1_2
if
$PLAYER_CHAR.Controllable
jf @StrtTh1_2
$MarkerH.Disable
$MarkerOn = 0
$PLAYER_CHAR.CanMove = false
00BA: text_styled 'MsName' 1500 ms 2 // Dit is een GXT-entry, die "Shooting the Balla" bevat. Deze GXT-entry moet in de table MAIN
fade 0 1500
wait 1500
start_mission 0
:StrtTh1_4
wait 10
if
$MTried == 1
jf @StrtTh1_4
$MTried = 0
if
$MPassed == 1
jf @StrtTh1_2
00BE: text_clear_all
03E6: remove_text_box
01E3: text_1number_styled 'M_PASS' 1000 5000 ms 1
0318: set_latest_mission_passed 'MsName' // Dit is een GXT-entry, die "Shooting the Balla" bevat. Deze GXT-entry moet in de table MAIN
030C: set_mission_points += 1
0394: play_music 1
$PLAYER_CHAR.Money += 1000
$PLAYER_CHAR.ClearWantedLevel
end_thread
:StrtTh1_5
if
$MarkerOn == 1
jf @StrtTh1_2
$MarkerH.Disable
$MarkerOn = 0
jump @StrtTh1_2
Zet de startthread gewoon onderaan de main.scm. Nu komt de missie zelf, ik zal eerst het frame geven.
Ik adviseer je om een paar dingen over te typen, zodat je vertrouwd raakt met de code-helpers van Sanny. Later kun je gaan knippen en plakken wat je wilt
DEFINE OBJECTS 0
DEFINE MISSIONS 1
DEFINE MISSION 0 AT @ShTBal
DEFINE EXTERNAL_SCRIPTS -1 // Use -1 to not write AAA script
DEFINE UNKNOWN_EMPTY_SEGMENT 0
DEFINE UNKNOWN_THREADS_MEMORY 0
// --------------------
// THE STRIPPED MAIN THREAD
// contains initial info
// --------------------
thread 'MAIN'
var
$PLAYER_CHAR: Player
$PLAYER_ACTOR: Actor
$ON_MISSION: Integer
end // var
01F0: set_max_wanted_level_to 6
042C: set_total_missions_to 1
030D: set_total_mission_points_to 1
set_wb_check_to 0
00C0: set_current_time 8 0
04E4: unknown_refresh_game_renderer_at 2488.5601 -1666.84
Camera.SetAtPos(2488.5601, -1666.84, 13.38)
$PLAYER_CHAR = Player.Create(#NULL, 2488.5601, -1666.84, 13.38)
$PLAYER_ACTOR = Actor.EmulateFromPlayer($PLAYER_CHAR)
Camera.SetBehindPlayer
set_weather 0
wait 0
0180: set_on_mission_flag_to $ON_MISSION
$PLAYER_CHAR.SetClothes("PLAYER_FACE", "HEAD", Head)
$PLAYER_CHAR.SetClothes("JEANSDENIM", "JEANS", Legs)
$PLAYER_CHAR.SetClothes("SNEAKERBINCBLK", "SNEAKER", Shoes)
$PLAYER_CHAR.SetClothes("VEST", "VEST", Torso)
$PLAYER_CHAR.Build
$PLAYER_CHAR.CanMove = True
fade 1 (out) 0
select_interior 0
0629: change_stat 181 (islands unlocked) to 4
016C: restart_if_wasted at 2027.77 -1420.52 15.99 angle 137.0 unknown 0
016D: restart_if_busted at 1550.68 -1675.49 14.51 angle 90.0 unknown 0
create_thread @StrtTh1
end_thread
// --------------------------
// Tutorialmissie startthread
// Shooting the Balla
// Gemaakt door JGuntherS
// ---------------------------
:StrtTh1
var
$MarkerX: Float
$MarkerY: Float
$MarkerZ: Float
$MarkerH: Marker
$MarkerOn: Float
$MissionRunning: Integer
$MTried: Integer
$MPassed: Integer
end
thread 'StrtTh'
$MarkerX = 2492.378
$MarkerY = -1667.843
$MarkerZ = 13.34375
:StrtTh1_0
$MarkerH.CreateIconAndSphere(34, $MarkerX, $MarkerY, $MarkerZ)
$MarkerOn = 1
:StrtTh1_2
wait 100
if
$ON_MISSION == 0
jf @StrtTh1_5
if and
$ON_MISSION == 0
$MarkerOn == 0
jf @StrtTh1_3
$MarkerH.CreateIconAndSphere(34, $MarkerX, $MarkerY, $MarkerZ)
$MarkerOn = 1
:StrtTh1_3
wait 0
if
$PLAYER_CHAR.Defined
jf @StrtTh1_3
if
00FF: actor $PLAYER_ACTOR 0 ()near_point_on_foot $MarkerX $MarkerY $MarkerZ radius 3.0 3.0 2.0
jf @StrtTh1_2
if
$PLAYER_CHAR.Controllable
jf @StrtTh1_2
$MarkerH.Disable
$MarkerOn = 0
$PLAYER_CHAR.CanMove = false
00BA: text_styled 'MsName' 1500 ms 2
fade 0 1500
wait 1500
start_mission 0
:StrtTh1_4
wait 10
if
$MTried == 1
jf @StrtTh1_4
$MTried = 0
if
$MPassed == 1
jf @StrtTh1_2
00BE: text_clear_all
03E6: remove_text_box
01E3: text_1number_styled 'M_PASS' 1000 5000 ms 1
0318: set_latest_mission_passed 'MsName'
030C: set_mission_points += 1
0394: play_music 1
$PLAYER_CHAR.Money += 1000
$PLAYER_CHAR.ClearWantedLevel
end_thread
:StrtTh1_5
if
$MarkerOn == 1
jf @StrtTh1_2
$MarkerH.Disable
$MarkerOn = 0
jump @StrtTh1_2
// --------------------------
// Tutorialmissie
// Shooting the Balla
// Gemaakt door JGuntherS
// ---------------------------
:ShTBal
var
1@: Car // Greenwood
2@: Marker // Marker
3@: Actor // De Balla
4@: Marker // Marker
5@: Car // Cameradummy
6@: Float // X-positie van de speler
7@: Float // Y-positie van de speler
8@: Float // Z-positie van de speler
end
gosub @ShTBalC
if 0
wasted_or_busted
jf @ShTBalD
gosub @ShTBalF
:ShTBalD
gosub @ShTBalCleanup
end_thread
:ShTBalC
thread 'ShTBal'
$ON_MISSION = 1
increment_mission_attempts
054C: use_GXT_table 'TutMiss'
#GREENWOO.Load
#BALLAS1.Load
#TEC9.Load
#COLT45.Load
:ShTBalC_1
if or
not #GREENWOO.Available
not #BALLAS1.Available
not #TEC9.Available
not #COLT45.Available
jf @ShTBalC_2
wait 0
jump @ShTBalC_1
:ShTBalC_2
0395: clear_area 1 at 2432.172 -1673.413 13.63506 range 2.0
1@.Create(#GREENWOO, 2432.172, -1673.413, 13.63506)
1@.Angle = 0.0
2@.CreateAboveCar(1@)
07E0: set_marker 2@ type_to 1
wait 3000
03E6: remove_text_box
fade 1 1500
wait 1500
$PLAYER_CHAR.CanMove = true
:ShTBalC_3
00BC: text_highpriority 'INCAR' 1000 ms 1
wait 10
if
$PLAYER_CHAR.Defined
jf @ShTBalC_3
if
not 1@.Wrecked
jf @ShTBalCarW
if
$PLAYER_ACTOR.InCar(1@)
jf @ShTBalC_3
2@.Disable
0395: clear_area 1 at 1791.6609 -1914.6604 13.3952 range 2.0
3@.Create(Mission1, #BALLAS1, 1791.6609, -1914.6604, 13.3952)
0350: unknown_actor 3@ not_scared_flag 1
01B2: give_actor 3@ weapon 32 ammo 99999
01B9: set_actor 3@ armed_weapon_to 32
3@.WeaponAccuracy = 50
3@.SetImmunities(1, 1, 1, 1, 1)
3@.LockInCurrentPosition = true
0638: AS_actor 3@ stay_put 1
:ShTBalC_3a
4@.CreateAboveActor(3@)
2@.Disable
:ShTBalC_4
00BE: text_clear_all
03E6: remove_text_box
wait 10
if
$PLAYER_CHAR.Defined
jf @ShTBalC_4
if
not 1@.Wrecked
jf @ShTBalCarW
if
$PLAYER_ACTOR.InCar(1@)
jf @ShTBalC_4_Car
if
00EE: actor $PLAYER_ACTOR 0 near_point 1791.6609 -1914.6604 radius 150.0 150.0
jf @ShTBalC_4
jump @ShTBalC_5
:ShTBalC_4_Car
4@.Disable
2@.CreateAboveCar(1@)
07E0: set_marker 2@ type_to 1
:ShTBalC_4_CarA
wait 10
00BC: text_highpriority 'INCAR' 1000 ms 1
if
not 1@.Wrecked
jf @ShTBalCarW
if
not $PLAYER_ACTOR.InCar(1@)
jf @ShTBalC_3a
jump @ShTBalC_4_CarA
:ShTBalC_5
$PLAYER_CHAR.CanMove = false
fade 0 1000
wait 1000
01B2: give_actor $PLAYER_ACTOR weapon 22 ammo 100
01B9: set_actor $PLAYER_ACTOR armed_weapon_to 22
02A3: toggle_widescreen 1
5@.Create(#GREENWOO, 1819.8458, -1900.9407, 54.4286)
5@.LockInCurrentPosition = true
067A: put_camera_on_car 5@ offset 0.0 0.0 -10.0 point_to_car 1@ tilt 0.0 2
01EB: set_car_density_to 0.0
03DE: set_pedestrians_density_multiplier_to 0.0
$PLAYER_ACTOR.StorePos(6@, 7@, 8@)
0395: clear_area 1 at 6@ 7@ 8@ range 200.0
1@.DriveTo(1814.5135, -1890.4872, 13.4141)
1@.SetMaxSpeed(10.0)
fade 1 750
wait 750
:ShTBalC_5a
wait 10
if
$PLAYER_CHAR.Defined
jf @ShTBalC_5a
if
not 1@.Wrecked
jf @ShTBalCarW
if
00EE: actor $PLAYER_ACTOR 0 near_point 1814.5135 -1890.4872 radius 2.0 2.0
jf @ShTBalC_5a
1@.DriveTo(1801.6609, -1914.6604, 13.3952)
:ShTBalC_6
wait 10
if
$PLAYER_CHAR.Defined
jf @ShTBalC_6
if
not 1@.Wrecked
jf @ShTBalCarW
if
00EE: actor $PLAYER_ACTOR 0 near_point 1801.6609 -1914.6604 radius 4.0 4.0
jf @ShTBalC_6
wait 1000
05CD: AS_actor $PLAYER_ACTOR exit_car 1@
wait 1000
fade 0 1000
wait 1000
02A3: toggle_widescreen 0
Camera.Restore_WithJumpCut
Camera.SetBehindPlayer
5@.Destroy
3@.LockInCurrentPosition = false
3@.SetImmunities(0, 0, 0, 0, 0)
01EB: set_car_density_to 1.0
03DE: set_pedestrians_density_multiplier_to 1.0
fade 1 1000
wait 1000
$PLAYER_CHAR.CanMove = true
05E2: AS_actor 3@ kill_actor $PLAYER_ACTOR
00BC: text_highpriority 'KILLB' 1000 ms 1
:ShTBalC_7
wait 10
if
3@.Dead
jf @ShTBalC_7
jump @ShTBalP
:ShTBalCarW
00BC: text_highpriority 'CARW' 1000 ms 1
jump @ShTBalF
:ShTBalP
$MPassed = 1
$MTried = 1
jump @ShTBalCleanup
:ShTBalF
00BA: text_styled 'M_FAIL' 5000 ms 1 // MISSION FAILED!
$MPassed = 0
:ShTBalCleanup
1@.RemoveReferences
2@.Disable
3@.RemoveReferences
4@.Disable
$MTried = 1
$ON_MISSION = 0
#GREENWOO.Destroy
#BALLAS1.Destroy
#TEC9.Destroy
#COLT45.Destroy
mission_cleanup
return
Dat was alles! Hopelijk ben je nu weer wat verder in SCM-scripten. Als er iets niet klopt of als je een suggestie hebt, post het hier!
In deze tutorial ga ik een je leren een missie te maken, aan de hand van een voorbeeld dat ik zelf geschreven heb, de missie "Shooting the Balla". Het plot van de missie is als volgt: Je krijgt een auto, daarmee moet je naar het station in LS rijden. Vlakbij het station krijg je een filmpje, waarin je ziet hoe je naar het station rijd. Eenmaal daar aangekomen, moet je een Balla neerschieten. Ik heb het geschreven in Sanny Builder. Een downloadlink vind je op die site. Je moet al een beetje overweg kunnen met Sanny Builder en het script, volg anders mijn andere 2 tutorials. Ook moet je om kunnen gaan met de GXT-editor, en als je dat niet kunt, dan kun je mijn voorgebakken GXT gebruiken (check de bijlage van deze post).
In deze tutorial zal ik gebruik maken van een licht gemodificeerde gestripte main.scm. Ik zal de code hier neerzetten:
DEFINE OBJECTS 0 DEFINE MISSIONS 0 DEFINE EXTERNAL_SCRIPTS -1 // Use -1 to not write AAA script DEFINE UNKNOWN_EMPTY_SEGMENT 0 DEFINE UNKNOWN_THREADS_MEMORY 0 // -------------------- // THE STRIPPED MAIN THREAD // contains initial info // -------------------- thread 'MAIN' var $PLAYER_CHAR: Player $PLAYER_ACTOR: Actor $ON_MISSION: Integer end // var 01F0: set_max_wanted_level_to 6 042C: set_total_missions_to 1 030D: set_total_mission_points_to 1 set_wb_check_to 0 00C0: set_current_time 8 0 04E4: unknown_refresh_game_renderer_at 2488.5601 -1666.84 Camera.SetAtPos(2488.5601, -1666.84, 13.38) $PLAYER_CHAR = Player.Create(#NULL, 2488.5601, -1666.84, 13.38) $PLAYER_ACTOR = Actor.EmulateFromPlayer($PLAYER_CHAR) Camera.SetBehindPlayer set_weather 0 wait 0 0180: set_on_mission_flag_to $ON_MISSION $PLAYER_CHAR.SetClothes("PLAYER_FACE", "HEAD", Head) $PLAYER_CHAR.SetClothes("JEANSDENIM", "JEANS", Legs) $PLAYER_CHAR.SetClothes("SNEAKERBINCBLK", "SNEAKER", Shoes) $PLAYER_CHAR.SetClothes("VEST", "VEST", Torso) $PLAYER_CHAR.Build $PLAYER_CHAR.CanMove = True fade 1 (out) 0 select_interior 0 0629: change_stat 181 (islands unlocked) to 4 016C: restart_if_wasted at 2027.77 -1420.52 15.99 angle 137.0 unknown 0 016D: restart_if_busted at 1550.68 -1675.49 14.51 angle 90.0 unknown 0 end_threadKopieer deze code in Sanny. We beginnen met de startthread van de missie, deze thread zal ik niet verder uitleggen, dat laat ik aan jezelf over. Het eerste wat we moeten doen is aangeven waar de missie staat, bij het DEFINE MISSION-blok. Maak van
Zet de startthread gewoon onderaan de main.scm. Nu komt de missie zelf, ik zal eerst het frame geven.
Ik adviseer je om een paar dingen over te typen, zodat je vertrouwd raakt met de code-helpers van Sanny. Later kun je gaan knippen en plakken wat je wilt
DEFINE OBJECTS 0 DEFINE MISSIONS 1 DEFINE MISSION 0 AT @ShTBal DEFINE EXTERNAL_SCRIPTS -1 // Use -1 to not write AAA script DEFINE UNKNOWN_EMPTY_SEGMENT 0 DEFINE UNKNOWN_THREADS_MEMORY 0 // -------------------- // THE STRIPPED MAIN THREAD // contains initial info // -------------------- thread 'MAIN' var $PLAYER_CHAR: Player $PLAYER_ACTOR: Actor $ON_MISSION: Integer end // var 01F0: set_max_wanted_level_to 6 042C: set_total_missions_to 1 030D: set_total_mission_points_to 1 set_wb_check_to 0 00C0: set_current_time 8 0 04E4: unknown_refresh_game_renderer_at 2488.5601 -1666.84 Camera.SetAtPos(2488.5601, -1666.84, 13.38) $PLAYER_CHAR = Player.Create(#NULL, 2488.5601, -1666.84, 13.38) $PLAYER_ACTOR = Actor.EmulateFromPlayer($PLAYER_CHAR) Camera.SetBehindPlayer set_weather 0 wait 0 0180: set_on_mission_flag_to $ON_MISSION $PLAYER_CHAR.SetClothes("PLAYER_FACE", "HEAD", Head) $PLAYER_CHAR.SetClothes("JEANSDENIM", "JEANS", Legs) $PLAYER_CHAR.SetClothes("SNEAKERBINCBLK", "SNEAKER", Shoes) $PLAYER_CHAR.SetClothes("VEST", "VEST", Torso) $PLAYER_CHAR.Build $PLAYER_CHAR.CanMove = True fade 1 (out) 0 select_interior 0 0629: change_stat 181 (islands unlocked) to 4 016C: restart_if_wasted at 2027.77 -1420.52 15.99 angle 137.0 unknown 0 016D: restart_if_busted at 1550.68 -1675.49 14.51 angle 90.0 unknown 0 create_thread @StrtTh1 end_thread // -------------------------- // Tutorialmissie startthread // Shooting the Balla // Gemaakt door JGuntherS // --------------------------- :StrtTh1 var $MarkerX: Float $MarkerY: Float $MarkerZ: Float $MarkerH: Marker $MarkerOn: Float $MissionRunning: Integer $MTried: Integer $MPassed: Integer end thread 'StrtTh' $MarkerX = 2492.378 $MarkerY = -1667.843 $MarkerZ = 13.34375 :StrtTh1_0 $MarkerH.CreateIconAndSphere(34, $MarkerX, $MarkerY, $MarkerZ) $MarkerOn = 1 :StrtTh1_2 wait 100 if $ON_MISSION == 0 jf @StrtTh1_5 if and $ON_MISSION == 0 $MarkerOn == 0 jf @StrtTh1_3 $MarkerH.CreateIconAndSphere(34, $MarkerX, $MarkerY, $MarkerZ) $MarkerOn = 1 :StrtTh1_3 wait 0 if $PLAYER_CHAR.Defined jf @StrtTh1_3 if 00FF: actor $PLAYER_ACTOR 0 ()near_point_on_foot $MarkerX $MarkerY $MarkerZ radius 3.0 3.0 2.0 jf @StrtTh1_2 if $PLAYER_CHAR.Controllable jf @StrtTh1_2 $MarkerH.Disable $MarkerOn = 0 $PLAYER_CHAR.CanMove = false 00BA: text_styled 'MsName' 1500 ms 2 fade 0 1500 wait 1500 start_mission 0 :StrtTh1_4 wait 10 if $MTried == 1 jf @StrtTh1_4 $MTried = 0 if $MPassed == 1 jf @StrtTh1_2 00BE: text_clear_all 03E6: remove_text_box 01E3: text_1number_styled 'M_PASS' 1000 5000 ms 1 0318: set_latest_mission_passed 'MsName' 030C: set_mission_points += 1 0394: play_music 1 $PLAYER_CHAR.Money += 1000 $PLAYER_CHAR.ClearWantedLevel end_thread :StrtTh1_5 if $MarkerOn == 1 jf @StrtTh1_2 $MarkerH.Disable $MarkerOn = 0 jump @StrtTh1_2 // -------------------------- // Tutorialmissie // Shooting the Balla // Gemaakt door JGuntherS // --------------------------- :ShTBal var 1@: Car // Greenwood 2@: Marker // Marker 3@: Actor // De Balla 4@: Marker // Marker 5@: Car // Cameradummy 6@: Float // X-positie van de speler 7@: Float // Y-positie van de speler 8@: Float // Z-positie van de speler end gosub @ShTBalC if 0 wasted_or_busted jf @ShTBalD gosub @ShTBalF :ShTBalD gosub @ShTBalCleanup end_thread :ShTBalC thread 'ShTBal' $ON_MISSION = 1 increment_mission_attempts 054C: use_GXT_table 'TutMiss' #GREENWOO.Load #BALLAS1.Load #TEC9.Load #COLT45.Load :ShTBalC_1 if or not #GREENWOO.Available not #BALLAS1.Available not #TEC9.Available not #COLT45.Available jf @ShTBalC_2 wait 0 jump @ShTBalC_1 :ShTBalC_2 0395: clear_area 1 at 2432.172 -1673.413 13.63506 range 2.0 1@.Create(#GREENWOO, 2432.172, -1673.413, 13.63506) 1@.Angle = 0.0 2@.CreateAboveCar(1@) 07E0: set_marker 2@ type_to 1 wait 3000 03E6: remove_text_box fade 1 1500 wait 1500 $PLAYER_CHAR.CanMove = true :ShTBalC_3 00BC: text_highpriority 'INCAR' 1000 ms 1 wait 10 if $PLAYER_CHAR.Defined jf @ShTBalC_3 if not 1@.Wrecked jf @ShTBalCarW if $PLAYER_ACTOR.InCar(1@) jf @ShTBalC_3 2@.Disable 0395: clear_area 1 at 1791.6609 -1914.6604 13.3952 range 2.0 3@.Create(Mission1, #BALLAS1, 1791.6609, -1914.6604, 13.3952) 0350: unknown_actor 3@ not_scared_flag 1 01B2: give_actor 3@ weapon 32 ammo 99999 01B9: set_actor 3@ armed_weapon_to 32 3@.WeaponAccuracy = 50 3@.SetImmunities(1, 1, 1, 1, 1) 3@.LockInCurrentPosition = true 0638: AS_actor 3@ stay_put 1 :ShTBalC_3a 4@.CreateAboveActor(3@) 2@.Disable :ShTBalC_4 00BE: text_clear_all 03E6: remove_text_box wait 10 if $PLAYER_CHAR.Defined jf @ShTBalC_4 if not 1@.Wrecked jf @ShTBalCarW if $PLAYER_ACTOR.InCar(1@) jf @ShTBalC_4_Car if 00EE: actor $PLAYER_ACTOR 0 near_point 1791.6609 -1914.6604 radius 150.0 150.0 jf @ShTBalC_4 jump @ShTBalC_5 :ShTBalC_4_Car 4@.Disable 2@.CreateAboveCar(1@) 07E0: set_marker 2@ type_to 1 :ShTBalC_4_CarA wait 10 00BC: text_highpriority 'INCAR' 1000 ms 1 if not 1@.Wrecked jf @ShTBalCarW if not $PLAYER_ACTOR.InCar(1@) jf @ShTBalC_3a jump @ShTBalC_4_CarA :ShTBalC_5 $PLAYER_CHAR.CanMove = false fade 0 1000 wait 1000 01B2: give_actor $PLAYER_ACTOR weapon 22 ammo 100 01B9: set_actor $PLAYER_ACTOR armed_weapon_to 22 02A3: toggle_widescreen 1 5@.Create(#GREENWOO, 1819.8458, -1900.9407, 54.4286) 5@.LockInCurrentPosition = true 067A: put_camera_on_car 5@ offset 0.0 0.0 -10.0 point_to_car 1@ tilt 0.0 2 01EB: set_car_density_to 0.0 03DE: set_pedestrians_density_multiplier_to 0.0 $PLAYER_ACTOR.StorePos(6@, 7@, 8@) 0395: clear_area 1 at 6@ 7@ 8@ range 200.0 1@.DriveTo(1814.5135, -1890.4872, 13.4141) 1@.SetMaxSpeed(10.0) fade 1 750 wait 750 :ShTBalC_5a wait 10 if $PLAYER_CHAR.Defined jf @ShTBalC_5a if not 1@.Wrecked jf @ShTBalCarW if 00EE: actor $PLAYER_ACTOR 0 near_point 1814.5135 -1890.4872 radius 2.0 2.0 jf @ShTBalC_5a 1@.DriveTo(1801.6609, -1914.6604, 13.3952) :ShTBalC_6 wait 10 if $PLAYER_CHAR.Defined jf @ShTBalC_6 if not 1@.Wrecked jf @ShTBalCarW if 00EE: actor $PLAYER_ACTOR 0 near_point 1801.6609 -1914.6604 radius 4.0 4.0 jf @ShTBalC_6 wait 1000 05CD: AS_actor $PLAYER_ACTOR exit_car 1@ wait 1000 fade 0 1000 wait 1000 02A3: toggle_widescreen 0 Camera.Restore_WithJumpCut Camera.SetBehindPlayer 5@.Destroy 3@.LockInCurrentPosition = false 3@.SetImmunities(0, 0, 0, 0, 0) 01EB: set_car_density_to 1.0 03DE: set_pedestrians_density_multiplier_to 1.0 fade 1 1000 wait 1000 $PLAYER_CHAR.CanMove = true 05E2: AS_actor 3@ kill_actor $PLAYER_ACTOR 00BC: text_highpriority 'KILLB' 1000 ms 1 :ShTBalC_7 wait 10 if 3@.Dead jf @ShTBalC_7 jump @ShTBalP :ShTBalCarW 00BC: text_highpriority 'CARW' 1000 ms 1 jump @ShTBalF :ShTBalP $MPassed = 1 $MTried = 1 jump @ShTBalCleanup :ShTBalF 00BA: text_styled 'M_FAIL' 5000 ms 1 // MISSION FAILED! $MPassed = 0 :ShTBalCleanup 1@.RemoveReferences 2@.Disable 3@.RemoveReferences 4@.Disable $MTried = 1 $ON_MISSION = 0 #GREENWOO.Destroy #BALLAS1.Destroy #TEC9.Destroy #COLT45.Destroy mission_cleanup returnDat was alles! Hopelijk ben je nu weer wat verder in SCM-scripten. Als er iets niet klopt of als je een suggestie hebt, post het hier!
american.zip
Edited by JGuntherS