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_1298236

Ik snap er niets van. :(

Eerst komt dit:

0512:  show_permanent_text_box 'CLOTHA'

Dat valt nog te begrijpen.

Dan plaatst hij dit erachteraan:

08D4: $MENU = create_panel_with_title 'DUMMY' position 29.0 145.0 width 220.0 columns 1 interactive 1 background 1 alignment 1

Dit snap ik niet want hier wordt een heel nieuw tekstblokje geladen. Wat niets te maken heeft met de vorige.

Dan komt dit erachteraan:

08DB:  set_panel $MENU column 0 header 'DUMMY' data 'DUMMY' 'DUMMY' 'DUMMY'  'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY'

Dat valt nog te begrijpen.

Maar nu komen we hier:

gosub @MENU_30

Er wordt ineens in het wilde weg naar MENU_30 gesprongen die nergens te bekennen is.

Dan komt dit:

0871: init_jump_table $ROW total_jumps 16  default_jump 0 @MENU_8 jumps 0 @MENU_436 1 @MENU_443 2 @MENU_450 3  @MENU_457 4 @MENU_464 5 @MENU_471 6 @MENU_478
	 0872:  jump_table_jumps 7 @MENU_485 8 @MENU_492 9 @MENU_499 10 @MENU_506 11  @MENU_513 12 @MENU_513 13 @MENU_513 14 @MENU_513 15 @MENU_513

Maar deze snap ik nog wel met wat erachter aan komt.

Geplaatst:
comment_1298296

Ik heb een plaatje gemaakt om het te verduidelijken in de rest van mijn verhaal. Het is het "Main Panel" van Design Your Own Mission:

post-33831-1236984747_thumb.jpg

08D4: $MENU = create_panel_with_title 'DUMMY' position 29.0 145.0 width 220.0 columns 1 
interactive 1 background 1 alignment 1

08DB:  set_panel $MENU column 0 header 'DUMMY' data 'DUMMY' 'DUMMY' 'DUMMY'  'DUMMY' 
'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY'

repeat
wait  0 ms
if 00E1:   player 0 pressed_key 15 
then
               08DA: remove_panel $MENU
	03E6: remove text box
	jump @END
end
until 00E1:   player 0 pressed_key 16 

08D7: $choice = panel $MENU active_row
08DA: remove_panel $MENU
03E6: remove text box

if $choice == 0
then
...
end

if $choice == 1
then
... 
end


:END
wait 1000
jump @END

Je moet wel even wat dingen weer aan elkaar plakken, anders werd de pagina uitgerekt. :puh:

Geplaatst:
  • Auteur
comment_1298566

Het begint al wat te werken met de missie, maar nu probeer ik de persoon zijn geld op 0 te zetten en dat lukt mij niet. Ik heb het volgende geprobeerd.

$Cash = Player.Money($PLAYER_CHAR)
Player.Money($PLAYER_CHAR) -= $Cash

$Cash = Player.Money($PLAYER_CHAR)
Player.Money($PLAYER_CHAR) += -$Cash

Player.Money($PLAYER_CHAR) = 0

03FE: set_actor $PLAYER_CHAR money 0

En ik snap het verschil niet tussen $PLAYER_ACTOR en $PLAYER_CHAR. :N

Alvast bedankt. :tu:

Bewerkt: door Bierbuikje

Geplaatst:
comment_1298585

Als je niet weet wat precies met CHAR moet, en wat met ACTOR, dan moet je gewoon even in de main kijken. Snelste en eenvoudigste oplossing.

Dat eerste werkt niet omdat er geen "-=" bestaat. Dat tweede bestaat niet omdat je niet -$ kan doen. Je moet zorgen dat het getal, de variabele, al een - getal is. Dat derde klopt niet omdat de opcode += is, niet =. Dat is gewoon niet de goede opcode. Volgens mij wordt de vierde alleen gebruikt voor andere actors, met andere woorden, hoeveel ze laten vallen als ze gedood worden. Weet ik niet zeker... Maar in ieder geval, zo zou je het kunnen doen:

$Cash = Player.Money($PLAYER_CHAR)
0010: $Cash *= -1
Player.Money($PLAYER_CHAR) += $Cash

Geplaatst:
  • Auteur
comment_1299976

Ik maak nu een 1 tegen allen gevecht, maar het plaatsen, intro maken, skills geven lukt allemaal wel, maar ik loop vast op het moment dat het systeem moet wachten totdat iemand dood is. En als diegene dood is dan wil ik dat de stip die op radar staat van hem verdwijnt.

Bijvoorbeeld.

:dood0
wait 0
if
Actor.Dead($PLAYER_ACTOR)
else_jump @dood1
jump @eind_player

:dood1
wait 0
if
Actor.Dead($BALLAS_1)
else_jump @dood2
Marker.Disable($BALLAS_MARKER_1)

:dood2
wait 0
if
Actor.Dead($BALLAS_2)
else_jump @dood2
Marker.Disable($BALLAS_MARKER_2)

enz. enz. enz. tot @dood8

wait 0
if and
Actor.Dead($BALLAS_1)
Actor.Dead($BALLAS_2)
Actor.Dead($BALLAS_3)
Actor.Dead($BALLAS_4)
Actor.Dead($BALLAS_5)
Actor.Dead($BALLAS_6)
Actor.Dead($BALLAS_7)
Actor.Dead($BALLAS_8)
else_jump @dood0
Model.Destroy($BALLAS_1)
Model.Destroy($BALLAS_2)
Model.Destroy($BALLAS_3)
Model.Destroy($BALLAS_4)
Model.Destroy($BALLAS_5)
Model.Destroy($BALLAS_6)
Model.Destroy($BALLAS_7)
Model.Destroy($BALLAS_8)
jump @missie_vervolg

Maar deze code klopt denk ik niet, ik weet ook niet hoe ik dit simpeler moet maken, maar mijn script loopt vast en ik weet gewoon zeker dat het aan deze code ligt, weet iemand wat er fout aan is?

Alvast bedankt. :tu:

Geplaatst:
  • Auteur
comment_1303711

Dat hierboven is inmiddels gelukt, maar nu heb ik een tweede probleem.

Ik keek even naar de missie 'Puncture Wounds' (@STEAL_5) en ik wou ook wat stingers spawnen in mijn missie. Toen zag ik dat een stinger het volgende object is: #TEMP_STINGER2.

Ik probeerde hem te laden:

Model.Load(#TEMP_STINGER2)

Maar dan krijg ik een fout. De volgende:

Compiled file has no header, so the model name #TEMP_STINGER2 can not be used. Use number ID instead.

Ik weet niet wat hiermee te doen. :N Want het ID nummer kan ik niet vinden, omdat #TEMP_STINGER2 niet in het automatische rijtje staat als je # intikt.

Hoe moet ik dit object laden of is er een ander object voor een stinger?

Alvast bedankt. :tu:

Bierbuikje

Geplaatst:
  • Auteur
comment_1304018

Ik zit me suf CTRL+ALT+H te drukken, maar het werkt niet. Is er een bepaalde plaats waar ik dit moet doen of een bepaald moment? Ook heb ik het ID opgezocht in de defined list bovenin de main.scm en daar stond een nummer '237', maar die werkte ook niet. :N

Waar moet je CTRL+ALT+H indrukken? :?

Ik heb het ID nummer gevonden na lang proberen: 2899.

Maar nu had ik wat code's, maar ik denk dat geen van allen werkt en ik snap niet hoe beter te doen. :N

Model.Load(2899)
not Model.Available(2899)
Model.Destroy(2899)
$STINGER = Object.Create(2899, $X, $Y, $Z)

Bewerkt: door Bierbuikje

Geplaatst:
  • Auteur
comment_1304484
Probeer het eens met de opcode 029B...

Hoe werkt die code en wat doet het? Ik kan hem niet terugvinden in de main.scm en help dus ik weet niet wat ik ermee moet doen. :N

Geplaatst:
comment_1304587

Als je wilt weten wat een opcode is, kan je dat op drie manieren doen:

1. In de main.scm kijken.

2. In de opcode search tool kijken.

3. Op F1 drukken terwijl je een deel van de opcode tikt.

Geplaatst:
  • Auteur
comment_1305136

Ik heb wat vraagjes over het object #RCBOMB (ID 1636).

1. Hoe laad je #RCBOMB?

Model.Load(#RCBOMB) // = Foutmelding
Model.Load(1636) // = Er gebeurt niets

2. Hoe plaats je #RCBOMB?

03C0: 10@ = actor $PLAYER_ACTOR car // Auto
0400: store_coords_to 1@ 2@ 3@ from_car 10@ with_offset 0.0 0.0 0.0 // Coordinaten auto
029B: $RCBOMB = init_object #RCBOMB at 1@ 2@ 3@ // = Foutmelding
029B: $RCBOMB = init_object 1636 at 1@ 2@ 3@ // = Ik weet niet of deze goed is

en 3. Waar kan ik vinden welke toets de CTRL toets is?

Alvast bedankt. :tu:

Bierbuikje

Bewerkt: door Bierbuikje

Geplaatst:
comment_1306279

Het is ook meestal zo dat als je een object laad maar er niks mee doet je het niet echt merkt :D Dus je het volgende gebruiken:

model.load(1636)

Het model natuurlijk laden, ik ga ervan uit dat het de goede ID is. Ik keek altijd in de Main.SCM helemaal boven aan. Je zoekt met CTRL+F naar het object, en kijk je bij het commentaar // welk ID erachter geschreven stond. De manier van Dutchy werkt natuurlijk beter + sneller.

038B: load_requested_models

Ken je ook al van eerdere scriptjes, het is dus een gewone modellaadscriptje. Zoals je het ook met actors, auto's enzovoort doet.

model.Available(1636)

Is het model beschikbaar? Dit in een normale IF zetten zoals je gewend bent :)

0107: $2706 = create_object 1636 at 1833.36 -1995.45 12.5

Dit is dan de code om je object te plaatsen. $2706 is dan het object, 1636 is het geladen object, en de coördinaten :)

model.Destroy(1636)

Model unloaden.

Je hebt nog heel veel dingen die je met objecten kan doen, schrijf bijvoorbeeld maar eens in SB: "object." en je krijgt een hele lijst. Zoek ook eens met de opcode search tool naar object, veel leuke dingen erbij :)

Hier is nog een voorbeeld. Niet zelf getest of het werkt.

:LADEN
wait 0
model.load(1636)
038B: load_requested_models 

:CHECK
wait 0
if
model.Available(1636)
jf @CHECK
object.Create($object, 1636, 0.0, 0.0, 0.0) // Object creëren
034E: move_object $object to 20.0 20.0 20.0 speed 1.0 1.0 1.0 flag 1 //Voorbeeld: Beweeg het object naar coördinaten X, X en X met snelheid X, X en X
model.Destroy(1636) //En unloaden

Wel zelf nog de end_thread en $CLEO .cs enzo erbij zetten :puh:

De controls kan je vinden door naar Help -> Inhoud -> Cleo3 Code Library -> Virtual Key Codes. Gebruiken met opcode 0AB0.

Bewerkt: door Beagle

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.