Jump to content

[REACTIE] SCM Tutorials


Dutchy3010

Recommended Posts

  • Reacties 150
  • Created
  • Laatste reactie

Top Posters In This Topic

  • Dutchy3010

    35

  • AwiVC

    20

  • Tjerk

    15

  • Apple-Mac

    10

Top Posters In This Topic

Dan weet ik het probleem...

02A7: $ICON_VAN2 = create_icon_marker_and_sphere 0 at 2284.437 -1932.241 13.17292

Die wordt gebruikt BUITEN de missies. In een missie verschijnt hij dus niet. En aangezien je de marker niet opruimt, komt hij als je wasted/busted bent (en de missie is afgelopen).

02A8: $woozie = create_marker 46 at -2153.5405 643.3898 52.3672

Die moet je gebruiken, als je hem IN de missie wilt. Er komt overigens ook een sphere bij :Y

Link to comment
Delen op andere websites

Ik zal gelijk ff testen, bedankt ^_^

Edit:

Gelukt!

Edit2:

Ik ben nu bezig met een cutscene, waar Cj in een auto zit en naar een bepaald punt rijdt, maar als de cutscene is

afgelopen, wil ik gewoon weer kunnen rijden in diezelfde auto. maar dat werkt nu niet want als ik gas geef blijf

ik gewoon staan. weet iemand hoe ik dat op moet lossen

Bewerkt: door tjerk
Link to comment
Delen op andere websites

  • 3 weken later...

Ik heb een vraagje, moet je een nieuwe thread enzo beginnen in de stripped scm om een auto te spawnen? Of kan het ook gewoon net als in de tut van JGuntherS, dus met alleen de car_generator? Want als het met een nieuwe thread moet, kan iemand dan even uitleggen wat dit allemaal betekend?

// put your create_thread commands here

create_thread @MODEL

// IDLE LOOP
:leeg
wait 500
jump @leeg

end_thread

:MODEL
thread 'MODEL'
014B: $PARKED_RHINO = init_parked_car_generator #RHINO -1 -1 1 alarm 0 door_lock 0 0 10000 at 2459.9041 -1659.4592 13.3047 angle 90.0
014C: set_parked_car_generator $PARKED_RHINO cars_to_generate_to 101

end_thread

Create_thread @MODEL snap ik volgens mij wel, dan maak je gewoon een nieuwe thread aan en dit is dus ook het begin daarvan. Dan komt er de IDLE LOOP, ik snap niet wat dit is, ook staat er jump @leeg maar ik zie geen thread die leeg heet? Of is :leeg de thread? Maar dan zou hij dus voor altijd 500 blijven waiten? Als iemand dat dus even kan uitleggen :) Daarna komt er :MODEL, dit is neem ik aan de thread die je op het begin aanmaakte? Daaronder staat thread 'MODEL', moet dit erbij? De rest is gewoon de car_generator, die snapte ik al toen ik hem gebruikte in de main.scm met JGuntherS' tutorial.

Alvast bedankt, sorry als ik domme vragen stel maar als ik ergens aan begin wil ik er wel meteen goed aan beginnen en dus elk stapje volledig snappen om domweg overschrijven te voorkomen :)

EDIT: Nog een klein vraagje, is het handiger om te werken in de stripped.scm of in de stripped.txt?

Bewerkt: door AwiVC
Link to comment
Delen op andere websites

Misschien dat ik toch eens een tutorial moet maken met basiskennis van het scm-scripten. :7

Ik heb een vraagje, moet je een nieuwe thread enzo beginnen in de stripped scm om een auto te spawnen? Of kan het ook gewoon net als in de tut van JGuntherS, dus met alleen de car_generator?
Het kan gewoon in de main thread, hoor. :) Bijvoorbeeld in de buurt van de "create_thread" commando's.
Want als het met een nieuwe thread moet, kan iemand dan even uitleggen wat dit allemaal betekend?
Natuurlijk. :)
Create_thread @MODEL snap ik volgens mij wel, dan maak je gewoon een nieuwe thread aan en dit is dus ook het begin daarvan.

Inderdaad, op dat moment maakt het spel de nieuwe thread aan, waardoor het spel dus op twee plaatsen gelijk is: door aan het lopen in de originele thread, en gaat starten in de nieuwe thread. Ik heb het ooit van PatrickW geleerd, die het als volgt uitlegde: eerst heb je één mannetje, die loopt door de code heen, en alles codes die hij tegenkomt leest en verwerkt hij. Als hij bij een "create_thread" commando doet, dan verdubbeld hij zich. Één van de mannetjes gaat door in de code waar de create_thread staat, de ander gaat op de plaats waar de thread aangemaakt wordt verder. Dus in het voorbeeld hierboven: een mannetje loopt door die code heen, komt bij de “create_thread @MODEL” aan, en verdubbeld zich. De eerste gaat door bij //IDLE LOOP, de tweede gaat door bij “:MODEL”.

Ik weet niet of je dit al wist, maar ik zet het er toch maar even bij: als ergens // voor staat, dan leest "het mannetje" dat stukje code niet. Dus //IDLE LOOP betekent niets, dat is alleen als notatie voor degene die het aan het schrijven is. Zo houdt je het overzichtelijk en weet je precies wat je hebt gescript ergens. Erg handig. :)

Dan komt er de IDLE LOOP, ik snap niet wat dit is, ook staat er jump @leeg maar ik zie geen thread die leeg heet? Of is :leeg de thread? Maar dan zou hij dus voor altijd 500 blijven waiten? Als iemand dat dus even kan uitleggen :)

Hier komt basiskennis bij kijken. Als er :naam staat, heet dat een “label”. Een label kan je beschouwen als een naam, waardoor je ergens naartoe kunt springen. Met “jump” spring je niet naar een thread, maar naar een label. “Jump @leeg” betekent dus niets anders als spring even naar het label “leeg”. Wat je zegt klopt overigens wel, hier blijft hij de hele tijd 500 milliseconde wachten. Maar dát is ook juist de bedoeling. Je moet zorgen dat de main thread altijd blijft doorlopen, wat er ook gebeurd, zodat er nooit géén thread bezig is. Door hiervan een “loop” te maken, dat is een lus waarin de code dus blijft steken, blijft hij altijd bezig. In een lus moet je wel altijd een wait plaatsen, anders slaat het beeld vast. Bij mij is het dan altijd zo dat ik de laptop moet restarten, dus het is echt nodig om dat niet te vergeten. Maar geloof mij, op den duur vergeet je dat niet meer…:puh:

Daarna komt er :MODEL, dit is neem ik aan de thread die je op het begin aanmaakte? Daaronder staat thread 'MODEL', moet dit erbij? De rest is gewoon de car_generator, die snapte ik al toen ik hem gebruikte in de main.scm met JGuntherS' tutorial.

Thread ‘MODEL’ hoort er volgens mij niet per sé bij, maar dat weet ik niet zeker. Ik doe het in ieder geval altijd wel… Dit is inderdaad waar het tweede mannetje terecht komt, en waar die gaat lopen. Onthoudt dat :MODEL een label is, waar een thread start.

