Basisscript (GTA2)

Hoofdpagina > GTA2 > Modding > Basisscript


Ieder GTA2 level heeft een script nodig als je het wilt spelen. Deze scripts staan als *.scr bestand in de map GTA2/data. In deze tutorial leer je hoe een eenvoudig script in elkaar zit en daarmee de basisprincipes van het schrijven van scripts van GTA2. Een compleet script met missies, Kill Frenzies en meer vereist een zeer uitgebreid systeem.

Om een script te maken voor GTA2 heb je minstens de GTA2 Script Compiler en Kladblok (of een andere, liefst zo eenvoudig mogelijke, tekstverwerker) nodig. Daarnaast zou je voor het gemak gebruik kunnen maken van een script editor zoals MIS Pad, maar dit is niet noodzakelijk. Wanneer je meer geavanceerde scripts wilt gaan maken, dan zul je ook de officiële GTA2 scripting handleiding 'GTA2 Scripting.doc' nodig hebben. In deze handleiding van 105 pagina's vind je alle bruikbare commando's van GTA2.

LEVELSTART en LEVELEND

Voordat we kunnen gaan scripten, zou je eerst het één en ander moeten weten van GTA2 scripts. Om te beginnen bestaan ze uit twee delen. Het eerste gedeelte zorgt voor alles wat er moet gebeuren voordat het level begint, en het tweede gedeelte zorgt voor alles wat er moet gebeuren nadat het level is begonnen. De twee gedeeltes zijn van elkaar gescheiden door middel van het commando LEVELSTART. Alles voor LEVELSTART hoort bij het eerste gedeelte, en alles erna hoort bij het tweede gedeelte.

Aangezien er een LEVELSTART is, is er ook een LEVELEND. Dit commando staat altijd helemaal onderaan je script.

Laten we beginnen met een simpel scriptje zodat we eindelijk onze map kunnen zien in het spel. Open kladblok, en begin met het schrijven van de twee commando's die ik je net geleerd heb. Je script ziet er dan als volgt uit:

LEVELSTART

LEVELEND 

PLAYER_PED

Op dit punt is je script nog steeds nutteloos. Waarom? Omdat je nog geen personage hebt om mee te spelen! Dus die gaan we er nu inzetten. Dat doen we met het volgende commando:

PLAYER_PED naam = ( X.x , Y.y , Z.z ) uiterlijk rotatie
Naam Voer hier de naam in die je aan de playerped wilt geven. Alle objecten en andere zaken die je in een GTA2 script plaatst moet je een naam geven. Geen enkele naam mag hetzelfde zijn als die van een ander. Het is verstandig om je objecten herkenbare namen te geven, zodat je ze nog terug kan vinden wanneer je script groter begint te worden.
( X.x , Y.y , Z.z ) De coördinaten waarop je de Playerped wilt hebben in je map. Deze coördinaten kun je aflezen in de GTA2 Mapeditor, helemaal rechtsonder in beeld. Belangrijk: Wanneer je een geschikte locatie aanklikt in de editor, en die coördinaten in je script zet, verschijnt je object onder de grond! De coördinaten slaan namelijk op het midden van de geselecteerde block. Je moet dus eerst op CTRL + Q drukken om de juiste coördinaten te krijgen (Of 1 optellen bij ze Z-coördinaten). De coördinaten moeten met één decimaal opgeschreven worden (Dus bijvoorbeeld niet 6, maar 6.0). En tenslotte hebben de X- en Y-coördinaten een afwijking van 0.5. Dus wil je je Playerped op 165, 98, 2, dan zijn de coördinaten ( 165,5 , 98,5 , 2,0 ).
Uiterlijk Hoe je playerped eruit moet zien. Elk uiterlijk heeft een eigen nummer, zie de lijst onderaan deze pagina.
NW N NO
225° 180° 135°
W 270° X 90° O
315° 45°
ZW Z ZO
Rotatie Welke rotatie de playerped moet staan, uitgedrukt in graden van 0 tot 359. 0 laat de playerped naar het zuiden kijken. Zie de windroos rechts.

Dit commando moet voor LEVELSTART.

Voorbeeld

Wanneer je de standaard playerped, met zijn gezicht naar het westen, op de coördinaten 126,5 , 112,5 , 2 wilt hebben, dan is de code:

PLAYER_PED playera = ( 126.5 , 112.5 , 2.0 ) 25 270 

Wanneer je je code hebt gemaakt (Je kunt bovenstaande gebruiken, maar controleer wel of de coördinaten mogelijk zijn in jouw map), kun je deze in je script zetten. Je script wordt dan:


PLAYER_PED playera = ( 126.5 , 112.5 , 2.0 ) 25 270
LEVELSTART

LEVELEND

Dit voorbeeld is het absolute minimum dat er in een script moet staan: een LEVELSTART, LEVELEND en een playerped. Hiermee kun je je map spelen, maar eerst moet je het script compileren. Zie hiervoor de pagina Script Compiler (GTA2).

