Jump to content

Missie maken


Recommended Posts

Geplaatst:

Zal iemand uit kunnen leggen hoe ik de volgende missie maak? :?

Je neemt de groene telefoon van de Zaibatsu op, na een leuke tekst moet je de moord op de brug onderzoeken en het geld-item op pakken, je zal te horen krijgen dat je een weg naar Greasy Plains moet zoeken, aangezien door de moord bij de brug de brug is opgeblazen...Als je eenmaal op Greasy Plains bent moet je een paar mannetjes vermoorden en een Tank stelen, vervolgens neem je de specale ontsnappings route om hem op het dak van een gebouw midden in Z-City te dumpen. :Y

  • Reacties 39
  • Created
  • Laatste reactie

Top Posters In This Topic

  • need my speed

    18

  • ReinierK

    9

  • Lantyz

    5

  • Daedalus

    4

Top Posters In This Topic

Posted Images

Geplaatst:

Ik heb zelf nog geen enkele missie gemaakt. Ik zit nog te hannessen met het plaatsen van poppetjes en powerups en zo. Ik wil je er wel mee helpen, maar ik heb zo gauw even geen idee waar te beginnen.

Geplaatst:
Zal iemand uit kunnen leggen hoe ik de volgende missie maak? :?

Je neemt de groene telefoon van de Zaibatsu op, na een leuke tekst moet je de moord op de brug onderzoeken en het geld-item op pakken, je zal te horen krijgen dat je een weg naar Greasy Plains moet zoeken, aangezien door de moord bij de brug de brug is opgeblazen...Als je eenmaal op Greasy Plains bent moet je een paar mannetjes vermoorden en een Tank stelen, vervolgens neem je de specale ontsnappings route om hem op het dak van een gebouw midden in Z-City te dumpen. :Y

Als ik je mag adviseren: begin met wt simpels, het is al moeilijk genoeg...

Mijn eerste missie was een 'gewone' telefoon beantwoorden en dan vervolgens binnen 5 minten 4 taxi's jatten en in een garage zetten... Je krijgt $1000 per taxi en als je de missie haalt ook een multiplier... Je wanted level gaat per taxi omhoog (wordt dus steeds moeilijker) en als je faalt verlies je $1000...

Ik ben er nog steeds niet helemaal uit hoe ik dit het beste kan scripten, maar in principe werkt het wel... De WHILE en WHILE_EXEC loops zijn verwarrend voor mij, ik weet niet wanneer je nou welke moet gebeuiken...

Advies is dus: doe wat makkelijks en breid het dan uit...

Dus bijv:

1. Maak een Zaibatsu Phone en zorg ervoor dat je hem pas kan gebruiken bij een bepaalde Gang Rating.

2. Na het beantwoorden laat een arrow wijzen naar de brug.

3. Als je op de brug bent, laat de arrow verdijnen en geef een nieuwe briefing.

etc.

etc.

Geplaatst:

Dan doe ik dat je simpelweg een tank moet stelen en hem op het dak van de CIA moet dumpen. :D

Maar hoe script ik dat? :Y:?

Geplaatst:
Dan doe ik dat je simpelweg een tank moet stelen en hem op het dak van de CIA moet dumpen. :D

Maar hoe script ik dat? :Y:?

Ok, je moet van te voren heel gestructureerd tewerk gaan... Ik zou het volgende doen:

/*

declareer alle objecten etc

*/

PLAYER_PED player1 = (49.5, 46.5, 255.0) 25 0 //maak de speler aan (pas de locatie aan)

CAR_DATA mission1_tank = ( 100.0 , 100.0 , 255.0 ) -1 0 TANK //dit maakt een tank op locatie 100.0 , 100.0 en bepaalt zelf de hoogte... Verander de locatie natuurlijk even naar jouw eigen locatie

ARROW_DATA arrow1 //maak een pijltje dat je gaat gebruiken

COUNTER mission1_passed = 0 //de missie is nog niet voltooid

COUNTER got_tank = 0 //je hebt de tank nog niet

COUNTER tank_on_roof = 0 //de tank staat nog niet op het dak

/*

Start de eerste missie

Jat een tank en zet op het dak

*/

mission1_start:

POINT_ARROW_AT ( arrow1 , mission1_tank )

DISPLAY_BRIEF ( 0001 ) //laat een berichtje zien, deze moet wel goed in je berichten bestand staan. Je kan het natuurlijk eerst weglaten

