Missie scripten (GTA2)
Van WikiGTA - De Nederlandse Grand Theft Auto Walkthrough!
Main Page > GTA2 > Modding Tutorial > Missie scripten
Missies staan in aparte scripts (multiscripts), in een map met dezelfde naam als het hoofdscript (mainscript). Missies krijgen ook de naam van het mainscript, maar met een toevoeging erachter. Deze toevoeging bestaat uit de eerste letter van de gang (die wel verschillend moet zijn), een letter die aangeeft of het een groene, gele of rode missie is en een cijfer dat aangeeft welke missie het is. Als we dezelfde benamingsmethode als de originele scripts aanhouden, dan heeft de voorbeeldmap dus de volgende bestanden:
- tst.gmp voor het level zelf
- tst.mis voor het mainscript
- tst voor de map waarin de missies staan
- tst_te1 voor de eerste groene missie van de Testgang
- tst_vm3 voor de derde gele missie van de Voorbeeldgang
- tst_ph2 voor de tweede rode missie van de Proefgang
Uiteraard kun je ook je eigen benamingsmethode gebruiken, maar als dit goed genoeg is voor de originele levels, waarom dan moeilijk doen?
Wanneer je een missiescript door de compiler wilt halen, kun je gewoon het mainscript selecteren. De compiler zoekt dan automatisch de externe missiescripts op, mits ze in het mainscript opgeroepen worden en de missiescripts in een map staan die op dezelfde locatie als het mainscript te vinden is.
[Bewerk] Voorbeeld
Het script hieronder bevat een complete, eenvoudige missie. Er wordt meerdere keren een COUNTER uit het hoofdscript opgeroepen. Deze counters houden onder andere bij hoeveel missies er gehaald en gefaald zijn, of de speler momenteel een missie doet en zo ja, voor welke gang hij een missie doet. Deze counters zijn dus erg nuttig om in je mainscript te hebben staan.
Het gaat om de eerste groene missie van de Testgang (tst_te1). Bij het aannemen van de missie worden er een Eddy en een Panto gecreëerd. Om te slagen voor de missie moet je in de Eddy stappen. Stap je in de Panto, word je gearresteerd, of verlies je al je health, dan faal je de missie.
//XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX TESTMISSION XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX //Stap in de Eddy voor MISSION PASSED, stap in de Panto voor MISSION FAILED COUNTER ineddy = 0 COUNTER inpanto = 0 COUNTER wachtopinstappen = 1 CAR_DATA eddypassed CAR_DATA pantofailed FORWARD clean_up_tst_easy_phone1_m1: //------------------------------------------------------------------------------------------ //------------------------------------------------------------------------------------------ tst_easy_phone1_m1: DISPLAY_MESSAGE ( 3843 ) // missietitel: "TESTMISSION!" SET flag_on_mission = 1 //Je bent nu met een missie bezig SET flag_on_tst_mission = 1 //Je bent nu met een Testgang-missie bezig eddypassed = CREATE_CAR ( 220.5 , 95.5 , 1.0 ) 5 270 EDSEL END //Eddy wordt gecreëerd pantofailed = CREATE_CAR ( 220.5 , 93.5 , 1.0 ) 7 270 FIAT END //Panto wordt gecreëerd DISPLAY_BRIEF ( 3148 ) // Opdrachttekst: "Stap in de Eddy!" WHILE_EXEC ( wachtopinstappen = 1 ) //Volgende commando's gelden zolang je nog niet in één van de wagens zit IF ( IS_CHARACTER_IN_CAR ( player , eddypassed ) ) //Wanneer de speler in de Eddy stapt... SET ineddy = 1 SET wachtopinstappen = 0 DISPLAY_BRIEF ( 3148 ) // Commentaar: "Je hebt de Eddy gekozen! Goede keus!" ENDIF IF ( IS_CHARACTER_IN_CAR ( player , pantofailed ) ) //Wanneer de speler in de Panto stapt... SET inpanto = 1 SET wachtopinstappen = 0 DISPLAY_BRIEF ( 3148 ) // "Je hebt de Panto gekozen! Wat een belabberde smaak heb je!" ENDIF IF ( ineddy = 1 ) CLEAR_ALL_BRIEFS ( ) //Verwijderd alle teksten. DISPLAY_BRIEF ( 3141 ) // Commentaar: "Je goede keus heeft je de missie doen slagen." SET flag_passed_tst_easy_phone1_m1 = 1 //Je hebt deze missie gehaald ++ counter_all_missions_passed //Je hebt een missie gehaald DISPLAY_MESSAGE ( 3100 ) // "JOB COMPLETE!" ADD_SCORE ( player , 60000 )//Je krijgt de beloning ADD_MULTIPLIER ( player , 1 ) //Je krijgt een multiplier CHANGE_GANG_CHAR_RESPECT_AND_UPDATE ( Testgang , player , 1 ) //Je krijgt meer respect CLEAR_WANTED_LEVEL ( player ) //Wanted level wordt verwijderd SET_PHONE_DEAD ( ph_tst_easy_phone1 ) //De telefoon wordt uitgeschakeld DISABLE_THREAD_TRIGGER ( thr_tst_easy_phone1_m1 ) //De missie-thread wordt uitgeschakeld RETURN ENDIF IF ( inpanto = 1 ) CLEAR_ALL_BRIEFS ( ) DISPLAY_BRIEF ( 3141 ) // Commentaar: "Je slechte smaak heeft je de missie doen falen." SET flag_failed_tst_easy_phone1_m1 = 1 //Je hebt deze missie gefaald ++ counter_all_missions_failed // Je hebt een missie gefaald DISPLAY_MESSAGE ( 3730 ) // "JOB FAILED!" RETURN ENDIF ENDWHILE RETURN //------------------------------------------------------------------------------------------ //------------------------------------------------------------------------------------------ // verwijdert alle missie-objecten na afloop missie clean_up_tst_easy_phone1_m1: IF ( flag_passed_tst_easy_phone1_m1 = 1 ) ++ flag_tst_missions_passed //De Testgang-missie-gehaald flag wordt verhoogd ++ flag_all_missions_passed //De missie-gehaald flag wordt verhoogd ENDIF ENDIF IF ( flag_failed_tst_easy_phone1_m1 = 1 ) ++ flag_tst_missions_failed //De Testgang-missie-gefaald flag wordt verhoogd ++ flag_all_missions_failed //De missie-gefaald flag wordt verhoogd SET flag_failed_tst_easy_phone1_m1 = 0 //Deze missie-gefaald flag wordt weer op 0 gezet, anders kan de missie niet meer gespeeld worden. CHANGE_GANG_CHAR_RESPECT_AND_UPDATE ( isagang , player , -1 ) //Je krijgt minder respect. ENDIF IF ( CHECK_DEATHARREST_EXECUTED ( ) ) //Wanneer je Wasted of Busted bent... ++ flag_tst_missions_failed ++ flag_all_missions_failed SET flag_failed_tst_easy_phone1_m1 = 0 SET flag_on_mission = 0 SET flag_on_tst_mission = 0 CHANGE_GANG_CHAR_RESPECT_AND_UPDATE ( Testgang , player , -1 ) CLEAR_WANTED_LEVEL ( player ) ENDIF MISSION_HAS_FINISHED ( ) //De missie is voltooid SET flag_on_mission = 0 //Je bent niet meer op een missie SET flag_on_tst_mission = 0 //Je bent niet meer op een Testgang missie RETURN MISSIONSTART //In een missie staat er Missionstart ipv. Levelstart GOSUB tst_easy_phone1_m1: GOSUB clean_up_tst_easy_phone1_m1: MISSIONEND //Missionend ipv. Levelend.
| 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 · Voertuigen maken · Plattegrond · Terminologie · Levels installeren | ||