Alvast bedankt, sorry als ik domme vragen stel maar als ik ergens aan begin wil ik er wel meteen goed aan beginnen en dus elk stapje volledig snappen om domweg overschrijven te voorkomen :)

Onthoudt één ding, geen vragen zijn dom. Dat klinkt een beetje cliché, maar scripten is een moeilijk onderdeel, dus dat je vragen hebt is totaal niet vreemd. Al erg knap dat je het probeert! :Y

EDIT: Nog een klein vraagje, is het handiger om te werken in de stripped.scm of in de stripped.txt?

De stripped.scm kan je niet bewerken, he. ;) Je moet die sowieso eerst nog decompileren voor je hem kunt gebruiken, en dan wordt het automatisch een txt file. Het maakt dus helemaal niets uit welke je gebruikt, want het is precies hetzelfde, maar stripped.scm moet je eerst nog decompileren en stripped.txt niet.

Onhoudt één ding goed: de tutorial van JGuntherS is niet te gebruiken in combinatie met deze tutorials. Grotendeels valt het met beiden wel te begrijpen, maar het grote verschil is dat zijn tutorial in Mission Builder is geschreven, en die van PatrickW en mij voor Sannybuilder. Dat zijn verschillende programma’s, dus de “taal” is ook anders: een txt die je gemaakt hebt in Mission Builder, kan je niet compileren/gebruiken met Sanny Builder. Ik raad je aan om Sannybuilder te gebruiken, aangezien die een heleboel goede features heeft die Mission Builder niet heeft, en daarnaast wordt Sanny ook nog geupdate door de maker, terwijl de maker van Mission Builder niet meer in de modding scène te vinden is…

Link to comment
Delen op andere websites

Ik wil je ten eerste bedanken voor de uitgebreide uitleg, en ik zie dat je een basis-tutorial aan het topic hebt toegevoegd (Overigens staan in de hoofdpost van het reactie topic de laatste 2 tutorials er nog niet bij ^^), ik ga deze tutorial zeker doorlezen als ik morgen fris en helder ben. De auto werkte eerst niet omdat ik de verkeerde coordinaten had, verschillen de coordinaten van een stripped en een normale main scm? Bedankt voor de uitleg en de mooi nieuwe tutorial en ik weet bijna zeker tot morgen ^^

EDIT: Dat is wat ik bedoelde :Y

Bewerkt: door AwiVC
Link to comment
Delen op andere websites

Hoe bedoel je: verschillen de coördinaten in de main.scm met de stripped versie? De coordinaten zijn overal gelijk, de plaats waar je spawnt kan inderdaad veranderen. Wat coordinaat 500 (x) bij 250 (y) heeft in de main, heeft dat ook in de stripped versie. Als je iets anders bedoelde, moet je dat zeggen, want iets anders kan ik er niet uit opmaken. ;)

Link to comment
Delen op andere websites

Hoi =]

Ik heb de eerste paar tutorials doorgelezen (t/m de markers spheres en Icons) en alles ging vrij goed, ik snapte het en ik kon zelf bedenken hoe de marker boven de actors hoofd te laten eindigen bij zijn dood enz. Maar nu loop ik even vast. Ik probeer om een Icon en Sphere te maken die je altijd ziet, dan zie ik in het stukje code in de tutorial al iets wat ik niet snap, ik heb het over dit stukje tutorial-code:

// This file was decompiled using sascm.ini published by Seemann (http://sannybuilder.com/files/SASCM.rar) on 13.10.2007
DEFINE OBJECTS 1
DEFINE OBJECT SANNY BUILDER 3.03	  

DEFINE MISSIONS 0

DEFINE EXTERNAL_SCRIPTS 0 // Use -1 in order not to compile AAA script

DEFINE UNKNOWN_EMPTY_SEGMENT 0

DEFINE UNKNOWN_THREADS_MEMORY 0

{$VERSION 3.1.0027}