"Declare" en "set"

Het bovenstaande PLAYER_PED-commando is een zogenaamd "declare & set"-commando. Dat wil zeggen dat de playerped in het script tegelijk wordt aangemaakt en geplaatst aan het begin van het spel. Het kan echter voorkomen dat je een object, wapen, voertuig of iets anders pas later in het spel wil creëren. Hierom kun je voorwerpen vaak een apart "declare"- en "set"-commando geven.

Dit is niet mogelijk bij het PLAYER_PED commando (je kunt immers niet later in het spel een extra speler creëren), dus in dit voorbeeld gebruiken we het CHAR_DATA commando, waarmee personages geplaatst worden (meer hierover in Personages plaatsen).

Declare & set

Een standaard declare & set-commando kan er als volgt uitzien:

CHAR_DATA peda = ( 126.5 , 112.5 , 2.0 ) 21 270 DUMMY

Dit commando gebruik je als je aan het begin van het spel een voetganger wilt creëren. Het commando moet dan voor LEVELSTART.

Set

Als je het personage echter pas later wilt creëren, bijvoorbeeld in een missie, dan gebruik je het volgende commando:

peda = CREATE_CHAR ( 126.5 , 112.5 , 2.0 ) 21 270 DUMMY END

Dit "set"-commando plaats je daar waar het personage in het script gecreëerd moet worden, dus bijvoorbeeld in een IF. Dit kan dus ook na LEVELSTART!

Declare

Als je een set-commando gebruikt moet je het personage ook "declareren" met een "declare"-commando. Dit laat het script weten dat het "ruimte" moet reserveren voor een personage dat later gecreëerd gaat worden. Een declare-commando ziet er zo uit:

CHAR_DATA peda

Zoals je ziet is het een erg kort commando. Het enige dat je in hoeft te vullen is de naam (in dit voorbeeld "peda"), welke overeen moet komen met de naam in het set-commando. Declare-commando's moeten voor LEVELSTART.

Notities

Dit script is erg eenvoudig, maar als je script later veel langer en complexer wordt is het handig om aantekeningen te maken. Om te voorkomen dat de compiler vastloopt op je aantekeningen moet je aangeven dat de aantekeningen niet bij het script horen. Dit kun je doen met /*, */ en //.

Alles dat op een regel na // staat wordt door de compiler genegeerd. Tekst dat na // op een nieuwe regel staat (dus na een enter) wordt wel gecompileerd. Deze methode is heel geschikt om na een simpel commando een verduidelijking toe te voegen.

Ook alles dat tussen /* en */ staat wordt overgeslagen, ook al staan er tussen de twee tekens enters. Deze methode is hierom heel geschikt om grote stukken code 'uit te schakelen'.

Hieronder een voorbeeld van bovenstaand script met notities:

PLAYER_PED playera = ( 126.5 , 112.5 , 2.0 ) 25 270 //startpositie van de playerped
//PLAYER_PED playera = ( 147.5 , 88.5 , 3.0 ) 25 180 //mogelijk idee voor een andere startpositie

LEVELSTART

/*Hier komt later nog een heleboel code*/

LEVELEND

Uiterlijken

Code Uiterlijk
0 Agent
1 Groene SWAT-cop
2 Rode SWAT-cop
3 Gele SWAT-cop
4 Soldaat
5 Redneck #1
6 Redneck #2
7 SRS Scientist
8 Zaibatsu
9 Hare Krishna
10 Russian
11 Loonie
12 Elvis
13 Yakuza
14 Brandweerman
15 Autodief
16 Ziekenbroeder
17 Zakkenroller
18 Blauwe voetganger
19 Lichtblauwe voetganger
20 Rode voetganger
21 voetganger
22 Gevangene
23 Vergiftigde voetganger
24 vergiftigde voetganger
25 Claude Speed
26 naakte voetganger
27 t/m 52 Andere standaard voetgangers
Modding tutorials van Grand Theft Auto 2
Mapping Editor (Epic) · Gebouwen · Wegen · Water & animaties · Slopes · Flat tiles · Collision info · Rand van een level · Zones · Level ingame zetten
Scripting Declareren: Basisscript · Script Compiler (MIS Pad) · Codelijsten · Commando's · Voertuigen · Objecten · Geluiden · Personages · Groepen · Deuren
Programmeren: IF · WHILE · COUNTERs · Subroutines · THREAD TRIGGERs · EXEC · PARK · Kill Frenzies · PHONEs · Singleplayerscript · Missies · Jesus saves
Beide Belichting · Car shops · Cranes & crushers · Gangs · Metro · Multiplayerlevels
Bestandstypes .gci · .gmp · .gxt · .mis · .mmp · .pal · .scr · .seq · .sty · .tmp
Overig Texting · Physics (Lijst) · Texturing · Voertuigen maken · Plattegrond · Terminologie · Levels installeren