Jump to content
Geplaatst:
comment_751700

Wij schrijven deze tutorials om zo te proberen om meer animo te krijgen voor SCM scripten. Momenteel zijn er veel te weinig scripters, zeker in verhouding tot het aantal Modellers. Aangezien er weinig tutorials op dit forum zijn, en al helemaal weinig die over SannyBuilder gaan, maken wij (PatrickW en ik) een aantal tutorials om jullie wat op weg te helpen.

Waarom SannyBuilder? Omdat dat een hele handige en overzichtelijke tool is voor het schrijven van de code. Zeker voor beginnende scripters, die we met deze tutorials willen bereiken, is dit natuurlijk erg handig.

Voor deze tutorials heb je nodig:

  • SannyBuilder (Download)
  • Een "stripped" code (die kan je vinden in de SannyBuilder Map > Data >> SA >> Stripped)
  • Grand Theft Auto: San Andreas
  • Ped Editor (Download)
  • San Andreas Place Manager (Download)

In dit topic worden alleen tutorials geplaatst. Reacties en vragen kan je plaatsen in het reactietopic. Ook kan je hier nieuwe tutorials aanvragen als je ergens vastloopt.

Wij hopen dat jullie hier wat aan hebben!

Inhoudsopgave

Tutorial 1: Beginnen met scripten

Tutorial 2: De absolute beginselen

Tutorial 3: Basis SCM-scripten

Tutorial 4: Actors

Tutorial 5: Wapens (en eigenschappen) aan een Actor

Tutorial 6: Cars spawnen

Tutorial 7: Spheres, icons en markers

Tutorial 8: Een eenvoudige missie

Tutorial 9: Een echte missie (Rockstar style)

Tutorial 10: Status Balken

Tutorial 11: Actor Animations en Animation Paths

Tutorial 12: Pickups

Tutorial 13: Teksten

Tutorial 14: Custom Save Point

Tutorial 15: Cutscenes

Tutorial 16: Menu's

Andere handige tutorial:

MPACK's

SCM VS CLEO

Ook deze tutorials zijn zeker het proberen waard, want leren je de handigste manieren om te scripten. :)

Featured Replies

Geplaatst:
  • Auteur
comment_1417141

Menu's

In deze tutorial zal ik een screen geven om te illustreren wat ik zeg met text. Dit is het "main panel" van een

post-33831-1247910184_thumb.jpg

0512:  show_permanent_text_box 'CLOTHA'

Dit is de tekst (textbox) die links boven komt. Het is rood gemarkeerd in de screen.

08D4: $MENU = create_panel_with_title 'DUMMY' position 29.0 145.0 width 220.0 columns 1 interactive 1 background 1 alignment 1

Met deze opcode creeer je een menu. Je moet de menu een naam (variabele/handle) geven, zodat je er later dingen mee kunt doen. Ook moet je een titel geven. DUMMY betekent dat je daar geen tekst wil hebben ingame. Wanneer je wilt dat het menu een titel heeft, dna moet je de tekst-id gebruiken in plaats van 'DUMMY'. Dat is het blauw gemarkeerde deel op de screen.

08DB:  set_panel $MENU column 0 header 'DUMMY' data 'DUMMY' 'DUMMY' 'DUMMY'  'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY'

Eerst moet je het een header geven, het geel gemarkeerde deel op de screen. Dan moet je dingen toevoegen die de player kan kiezen. Eén van die dingen is roze gemarkeerd op de screen.

Er zijn twee manieren om van hieruit door te gaan. We zullen de makkelijkste manier gaan bekijken. Ik moet toegeven dat ikzelf ook altijd deze manier gebruik: het is makkelijker en overzichtelijk.

repeat
wait  0 ms
if 00E1:   player 0 pressed_key 15 
then
 08DA: remove_panel $MENU
 03E6: remove text box
 jump @END
end
until 00E1:   player 0 pressed_key 16

Dit is een repeat-wait-until structuur, dus de game herhaalt alles tussen repeat en until totdat een conditie waar is. In dit geval, de code zal zich herhalen tot de player een toets heeft gedrukt (16 = SPATIE). Wanneer de speler echter op 15 (ENTER/F) drukt voordat hij op SPATIE drukte, dan zal je het menu en de text box verwijderen. Daarna jump je naar het einde (of het begin, afhankelijk van wat je wilt).

08D7: $choice = panel $MENU active_row
08DA: remove_panel $MENU
03E6: remove text box

Nadat de player op "SPATIE" heeft gedrukt, moeten de panel en de text box verwijderd worden. Daarnaast moet je kijken naar wat de player gekozen heeft. Je kunt dat doen met de 08D7 opcode, welke checked wat de laatste actieve lijn van het panel was.

Tot slot moet je zeggen wat er gebeurd wanneer de player iets kiest. Let op, dit start met 0, niet met 1!

if $choice == 0
then
...
end

if $choice == 1
then
... 
end

Je moet deze if-then-end structuur even vaak doen als het aantal keuzes. Bijvoorbeeld, wanneer je 5 keuzes hebt, dan moet je deze code gebruiken van $choice == 0 tot en met $choice == 4.

Totale code voor een menu

08D4: $MENU = create_panel_with_title 'DUMMY' position 29.0 145.0 width 220.0 columns 1 interactive 1 background 1 alignment 1

08DB:  set_panel $MENU column 0 header 'DUMMY' data 'DUMMY' 'DUMMY' 'DUMMY'  'DUMMY' 
'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY'

repeat
wait  0 ms
if 00E1:   player 0 pressed_key 15 
then
			08DA: remove_panel $MENU
 03E6: remove text box
 jump @END
end
until 00E1:   player 0 pressed_key 16 

08D7: $choice = panel $MENU active_row
08DA: remove_panel $MENU
03E6: remove text box

if $choice == 0
then
...
end

if $choice == 1
then
... 
end


:END
wait 1000
jump @END

Hopelijk was dit duidelijk, anders kan je het natuurlijk altijd vragen in het reactietopic. :)

  • 3 years later...
Geplaatst:
  • Auteur
comment_2004996

Door een paar forumupdates was een hoop uit deze tutorial weggevallen. Dit heb ik grotendeels opnieuw moeten schrijven, maar als het goed is staat alles nu correct. Veel succes ermee en vragen mogen in het reactietopic dan wel in een nieuw topic. :)

Gast
Dit onderwerp is gesloten.

Recent actief 0

  • Er zijn hier geen geregistreerde gebruikers aanwezig.