Jump to content

Leege SCM.


Recommended Posts

Geplaatst:

Ik wil me nu ook gaan verdiepen in SCM, angezien modellen me soms even te veel word.

Om te beginnen heb ik een SCM nodig die helemaal leeg is.

Als 2e, de moeilijke vraag, Hoe laad ik een zelfgemaakt model met de SCM, bijvoorbeeld dat hij er alleen tussen 9 en 15 uur staat.

Geplaatst:

Ok bradley, dan ga ik jouw dat eens uitleggen :).

Dit is een lege main.scm:

DEFINE VERSION SA 0.33

0002: jump ££Second_Segment
DEFINE MEMORY  43800  ; Equals Mission Builder type global variable range $2 to $10949

:Second_Segment
0002: jump ££Third_Segment
DEFINE OBJECTS  1
DEFINE OBJECT BLAAT					  ; This is an unused object. You can put anything here.

:Third_Segment
0002: jump ££Fourth_Segment
DEFINE MISSIONS  0

:Fourth_Segment
0002: jump ££Fifth_Segment
DEFINE EXTERNAL_SCRIPTS  0

:Fifth_Segment
0002: jump ££Sixth_Segment
DEFINE UNKNOWN_FIFTH_SEGMENT
DEFINE UNKNOWN1  0

:Sixth_Segment
0002: jump ££MAIN_1
DEFINE UNKNOWN_SIXTH_SEGMENT
DEFINE UNKNOWN3  574

;-------------MAIN---------------


:MAIN_1
03A4: name_thread 'MAIN'
016A: fade  0 ()  0 ms
042C: set_total_missions_to  0
030D: set_total_mission_points_to  0
01F0: set_max_wanted_level_to  0
0111: set_wasted_busted_check_to  0 (disabled)
00C0: set_current_time  12  0
04E4: unknown_refresh_game_renderer_at  2488.562 -1666.864
03CB: set_camera  2488.562 -1666.864  13.3757
062A: change_stat  165 (energy) to  800.0 ; float
062A: change_stat  23 (muscle) to  50.0 ; float
062A: change_stat  21 (fat) to  200.0 ; float
062A: change_stat  160 (driving skill) to  0.0 ; float
0629: change_stat  181 (islands unlocked) to  0 ; integer see statdisp.dat
0629: change_stat  68 () to  0 ; integer see statdisp.dat
0053: $PLAYER_CHAR = create_player #NULL at  0.0 0.0  12.0
07AF: $PLAYER_GROUP = player $PLAYER_CHAR group
01F5: $PLAYER_ACTOR = create_emulated_actor_from_player $PLAYER_CHAR
0373: set_camera_directly_behind_player
0173: set_actor $PLAYER_ACTOR z_angle_to  0.0
01B6: set_weather  1
087B: set_player $PLAYER_CHAR clothes "VEST" "VEST"  0 
087B: set_player $PLAYER_CHAR clothes "JEANSDENIM" "JEANS"  2 
087B: set_player $PLAYER_CHAR clothes "SNEAKERBINCBLK" "SNEAKER"  3 
087B: set_player $PLAYER_CHAR clothes "PLAYER_FACE" "HEAD"  1 
070D: $PLAYER_CHAR 
04BB: select_interior  0 ;; select render area
01B4: set_player $PLAYER_CHAR frozen_state  1 (unfrozen)
01B7: release_weather
016C: restart_if_wasted at  0.0 0.0  12.0 angle  0.0 unknown  0 

:MAIN_31
0001: wait  0 ms
00D6: if  0
0256:   player $PLAYER_CHAR defined
004D: jump_if_false ££MAIN_31
016A: fade  1 (back)  1000 ms
0001: wait  100 ms
03E6: remove_text_box 

:MAIN_68
0001: wait  2500 ms
0002: jump ££MAIN_68

Het makkelijkste is om te beginnen met wagens / wapens / bribes / pickups plaatsen. Je kan hiervoor bijv een thread aanmaken. Zet tussen de Label :Main_31 en :Main_68 een nieuwe label. Begin makkelijk:

