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 ©