Personages plaatsen (GTA2)

Personages zijn erg belangrijk bij het maken van missies en soortgelijke scripts. Je kunt ze verschillende AI's en opdrachten geven. Personages staan ook bekend als chars (kort voor characters, personages), bots, non-player characters of NPC's, pedestrians (voetgangers) of peds, alhoewel de laatste twee doorgaans refereren naar de standaard voetgangers die over straat lopen.

Personages plaatsen

Personages worden in het script aangeduid als CHARs en worden geplaatst met het CHAR_DATA commando.

CHAR_DATA naam                                                    //declare
naam = CREATE_CHAR ( X.x  ,  Y.y , Z.z ) uiterlijk rotatie AI END //set
CHAR_DATA name = ( X.x , Y.y , Z.z ) uiterlijk rotatie AI         //declare & set
naam Unieke naam van het personage
( X.x , Y.y , Z.z ) De coördinaten
uiterlijk Het uiterlijk of "remap" van het personage. Ieder uiterlijk heeft een eigen nummer, welke je kunt vinden in de lijst onderaan dezepagina.
rotatie Welke richting het personage op moet kijken wanneer het gecreëerd wordt.
AI Welke occupation (bestemming) het personage moet hebben. Iedere AI heeft zijn eigen set reacties op bepaalde situaties, in combinatie met de objective (opdracht) die het personage heeft. Als voorbeeld: een FBI AI met de opdracht je te vermoorden zal je uit je wagen trekken en je op korte afstand achtervolgen, terwijl een DUMMY AI met dezelfde opdracht vanaf een afstand op je wagen zal schieten.

Voorbeeld

Als je een dummy voetganger met het uiterlijk van Elvis wilt plaatsen op 126.5 , 112.5 , 2.0, dan ziet de code er zo uit:

CHAR_DATA ped = ( 126.5 , 112.5 , 2.0 ) 12 180 DUMMY

Personages opdrachten geven

Simpelweg een personage creëren is niet bepaald spannend: meestal levert het een personage op dat doelloos door de stad dwaalt. Om een personage echt zinvol te maken moet je hem een objective (Engels voor "opdracht") geven.

SET_CHAR_OBJECTIVE ( naam , opdracht ) 
SET_CHAR_OBJECTIVE ( naam , opdracht , tweede_voorwerp  ) 
SET_CHAR_OBJECTIVE ( naam , opdracht , X.x , Y.y , Z.z )
SET_CHAR_OBJECTIVE ( naam , opdracht , X.x , Y.y , Z.z , rotatie , afstand )
naam Naam van het personage
opdracht De objective die het personage moet hebben. Kies hierbij uit een van de volgende opties: NO_OBJ Laat het personage ronddwalen zonder doel.
WAIT_ON_FOOT Laat het personage op zijn huidige locatie wachten totdat er iets gebeurt.
FLEE_ON_FOOT_TILL_SAFE Laat het personage vluchten totdat hij denkt dat hij weilig is.
GUARD_SPOT Laat het personage zijn huidige positie bewaken.
GUARD_AREA Laat het personage zijn huidige gebied bewaken.
WAIT_IN_CAR Laat het personage in zijn auto wachten zonder weg te rijden.
tweede_voorwerp De volgende objectives vereisen een tweede voorwerp, personage, etc. om correct te werken: KILL_CHAR_ON_FOOT Laat het personage een ander personage aanvallen totdat diegene dood is. Als het doelwit buiten bereik is achtervolgt hij hem te voet.
KILL_CHAR_ANY_MEANS Laat het personage een ander personage aanvallen totdat diegene dood is. Als het doelwit buiten bereik is zal hij een voertuig laten spawnen en naar het doelwit teleporteren. Als het doelwit buiten zicht is kan de bot hem alleen lokaliseren als het doelwit zich op een weg bevindt.
FLEE_CHAR_ON_FOOT_TILL_SAFE Laat het personage van een ander personage te voet wegvluchten totdat hij denkt dat hij veilig is. Hierna zal hij rondlopen zonder doel.
FLEE_CHAR_ON_FOOT_ALWAYS Laat het personage voor altijd van een ander personage te voet wegvluchten.
GOTO_CHAR_ON_FOOT Laat het personage een ander personage volgen totdat hij hem bereikt heeft. Hierna zal hij rondlopen zonder doel.
LEAVE_CAR Laat het personage uit zijn auto stappen.
ENTER_CAR_AS_PASSENGER Laat het personage een voertuig instappen via de rechterdeur.
ENTER_CAR_AS_DRIVER Laat het personage een voertuig instappen via de linkerdeur.
FOLLOW_CAR_IN_CAR Laat het personage een auto volgen in een andere auto. Zorg ervoor dat de bot in een auto zit wanneer je dit commando gebruikt!
FIRE_AT_OBJECT_FROM_VEHICLE Laat het personage een object beschieten vanuit een Tank. Zorg ervoor dat de bot in een tank zit wanneer je dit commando gebruikt!
DESTROY_OBJECT Laat het personage een object aanvallen.
DESTROY_CAR Laat het personage een voertuig aanvallen.
X.x , Y.y , Z.z De volgende objectives vereisen coördinaten: GOTO_AREA_ON_FOOT Laat het personage te voet naar coördinaten gaan.
GOTO_AREA_IN_CAR Laat het personage in een auto naar coördinaten gaan.
rotatie , afstand Dit objective vereist een rotatie (0-359) en een afstand in blocks (0.0): FOLLOW_CAR_ON_FOOT_WITH_OFFSET Laat het personage een voertuig te voet volgen. De rotatie bepaalt vanaf welke kant het personage de auto moet volgen (270 is vanaf de linkerkant, bijvoorbeeld) en de afstand bepaalt hoe dicht hij op de auto moet lopen.