:MAIN_Bradley
014B: $PARKED_RHINO = init_parked_car_generator #RHINO -1 -1  0 alarm  0 door_lock  0  0  10000 at  2435.302 -1671.848  12.8007 angle  90.0
014C: set_parked_car_generator $PARKED_RHINO cars_to_generate_to  101

In de eerste regel zie je $PARKED_RHINO staan, dit is de variable voor de spawncode. Deze mag dus niet gelijk zijn aan een andere variable. Let op dat je het $ teken ervoor hebt staan.

#RHINO geeft aan welke wagen er komt te staan, in dit geval de tank, de rhino. Maar let op...sommige wagens heten anders dan ingame. De greenwood heet bijvoorbeeld Greenwoo.

-1 -1 0 geeft aan hoe vaak de wagen er staat, dit kan je zo laten.

alarm 0 = alarm in procenten

door_lock 0 = lock in procenten

2435.302 -1671.848 12.8007 = XYZ coördinaat

angle 90.0 = draaihoek in graden

In de 2e regel moet de variable hetzelfde zijn als in de eerste regel. 101 kun je op 101 laten staan.

Nu een simpel wapen:

Deze regel lijkt me duidelijk, de variable en de wapennaam moeten worden ingevuld.

ammo 60 = ammo

2021.879 1001.467 10.3203 = XYZ coördinaat

032B: $Variable = create_weapon_pickup #M4  15 ammo  60 at  2021.879  1001.467  10.3203

Nog wat leuke dingen:

0213: $3296 = create_pickup #FLOWERA type  15 at  1472.08  1890.09  10.81
0213: $3297 = create_pickup #BODYARMOUR type  15 at  2097.0  2154.0  14.0
0213: $3345 = create_pickup #BRIBE type  15 at  2743.0  1316.0  8.0
0213: $135 = create_pickup #HEALTH type  3 at  2158.82 -2232.747  13.59

Druk op F7 en het zou moeten werken.

Geplaatst: (bewerkt)
0213: $3296 = create_pickup #FLOWERA type 15 at 1472.08 1890.09 10.81

0213: $3297 = create_pickup #BODYARMOUR type 15 at 2097.0 2154.0 14.0

0213: $3345 = create_pickup #BRIBE type 15 at 2743.0 1316.0 8.0

0213: $135 = create_pickup #HEALTH type 3 at 2158.82 -2232.747 13.59

Dit zal niet helemaal werken aangezien HEALTH en BRIBE niet gedefinieerd zijn.

Ze moeten bij de DEFINE OBJECTS staan:

DEFINE OBJECTS  7
DEFINE OBJECT BLAAT
DEFINE OBJECT BRIBE
DEFINE OBJECT HEALTH
DEFINE OBJECT INFO
DEFINE OBJECT BRIEFCASE
DEFINE OBJECT ADRENALINE
DEFINE OBJECT PICKUPSAVE

Bewerkt: door JGuntherS
Geplaatst:

Bedankt jongens, ik heb vandaag wat zitten knutselen in de SCM, en ik zit met een heel vaag probleem, waardoor ik niet meer door kan.

Allereerst de code

:Mission1														   
02A8: $Marker1 = create marker 10 at 0.0 5.0 15   
03BC: $Marker3 = create_sphere  0.0 5.0 15  1.0
0247: request model #MALE01
0247: request model #NRG500   
038B: load requested models 

:Mission2
0001: wait 500 ms  
00D6: if  0  
00EC:  actor $PLAYER_ACTOR  0 ()near_point  0.0 5.0 radius  2.0  2.0   
004D: jump_if_false ££Mission2 
016A: fade  0 (in)  1500 ms	 
0001: wait 1500 ms		
009A: $Homie = create_actor 4 #MALE01 at  0.0 0.0 15.0  
0001: wait 1500 ms 
016A: fade  1 (back)  1500 ms

