Jump to content
Geplaatst:
comment_1410336

Hallo iedereen,

Ik heb een probleempje met het verwijderen van een marker. Ik heb dit stukje script geschreven:

0186: $m1 = create_marker_above_car $dinghy
0165: set_marker $m1 color_to 1
jump @MAIN_104

:MAIN_104
wait 0
if Actor.InCar($PLAYER_ACTOR, $dinghy)
Marker.Disable($m1)
jf @MAIN_104

Maar het probleem is dat er geen marker is boven mijn voertuig. Ook wil ik opmerken dat wanneer ik ''PLAYER_ACTOR'' verander in ''PLAYER_CHAR" mijn game crasht.

Weet iemand hoe ik dit kan oplossen?

Grtz RD :cya:

Featured Replies

Geplaatst:
comment_1410346

Simpel, de marker.disable onder de jf zetten. Dat moet namelijk NA de lus, anders is hij gelijk weg. Het moet ook Player_Actor zijn, dus logisch dat Player_Char niet werkt.

De "jump @MAIN_104" is trouwens compleet onnodig.

Geplaatst:
  • Auteur
comment_1410351
Simpel, de marker.disable onder de jf zetten. Dat moet namelijk NA de lus, anders is hij gelijk weg. Het moet ook Player_Actor zijn, dus logisch dat Player_Char niet werkt.

De "jump @MAIN_104" is trouwens compleet onnodig.

Het werkt! Bedankt Dutchy. ^_^

Edit: Nog een vraagje, ik heb nu deze code:

:MAIN_793
$GOTOPLAT = Marker.CreateIconAndSphere(56, 312.2537, -2250.734, -0.7135691)
if 
00EC:   actor $PLAYER_ACTOR 0 near_point 312.2537 -2250.734 radius 4.0 4.0 
else_jump @MAIN_793 
Marker.Disable($GOTOPLAT)

Deze komt direct na de code van de marker, maar wanneer ik nu in het voertuig ga loopt GTA SA vast...

Bewerkt: door Revolution-Designer

Geplaatst:
comment_1410378

Je zegt: Maak een marker ($GOTOPLAT = Marker.CreateI...). Controleer dan of je bij de marker bent. Hier zit een fout: er moet altijd een wait in een if, die ik nergens zie staan. Ben je daar niet (ik ga even verder, omdat ik verder nog een fout zag, ik weet niet of deze erg is), spring je terug naar het begin van dit label, waardoor je opnieuw die marker maakt en weer controleert.

Ik weet niet of die tweede fout een crash-oorzaak kan zijn (zelfs met de wait), maar de wait moet er komen.

Geplaatst:
  • Auteur
comment_1412197

Ik heb nog een vraag(je) over het disablen van een marker.

Ik heb 8 actors gespawnt met een rode marker, nu heb ik deze code voor het disablen:

:MAIN_1576
wait 0 
if 
  Actor.Dead(1@)
else_jump @MAIN_1576 
Marker.Disable($MARKER1)

En deze code 8 keer onder elkaar, maar het probleem is dat ik dus iedereen in goede volgorde moet vermoorden wil ik de markers goed laten verdwijnen. Maar het liefst wil ik natuurlijk gewoon een willekeurige actor vermoorden en vervolgens moet zijn marker dan ook weggaan. Maar hoe?

Grtz RD :cya:

Geplaatst:
comment_1412458

Ik moet heel eerlijk bekennen dat ik zo 1-2-3 geen hele makkelijke oplossing heb, misschien denk ik ook wel gewoon te moeilijk. :puh: In ieder geval, heb het volgende scriptje geschreven en dat werkt... Het creëert 3 actors in grove street, met markers. Daarna schiet je ze 1 voor 1 af, in willekeurige volgorde, en dan zullen de markers verdwijnen. Vervolgens delete ik ze, en spring ik terug naar het creëren. Zo kan je opnieuw testen.

:actor
009A: 1@ = create_actor_pedtype 4 model #MALE01 at 2490.56 -1666.84 13.38
0187: 2@ = create_marker_above_actor 1@
009A: 3@ = create_actor_pedtype 4 model #MALE01 at 2492.56 -1666.84 13.38
0187: 4@ = create_marker_above_actor 3@
009A: 5@ = create_actor_pedtype 4 model #MALE01 at 2494.56 -1666.84 13.38
0187: 6@ = create_marker_above_actor 5@

7@ = 0

repeat
 wait 100

 if and
0118:   actor 1@ dead 
075C:   marker 2@ enabled
 then
0164: disable_marker 2@  
0008: 7@ += 1   
 end

 if and 
0118:   actor 3@ dead 
075C:   marker 4@ enabled 
 then
0164: disable_marker 4@
0008: 7@ += 1 
 end

 if and
0118:   actor 5@ dead 
075C:   marker 6@ enabled 
 then
0164: disable_marker 6@
0008: 7@ += 1	   
 end
until 0039:   7@ == 3 



009B: destroy_actor 1@ 
009B: destroy_actor 3@
009B: destroy_actor 5@

wait 1000
jump @actor

Hopelijk heb je er wat aan. ;)

Geplaatst:
  • Auteur