//-------------MAIN---------------
thread 'MAIN' 
01F0: set_max_wanted_level_to 6 
set_wb_check_to 0 
00C0: set_current_time_hours_to 8 minutes_to 0 
04E4: unknown_refresh_game_renderer_at 2488.56 -1666.84
014B: $SPORTWAGEN = init_parked_car_generator #HOTKNIFE -1 -1 1 alarm 0 door_lock 0 0 10000 at 2491.203 -1682.512 13.33688 angle 90.0
014C: set_parked_car_generator $SPORTWAGEN cars_to_generate_to 101  
Camera.SetAtPos(2488.56, -1666.84, 13.38)
$PLAYER_CHAR = Player.Create(#NULL, 2488.56, -1666.84, 13.38)
$PLAYER_ACTOR = Actor.EmulateFromPlayer($PLAYER_CHAR)
07AF: $PLAYER_GROUP = player $PLAYER_CHAR group 
Camera.SetBehindPlayer
set_weather 0 
wait 0 
Player.SetClothes($PLAYER_CHAR, "PLAYER_FACE", "HEAD", Head)
Player.SetClothes($PLAYER_CHAR, "JEANSDENIM", "JEANS", Legs)
Player.SetClothes($PLAYER_CHAR, "SNEAKERBINCBLK", "SNEAKER", Shoes)
Player.SetClothes($PLAYER_CHAR, "VEST", "VEST", Torso)
Player.Build($PLAYER_CHAR)
Player.CanMove($PLAYER_CHAR) = True
fade 1 0 
select_interior 0 
0629: change_integer_stat 181 to 4 
016C: restart_if_wasted_at 2027.77 -1420.52 15.99 angle 137.0 town_number 0 
016D: restart_if_busted_at 1550.68 -1675.49 14.51 angle 90.0 town_number 0 
0180: set_on_mission_flag_to $ONMISSION // Note: your missions have to use the variable defined here 
$DEFAULT_WAIT_TIME = 250 
03E6: remove_text_box

create_thread @MODEL

// Loop voor altijd
:leeg
wait 500
jump @leeg

end_thread
:MODEL

// Model en eventuele assecoires laden
0247: load_model #WFYCRK
0247: load_model #TEC9
0247: load_model #MINIGUN
038B: load_requested_models
:MODEL_INLADEN
00D6: if
8248: not model #WFYCRK available
8248: not model #GUN_VIBE1 available
8248: not model #MINIGUN available
004D: jump_if_false @MODEL_SPAWN
0001: wait 0 ms
0002: jump @MODEL_INLADEN

//Model en assecoires echt spawnen
:MODEL_SPAWN
10@ = Actor.Create(CIVFEMALE, #WFYCRK, 2489.0139, -1657.8553, 13.3566 )
05E2: AS_actor 10@ kill_actor $PLAYER_ACTOR
actor.WeaponAccuracy(10@)= 90
actor.Armour(10@)= 20
actor.Health(10@)= 200 
0350: toggle_actor 10@ maintain_position_when_attacked 1
01B2: give_actor $PLAYER_ACTOR weapon 38 ammo 50000
01B9: set_actor $PLAYER_ACTOR armed_weapon_to 38
01B2: give_actor 10@ weapon 32 ammo 1000
01B9: set_actor 10@ armed_weapon_to 32

//Marker voor 10 seconden boven ons actors hoofdje, gaat als het goed is weg na haar dood.
0187: $m1 create_marker_above_actor 10@
0165: set_marker $m1 color_to 0
02a7: $ICON_SPHERE_CJ = create_icon_marker_and_sphere $ICON_CJ at 2442.5515 -1658.7039 13.3113
04AE: unknown $ICON_CJ radar_icon_or_model 15
00EC: actor $PLAYER_ACTOR 0 near_point 2442.5515 -1658.7039 radius 1.0 1.0

//Nu even wachten tot onze actor dood is, zou niet te lang moeten duren ^^
repeat
wait 0 ms
until actor.Dead(10@)
Marker.Disable($m1)
//Nu is ze dood en zoals altijd als er iemand is overleden, spelen we een vrolijk muziekje en krijg je een koekje
0394: Play_Music 1
01E3: show_text_1number_styled GXT 'M_PASS' number 1337 time 5000 style 1
Player.Money($PLAYER_CHAR) += 1337

// Hier wat ik ooit met de actor zou willen doen..

//En dan laten we de models weer los
0249: release_model #WFYCRK
0249: release_model #TEC9
0249: release_model #MINIGUN


end_thread



:MAIN_297
wait $DEFAULT_WAIT_TIME 
00BF: $TIME_HOURS = current_time_hours, $TIME_MINS = current_time_minutes 
jump @MAIN_297

Ik zou het sowieso fijn vinden als je even kon zeggen of ik typische beginnersfouten maak of dingen op de verkeerde plek zet, wat nu nog niet zo erg is maar als ik het me aanleer tot problemen zou kunnen leiden. Ik heb dus vastgesteld dat $ICON_CJ icoon nummer 15 moet zijn volgens mij met het stukje code eronder.

Okee terwijl ik dit schreef dacht ik, hee zou het niet logischer zijn om het definen van de variabele $ICON_CJ eerst te doen en daarna de variabele pas te gebruiken, dus het zinnetje boven het create zinnetje zetten, en dit werkte. Ik vraag me nogsteeds af hoe ik de radius vergroot en ik zou het fijn vinden als je dus kan kijken of ik foutjes maak die later voor problemen zorgen =]

Bedankt, Awi :cya:

Bewerkt: door AwiVC
Link to comment
Delen op andere websites

Ok, een heel verhaal... :puh: We zullen eens kijken. Ik weet niet hoeveel je hiervan weet, maar wat je al weet kan je overheen lezen natuurlijk. :Y

Allereerst: je kunt kijken in Sanny Builder > help > Contents > SCM Documentation > GTA SA > Radar icons. Daar zie je welke radar-icons je hebt. Aangezien je aan die variabele nog geen waarde hebt toegekend, zal die waarschijnlijk op nul staan, en daarom krijg je zo'n klein geel icoontje (dat is nummer 0).

Er zijn verschillende opcodes voor Markers en/of spheres. Zo heb je voor alleen spheres, alleen markers, of beiden. In dit geval heb je een opcode voor beiden. Ik zou zo één, twee, drie niet weten hoe je de radius moet verhogen met die opcode, maar dat is in jouw geval geen probleem: je wilt immers toch die marker niet, en met een andere opcode is het toch eenvoudig om hem te vergroten. Overigens, als je deze opcode wel wilde gebruiken, kan je natuurlijk op het moment dat je er iemand in wilt laten staan een grotere radius nemen, dat heeft min of meer hetzelfde effect. Maar in dit geval kan je de volgende opcode beter gebruiken:

03BC: 149@ = create_sphere_at 2596.589 2758.158 22.862 radius 1.0

Over je code heb ik niet bepaald een opmerking, behalve dit:

:MAIN_297
wait $DEFAULT_WAIT_TIME
00BF: $TIME_HOURS = current_time_hours, $TIME_MINS = current_time_minutes
jump @MAIN_297

Dat is totaal nutteloos, want die wordt toch niet gelezen. Je kunt dit beter in de plaats van het "leeg"-label plaatsen, want zo kan je op ieder gewenst moment de variabele opvragen over de huidige tijd, omdat die opcode in een lus blijft staan.

Als je nog meer vragen hebt, stel ze gerust. :)

Link to comment
Delen op andere websites

Ja dat stukje code stond al in de stripped.scm die bij SannyBuilder zat dus ik heb het maar gewoon laten zitten bang dat ik iets fout zou doen :7 Ik heb nog een opmerking over de Wapens aan actors geven tut, daar staat namelijk het volgende stukje:

We wachten dus net zolang tot de actor dood is.

Daarna geven we een melding en voor de aardigheid een beloning

CODE

0394: play_music 1

01E3: show_text_1number_styled GXT 'M_PASS' number 10000 time 5000 style 1 // MISSION PASSED!~n~~w~$~1~

Player.Money($PLAYER_CHAR) += 25000

De eerste regel speelt een overwinningsmuziekje terwijl de tweede regel op het scherm meld dat de missie gelukt is.

Als beloning geeft de derde regel de speler een som van 25000 dollar.

Het stukje waar nu number 10000 staat moet je veranderen in number <jouwbeloning> anders staat er Mission Passed: $10000, dit heb ik nu dus zelf uitgevonden en is ook niet zo moeilijk maar misschien is het handig erbij te zetten aangezien het een tut is =] Bedankt voor de hulp! :cya:

EDIT: Weer een vraagje, ik heb nu dit:

// This file was decompiled using sascm.ini published by Seemann (http://sannybuilder.com/files/SASCM.rar) on 13.10.2007
DEFINE OBJECTS 1
DEFINE OBJECT SANNY BUILDER 3.03      

DEFINE MISSIONS 0

DEFINE EXTERNAL_SCRIPTS 0 // Use -1 in order not to compile AAA script

DEFINE UNKNOWN_EMPTY_SEGMENT 0

DEFINE UNKNOWN_THREADS_MEMORY 0

{$VERSION 3.1.0027}

