Kill Frenzies scripten (GTA2)
Van WikiGTA - De Nederlandse Grand Theft Auto Walkthrough!
Main Page > GTA2 > Modding Tutorial > Kill Frenzies
Kill Frenzies zijn in principe kleine missies die gestart worden met een trigger wanneer je op een Kill Frenzie-icoon stapt of in een bepaald voertuig gaat zitten. Gelukkig hebben Kill Frenzies een eigen template code, wat betekent dat je niet alles zelf hoeft te scripten.
Er zijn twee soorten Kill Frenzies: Kill Frenzies te voet, en Kill Frenzies in een voertuig. Kill Frenzies te voet zijn te herkennen aan de bekende groene PickUp met een doodshoofd. Kill Frenzies in een voertuig kun je daarentegen pas ontdekken wanneer je instapt. Voertuig-Kill Frenzies vereisen iets meer scriptwerk, aangezien je dan ook een wagen en vaak ook een wapen moet scripten.
Inhoud |
Algeneme Kill Frenzie commando's
Om te beginnen moet je een aantal dingen scripten die je voor iedere Kill Frenzie opnieuw kunt gebruiken, namelijk een TIMER, die bijhoudt hoeveel tijd je nog hebt om de Kill Frenzie te voltooien, een ONSCREEN_COUNTER, die de tijd je nog hebt laat zien en een SAVED_COUNTER, die bijhoudt hoeveel Kill Frenzies er gepasseerd zijn. Verder moet je het spel vertellen hoeveel Kill Frenzies er zijn, hoeveel je er gehaald hebt en hoeveel je er niet gehaald hebt. Deze informatie zie je wanneer je GTA2 pauzeert.
TIMER_DATA kf_timer_name ONSCREEN_COUNTER kf_onscreen_counter_name SAVED_COUNTER kf_saved_counter_name DECLARE_TOTAL_SECRETS ( 2 ) //Dit is het aantal Kill Frenzies. In deze tutorial maken we er twee. SAVED_COUNTER kill_frenzies_passed = 0 SAVED_COUNTER kill_frenzies_failed = 0 DECLARE_SECRETS_PASSED_FLAG ( kill_frenzies_passed ) DECLARE_SECRETS_FAILED_FLAG ( kill_frenzies_failed )
Een Kill Frenzy toevoegen
Allereest moet het script ruimte voor de Kill Frenzy reserveren. Kill Frenzies worden in het script BONUSes genoemd. Geef iedere Kill Frenzy de volgende code:
BONUS kf_naam
| kf_naam | De naam van deze kill frenzy. Je hebt deze naam later nodig. |
|---|
Objecten
Vervolgens heeft de Kill Frenzy een Kill Frezny-icoon of een voertuig nodig. Je kunt deze scripten met de gewone OBJ_DATA- en CAR_DATA-commando's:
OBJ_DATA kf_icoon_naam = ( X.x , Y.y , Z.z ) richting KILL_FRENZY CAR_DATA kf_voertuig_naam = ( X.x , Y.y , Z.z ) kleur richting voertuig
Als de Kill Frenzy in het voertuig een wapen nodig heeft, kun je deze geven met het GIVE_WEAPON-commando. Tanks, Armed Land Roamers en Fire Trucks hebben automatisch hun standaard wapen.
GIVE_WEAPON ( kf_voertuig_naam , voertuig_wapen )
Subroutine
Onder deze codes voeg je een subroutine toe:
FORWARD kf_subroutine_naam:
//Hier komt de THREAD_TRIGGER kf_subroutine_naam: //Hier komen de KF_TEMPLATEs RETURN
THREAD_TRIGGER
Om de Kill Frenzie te kunnen starten wanneer de speler het icoon oppakt of in de auto stapt voeg je een THREAD_TRIGGER toe:
THREAD_TRIGGER kf_thread_trigger_naam = THREAD_WAIT_FOR_CHAR_IN_AREA ( speler , X.x , Y.y , Z.z , breedte , diepte , kf_subroutine_naam: ) THREAD_TRIGGER kf_thread_trigger_naam = THREAD_WAIT_FOR_CHAR_IN_CAR ( speler , kf_voertuig_naam , kf_subroutine_naam: )
| kf_thread_trigger_naam | Een unieke naam. |
|---|---|
| Speler | De naam van de player_ped. |
| X.x , Y.y , Z.z | De coördinaten van het Kill Frenzy icoon. |
| breedte , diepte | De afmetingen van het gebied waarin het icoon zich bevindt. Gebruik 0.2 , 0.2 als standaard afmetingen van het icoon. |
| kf_voertuig_naam | De naam van het voertuig van de Kill Frenzie |
| kf_subroutine_naam: | De naam van de subroutine die je eerdere gemaakt hebt. Vergeet de : niet. |
START_BASIC_KF_TEMPLATE
In de subroutine komen de specificaties van de Kill Frenzy. Deze staan in drie commando's: twee KF_TEMPLATEs en een BONUS_CHECK. De eerste KF_TEMPLATE ziet er zo uit:
START_BASIC_KF_TEMPLATE ( kf_thread_trigger_naam , tekst_ID , kf_icoon_naam/kf_voertuig_naam , speler , wapentype )
| kf_thread_trigger_naam | Naam van de THREAD_TRIGGER die je eerder gemaakt hebt. |
|---|---|
| tekst_ID | Het ID van de tekst die de opdracht geeft. |
| kf_icoon_naam/kf_voertuig_naam | De naam van het icoon of voertuig waarmee de Kill Frenzie start |
| speler | De naam van de player_ped |
| wapentype | Het wapen waarmee deze Kill Frenzy gedaan moet worden. Voer hier "NO_WEAPON" in als er geen wapen nodig is. |
START_BONUS_CHECK
Om het doel, de tijd en wat andere variabelen te bepalen gebruik je een van de zes volgende START_BONUS_CHECKs:
Bonusnaam = START_BONUS_CHECK ( zone , tijd , hoeveelheid , score , type , exclusive_modus , beschadigingstype , aanvalsvoertuig , gangnaam ) Bonusnaam = START_BONUS_CHECK ( zone , tijd , hoeveelheid , score , type , exclusive_modus , beschadigingstype , aanvalsvoertuig , gang name , uiterlijk ) Bonusnaam = START_BONUS_CHECK ( zone , tijd , hoeveelheid , score , type , exclusive_modus , beschadigingstype , aanvalsvoertuig , voetgangersbestemming ) Bonusnaam = START_BONUS_CHECK ( zone , tijd , hoeveelheid , score , type , exclusive_modus , beschadigingstype , aanvalsvoertuig , voetgangersbestemming , uiterlijk ) Bonusnaam = START_BONUS_CHECK ( zone , tijd , hoeveelheid , score , type , exclusive_modus , beschadigingstype , aanvalsvoertuig , doelwitvoertuig ) Bonusnaam = START_BONUS_CHECK ( zone , tijd , hoeveelheid , score , type , exclusive_modus , beschadigingstype , aanvalsvoertuig , doelwitvoertuig , uiterlijk )
| kf_naam | De naam die je eerder aan de Kill Frenzy hebt gegeven |
|---|---|
| Zone | In welke zone de speler de Kill Frenzy moet spelen. Geef NO_ZONE wanneer de zone niet uitmaakt. |
| Tijd | Hoeveel tijd de speler heeft om de Kill Frenzy te voltooien. 30 is één seconde, 1800 is één minuut |
| Hoeveelheid | Hoeveel voertuigen of voetgangers de speler overhoop moet schieten om de Kill Frenzy te halen. |
| Score | De extra beloning die de speler krijgt voor het voltooien van de Kill Frenzy. Dit lijkt niet gebruikt te worden in GTA2, en staat daarom altijd op '0'. |
| type | Wat het doelwit is: voetgangers (CHAR) of wagens (CAR). |
| exclusive_modus | Of de speler wel of niet andere punten kan halen. (EXCLUSIVE / NOT_EXCLUSIVE) |
| beschadigingstype | Hoe de speler zijn doelwitten moet uitschakelen. Zie de lijst hoeveelheid behaald moet worden. Zie de beschadigingstypes in de lijst onderaan de pagina. |
| aanvalsvoertuig | In welk voertuigmodel de speler moet zitten tijdens de Kill Frenzy. Neem NONE wanneer het voertuig niet uitmaakt. |
| Gangnaam | De naam van de gang die het doelwit is. Gebruik de naam die je aan de gang gegeven hebt in het SET_GANG_INFO commando. |
| Voetgangers_bestemmingen | De bestemming van het voetgangers-doelwit. Zie de lijst doelwitten onderaan de pagina. |
| uiterlijk | Het uiterlijk van de voetganger of de kleur van de wagen |
DO_BASIC_KF_TEMPLATE
De laatste instellingen voeg je toe met de DO_BASIC_KF_TEMPLATE. Om onduidelijke reden moeten een aantal instellingen in zowel de START_BONUS_CHECK als de DO_BASIC_KF_TEMPLATE worden opgegeven. Verzeker jezelf ervan dat deze instellingen gelijk zijn!
DO_BASIC_KF_TEMPLATE ( bonusnaam , timernaam , tijd , on_screen_counternaam , saved_counternaam, hoeveelheid, tekst , player , beloning , beloninghoeveelheid )
| kf_naam | De naam die je eerder aan de Kill Frenzy hebt gegeven |
|---|---|
| timernaam | De naam die je eerder aan de TIMER hebt gegeven |
| Tijd | Hoeveel tijd de speler heeft om de Kill Frenzy te voltooien. 1 is één seconde. |
| on_screen_counternaam | De naam die je eerder aan de ON_SCREEN_COUNTER hebt gegeven |
| Hoeveelheid | Hoeveel voertuigen of voetgangers de speler overhoop moet schieten om de Kill Frenzy te halen. |
| Tekst_ID | Het ID van de tekst die de opdracht geeft. |
| speler | De naam van de player_ped |
| Beloning | Welke beloning de speler krijgt bij het voltooien van de Kill Frenzie. Kies uit NOTHING (niets), SCORE (geld), LIVES (levens) of MULT (multiplier) |
| beloninghoeveelheid | De quantiteit van de beloning. |
Codelijsten
|
|
Voorbeeld
Hieronder staat een voorbeeldscript van twee complete Kill Frenzies. In de eerste Kill Frenzy is het doel om tien voertuigen binnen 30 seconden op te blazen met een rocket launcher, en in de tweede is het doel om 30 voetgangers binnen een minuut te vermoorden met een Fire Truck met vehicle flame thrower.
ONSCREEN_COUNTER onscreen_counter_kill_frenzy SAVED_COUNTER saved_counter_kill_frenzy TIMER_DATA timer_kill_frenzy DECLARE_TOTAL_SECRETS ( 2 ) SAVED_COUNTER kill_frenzies_passed = 0 SAVED_COUNTER kill_frenzies_failed = 0 DECLARE_SECRETS_PASSED_FLAG ( kill_frenzies_passed ) DECLARE_SECRETS_FAILED_FLAG ( kill_frenzies_failed ) OBJ_DATA icon_kill_frenzy_1 = ( 102.0 , 92.0 , 2.0 ) 0 KILL_FRENZY CAR_DATA kf_firetruck = ( 114.5 , 92.5 , 2.0 ) 1 270 FIRETRUK GIVE_WEAPON ( kf_firetruck , CAR_FLAMETHROWER ) BONUS kill_frenzy_1 BONUS kill_frenzy_2 FORWARD do_kill_frenzy_1: FORWARD do_kill_frenzy_2: THREAD_TRIGGER thr_kill_frenzy_1 = THREAD_WAIT_FOR_CHAR_IN_AREA ( grnplayer , 102.0 , 92.0 , 2.0 , 0.2 , 0.2 , do_kill_frenzy_1: ) THREAD_TRIGGER thr_kill_frenzy_2 = THREAD_WAIT_FOR_CHAR_IN_CAR ( grnplayer , kf_firetruck , do_kill_frenzy_2: ) //vernietig 10 voeruigen met een rocket launcher in 30 sec do_kill_frenzy_1: START_BASIC_KF_TEMPLATE ( thr_kill_frenzy_1 , 1804 , icon_kill_frenzy_1 , grnplayer , ROCKET_LAUNCHER ) kill_frenzy_1 = START_BONUS_CHECK ( no_zone , 900 , 10 , 0 , CAR , not_exclusive , BY_ROCKET_LAUNCHER , NONE , NONE ) DO_BASIC_KF_TEMPLATE ( kill_frenzy_1 , timer_kill_frenzy , 30 , onscreen_counter_kill_frenzy , saved_counter_kill_frenzy , 10 , 1804 , grnplayer , SCORE , 50000 ) RETURN //vermoord 30 peds met een fire truck with flame thrower in 60 sec do_kill_frenzy_2: START_BASIC_KF_TEMPLATE ( thr_kill_frenzy_2 , 1804 , kf_firetruck , grnplayer , CAR_FLAMETHROWER ) kill_frenzy_2 = START_BONUS_CHECK ( no_zone , 1800 , 30 , 0 , CHAR , not_exclusive , BY_FLAMETHROWER , NONE , NO_OCCUPATION ) DO_BASIC_KF_TEMPLATE ( kill_frenzy_2 , timer_kill_frenzy , 60 , onscreen_counter_kill_frenzy , saved_counter_kill_frenzy , 30 , 1804 , grnplayer , SCORE , 50000 ) RETURN
| Mapping | Map Editor · Gebouwen · Wegen · Water & animaties · Slopes · Flat tiles · Collision info · Rand van een level · Zones · Level ingame zetten | ||
|---|---|---|---|
| Scripting | Declareren: | Basisscript · Script Compiler · Codelijsten · Commando's · Voertuigen · Objecten · Geluiden · Personages · Deuren | |
| Programmeren: | IF · WHILE · COUNTERs · Subroutines · THREAD TRIGGERs · Kill Frenzies · PHONEs · 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 · Plattegrond · Terminologie · Levels installeren | ||