WHILE_EXEC ( got_tank = 0 ) //zolang je de tank nog niet hebt, blijf je in deze loop

IF ( IS_CHARACTER_IN_CAR ( player1 , mission1_tank )

++got_tank

CLEAR-ARROW ( arrow1)

POINT_ARROW_AT ( arrow1 , 200.0 , 200.0 , 5.0 ) //laat de pijl naar het dak van het CIA wijzen (verander de locatie)

ENDIF

ENDWHILE

WHILE_EXEC ( tank_on_roof = 0 ) //zolang de tank niet op het dak staat, doe je deze loop

IF ( IS_CAR_IN_BLOCK ( mission1_tank , 200.0 , 200.0 , 5.0 , 4.0 , 4.0 ) //laat deze naar het midden van het dak wijzen en zet de laatste twee cijfers (4.0 & 4.0) op de breedte en lengte van je dak (een dak van 3 bij 6 blokken wordt dan: 3.0 , 6.0 )

++tank_on_roof

ENDIF

ENDWHILE

IF ( ( got_tank = 1 ) AND ( tank_on_roof = 1 ) ) //je hebt de missie gehaald!

++mission1_passed

ADD_SCORE ( player1 , 4000 ) //geef de speler $4000

CLEAR_WANTED_LEVEL ( player1 ) //geen politie meer

MISSION_HAS_FINISHED ()

ENDIF

RETURN

LEVELSTART

GOSUB mission1_start:

LEVELEND

En dan moet je natuurlijk nog telefoons toevoegen en briefings etc. Dit is heel basic allemaal

Geplaatst:

Mmm, sommige dingen dacht ik al (ik heb natuurlijk Lantyz z'n missie script gezien enz), maar erg bedankt. Moet ik dit trouwens ook invoeren:

/*

Start de eerste missie

Jat een tank en zet op het dak

*/

Da's zeker info wat je moet doen in die missie? Gewoon voor jezelf? :?

Geplaatst:
Mmm, sommige dingen dacht ik al (ik heb natuurlijk Lantyz z'n missie script gezien enz), maar erg bedankt. Moet ik dit trouwens ook invoeren:

/*

Start de eerste missie

Jat een tank en zet op het dak

*/

Da's zeker info wat je moet doen in die missie? Gewoon voor jezelf? :?

Dat is meer voor jezelf... het is erg verstandig om bij zo'n beetje alles een comment te geven, want na verloop van tijd weet je niet meer precies wat nou wat doet ;)

P.S. ik zie dat het script niet goed compiled door een typfout, maar die vind je zelf wel ;)

Geplaatst: (bewerkt)

Wat moet ik trouwens met dat declarateer (ofzo) alle objecten? :? Gewoon zo laten en invoegen in m'n script? :?

Bewerkt: door need my speed
Geplaatst:
Wat moet ik trouwens met dat declarateer (ofzo) alle objecten? :? Gewoon zo laten en invoegen in m'n script? :?

Dat zijn alle objecten, auto's, characters etc die je in de missie gaat gebruiken. Deze moeten altijd buiten je missie script staan, dus:

OBJ_ARROW arrow1

missie_start:
//hier code
RETURN

LEVELSTART
//hier code
LEVELEND

Ze mogen niet in je missiescript of in je LEVELSTART script staan

Geplaatst:
Wat moet dan bij 'hier de code', gewoon OBJECT_DECLARE ofzo iets in die buurt? :?

Ok... even voor de duidelijkheid... Het Engelse 'to declare' betekent 'aangeven'...

In een programmeertaal wordt dit meestal als term gebruikt voor het 'reserveren' van bijvoorbeeld objecten of variabelen (je weet wel wat een variabele is hè?)

In het geval van GTA2script moet je alle variabelen en objecten 'aangeven' voordat de missie en het level echt begint.

In je script bestand staan dus eerst alle objecten die je wilt gaan gebruiken en dan pas de missies en de LEVELSTART en LEVELEND commando's...

Als je nu denkt "maar moet ik dan eerst bedenken wat ik allemaal wil gaan gebruiken. En kan ik dan pas m'n missies maken?"... Ja en nee... Je kan natuurlijk tijdens het werken aan een missie merken dat je bijvoorbeeld nog een Arrow nodig hebt. Wat je dan gaat doen is boven in je bestand een nieuwe Arrow 'declareren', zodat je deze in je missie kan gebruiken.

Ik zal een voorbeeld geven waarbij ik 2 missies heb gemaakt. De eerste missie is goed gescript, de tweede fout.

Overigens: je kan in je code 'comments' (opmerkingen) plaatsen waardor het overzichtelijk wordt... Dit doe je met '//' of met '/*' en '*/'... de eerste gebruik je voor 1 regel. De tweede gebruik je voor meerdere regels.

Voorbeeld:

/* Hier staat een opmerking
die over meerdere regels
verspreid staat */

PLAYER_PED player1 = (51.5, 182.5, 255.0) 25 0 //hier 'declareer' je de speler
OBJ_ARROW arrow1 //hier 'declareer' je een pijltje
COUNTER score = 0 //dit is een variabele met waarde 0

mission1_start:
 //deze missie is goed, hij gebruikt alleen objecten en variabelen die al 'gedeclareerd' zijn
 POINT_ARROW_AT ( arrow1 , 10.0 , 10.0 , 1.0 ) //laat het pijltje naar de coordinaten (10 , 10 , 1) wijzen
 WHILE ( NOT ( HAS_CHARACTER_DIED ( player1 ) ) )
//zolang de speler in leven is, tel 1 op bij de counter
++ score
IF ( score = 1000 )
  ADD_SCORE ( player1 , 1000 )
  REMOVE_ARROW ( arrow1 )
  RETURN
ENDIF
 ENDWHILE
RETURN

mission2_start:
 //deze missie is fout, want je mag niet in een missie iets declareren
 OBJ_ARROW ( arrow2 ) //DIT MAG DUS NIET! deze declaratie had boven in je file moeten staan!
 POINT_ARROW_AT ( arrow2 , 10.0 , 10.0 , 1.0 )
RETURN

Geplaatst:

Dus ik moet 2 pijlen (een naar de tank en eentje naar het dak van de CIA) maken, een Tank en natuurlijk me zelf. :Y

Geplaatst: (bewerkt)
Dus ik moet 2 pijlen (een naar de tank en eentje naar het dak van de CIA) maken, een Tank en natuurlijk me zelf. :Y

Minimaal ja :D

Je kan trouwens een pijl wel 'hergebruiken', dus:

POINT_ARROW_AT ( arrow1 , mytank ) //laat de pijl naar de tank wijzen
WHILE ( NOT ( IS_CHARACTER_IN_CAR ( player1 , mytank ) ) )
  DO_NOWT
ENDWHILE
IF ( IS_CHARACTER_IN_CAR ( player1 , mytank ) )
  REMOVE_ARROW ( arrow1 ) //verwijder de pijl
  POINT_ARROW_AT ( arrow1 , 100.0 , 100.0 , 5.0 ) //en gebruik hem opnieuw voor het gebouw
ENDIF

etc

'mytank' is natuurlijk zomaar een naam, dat is de tank en die moet je natuurlijk wel eerst declareren ;) Net zoals de arrow1 en de player1 :)

Bewerkt: door ReinierK
Geplaatst: (bewerkt)
Oke, bedankt, en gewoon de missie onder het declareren, (ofzo) toch? :?

Jep!

Dus:

//hier al je declaraties
PLAYER_PED player1 = ..... etc
CAR_DATA mytank = ...... etc
ARROW_DATA arrow1 //dit is voldoende voor een arrow

//hier begint je missie
missie1:
 //zet hier al je missiecode
RETURN

//hier begint het level
LEVELSTART
 GOSUB missie1: //als het spel start, begint nu meteen missie1, handig voor het testen van je missies!
LEVELEND

Bewerkt: door ReinierK

Een reactie plaatsen

Je kan nu een reactie plaatsen en pas achteraf registreren. Als je al lid bent, log eerst in om met je eigen account een reactie te plaatsen.

Gast
Op dit onderwerp reageren...

×   Je hebt text geplaatst met opmaak.   Opmaak verwijderen

  Only 75 emoji are allowed.

×   Je link is automatisch ingevoegd.   In plaats daarvan weergeven als link

×   Je vorige bewerkingen zijn hersteld.   Alles verwijderen

×   You cannot paste images directly. Upload or insert images from URL.

  • Recent actief   0 leden

    • Er zijn hier geen geregistreerde gebruikers aanwezig.

×
×
  • Create New...