SCM-begrippen
Hier worden een aantal SCM-begrippen uitgelegd die je misschien nodig hebt bij SCM-modding:
Main.scm Dit bestand moet bijna altijd geopend worden bij SCM-modding (met de missionbuilder)
$PLAYER_CHAR Dit is de Player uit VC, Tommy Versetty, in de main wordt hij als $Player_Char aangeduid
Labels In labels worden commando's gezet, in een label wordt informatie gestopt en er kan naar labels kan gelinkt worden:
:Label205B12E
radius 2.0 2.0 2.0 Een radius een een rond gebied rond een
coördinaat, een soort van area of range.
#HOTRING Auto's worden in de main aangegeven met een speciale naam, die vaak niet overeen komt met die uit vc. Open de Default.ide met kladblok en kijk in de eerste kolom, daar staan de autonamen. De linerunner uit vc heet in de Main: LINERUN. Autonamen worden aangeduid met ervoor een #.
Variable:
Dit is een naam die maar 1 keer voor komt in de MAIN.scm, deze naam komt
meerdere keren voor die steeds in een code worden gebruikt, hier een voorbeeld:
De simpele:
014B: $TEST01= init_parked_car_generator #PCJ600 6 1 0 alarm
50 door_lock 50 0 10000 at
385.170 -758.533
10.42
angle 180
014C: set_parked_car_generator $TEST01 cars_to_generate_to 101
Hierin is $TEST01 de variable, die wordt meestal aangeduid met een teken; $
De moeilijkere:
Je kan ook rekenen met een variable:
4@ -= 2.0
0@ += 2.0
float 5@ = 1@
5@ -= 2.0
1@ += 2.0
Nu zijn de variable: 4@, 0@, 5@, 1@
Zoals je ziet wordt er met gerekend, dit kan handig zijn met speed/tijd
effecten bij threads.
Waits:
Je komt deze regel vaker voor in de Main:
0001: wait 100 ms
Dit is de wachttijd die de main wacht totdat hij de volgende regel gaat
lezen. 1000 ms is in seconde.
Ifs:
Je ziet vaker deze code in de main:
00D6: if 0
De main gaat dan iets controlen, wat dat is, staat in de volgende regel,
bijvoorbeeld dit:
00F5:
player $PLAYER_CHAR 0 ()near_point $111 $112 $113 radius 2.0 2.0 2.0
De if controleert of de volgende regel klopt; hij gaat checken of de Player
bij de coördinaat is (de variable: 111 $112 $113)
Als dit klopt, gaat de main verder met lezen, maar als hij niet klopt leest
hij deze regel:
004D: jump_if_false ££Labelend
Hij jumpt naar de aangeduide label en leest de huidige label niet af.
Jumps:
Je ziet ook vaker jump-codes:
0002: jump ££Label01224B
Bij deze jump-code springt de main naar de aangeduide label.
004D: jump_if_false ££Labelend
Deze jump_if_false-code wordt gebruikt bij een IF (een check).
Als de gecontroleerde regel niet waar is activeert die deze jump. De main jumpt
naar de aangeduide label.
Let op! Bij een jump gebruik je 2
£
achter elkaar. Als die jump verwijst
naar een missie, heeft die er maar 1 nodig. Bij de label waarnaar de jump
springt word(t)(en) de
£
vervangen door een
:.
Parameters:
Een parameter is hetgene dat de main nodig heeft om het commando te
begrijpen.
In deze regel zijn $111 $112 $113 2.0 2.0 2.0 de parameters, als er een
ontbreekt kan je niet compilen.
00F5:
player $PLAYER_CHAR 0 ()near_point $111 $112 $113 radius 2.0 2.0 2.0
Conditions:
Een condition is een regel die wordt gechecked door een IF.
In de regel hieronder is de 2e regel de condition, de regel die wordt
gechecked door de IF.
00d6: if 0
00e3: player $PLAYER_CHAR 0 ()near_point -1734.270 -1708.423 radius 1.0 1.0
Made by Wauzie
©