comment_1412477
Ik moet heel eerlijk bekennen dat ik zo 1-2-3 geen hele makkelijke oplossing heb, misschien denk ik ook wel gewoon te moeilijk. :puh: In ieder geval, heb het volgende scriptje geschreven en dat werkt... Het creëert 3 actors in grove street, met markers. Daarna schiet je ze 1 voor 1 af, in willekeurige volgorde, en dan zullen de markers verdwijnen. Vervolgens delete ik ze, en spring ik terug naar het creëren. Zo kan je opnieuw testen.

:actor
009A: 1@ = create_actor_pedtype 4 model #MALE01 at 2490.56 -1666.84 13.38
0187: 2@ = create_marker_above_actor 1@
009A: 3@ = create_actor_pedtype 4 model #MALE01 at 2492.56 -1666.84 13.38
0187: 4@ = create_marker_above_actor 3@
009A: 5@ = create_actor_pedtype 4 model #MALE01 at 2494.56 -1666.84 13.38
0187: 6@ = create_marker_above_actor 5@

7@ = 0

repeat
 wait 100

 if and
0118:   actor 1@ dead 
075C:   marker 2@ enabled
 then
0164: disable_marker 2@  
0008: 7@ += 1   
 end

 if and 
0118:   actor 3@ dead 
075C:   marker 4@ enabled 
 then
0164: disable_marker 4@
0008: 7@ += 1 
 end

 if and
0118:   actor 5@ dead 
075C:   marker 6@ enabled 
 then
0164: disable_marker 6@
0008: 7@ += 1	   
 end
until 0039:   7@ == 3 



009B: destroy_actor 1@ 
009B: destroy_actor 3@
009B: destroy_actor 5@

wait 1000
jump @actor

Hopelijk heb je er wat aan. ;)

Het werkt perfect Dutchy!

Je bent m'n reddende engel! (Daar krijg ik toch geen warn voor?) :cab:

Geplaatst:
  • Auteur
comment_1412512

Sorry voor de dubbelpost, maar anders trek je nooit de aandacht. (Echt waar!)

Ik heb je manier opgevolgd Dutchy en alles werkt goed, maar nu spawn ik later in mijn script opnieuw een aantal actors met markers. Maar ik kan het script niet compilen.

Dit is de foutmelding:

helpc.jpg

Ik weet echt niet wat de fout is. :?

Dit is btw. mijn stukje script:

10@ = Actor.Create(Cop, #ARMY, 215.5373, -2303.868, 5.304692)
11@ = Actor.Create(Cop, #ARMY, 221.327, -2303.331, 5.304692)
12@ = Actor.Create(Cop, #ARMY, 221.327, -2306.451, 5.304692)
Actor.Angle(10@) = 95.72012
Actor.Angle(11@) = 95.72012
Actor.Angle(12@) = 95.72012
$MARKER10 = Marker.CreateAboveActor(10@)
$MARKER11 = Marker.CreateAboveActor(11@)
$MARKER12 = Marker.CreateAboveActor(12@)
02A3: enable_widescreen 1 
Camera.SetPosition(178.8138, -2304.421, 11.98432, 0.0, 0.0, 0.0)
Camera.PointAt(215.5373, -2303.868, 5.304692, 2)
fade 1 1500 
wait 1000 
00BB: show_text_lowpriority GXT 'PLAT10' time 4500 flag 1  // Jack: Oh no! They are coming!
wait 4500 
fade 1 1000 
wait 1000 
02A3: enable_widescreen 0 
Camera.Restore
Player.CanMove($PLAYER_CHAR) = True
05E2: AS_actor 10@ kill_actor $PLAYER_ACTOR 
05E2: AS_actor 11@ kill_actor $PLAYER_ACTOR 
05E2: AS_actor 12@ kill_actor $PLAYER_ACTOR 
00BB: show_text_lowpriority GXT 'PLAT14' time 5250 flag 1

:MAIN_1577
17@ = 0

repeat
 wait 100

 if and
0118:   actor 10@ dead
075C:   marker $MARKER10 enabled
 then
0164: disable_marker $MARKER10  
0008: 13@ += 1  
 end

 if and
0118:   actor 11@ dead
075C:   marker $MARKER11 enabled
 then
0164: disable_marker $MARKER11
0008: 13@ += 1
 end

 if and
0118:   actor 12@ dead
075C:   marker $MARKER12 enabled
 then
0164: disable_marker $MARKER12
0008: 13@ += 1
until 0039:   13@ == 3 

Player.CanMove($PLAYER_CHAR) = False
02A3: enable_widescreen 1 
fade 0 1000 
wait 1000 
0674: set_car_mode

Grtz RD :cya:

Geplaatst:
comment_1412862

Je bent een end vergeten bij de laatste if-then-end structuur.

  if and
0118:   actor 12@ dead
075C:   marker $MARKER12 enabled
 then
0164: disable_marker $MARKER12
0008: 13@ += 1
 end
until 0039:   13@ == 3

Geplaatst:
  • Auteur
comment_1412907
Je bent een end vergeten bij de laatste if-then-end structuur.

  if and
0118:   actor 12@ dead
075C:   marker $MARKER12 enabled
 then
0164: disable_marker $MARKER12
0008: 13@ += 1
 end
until 0039:   13@ == 3

Het werkt... :D

Dat zo'n klein woordje voor zo'n probleem kan zorgen. :cab:

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

Recent actief 0

  • Er zijn hier geen geregistreerde gebruikers aanwezig.