Voorbeeld

In dit voorbeeld maken we een soldaat die de speler koste wat het kost wil vermoorden.

CHAR_DATA soldaat = ( 126.5 , 112.5 , 2.0 ) 4 0 ARMY
SET_CHAR_OBJECTIVE ( soldaat , KILL_CHAR_ANY_MEANS , player )

Als je bovenstaand script probeert, zul je een soldaat tegenkomen die je aanvalt met zijn blote handen. Dat is niet de bedoeling, dus we moeten hem een wapen geven. Hij zal je ook achtervolgen in een bruine Benson, wat ook niet erg passend is. Dit veranderen we in een Armed Land Roamer en aangezien we toch bezig zijn zorgen we er gelijk voor dat hij het machinegeweer van zijn wapen ook moet gebruiken.

GIVE_WEAPON ( soldaat , MACHINE_GUN )
SET_FAVOURITE_MODEL  ( soldaat , GUNJEEP )
SET_CHAR_TO_USE_CAR_WEAPON  ( soldaat , ON )

Graphic type

Personages die je met deze code creëert zijn, evenals de player_ped of gangleden, groter dan normale voetgangers. Dit kun je aanpassen met het volgende commando:

SET_CHAR_GRAPHIC_TYPE ( char_naam , graphic_type , uiterlijk )
char_naam De naam van het personage dat je wilt veranderen
graphic_type kies uit één van de drie volgende types: DUMMY_GRAPHIC Normale voetganger (kleiner dan een standaard char)
GANG_GRAPHIC Standaard char (groter dan een voetganger)
EMERG_GRAPHIC Cop, paramedic, etc.
Uiterlijk Het uiterlijk of "remap" van het personage.

Dit commando moet na LEVELSTART. Je kunt het graphic_type van een char zo vaak veranderen als je wilt.

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

AI

AI Code
Geen bestemming NO_OCCUPATION
Normale ped DUMMY
Valt iedereen aan PSYCHO
Zakkenroller MUGGER
Bankrover BANK_ROBBER
Reageert op aanvallen CRIMINAL
Valt CRIMINAL_TYPE2 aan CRIMINAL_TYPE1
Valt CRIMINAL_TYPE1 aan CRIMINAL_TYPE2
Tankbestuurder TANK_DRIVER
Missieped DRONE
Vluchteling REFUGEES
Autodief CAR_THIEF
Automobilist DRIVER
Elvislid ELVIS
Elvisleider ELVIS_LEADER
Special Agent FBI
Brandweerman FIREMAN
Bewaker GUARD
Bewaker die de speler aanvalt GUARD_AGAINST_PLAYER
Agent POLICE
Tankbestuurder in een blokkade ROAD_BLOCK_TANK_MAN
Speciaal groepslid SPECIAL_GROUP_MEMBER
Blijft stil staan STAND_STILL_BLOKE
SWAT agent SWAT
Soldaat ARMY
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