Jump to content

Simpele actor spawn = sa crash.


Recommended Posts

Geplaatst:

Je hebt niet de volgende opcode gebruikt:

038B: load_requested_models

Daardoor blijft hij in die tweede lus hangen. Ook het volgende kan je uit je code weglaten:

jump @ModelControle

:ModelLoad2
Model.Load(#FAM1)
Model.Load(#BALLAS1)
Model.Load(#BALLAS2)
Model.Load(#BALLAS3)
Model.Load(#DESERT_EAGLE)

Onnodig ruimte verspillen. :puh:

  • Reacties 89
  • Created
  • Laatste reactie

Top Posters In This Topic

  • Bierbuikje

    40

  • Dutchy3010

    32

  • Beagle

    8

  • Crypteq

    3

Top Posters In This Topic

Posted Images

Geplaatst:
Je hebt niet de volgende opcode gebruikt:

038B: load_requested_models

Daardoor blijft hij in die tweede lus hangen. Ook het volgende kan je uit je code weglaten:

jump @ModelControle

:ModelLoad2
Model.Load(#FAM1)
Model.Load(#BALLAS1)
Model.Load(#BALLAS2)
Model.Load(#BALLAS3)
Model.Load(#DESERT_EAGLE)

Onnodig ruimte verspillen. :puh:

Dat onderste kan ik niet weglaten, want hij kan onderaan niet terugspringen naar de eerste label, wel naar de 2e, heel vreemd, maar bij mij werkt het alleen zo. :) Maar wel bedankt, dat regeltje zag ik over het hoofd. _O_

Geplaatst:

Het is niet zo dat iets bij jou toevallig niet werkt, maar bij alle anderen wel. Je kunt gewoon springen naar modelload, hoor.

Daarnaast, je kunt i.p.v. repeat-wait-until ook doen:

:label
wait 0 
if and
0118:   actor 10@ dead
0118:   actor 11@ dead
0118:   actor 12@ dead
0118:   actor 13@ dead
0118:   actor 14@ dead
else_jump @label

Is wat netter en overzichtelijker. ;)

Geplaatst:

10@ = Actor.Create(Gang2, #FAM1, 2517,37, -1686,822, 13,56062)
11@ = Actor.Create(Gang1, #BALLAS1, 2513,876, -1682,905, 13,42083)

In je coordinaten staan komma's in plaats van punten. Dit hoort dan dit te zijn:

10@ = Actor.Create(Gang2, #FAM1, 2517,37, -1686,822, 13,56062)
11@ = Actor.Create(Gang1, #BALLAS1, 2513.876, -1682.905, 13.42083)

En dat geld ook voor die andere actorspawns.

Geplaatst:

Waarschijnlijk gebruik je San Andreas Place Manager om de coördinaten te vinden? Dan raad ik je toch aan om de coordsmanager (tools > ide tools > coords manager of CTRL+ALT+1) van SannyBuilder te gebruiken, dan krijg je automatisch punten. Weet je in ieder geval zeker dat je dat niet meer fout doet. :)

@ Beagle: idd, had ik niet eens gezien. De andere fout was "zo groot" dat de code daar nog niet eens kwam. :puh:

Geplaatst: (bewerkt)

Nu heb ik een probleempje met hoe je een auto verwijderd. Normaal met spelers gaat het zo:

009B: destroy_actor 10@
009B: destroy_actor 11@
009B: destroy_actor 12@
009B: destroy_actor 13@
009B: destroy_actor 14@
009B: destroy_actor 15@
009B: destroy_actor 16@
009B: destroy_actor 18@

Nu heb ik deze code eraan toegevoegd:

0249: release_model #PIZZABOY

Maar hij wordt niet verwijderd, ik denk dat ik een verkeerde dode heb, maar ik weet niet wat de echte is. Weet iemand de goede code? Alvast bedankt. _O_

Al gevonden. :D

Het is:

Car.Destroy(18@)

Bewerkt: door Bierbuikje
Geplaatst:

Even voor de volledigheid:

0249: release_model #PIZZABOY

Dit is het tegenovergestelde van:

Model.Load(#DESERT_EAGLE)
038B: load_requested_models

Dit gebruik je dus om een model te unloaden. Dat betekent niet dat de gecreëerde auto dan ook weg gaat. Dat verschil moet je goed in gedachte houden: je laad een model, vervolgens creëer je een auto, daarna unload je het model, en als je auto weg is dan destroy je de auto.

Car.Destroy is dus het tegenovergestelde van Car.Create. :)

Geplaatst:

Nieuw probleem. Ik ben nu bezig met het updaten van mijn vorige modje, maar ik heb hem wat getest, maar als je iedereen neerschiet dan blijven ze gewoon liggen en respawnen ze. Maar de lichamen blijven liggen. Als je de nieuwe gerespawnde neerschiet heb je 2x zoveel lichamen. Op het moment dat hij dan weer nieuwen gaat spawnen crasht san andreas wegens een maximum aan mensen daar denk ik. Hoe zorg ik ervoor dat de lichamen worden verwijderd? Dit is mijn code waarbj alles zou moeten worden verwijderd.

:NONAME_704
wait 0 
if and
  Actor.Dead(11@)
  Actor.Dead(12@)
  Actor.Dead(13@)
  Actor.Dead(14@)
  Actor.Dead(10@)
  Actor.Dead(15@)
  Actor.Dead(16@)
  Actor.Dead(18@)
else_jump @NONAME_704 
set_weather 0 
wait 5000 
Model.Destroy(10@)
Model.Destroy(11@)
Model.Destroy(12@)
Model.Destroy(13@)
Model.Destroy(14@)
Model.Destroy(15@)
Model.Destroy(16@)
Model.Destroy(18@)
Car.Destroy(17@)
jump @NONAME_48 
0A93: end_custom_thread

Dit is de pizzaboy.

Car.Destroy(17@)

Geplaatst: (bewerkt)
Probeer het eens met deze opcode:

009B: destroy_actor 18@

Bedankt. :tu: Ik heb hem gecompiled en zie nu dat ik in plaats van Model.Destroy nu Actor.DestroyInstantly moet gebruiken. :)

Oja, en het werkt. :D

Bewerkt: door Bierbuikje
Geplaatst: (bewerkt)
Probeer het eens met deze opcode:

009B: destroy_actor 18@

Bedankt. :tu: Ik heb hem gecompiled en zie nu dat ik in plaats van Model.Destroy nu Actor.DestroyInstantly moet gebruiken. :)

Oja, en het werkt. :D

Wat nog mooier is:

01C2: remove_references_to_actor 18@

Hiermee je actor zich als een willekeurige ped. Als hij dus dood is, gaat het vanzelf weg zoals bij andere peds. Dit ziet er mooi uit :)

EDIT: Dit moet je wel laten gebeuren nádat de actors dood zijn :)

Bewerkt: door Beagle
Geplaatst:
Hiermee je actor zich als een willekeurige ped. Als hij dus dood is, gaat het vanzelf weg zoals bij andere peds. Dit ziet er mooi uit :)

Daar zijn de meningen over verdeeld, en is ook niet altijd waar. Zijn probleem was juist, tenminste zo vatte ik het op, dat de actors te lang bleven liggen. Dat kan dus ook het geval zijn bij een willekeurige ped, dat die blijft liggen. Hoe lang e.d. hangt af van hoe ver je bij het "lijk" vandaan gaat, en hoe je de camera draait, etc. Wie weet spawnt de ped dan terug op de plaats als die ander er nog ligt. Dat ziet er ook tamelijk debiel uit.

Kan je beter het zekere voor het onzekere nemen en de actor gewoon via scm verwijderen. Dan wéét je tenminste wanneer hij verdwijnt.

Geplaatst:

Ik loop weer tegen een probleempje aan, ditmaal het kenteken. :)

Dit is mijn code, maar ingame zie ik niets.

0674: set_car_model 30@ numberplate "BIERBUIKJE"

30@ is een Elegant. Wie weet hoe dit komt?

Alvast bedankt. :)

BB

Geplaatst:

Allereerst moet aan die opcode een model geven, dus bijv:

0674: set_car_model #cheetah numberplate "bierbuikje"

Daarnaast moet je deze opcode vóór het creëren van de auto plaatsen.

"Bierbuikje" is overigens te lang.

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