//-------------MAIN---------------
thread 'MAIN' 
01F0: set_max_wanted_level_to 6 
set_wb_check_to 0 
00C0: set_current_time_hours_to 8 minutes_to 0 
04E4: unknown_refresh_game_renderer_at 2488.56 -1666.84
014B: $SPORTWAGEN = init_parked_car_generator #HOTKNIFE -1 -1 1 alarm 0 door_lock 0 0 10000 at 2491.203 -1682.512 13.33688 angle 90.0
014C: set_parked_car_generator $SPORTWAGEN cars_to_generate_to 101  
Camera.SetAtPos(2488.56, -1666.84, 13.38)
$PLAYER_CHAR = Player.Create(#NULL, 2488.56, -1666.84, 13.38)
$PLAYER_ACTOR = Actor.EmulateFromPlayer($PLAYER_CHAR)
07AF: $PLAYER_GROUP = player $PLAYER_CHAR group 
Camera.SetBehindPlayer
set_weather 0 
wait 0 
Player.SetClothes($PLAYER_CHAR, "PLAYER_FACE", "HEAD", Head)
Player.SetClothes($PLAYER_CHAR, "JEANSDENIM", "JEANS", Legs)
Player.SetClothes($PLAYER_CHAR, "SNEAKERBINCBLK", "SNEAKER", Shoes)
Player.SetClothes($PLAYER_CHAR, "VEST", "VEST", Torso)
Player.Build($PLAYER_CHAR)
Player.CanMove($PLAYER_CHAR) = True
fade 1 0 
select_interior 0 
0629: change_integer_stat 181 to 4 
016C: restart_if_wasted_at 2027.77 -1420.52 15.99 angle 137.0 town_number 0 
016D: restart_if_busted_at 1550.68 -1675.49 14.51 angle 90.0 town_number 0 
0180: set_on_mission_flag_to $ONMISSION // Note: your missions have to use the variable defined here 
$DEFAULT_WAIT_TIME = 250 
03E6: remove_text_box

create_thread @MODEL

// Loop voor altijd
:leeg
wait 500
jump @leeg

end_thread
:MODEL

// Model en eventuele assecoires laden
0247: load_model #WFYCRK
0247: load_model #GUN_PARA
0247: load_model #MINIGUN
0247: load_model #GREENWOO
0247: load_model #BAT
0247: load_model #WMOICE
038B: load_requested_models
:MODEL_INLADEN
00D6: if
8248: not model #WFYCRK available
8248: not model #GUN_PARA available
8248: not model #MINIGUN available
8248: not model #GREENWOO available
8248: not model #BAT available
8248: not model #WMOICE available
004D: jump_if_false @MODEL_SPAWN
0001: wait 0 ms
0002: jump @MODEL_INLADEN

//Model en assecoires echt spawnen
:MODEL_SPAWN
0674: set_car_model #GREENWOO numberplate "PennyWise"
00A5: $MissieGreenwoo = create_car #GREENWOO at 2503.8833 -1678.0192 13.3736
Car.Angle($MissieGreenwoo)= 30
0186:$m2 = create_marker_above_car $MissieGreenwoo
0224: set_car $MissieGreenwoo health_to 250
10@ = Actor.Create(CIVFEMALE, #WFYCRK, 2489.0139, -1657.8553, 13.3566 )
05E2: AS_actor 10@ kill_actor $PLAYER_ACTOR
actor.WeaponAccuracy(10@)= 90
actor.Armour(10@)= 20
actor.Health(10@)= 200 
0350: toggle_actor 10@ maintain_position_when_attacked 1
01B2: give_actor $PLAYER_ACTOR weapon 38 ammo 50000
01B2: give_actor $PLAYER_ACTOR weapon 5 ammo 10
01B9: set_actor $PLAYER_ACTOR armed_weapon_to 5
01B2: give_actor 10@ weapon 46 ammo 1000
01B9: set_actor 10@ armed_weapon_to 46
0213: $STERRETJE creat_pickup #BRIBE type 15 at 2474.6367 -1661.5156 13.3387

//Marker voor 10 seconden boven ons actors hoofdje, gaat als het goed is weg na haar dood.
0187: $m1 create_marker_above_actor 10@
0165: set_marker $m1 color_to 0

//Probeersels met aanmaken van spheres en icons
04AE: unknown $ICON_CJ radar_icon_or_model 15
02a7: $ICON_SPHERE_CJ = create_icon_marker_and_sphere $ICON_CJ at 2442.5515 -1658.7039 13.3113

//Nu even wachten tot onze actor dood is, zou niet te lang moeten duren ^^
repeat
wait 0 ms
until actor.Dead(10@)
Marker.Disable($m1)
//Nu is ze dood en zoals altijd als er iemand is overleden, spelen we een vrolijk muziekje en krijg je een donut, OMG de politie wil je donuts!
0394: Play_Music 1
01E3: show_text_1number_styled GXT 'M_PASS' number 1337 time 5000 style 1
Player.Money($PLAYER_CHAR) += 1337
010D: set_player $PLAYER_CHAR wanted_level_to  1

//Wachten tot ik in de auto zit, dan icon en sphere aanmaken op een andere plek.
repeat
wait 0 ms
until actor.InCar($PLAYER_ACTOR, $MissieGreenwoo)
Marker.Disable($m2)

//Coordinaten variabelen
0004: $Coord_x = 2056.2053
0004: $Coord_y = -1911.2159
0004: $Coord_z = 13.5469
$Coord = Marker.CreateIconAndSphere(36, $Coord_x, $Coord_y, $Coord_z)

:WAGEN_KAPOT
wait 0 ms
if
0119: car $MissieGreenwoo wrecked
004D: jump_if_false @MISSIE_EIND
wait 0 ms
jump @MODEL

:MISSIE_EIND
if
01AE: car $MissieGreenwoo sphere 36 near_point $Coord_x $Coord_y radius 5.0 5.0 stopped
004D: jump_if_false @WAGEN_KAPOT
wait 0 ms

9@ = Actor.Create(CIVMALE, #WMOICE, 2056.2053, -1911.2159, 13.5469)
Marker.Disable($Coord)
Actor.Angle(9@) = 180
0187: $M3 = Create_Marker_Above_Actor 9@
Actor.WeaponAccuracy(9@) = 100
Actor.Health(9@) = 2500
01b2: give_actor 9@ weapon 5 ammo 100
01b9: set_actor 9@ armed_weapon_to 5
05E2: As_Actor 9@ Kill_Actor $PLAYER_ACTOR

repeat
wait 0 ms
until Actor.Dead(9@)
0394: Play_Music 1
01E3: Show_Text_1Number_Styled GXT 'M_PASS' number 13337 time 5100 style 1
Player.Money($PLAYER_CHAR) += 13337
Marker.Disable($M3)


// Hier wat ik ooit met de actor zou willen doen..

//En dan laten we de models weer los
0249: release_model #WFYCRK
0249: release_model #GUN_PARA
0249: release_model #MINIGUN
0249: release_model #BAT
0249: release_model #WMOICE
0249: release_model #GREENWOO


end_thread



:MAIN_297
wait $DEFAULT_WAIT_TIME 
00BF: $TIME_HOURS = current_time_hours, $TIME_MINS = current_time_minutes 
jump @MAIN_297 

Maar ik wil dat als de auto kapotgaat, de actor 10@ niet opnieuw spawned, ik denk dat ik dan de 2 "Missies" in losse threads moet zetten maar ik zie nog niet helemaal hoe, moet ik gewoon een nieuw begin maken na de eerste end_thread met een nieuwe :MODEL maar die dan :MODEL2 heet, of kan die dan ook gewoon :MODEL heten aangezien het een andere thread is? Alvast bedankt :cya:

Bewerkt: door AwiVC
Link to comment
Delen op andere websites

  • 2 weken later...

Ik plaats maar een nieuwe reactie omdat de vorige vergeten is en ik weeral een vraag heb :)

Ik heb geprobeerd een missie te maken zoals R* het doet maar volgens mij zit hij stikvol fouten, als iemand hem na zou kunnen kijken zou ik dat heel fijn vinden ^^

// This file was decompiled using sascm.ini published by Seemann (http://sannybuilder.com/files/SASCM.rar) on 13.10.2007
DEFINE MISSIONS 2
DEFINE MISSION 0 AT @Kenmerken
DEFINE MISSION 1 AT @Eerste_Missie
DEFINE EXTERNAL_SCRIPTS 0 // Use -1 in order not to compile AAA script
//DEFINE SCRIPT {NAME} AT {LABEL} @
DEFINE UNKNOWN_EMPTY_SEGMENT 0
DEFINE UNKNOWN_THREADS_MEMORY 0

{$VERSION 3.1.0027}

//-------------MAIN---------------
thread 'MAIN' 
01F0: set_max_wanted_level_to 6 
set_wb_check_to 0 
00C0: set_current_time_hours_to 8 minutes_to 0 
04E4: unknown_refresh_game_renderer_at 2488.56 -1666.84 
Camera.SetAtPos(2488.56, -1666.84, 13.38)
$PLAYER_CHAR = Player.Create(#NULL, 2488.56, -1666.84, 13.38)
$PLAYER_ACTOR = Actor.EmulateFromPlayer($PLAYER_CHAR)
07AF: $PLAYER_GROUP = player $PLAYER_CHAR group 
Camera.SetBehindPlayer
set_weather 0 
wait 0 
Player.SetClothes($PLAYER_CHAR, "PLAYER_FACE", "HEAD", Head)
Player.SetClothes($PLAYER_CHAR, "JEANSDENIM", "JEANS", Legs)
Player.SetClothes($PLAYER_CHAR, "SNEAKERBINCBLK", "SNEAKER", Shoes)
Player.SetClothes($PLAYER_CHAR, "VEST", "VEST", Torso)
Player.Build($PLAYER_CHAR)
Player.CanMove($PLAYER_CHAR) = True
fade 1 0 
select_interior 0 
0629: change_integer_stat 181 to 4 
016C: restart_if_wasted_at 2027.77 -1420.52 15.99 angle 137.0 town_number 0 
016D: restart_if_busted_at 1550.68 -1675.49 14.51 angle 90.0 town_number 0 
0180: set_on_mission_flag_to $ONMISSION // Note: your missions have to use the variable defined here 
$DEFAULT_WAIT_TIME = 250 
03E6: remove_text_box 

00D7: Create_Thread @Eerste_Missie

:MAIN_297
wait $DEFAULT_WAIT_TIME 
00BF: $TIME_HOURS = current_time_hours, $TIME_MINS = current_time_minutes 
jump @MAIN_297 

:Eerste_Missie
$MARKER_BEGIN = Marker.CreateIconAndSphere(15, 2495.781, -1747.289, 12.46979)
repeat
wait $DEFAULT_WAIT_TIME
if and
Player.Defined($PLAYER_CHAR)
$ONMISSION == 0
then
if and
00FF: actor $PLAYER_ACTOR sphere 0 in_sphere 15, 2495.781 -1747.289 12.46979 radius 1.0 1.0 2.0 on_foot
Player.Controllable($PLAYER_CHAR)
$Eerste_Missie_Passed == 0
then
$ONMISSION = 1
00BA: show_text_styled GXT 'AWI' time 1000 style 2
start_misson 1 
end

end
until $Eerste_Missie_Passed == 1
marker.Disable($MARKER_BEGIN)
end_thread

:Kenmerken
$Eerste_Missie_Passed = 0
$ONMISSION = 0
0629: change_integer_stat 225 to 999
end_thread

:Eerste_Missie_1
gosub @Eerste_Missie_Main
if wasted or busted
then
gosub @Eerste_Missie_Failed
end
gosub @Eerste_Missie_Opruimen
end_thread

:Eerste_Missie_Main

//Models laden
model.Load(#ak47)// Nr. 30
model.Load(#TEC9) // Nr. 32
023C: load_special_actor 'RYDER1' as 1
023C: load_special_actor 'SWEET' as 2
023C: load_special_actor 'OGLOC' as 3
model.Load(#FAM3)
model.Load(#FAM1)
038B: Load_requested_models

:Eerste_Missie_Load
wait 0 ms
if and
model.Available(#AK47)
model.Available(#TEC9)
823D: not special_actor 1 loaded
823D: not special_actor 2 loaded
823D: not special_actor 3 loaded
model.Available(#FAM3)
model.Available(#FAM1)
004D: jump_if_false @Eerste_Missie_Load 

01B2: give_actor $PLAYER_ACTOR weapon 30 ammo 5000
$Grove1 = actor.Create(Gang2, #FAM1, 2510.003, -1653.876, 13.69054)
$Grove2 = actor.Create(Gang2, #FAM1, 2469.842, -1648.269, 13.47245)
$Grove3 = actor.Create(Gang2, #FAM3, 2498.723, -1644.413, 13.78261)
$Grove4 = actor.Create(Gang2, #FAM3,2486.901, -1648.242, 14.07031)
$Ryder = actor.Create(38, #SPECIAL01, 2459.735, -1687.654, 13.53583)
$Sweet = actor.Create(45, #SPECIAL02, 2512.306, -1675.983, 13.54529)
$OGLoc = actor.Create(34, #SPECIAL03, 2493.735, -1687.074, 13.5138)
0187: $OG_Marker = Create_marker_above_actor $OGLoc
01B2: give_actor $Grove1 weapon 32 ammo 500
01B2: give_actor $Grove2 weapon 32 ammo 500
01B2: give_actor $Grove3 weapon 32 ammo 500
01B2: give_actor $Grove4 weapon 32 ammo 500
01B2: give_actor $Ryder weapon 32 ammo 500
01B2: give_actor $Sweet weapon 32 ammo 500
05E2: AS_Actor $Grove1 kill_actor $PLAYER_ACTOR
05E2: AS_Actor $Grove2 kill_actor $PLAYER_ACTOR
05E2: AS_Actor $Grove3 kill_actor $Ryder
05E2: AS_Actor $Grove4 kill_actor $PLAYER_ACTOR
05E2: AS_Actor $Sweet kill_actor $PLAYER_ACTOR
Actor.Health($Ryder) = 25
Actor.Health($Sweet) = 300

repeat
wait 0 ms
if Actor.Dead($Ryder)
then
jump @Eerste_Missie_Fail
end
until Actor.Dead($Sweet)

:Eerste_Missie_Passed
0394: play_music 1
$Eerste_Missie_Passed += 1
Player.Money($PLAYER_CHAR) += 13337
01E3: show_text_1number_styled GXT 'M_PASS' number 13337 time 5000 style 1
return

:Eerste_Missie_Fail
00BA: show_text_styled GXT 'M_FAIL' time 5000 style 1
0555: remove_weapon 30 from_actor $PLAYER_ACTOR
return

:Eerste_Missie_Opruimen
$ONMISSION = 0
Marker.Disable($OG_Marker)
010D: set_player $PLAYER_CHAR Wanted_level_to 0
model.Destroy(#FAM1)
model.Destroy(#FAM3)
Model.Destroy(#AK47)
Model.Destroy(#TEC9)
Model.Destroy(#SPECIAL01)
Model.Destroy(#SPECIAL02)
Model.Destroy(#SPECIAL03)
mission_cleanup
return 

Hij zegt nu al dat hij Kenmerken verwacht maar Eerste_Missie vind, dat loste ik op door bovenaan Kenmerken en Eerste_Missie om te wisselen, maar in de tutorial stond het wel zo dus heb ik het hier maar zo laten staan. Verder zegt hij iets over dat start_mission 1 niet defined is en verder dan dat kom ik niet. Dit gebeurd dus allemaal bij het compilen.

Bvd, Awi :cya:

Link to comment
Delen op andere websites

Let erop dat de Sniffer Thread, die jij 'Eerste_Missie' noemt, géén missie is. Het is een soort loopje voor een serie missies, totdat de laatste missie van die reeks is gedaan. Je hoeft de Sniffer-Thread dan ook niet bovenaan te definen. Zet dus bovenin bij de defines dit neer:

// This file was decompiled using sascm.ini published by Seemann (http://sannybuilder.com/files/SASCM.rar) on 13.10.2007
DEFINE MISSIONS 2
DEFINE MISSION 0 AT @Kenmerken
DEFINE MISSION 1 AT @Eerste_Missie_1
DEFINE EXTERNAL_SCRIPTS 0 // Use -1 in order not to compile AAA script
//DEFINE SCRIPT {NAME} AT {LABEL} @
DEFINE UNKNOWN_EMPTY_SEGMENT 0
DEFINE UNKNOWN_THREADS_MEMORY 0

{$VERSION 3.1.0027}

//-------------MAIN---------------
thread 'MAIN' 
01F0: set_max_wanted_level_to 6 
set_wb_check_to 0 
00C0: set_current_time_hours_to 8 minutes_to 0 
04E4: unknown_refresh_game_renderer_at 2488.56 -1666.84 
Camera.SetAtPos(2488.56, -1666.84, 13.38)
$PLAYER_CHAR = Player.Create(#NULL, 2488.56, -1666.84, 13.38)
$PLAYER_ACTOR = Actor.EmulateFromPlayer($PLAYER_CHAR)
07AF: $PLAYER_GROUP = player $PLAYER_CHAR group 
Camera.SetBehindPlayer
set_weather 0 
wait 0 
Player.SetClothes($PLAYER_CHAR, "PLAYER_FACE", "HEAD", Head)
Player.SetClothes($PLAYER_CHAR, "JEANSDENIM", "JEANS", Legs)
Player.SetClothes($PLAYER_CHAR, "SNEAKERBINCBLK", "SNEAKER", Shoes)
Player.SetClothes($PLAYER_CHAR, "VEST", "VEST", Torso)
Player.Build($PLAYER_CHAR)
Player.CanMove($PLAYER_CHAR) = True
fade 1 0 
select_interior 0 
0629: change_integer_stat 181 to 4 
016C: restart_if_wasted_at 2027.77 -1420.52 15.99 angle 137.0 town_number 0 
016D: restart_if_busted_at 1550.68 -1675.49 14.51 angle 90.0 town_number 0 
0180: set_on_mission_flag_to $ONMISSION // Note: your missions have to use the variable defined here 
$DEFAULT_WAIT_TIME = 250 
03E6: remove_text_box
start_mission 0 

00D7: Create_Thread @Eerste_Missie

:MAIN_297
wait $DEFAULT_WAIT_TIME 
00BF: $TIME_HOURS = current_time_hours, $TIME_MINS = current_time_minutes 
jump @MAIN_297 

:Eerste_Missie
$MARKER_BEGIN = Marker.CreateIconAndSphere(15, 2495.781, -1747.289, 12.46979)
repeat
wait $DEFAULT_WAIT_TIME
if and
Player.Defined($PLAYER_CHAR)
$ONMISSION == 0
then
if and
00FF: actor $PLAYER_ACTOR sphere 0 in_sphere 15, 2495.781 -1747.289 12.46979 radius 1.0 1.0 2.0 on_foot
Player.Controllable($PLAYER_CHAR)
$Eerste_Missie_Passed == 0
then
$ONMISSION = 1
00BA: show_text_styled GXT 'AWI' time 1000 style 2
start_misson 1 
end

end
until $Eerste_Missie_Passed == 1
marker.Disable($MARKER_BEGIN)
end_thread

:Kenmerken
$Eerste_Missie_Passed = 0
$ONMISSION = 0
0629: change_integer_stat 225 to 999
end_thread

:Eerste_Missie_1
gosub @Eerste_Missie_Main
if wasted or busted
then
gosub @Eerste_Missie_Failed
end
gosub @Eerste_Missie_Opruimen
end_thread

:Eerste_Missie_Main

//Models laden
model.Load(#ak47)// Nr. 30
model.Load(#TEC9) // Nr. 32
023C: load_special_actor 'RYDER1' as 1
023C: load_special_actor 'SWEET' as 2
023C: load_special_actor 'OGLOC' as 3
model.Load(#FAM3)
model.Load(#FAM1)
038B: Load_requested_models

:Eerste_Missie_Load
wait 0 ms
if and
model.Available(#AK47)
model.Available(#TEC9)
823D: not special_actor 1 loaded
823D: not special_actor 2 loaded
823D: not special_actor 3 loaded
model.Available(#FAM3)
model.Available(#FAM1)
004D: jump_if_false @Eerste_Missie_Load 

01B2: give_actor $PLAYER_ACTOR weapon 30 ammo 5000
$Grove1 = actor.Create(Gang2, #FAM1, 2510.003, -1653.876, 13.69054)
$Grove2 = actor.Create(Gang2, #FAM1, 2469.842, -1648.269, 13.47245)
$Grove3 = actor.Create(Gang2, #FAM3, 2498.723, -1644.413, 13.78261)
$Grove4 = actor.Create(Gang2, #FAM3,2486.901, -1648.242, 14.07031)
$Ryder = actor.Create(38, #SPECIAL01, 2459.735, -1687.654, 13.53583)
$Sweet = actor.Create(45, #SPECIAL02, 2512.306, -1675.983, 13.54529)
$OGLoc = actor.Create(34, #SPECIAL03, 2493.735, -1687.074, 13.5138)
0187: $OG_Marker = Create_marker_above_actor $OGLoc
01B2: give_actor $Grove1 weapon 32 ammo 500
01B2: give_actor $Grove2 weapon 32 ammo 500
01B2: give_actor $Grove3 weapon 32 ammo 500
01B2: give_actor $Grove4 weapon 32 ammo 500
01B2: give_actor $Ryder weapon 32 ammo 500
01B2: give_actor $Sweet weapon 32 ammo 500
05E2: AS_Actor $Grove1 kill_actor $PLAYER_ACTOR
05E2: AS_Actor $Grove2 kill_actor $PLAYER_ACTOR
05E2: AS_Actor $Grove3 kill_actor $Ryder
05E2: AS_Actor $Grove4 kill_actor $PLAYER_ACTOR
05E2: AS_Actor $Sweet kill_actor $PLAYER_ACTOR
Actor.Health($Ryder) = 25
Actor.Health($Sweet) = 300

repeat
wait 0 ms
if Actor.Dead($Ryder)
then
jump @Eerste_Missie_Fail
end
until Actor.Dead($Sweet)

:Eerste_Missie_Passed
0394: play_music 1
$Eerste_Missie_Passed += 1
Player.Money($PLAYER_CHAR) += 13337
01E3: show_text_1number_styled GXT 'M_PASS' number 13337 time 5000 style 1
return

:Eerste_Missie_Fail
00BA: show_text_styled GXT 'M_FAIL' time 5000 style 1
0555: remove_weapon 30 from_actor $PLAYER_ACTOR
return

:Eerste_Missie_Opruimen
$ONMISSION = 0
Marker.Disable($OG_Marker)
010D: set_player $PLAYER_CHAR Wanted_level_to 0
model.Destroy(#FAM1)
model.Destroy(#FAM3)
Model.Destroy(#AK47)
Model.Destroy(#TEC9)
Model.Destroy(#SPECIAL01)
Model.Destroy(#SPECIAL02)
Model.Destroy(#SPECIAL03)
mission_cleanup
return 

Dit zou moeten werken om de eerste missie werkende te krijgen, zoals jij hem nu had werd de Sniffer Thread steeds weer herhaald. ;)

Link to comment
Delen op andere websites

Allereerst bedankt voor je reactie! :)

Ik heb de start_mission 0 toegevoegd maar ik snap niet helemaal wat je bedoeld met de DEFINE veranderen, die zie ik namelijk ook niet terug in het stukje code wat je veranderd hebt. Ik heb net weer even @Kenmerken en @Eerste_Missie omgedraaid om te kijken of hij dan in ieder geval kon decompilen en eventuele andere foutjes op kon sporen en nu zegt hij dat wasted or busted een onbekende directive is, wat ik gek vind aangezien het ook word gebruikt op het begin van de stripped.scm namelijk als hij zegt waar je moet spawnen als je wasted bent of als je busted bent, misschien herkent hij het niet als je het met "or" naast elkaar zet? Maar in de tutorial doet PatrickW dit ook? Ok laatmaar die fout heb ik al gevonden, het moest zijn wasted_or_busted.. xD En die mission 1 wat hij eerst niet wou vinden had ik geschreven als misson 1, allemaal domme foutjes dus. Ik post deze hier alvast voor als mn computer vastloopt tijdens het testen, ik EDIT de post als ik weer terug ben van het testen ^^

EDIT: Juist ja, ik start San Andreas op en hij laat CJ heel even zien die gespawned wordt, dan word het scherm zwart en sluit San Andreas af. Ik denk dat het iets met die Define's te maken heeft? Of dat ik iets helemaal fout doe met de marker? En ik vraag me ook af of ik dat met die special actors wel goed doe omdat de codes bij de tutorial Actor Spawnen afwijken van die bij Een Echte Rockstar Missie, moet je special Actors wel zoals ik doe spawnen in een R* Missie? Of is daar een andere manier voor nodig?

Bewerkt: door AwiVC
Link to comment
Delen op andere websites

De Defines bovenin zijn voor het definiëren van onder andere de missies. Zet er sowieso altijd één neer, die er voor zorgt dat er dingen zijn die vanaf het begin van de game beschikbaar zijn. Dat is bij jou 'Kenmerken'. Bovenin plaats je dus het volgende.

DEFINE MISSIONS 1
DEFINE MISSION 0 AT @Kenmerken

Als je meerdere missies wilt aanpassen, pas je het aantal missies bovenin eerst aan naar het aantal missies, en definieer je de nieuwe missie, in jouw geval dit.

DEFINE MISSIONS 2
DEFINE MISSION 0 AT @Kenmerken
DEFINE MISSION 1 AT @Eerste_Missie_1

Daarna plaats je bij de Sniffer Thread, als je die onveranderd hebt, de start_mission 1 code, zodat het script weet dat je bij 'Eerste_Missie_Een' moet beginnen, die je bovenin gedefinieerd hebt.

Als je verder alles houdt aan het script dat is gegeven in de tutorial, maar wel de missie zo zet, dan moet alles wel goed komen.

Overigens nog die actors, daar zijn inderdaad meerdere manieren voor. Ikzelf gebruik altijd deze:

Model.Load(#BALLA1)

Deze laadt ook een code. Als je het met opcodes wilt doen, kun je ook dit gebruiken.

0247: load_model #BFYST

Beide zullen werken, het is alleen net een andere code. ;)

Bewerkt: door Donwell
Link to comment
Delen op andere websites

Ik heb nu :Kenmerken en :Eerste_Missie omgewisseld, an compiled hij wel goed en hij laad al iets langer in het spel zelf. Hij komt nu al tot het spawnen van CJ en de long capacity op maximum zetten. De vorige keer spawnde hij half en sloot ddan gelijk af. Maar waarom sluit hij nu alweer af? Ik ben nog niet eens in de marker gelopen of iets.. :S

Hier is weer de hele code zoals ik hem nu heb:

// This file was decompiled using sascm.ini published by Seemann (http://sannybuilder.com/files/SASCM.rar) on 13.10.2007
DEFINE MISSIONS 2
DEFINE MISSION 0 AT @Kenmerken
DEFINE MISSION 1 AT @Eerste_Missie
DEFINE EXTERNAL_SCRIPTS 0 // Use -1 in order not to compile AAA script
//DEFINE SCRIPT {NAME} AT {LABEL} @
DEFINE UNKNOWN_EMPTY_SEGMENT 0
DEFINE UNKNOWN_THREADS_MEMORY 0

{$VERSION 3.1.0027}

//-------------MAIN---------------
thread 'MAIN' 
01F0: set_max_wanted_level_to 6 
set_wb_check_to 0 
00C0: set_current_time_hours_to 8 minutes_to 0 
04E4: unknown_refresh_game_renderer_at 2488.56 -1666.84 
Camera.SetAtPos(2488.56, -1666.84, 13.38)
$PLAYER_CHAR = Player.Create(#NULL, 2488.56, -1666.84, 13.38)
$PLAYER_ACTOR = Actor.EmulateFromPlayer($PLAYER_CHAR)
07AF: $PLAYER_GROUP = player $PLAYER_CHAR group 
Camera.SetBehindPlayer
set_weather 0 
wait 0 
Player.SetClothes($PLAYER_CHAR, "PLAYER_FACE", "HEAD", Head)
Player.SetClothes($PLAYER_CHAR, "JEANSDENIM", "JEANS", Legs)
Player.SetClothes($PLAYER_CHAR, "SNEAKERBINCBLK", "SNEAKER", Shoes)
Player.SetClothes($PLAYER_CHAR, "VEST", "VEST", Torso)
Player.Build($PLAYER_CHAR)
Player.CanMove($PLAYER_CHAR) = True
fade 1 0 
select_interior 0 
0629: change_integer_stat 181 to 4 
016C: restart_if_wasted_at 2027.77 -1420.52 15.99 angle 137.0 town_number 0 
016D: restart_if_busted_at 1550.68 -1675.49 14.51 angle 90.0 town_number 0 
0180: set_on_mission_flag_to $ONMISSION // Note: your missions have to use the variable defined here 
$DEFAULT_WAIT_TIME = 250 
03E6: remove_text_box 
start_mission 0


00D7: Create_Thread @Eerste_Missie

:MAIN_297
wait $DEFAULT_WAIT_TIME 
00BF: $TIME_HOURS = current_time_hours, $TIME_MINS = current_time_minutes 
jump @MAIN_297 



:Kenmerken
$Eerste_Missie_Passed = 0
$ONMISSION = 0
0629: change_integer_stat 225 to 999
end_thread

:Eerste_Missie
$MARKER_BEGIN = Marker.CreateIconAndSphere(15, 2495.781, -1747.289, 12.46979)
repeat
wait $DEFAULT_WAIT_TIME
if and
Player.Defined($PLAYER_CHAR)
$ONMISSION == 0
then
if and
00FF: actor $PLAYER_ACTOR sphere 0 in_sphere 15, 2495.781 -1747.289 12.46979 radius 1.0 1.0 2.0 on_foot
Player.Controllable($PLAYER_CHAR)
$Eerste_Missie_Passed == 0
then
$ONMISSION = 1
00BA: show_text_styled GXT 'AWI' time 1000 style 2
start_mission 1 
end

end
until $Eerste_Missie_Passed == 1
marker.Disable($MARKER_BEGIN)
end_thread

:Eerste_Missie_1
gosub @Eerste_Missie_Main
if wasted_or_busted
then
gosub @Eerste_Missie_Failed
end
gosub @Eerste_Missie_Opruimen
end_thread

:Eerste_Missie_Main

//Models laden
model.Load(#ak47)// Nr. 30
model.Load(#TEC9) // Nr. 32
023C: load_special_actor 'RYDER1' as 1
023C: load_special_actor 'SWEET' as 2
023C: load_special_actor 'OGLOC' as 3
model.Load(#FAM3)
model.Load(#FAM1)
038B: Load_requested_models

:Eerste_Missie_Load
wait 0 ms
if and
model.Available(#AK47)
model.Available(#TEC9)
823D: not special_actor 1 loaded
823D: not special_actor 2 loaded
823D: not special_actor 3 loaded
model.Available(#FAM3)
model.Available(#FAM1)
004D: jump_if_false @Eerste_Missie_Load 

01B2: give_actor $PLAYER_ACTOR weapon 30 ammo 5000
$Grove1 = actor.Create(Gang2, #FAM1, 2510.003, -1653.876, 13.69054)
$Grove2 = actor.Create(Gang2, #FAM1, 2469.842, -1648.269, 13.47245)
$Grove3 = actor.Create(Gang2, #FAM3, 2498.723, -1644.413, 13.78261)
$Grove4 = actor.Create(Gang2, #FAM3,2486.901, -1648.242, 14.07031)
$Ryder = actor.Create(38, #SPECIAL01, 2459.735, -1687.654, 13.53583)
$Sweet = actor.Create(45, #SPECIAL02, 2512.306, -1675.983, 13.54529)
$OGLoc = actor.Create(34, #SPECIAL03, 2493.735, -1687.074, 13.5138)
0187: $OG_Marker = Create_marker_above_actor $OGLoc
01B2: give_actor $Grove1 weapon 32 ammo 500
01B2: give_actor $Grove2 weapon 32 ammo 500
01B2: give_actor $Grove3 weapon 32 ammo 500
01B2: give_actor $Grove4 weapon 32 ammo 500
01B2: give_actor $Ryder weapon 32 ammo 500
01B2: give_actor $Sweet weapon 32 ammo 500
05E2: AS_Actor $Grove1 kill_actor $PLAYER_ACTOR
05E2: AS_Actor $Grove2 kill_actor $PLAYER_ACTOR
05E2: AS_Actor $Grove3 kill_actor $Ryder
05E2: AS_Actor $Grove4 kill_actor $PLAYER_ACTOR
05E2: AS_Actor $Sweet kill_actor $PLAYER_ACTOR
Actor.Health($Ryder) = 25
Actor.Health($Sweet) = 300

repeat
wait 0 ms
if Actor.Dead($Ryder)
then
jump @Eerste_Missie_Failed
end
until Actor.Dead($Sweet)

:Eerste_Missie_Passed
0394: play_music 1
$Eerste_Missie_Passed += 1
Player.Money($PLAYER_CHAR) += 13337
01E3: show_text_1number_styled GXT 'M_PASS' number 13337 time 5000 style 1
return

:Eerste_Missie_Failed
00BA: show_text_styled GXT 'M_FAIL' time 5000 style 1
0555: remove_weapon 30 from_actor $PLAYER_ACTOR
return

:Eerste_Missie_Opruimen
$ONMISSION = 0
Marker.Disable($OG_Marker)
010D: set_player $PLAYER_CHAR Wanted_level_to 0
model.Destroy(#FAM1)
model.Destroy(#FAM3)
Model.Destroy(#AK47)
Model.Destroy(#TEC9)
Model.Destroy(#SPECIAL01)
Model.Destroy(#SPECIAL02)
Model.Destroy(#SPECIAL03)
mission_cleanup
return 

Het omdraaien van :Eerste_Missie en :Kenmerken heb ik dus gedaan zodat hij goed compiled, maar waarom sluit hij nou af, ben ik misschien een wait of iets vergeten ergens?

Bedankt voor je hulp tot nu toe :)

Link to comment
Delen op andere websites

Een reactie plaatsen

Je kan nu een reactie plaatsen en pas achteraf registreren. Als je al lid bent, log eerst in om met je eigen account een reactie te plaatsen.

Gast
Op dit onderwerp reageren...

×   Je hebt text geplaatst met opmaak.   Opmaak verwijderen

  Only 75 emoji are allowed.

×   Je link is automatisch ingevoegd.   In plaats daarvan weergeven als link

×   Je vorige bewerkingen zijn hersteld.   Alles verwijderen

×   You cannot paste images directly. Upload or insert images from URL.

  • Recent actief   0 leden

    • Er zijn hier geen geregistreerde gebruikers aanwezig.

×
×
  • Create New...