Wat de bedoeling is dat je in de sphere gaat staan en dat er 1 male01 gespawnt wordt, maar ingame spawnt hij er 2 :{

post-855-1132333577_thumb.jpg

Geplaatst:

Dat probleem heb ik ook gehad (alleen ik kreeg er 20 :puh: ), je gebruikt de verkeerde lay-out (tenminste als je het echt als missie gebruikt en niet als thread).

:MISSIE
0050: gosub £MISSIE_CODE
00D6: if 0
0112: wasted_or_busted
004D: jump_if_false £MISSIE_KLAAR
0050: gosub £MISSIE_FAIL

:MISSIE_KLAAR
0050: gosub £MISSIE_OPRUIMEN
004E: end_thread

:MISSIE_CODE
; de eigenlijke missie

:MISSIE_FAIL
; tekstje met Mission Failed & andere dingen
0051: return

:MISSIE_OPRUIMEN
; opruimdingen bij mission failed/passed, zoals markers uitschakelen enz.
00D8: mission_cleanup
0051: return

Geplaatst:

Dit is wat nu nu heb, ik kan dit nog niet echt een missie noemen, uiteraard wil ik het wel berijken :).

Hoe zou jij die code maken dan.

Btw is Gosub een soort van jump if false ?,

004D: jump_if_false £MISSIE_KLAAR

0050: gosub £MISSIE_FAIL

Geplaatst: (bewerkt)

Bij een gosub gaat het script verder totdat er een return komt en springt dan weer terug tot de regel na de gosub

Voorbeeld:

:LBL1
0004: $var1 = 3
0005: $fvar1 = 8.0
0050: gosub ££LBL2
0004: $var2 = 6

:LBL2
0004: $lbl2var1 = 4
0051: return

De code wordt zo uitgevoerd:

0004: $var1 = 3
0005: $fvar1 = 8.0
0004: $lbl2var1 = 4
0004: $var2 = 6

BTW, die volgorde bij die missies is een beetje vaag, maar het werkt!

EDIT om antwoord te geven op je vraag, ik zou het zo doen:

:MISSIE
0050: gosub £MISSIE_CODE
00D6: if 0
0112: wasted_or_busted
004D: jump_if_false £MISSIE_KLAAR
0050: gosub £MISSIE_FAIL

:MISSIE_KLAAR
0050: gosub £MISSIE_OPRUIMEN
004E: end_thread

:MISSIE_CODE													

0247: request model #MALE01
0247: request model #NRG500  
038B: load requested models

:MISSIE_LAAD
00D6: if  21
8248:   NOT   model #MALE01 available
8248:   NOT   model #NRG500 available
004D: jump_if_false £MISSIE_LAAD2
0001: wait  0 ms
0002: jump £MISSIE_LAAD

:MISSIE_LAAD2
02A8: $Marker1 = create marker 10 at 0.0 5.0 15  
03BC: $Marker3 = create_sphere  0.0 5.0 15  1.0

:Mission2
0001: wait 0 ms
00D6: if  0  
00FF:	actor $PLAYER_ACTOR 0 ()near_point_on_foot  0.0  5.0  15.0 radius 1.5 1.5 2.0;; in deze regel moet je nog even een z-coordinaat invoeren
004D: jump_if_false £Mission2
016A: fade  0 ()  1500 ms	
009A: $Homie = create_actor 4 #MALE01 at  0.0 0.0 15.0  
0001: wait 1500 ms
016A: fade  1 (back)  1500 ms

:MISSIE_LOOP
0001: wait 0 ms
0002: jump £MISSIE_LOOP

:MISSIE_FAIL
00BA: text_styled 'M_FAIL'  5000 ms  1
0051: return

:MISSIE_OPRUIMEN
0164: disable_marker $Marker1
03BD: destroy_sphere $Marker3 
01C2: remove_references_to_actor $Homie
0249: release_model #MALE01
0249: release_model #NRG500						 
00D8: mission_cleanup
0051: return

En om jou maar even voor te zijn, twee pond-tekens (£) bij een jump betekent dat het een globale jump is, dus buiten een missie. In een missie gebruik je maar een pond-teken.

Bewerkt: door JGuntherS

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