Jump to content

Wat scheelt er met deze deel code?


Recommended Posts

Geplaatst: (bewerkt)

Ik wil een reeks gebeurtenissen laten spelen, de code doet het. Er wordt geshoten in alle richtingen

en op elk moment kan CJ doodgeschoten worden. Wanneer CJ doodgeschoten wordt in het midden van de missie is het een mission failed, maar 3 seconden nadat MISSION FAILED op het scherm verschijnt slaat het spel vast.

Ik heb alle threads apart geprobeerd en ze werken, maar wanneer ik ze samenvoeg slaat het spel vast na een Mission Failed.

create_thread @MISSION_05_BEGIN
create_thread @MISSION_05_CONDITION

:MISSION_05_BEGIN
wait 1500
05E2: AS_actor $1 kill_actor $PLAYER_ACTOR
05E2: AS_actor $2 kill_actor $1

wait 250
05BB: AS_actor $1 fall_down 0 time_on_ground 500
0687: clear_actor $2 task 
05E2: AS_actor $1 kill_actor $PLAYER_ACTOR

wait 2000
05DA: AS_actor $VICTIM run_away_in_panic_from -15.50 -80.50 1003.54 away_radius 0.0 timelimit 500
05E2: AS_actor $2 kill_actor $1

wait 4000
05E2: AS_actor $1 kill_actor $2

wait 1000
01B9: set_actor $1 armed_weapon_to 0
01B9: set_actor $2 armed_weapon_to 0

wait 22450
05BB: AS_actor $2 fall_down 0 time_on_ground 600000
05E2: AS_actor $1 kill_actor $PLAYER_ACTOR
01B2: give_actor $1 weapon 22 ammo 500

:MISSION_05_CONDITION
repeat
 wait 0 ms
 if actor.Dead($PLAYER_ACTOR)
 then
jump @MISSION_05_FAIL
 end
until 00EC: actor $PLAYER_ACTOR 0 near_point 2749.50 -1446.00 radius 2.0 2.0 

:MISSION_05_PASSED
create_thread @MISSION_06
return

Groeten

Leumas

Bewerkt: door Leumas
Geplaatst:

Je maakt hier verschillende fouten in de sctructuur, ik heb verder niet naar het laten schieten van de mannetjes enzo gekeken.

Ik neem aan dat je bovenaan deze code begint met executeren. Als eerste start je twee threads:

1 bij MISSION_05_BEGIN en 1 bij MISSION_05_CONDITION.

Je hebt dan 3 threads, want de main thread zelf gaat na de create_threads natuurlijk ook gewoon bij MISSION_05_BEGIN verder.

De threads die MISSION_05_BEGIN draaien, lopen door het stuk code en belanden daarna ook bij MISSION_05_CONDITION.

Op dat moment heb je dus 3 threads die in dezelfde loop hangen.

Als ze daar uitkomen, starten ze alle drie een nieuwe thread op bij MISSION_06. Dus op dat moment heb je al 6 threads.

En dan komen de drie oude threads bij een return. Dat is niet de manier om een thread af te sluiten, want return mag je alleen maar doen als je er met een gosub naartoe bent gegaan. Hierop zal de code dus crashen.

Ik raad je aan om een goede tutorial te volgen over het scripten van een missie. Zodat je de structuur goed begrijpt. http://www.gtaforum.nl/index.php?showtopic=56306

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...