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

Featured Replies

Geplaatst:
comment_1219349

Dat laatste, uit de buurt gaan, is trouwens ook een stuk mooier. Dan zie je de actor meestal niet of niet goed uit de lucht vallen. Als je actors spawnt, "vallen" die namelijk naar de goede plek. Het is dus niet mooi, om dan ervoor te staan. Als je dus een eind uit de buurt bent, kan je dat niet zien. :)

Geplaatst:
  • Auteur
comment_1219594

Ik heb nu de code: (Wordt wel een lange code ondertussen. :puh:

// This file was decompiled using sascm.ini published by Seemann (http://sannybuilder.com/files/SASCM.rar) on 13.10.2007

{$VERSION 3.1.0027}
{$CLEO .CS}

//-------------MAIN---------------
:Bierbuikje
Model.Load(#VWFYWAI)
Model.Load(#MINIGUN)
038B: load_requested_models
jump @Bierbuikje1

:Bierbuikjeeenhalf
Model.Load(#VWFYWAI)
Model.Load(#MINIGUN)
038B: load_requested_models
jump @Bierbuikje1

:Bierbuikje1
if or
  not Model.Available(#VWFYWAI)
  not Model.Available(#MINIGUN)
else_jump @Bierbuikje2
wait 0
jump @Bierbuikje1

:Bierbuikje2
10@ = Actor.Create(CivFemale, #VWFYWAI, 2490.563, -1688.95, 13.51973)
01B2: give_actor 10@ weapon 38 ammo 30000 // Load the weapon model before using this
01B9: set_actor 10@ armed_weapon_to 38
05E2: AS_actor 10@ kill_actor $PLAYER_ACTOR
Actor.WeaponAccuracy(10@) = 90
Actor.Health(10@) = 2000
0350: set_actor 10@ maintain_position_when_attacked 1
Model.Destroy(#VWFYWAI)
Model.Destroy(#MINIGUN)

repeat
 wait 100
until 0118:   actor 10@ dead

wait 5000
009B: destroy_actor 10@
jump @Bierbuikje3

:Bierbuikje3
if
0104:   actor $PLAYER_ACTOR near_actor 1@ radius 15.0 15.0 15.0 sphere 0
else_jump @Bierbuikjeeenhalf
wait 0
jump @Bierbuikje3

0A93: end_custom_thread

Maar mijn SA crasht op het moment dat hij bij label 'Bierbuikje3' komt. ( Denk ik, op het moment dat hij moet herladen. )

Of heb ik hem fout neergezet?

Geplaatst:
comment_1219747

Je hebt actor 1@ gedaan, jouw actor heet 10@. Ik kopieer altijd alleen de code uit SannyBuilder, je moet hem zelf verder invullen. :puh:

jump @Bierbuikje3

:Bierbuikje3

Die jump is nutteloos, trouwens.

Ohja, je code is niet zo heel lang hoor. De code die PatrickW en ik geschreven hebben, is op dit moment 9192 regels lang. :puh:

Geplaatst:
  • Auteur
comment_1219759
Je hebt actor 1@ gedaan, jouw actor heet 10@. Ik kopieer altijd alleen de code uit SannyBuilder, je moet hem zelf verder invullen. :puh:

jump @Bierbuikje3

:Bierbuikje3

Die jump is nutteloos, trouwens.

Ohja, je code is niet zo heel lang hoor. De code die PatrickW en ik geschreven hebben, is op dit moment 9192 regels lang. :puh:

Oeps, was ik vergeten. :puh: En wat moet er allemaal niet staan in 9192 regels? :puh:

Geplaatst:
comment_1221706

Tuurlijk veel checks, maar ook HEEL veel andere dingen. Design Your Own Mission is een super grote SCM-mod, ook al beseft men dat hier niet zo goed... Maar we gaan offtopic, ontopic weer graag. :)

Geplaatst:
  • Auteur
comment_1222090

Ik probeer nu 2 actors te spawnen met wapen en dat ze ook weer respawnen, maar sa crasht weer. Eerlijk gezegd had ik het ook wel verwacht, maar ik weet niet hoe op te lossen.

Dit is de code:

{$CLEO .CS}

:Bierbuikje
Model.Load(#BALLAS1)
Model.Load(#FAM1)
Model.Load(#DESERT_EAGLE)
jump @Bierbuikje2

:BierbuikjeBallas
Model.Load(#BALLAS1)
Model.Load(#DESERT_EAGLE)
jump @BierbuikjeBallas2

:BierbuikjeGrove
Model.Load(#FAM1)
Model.Load(#DESERT_EAGLE)
jump @BierbuikjeGrove2

:Bierbuikje2
10@ = Actor.Create(GANG1, #BALLAS1, -2323.607, -1637.773, 483.7031)
11@ = Actor.Create(GANG2, #FAM1, -2331.161, -1635.413, 483.7031)
01B2: give_actor 10@ weapon 24 ammo 30000
01B2: give_actor 11@ weapon 24 ammo 30000
01B9: set_actor 10@ armed_weapon_to 24
01B9: set_actor 11@ armed_weapon_to 24
05E2: AS_actor 10@ kill_actor 11@
05E2: AS_actor 11@ kill_actor 10@
Actor.WeaponAccuracy(10@) = 0
Actor.WeaponAccuracy(11@) = 0
Actor.Health(10@) = 2000
Actor.Health(11@) = 2000

:Bierbuikje3
if
   0350: set_actor 10@ maintain_position_when_attacked 1
else_jump @Bierbuikje4
jump @BierbuikjeBallas2

:Bierbuikje4
if
   0350: set_actor 11@ maintain_position_when_attacked 1
else_jump @Bierbuikje3
jump @BierbuikjeGrove2

:BierbuikjeBallas2
Model.Destroy(#BALLAS1)
Model.Destroy(#DESERT_EAGLE)

repeat
 wait 100
until 0118:   actor 10@ dead

wait 5000
009B: destroy_actor 10@

jump @BierbuikjeBallas

:BierbuikjeGrove2
Model.Destroy(#FAM1)
Model.Destroy(#DESERT_EAGLE)

repeat
 wait 100
until 0118:   actor 11@ dead

wait 5000
009B: destroy_actor 11@

jump @BierbuikjeGrove

0A93: end_custom_thread

Het probleem zit denk ik hier:

:Bierbuikje3
if
0350: set_actor 10@ maintain_position_when_attacked 1
else_jump @Bierbuikje4
jump @BierbuikjeBallas2

:Bierbuikje4
if
0350: set_actor 11@ maintain_position_when_attacked 1
else_jump @Bierbuikje3
jump @BierbuikjeGrove2

Maar ik heb geen idee hoe ik het moet oplossen, laat staan wat het eigenlijk inhoud. Wel weet ik dat het erin moet, maar het liefst wil ik weten hoe het moet en wat het doet.

Alvast bedankt. :tu:

Geplaatst:
  • Auteur
comment_1222702

Mijn code hierboven is een beetje heel erg rommelig, maar kan iemand mij laten zien hoe je 2 player spawns in 1 bestandje maakt? Ik kan wel 2 bestandjes aanmaken, maar ik wil leren hoe je het in 1 doet. En dat is mij nog niet gelukt. Alvast bedankt. :tu:

Geplaatst:
comment_1222775

// This file was decompiled using sascm.ini published by Seemann (http://sannybuilder.com/files/SASCM.rar) on 13.10.2007

{$VERSION 3.1.0027}
{$CLEO .CS}

//-------------MAIN---------------
:Bierbuikje
Model.Load(#VWFYWAI)
Model.Load(#VWFYWAI)
Model.Load(#MINIGUN)
038B: load_requested_models
jump @Bierbuikje1

:Bierbuikjeeenhalf
Model.Load(#VWFYWAI)
Model.Load(#VWFYWAI)
Model.Load(#MINIGUN)
038B: load_requested_models
jump @Bierbuikje1

:Bierbuikje1
if or
  not Model.Available(#VWFYWAI)
  not Model.Available(#VWFYWAI)
  not Model.Available(#MINIGUN)
else_jump @Bierbuikje2
wait 0
jump @Bierbuikje1

:Bierbuikje2
10@ = Actor.Create(CivFemale, #VWFYWAI, 2490.563, -1688.95, 13.51973)
11@ = Actor.Create(CivFemale, #VWFYWAI, $X, $Y, $Z)
01B2: give_actor 10@ weapon 38 ammo 30000 // Load the weapon model before using this
01B2: give_actor 11@ weapon 38 ammo 30000 // Load the weapon model before using this
01B9: set_actor 10@ armed_weapon_to 38
01B9: set_actor 11@ armed_weapon_to 38
05E2: AS_actor 10@ kill_actor $PLAYER_ACTOR
05E2: AS_actor 11@ kill_actor $PLAYER_ACTOR
Actor.WeaponAccuracy(10@) = 90
Actor.WeaponAccuracy(11@) = 90
Actor.Health(10@) = 2000
Actor.Health(11@) = 2000
0350: set_actor 10@ maintain_position_when_attacked 1
0350: set_actor 11@ maintain_position_when_attacked 1
Model.Destroy(#VWFYWAI)
Model.Destroy(#MINIGUN)

repeat
 wait 100
until 0118:   actor 10@ dead

wait 5000
009B: destroy_actor 10@

jump @Bierbuikjeeenhalf

0A93: end_custom_thread

Ik weet niet of dit goed werkt, zou wel moeten. Alleen weet ik niet bij de repeat hoe je precies meerdere untils er bij zet :cab: Beetje onhandig, maarja :puh:

Geplaatst:
comment_1222829

Om nog even terug te komen hierop:

:Bierbuikje3
if
0350: set_actor 10@ maintain_position_when_attacked 1
else_jump @Bierbuikje4
jump @BierbuikjeBallas2

:Bierbuikje4
if
0350: set_actor 11@ maintain_position_when_attacked 1
else_jump @Bierbuikje3
jump @BierbuikjeGrove2

Ik zie niet in wat je met die if-jf wilt bereiken? Deze opcode zorgt ervoor dat de actor blijft staan op het moment dat hij aangevallen wordt. Dit is een opcode die een eigenschap mee geeft aan een actor, net zoiets als het toevoegen van een wapen aan een actor, niet een opcode waarmee je iets opvraagt (bijvoorbeeld of een actor dood is). Beagle hierboven had het al wel verbetert, maar ik wilde toch nog even uitleg erbij geven.

@ Beagle...

Je kunt een repeat-wait-until maar 1 conditie geven. Althans, ik weet niet hoe Bierbuikje het precies wilt. Je kunt achter de "until" maar 1 conditie zetten. Maar binnen de repeat-wait-until structuur kan je wel dingen zeggen. Toch zou ik het gewoon simepeler maken. Repeat-until is vooral handig als je iets de hele tijd wilt doen tot je een bepaalde conditie hebt gehaald. Deze keer zou ik dus gewoon een if-structuur maken.

Ik neem aan dat je ze allebei wilt spawnen op het moment dat ze beiden dood zijn? Anders moet je je begin-structuur wat aanpassen.

:DOOD
wait 0 
if and
0118:   actor 10@ dead
0118:   actor 11@ dead
jf @DOOD
jump @Bierbuikje

Wat nog meer niet ok is aan je code:

11@ = Actor.Create(CivFemale, #VWFYWAI, $X, $Y, $Z)

Je hebt de variabelen niet gedefinieerd. Waarschijnlijk spawnt deze actor dus gewoon op punt 0,0, maar ik neem aan dat dat niet de bedoeling is. ;) Dus of een lijstje maken met gedefinieerde variabelen voor deze opcode ($X = ..., $Y = ..., $Z = ...), of gewoon de coördinaten daar invullen.

Ohja, twee keer al die Model.Load is onzin... Dat is echt nergens voor nodig.

En nog een tip voor je code: je actors zijn heel sterk en alles, maar je kunt ze met 1 headshot doden. Wie weet immuun maken voor headshots?

Geplaatst:
comment_1222901

Oeps, die modellen laden en requesten is inderdaad niet nodig, even niet aan gedacht. De $X $Y $Z coordinaten bedoelde ik meer dat BB zelf de coordinaten in kon vullen :engel: Bij de repeat-wait-until structuur wist ik niet zeker of je meerdere condities kon stellen, dus had ik het er maar bij gehouden. Ach ja, weer wat geleerd :)

Geplaatst:
  • Auteur
comment_1225485

Ik probeer nu het aller domste gevecht op de wereld te maken, maar hoe spawn ik een actor in een auto? Ik heb het niet gevonden in de tuts. :N

Alvast bedankt. _O_

Hieronder: toppie. :tu:

Bewerkt: door Bierbuikje

Geplaatst:
comment_1225556

Dat is niet zo heel moeilijk:

0129: 41@ = create_actor_pedtype 23 model #SPECIAL02 in_car 35@ driverseat 
01C8: 40@ = create_actor_pedtype 23 model #SPECIAL01 in_car 35@ passenger_seat 0

Die eerste creer je een actor op de bestuurdersstoel, die tweede op de andere 3 mogelijkheden. Die 0 op het laatst kan je daarvoor variëren.

  • 3 weken later...
Geplaatst:
  • Auteur
comment_1247246

Ik ben weer even bezig gegaan, san andreas opgestart, alles laadt rustig, maar dan... Dan zie ik niet wat er zou moeten gebeuren. Er horen 4 ballas mannetjes en 1 grove mannetje te spawnen in grovestreet. Maar het gebeurt niet. Weet iemand hoe? Het script is wel geladen, dat kan ik zien in het menu.

{$CLEO .CS}

:ModelLoad
Model.Load(#FAM1)
Model.Load(#BALLAS1)
Model.Load(#BALLAS2)
Model.Load(#BALLAS3)
Model.Load(#DESERT_EAGLE)
jump @ModelControle

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

:ModelControle
if or
not Model.Available(#FAM1)
not Model.Available(#BALLAS1)
not Model.Available(#BALLAS2)
not Model.Available(#BALLAS3)
not Model.Available(#DESERT_EAGLE)
else_jump @ModelSpawn
wait 0
jump @ModelControle

:ModelSpawn
10@ = Actor.Create(Gang2, #FAM1, 2517,37, -1686,822, 13,56062)
11@ = Actor.Create(Gang1, #BALLAS1, 2513,876, -1682,905, 13,42083)
//
12@ = Actor.Create(Gang1, #BALLAS1, 2505,62, -1669,457, 13,37159)
13@ = Actor.Create(Gang1, #BALLAS2, 2506,693, -1667,886, 13,37623)
14@ = Actor.Create(Gang1, #BALLAS3, 2506,494, -1666,531, 13,38731)
//
01B2: give_actor 10@ weapon 24 ammo 30000 // Load the weapon model before using this
01B2: give_actor 11@ weapon 24 ammo 30000 // Load the weapon model before using this
//
01B2: give_actor 12@ weapon 24 ammo 30000 // Load the weapon model before using this
01B2: give_actor 13@ weapon 24 ammo 30000 // Load the weapon model before using this
01B2: give_actor 14@ weapon 24 ammo 30000 // Load the weapon model before using this
//
01B9: set_actor 10@ armed_weapon_to 24
01B9: set_actor 11@ armed_weapon_to 24
//
01B9: set_actor 12@ armed_weapon_to 24
01B9: set_actor 13@ armed_weapon_to 24
01B9: set_actor 14@ armed_weapon_to 24
//
Actor.WeaponAccuracy(10@) = 90
Actor.WeaponAccuracy(11@) = 90
//
Actor.WeaponAccuracy(12@) = 90
Actor.WeaponAccuracy(13@) = 90
Actor.WeaponAccuracy(14@) = 90
//
Actor.Health(10@) = 2000
Actor.Health(11@) = 1000
//
Actor.Health(12@) = 1000
Actor.Health(13@) = 1000
Actor.Health(14@) = 1000
//
0350: set_actor 10@ maintain_position_when_attacked 1
0350: set_actor 11@ maintain_position_when_attacked 1
//
0350: set_actor 12@ maintain_position_when_attacked 1
0350: set_actor 13@ maintain_position_when_attacked 1
0350: set_actor 14@ maintain_position_when_attacked 1
//
Model.Destroy(#FAM1)
Model.Destroy(#BALLAS1)
Model.Destroy(#BALLAS2)
Model.Destroy(#BALLAS3)
Model.Destroy(#DESERT_EAGLE)

repeat
 wait 100
until 0118:   actor 10@ dead

repeat
 wait 100
until 0118:   actor 11@ dead

repeat
 wait 100
until 0118:   actor 12@ dead

repeat
 wait 100
until 0118:   actor 13@ dead

repeat
 wait 100
until 0118:   actor 14@ dead

wait 5000
009B: destroy_actor 10@
009B: destroy_actor 11@
009B: destroy_actor 12@
009B: destroy_actor 13@
009B: destroy_actor 14@

jump @ModelLoad2

0A93: end_custom_thread

Excuses voor de vele repeat ... until, maar ik wist niet hoe ik het moest inkorten. ;)

Geplaatst:
comment_1247269

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:

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.