Jump to content
Geplaatst:
comment_1217650

Goedemidag, ik heb een probleempje met scm modding m.b.v. cleo en ik kom er maar niet uit. Ik probeerde een actor te spawnen aan de hand van de tutorial van Dutchy3010 en PatrickW, maar het lukt niet, want mijn san andreas crasht wanneer ik hem opstart. Ik heb cleo goed geïnstalleerd, want ik kan de 'gravity gun' mod ook al spelen.

Als iemand begrijpt wat ik fout heb gedaan in de volgende code ben ik hem of haar zeer dankbaar. _O_

{$CLEO .CS}
// Load models
0247: load_model #BFYST
038B: load_requested_models

:MODEL_LOAD
00D6: if
8248:   not model #BFYST available
004D: jump_if_false @MODEL_SPAWN
0001: wait 0 ms
0002: jump @MODEL_LOAD

:MODEL_SPAWN
10@ = Actor.Create(CIVFEMALE, #BFYST, 0.0, 0.0, 0.0)

//Hier komt wat je met je actor wilt doen

0249: release_model #BFYST

Alvast bedankt, :tu:

BB

Bewerkt: door Bierbuikje

  • Reacties 89
  • Bezichtigingen 4.8k
  • Created
  • Laatste reactie

Top Posters In This Topic

Posted Images

Featured Replies

Geplaatst:
  • Auteur
comment_1247294
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:
comment_1247320

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:
comment_1247638

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:
comment_1247662

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:
  • Auteur
comment_1248069

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:
comment_1248186

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:
  • Auteur
comment_1248672

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:
  • Auteur
comment_1248712
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:
comment_1249047
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:
comment_1249120
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:
  • Auteur
comment_1250054

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:
comment_1250107

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.

Geplaatst:
  • Auteur
comment_1250141

Ik heb nu:

0674: set_car_model #ELEGANT numberplate "BIERBUIK"

Maar hij werkt nog niet. :N

Dit is het hele reeksje codes dat erbij hoort:

30@ = Car.Create(#ELEGANT, -557.6323, 2705.365, 77.43952)
0674: set_car_model #ELEGANT numberplate "BIERBUIK"
0224: set_car 30@ health_to 100000

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.