3. Cleo3 library*Optioneel (als je het maakt in scm dan heb je geen cleo3 nodig)
4. Sagxtedit*Optioneel (als je cleo3 gebruikt is het makkelijker om fxt bestanden te gebruiken)
Een fxt bestand maken (alleen als je het script in Cleo3 maakt) :
Als je cleo3 gebruikt dan kan je FXT (FAKE GTA Text Table) gebruiken.
Let wel op dat je gxthook.cleo in je cleo map hebt staan. Om .fxt bestanden te gebruiken moet je een map maken in de map cleo en dan noem je de map: Cleo_text.
In die map kan je fxt bestanden maken. dat doe je door met kladbok een bestand te maken, en het op te slaan als: <naam>.fxt
Een fxt bestand is zo opgebouwd: <GXT ENTRY><SPACE><TEXT>
dus eerst de naam die je het geeft, daarna doe je spatie en daarna de tekst die je wilt gebruiken in je menu. let wel op dat je na de naam niet meerdere spatie's hebt en ook mag je bij de tekst ook geen spatie's erna hebben. Heb je dat wel, dan zie je de tekst in het menu niet.
Het maken van een menu:
we gaan aan de slag met het maken van het menu.
ik maak het script in cleo3. (in een .cs script)
je kan deze manier ook in je normale .scm script gebruiken!!!
in cleo3 zet ja altijd bovenaan:
{$CLEO .cs}
ik doe het heel simpel. als je op een knop druk dan verschijnt het menu, dat doe je op de volgende manier:
thread "MENU"
:MENU_8
wait 0
08DA: remove_panel $MENU
03E6: remove_text_box
Player.CanMove($PLAYER_CHAR) = True
:MENU_85
0AB0: key_pressed 123 //dit is de knop F12
jf @MENU_85
jump @MENU_129 // hier springt ie naar label :MENU_129.
:MENU_129
Player.CanMove($PLAYER_CHAR) = false
0512: show_permanent_text_box 'CLOTHA' // dit is de standaard tekst voor een menu: // Use ~k~~GO_FORWARD~ and ~k~~GO_BACK~ to select area.~N~~k~~PED_SPRINT~ Select~N~~k~~VEHICLE_ENTER_EXIT~ Quit
08D4: $MENU = create_panel_with_title 'DUMMY' position 29.0 145.0 width 220.0 columns 1 interactive 1 background 1 alignment 1 // maak een menu aan. je kan de positie, en de breedte makkelijk varanderen.
08DB: set_panel $MENU column 0 header 'DUMMY' data 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' // hier zet je de tekst neer die je hebt opgeslagen in je gxt of fxt bestand. gta leest de tekst: DUMMY als leeg. dus als je maar bijv: 2 opties wilt hebben dan moet je de de 2 DUMMY's na data vervangen door je eigen.
let wel op dat je het altijd tussen ' ' zet.
gosub @MENU_30 // hier spring je naar label :MENU_30, die ervoor gaat zorgen dat je iets in het menu kan selecteren, en het menu kan laten verdwijnen.
0871: init_jump_table $ROW total_jumps 16 default_jump 0 @MENU_8 jumps 0 @MENU_436 1 @MENU_443 2 @MENU_450 3 @MENU_457 4 @MENU_464 5 @MENU_471 6 @MENU_478
0872: jump_table_jumps 7 @MENU_485 8 @MENU_492 9 @MENU_499 10 @MENU_506 11 @MENU_513 12 @MENU_513 13 @MENU_513 14 @MENU_513 15 @MENU_513
//hier zet je neer waarna ie moet springen als je iets selecteerd. Na jumps 0 zet je steeds neer waarna ie heen moet springen. 0872: jump_table_jumps haakt erop in.daar ga je verder met tellen tot de 15. je mag niet minder hebben want dan geeft ie een error. heb je minder dus stel dat je maar 5 opties hebt. dan tel je tot de 4 (je begint bij 0) en daarna doe je steeds hetzelfde label. omdat je die toch niet gebruikt. let wel op dat je dan bij: 08DB: set_panel de 1e 5 Dummy's vervangt voor je eigen.
hier springt ie steeds naartoe. dit is ook de makkelijktse manier. dus je kan steeds daarin zetten wat er moet gebeuren. dus bijv, bij de eerste:
:MENU_436
jump @MENU_8
kan je van maken:
:MENU_436
02AB: set_actor $PLAYER_ACTOR immunities BP 1 FP 1 EP 1 CP 1 MP 1
jump @MENU_8
//dat zorgt ervoor dat als je de 1e optie selecteert dat je dan niet meer dood kan. zo kan je bij elke iets neerzetten. bij elke springt ie naar label :MENU_8. die staat bovenaan. die zorgt ervoor dat het menu weer weggehaald word en dat je weer kan bewegen.
:MENU_30
wait 0
if
00E1: player 0 pressed_key 15 //enter
jf @MENU_72
08DA: remove_panel $MENU
03E6: remove_text_box
Player.CanMove($PLAYER_CHAR) = True
jump @MENU_8
:MENU_72
wait 0
if
00E1: player 0 pressed_key 16 //spatie
jf @MENU_30
08D7: $ROW = panel $MENU active_row
08DA: remove_panel $MENU
:MENU_106
wait 0
if
80E1: not player 0 pressed_key 16
jf @MENU_106
return
dit stukje zorgt ervoor dat ie gaat checken welke knop je indrukt. dus spatie, dat ie dan de optie selecteerd. en enter, dat ie dan het menu afsluit. al eerder in het script stond er na: 08DB: set_panel: gosub @MENU_30
als je wil weten hoe je het maakt dat als je een optie selecteert dat je nog een menu krijgt, dan kan je altijd even kijken in de: Source van mijn mod: Link
dat was alles, als er een fout in zit of je hebt suggesties? post het dan.
Menu's maken
Deze tutorial gaat over het maken van een menu.
In deze tutorial maak ik het script in Cleo3. Maar je kan het script ook in de normale SCM gebruiken.
Benodigdheden:
1. Kennis van scripten met sannybuilder.
2. Sannybuilder
3. Cleo3 library*Optioneel (als je het maakt in scm dan heb je geen cleo3 nodig)
4. Sagxtedit*Optioneel (als je cleo3 gebruikt is het makkelijker om fxt bestanden te gebruiken)
Een fxt bestand maken (alleen als je het script in Cleo3 maakt) :
Als je cleo3 gebruikt dan kan je FXT (FAKE GTA Text Table) gebruiken.
Let wel op dat je gxthook.cleo in je cleo map hebt staan. Om .fxt bestanden te gebruiken moet je een map maken in de map cleo en dan noem je de map: Cleo_text.
In die map kan je fxt bestanden maken. dat doe je door met kladbok een bestand te maken, en het op te slaan als: <naam>.fxt
Een fxt bestand is zo opgebouwd: <GXT ENTRY><SPACE><TEXT>
dus eerst de naam die je het geeft, daarna doe je spatie en daarna de tekst die je wilt gebruiken in je menu. let wel op dat je na de naam niet meerdere spatie's hebt en ook mag je bij de tekst ook geen spatie's erna hebben. Heb je dat wel, dan zie je de tekst in het menu niet.
Het maken van een menu:
we gaan aan de slag met het maken van het menu.
ik maak het script in cleo3. (in een .cs script)
je kan deze manier ook in je normale .scm script gebruiken!!!
in cleo3 zet ja altijd bovenaan:
ik doe het heel simpel. als je op een knop druk dan verschijnt het menu, dat doe je op de volgende manier:
hier springt ie steeds naartoe. dit is ook de makkelijktse manier. dus je kan steeds daarin zetten wat er moet gebeuren. dus bijv, bij de eerste:
:MENU_436
jump @MENU_8
kan je van maken:
:MENU_436
02AB: set_actor $PLAYER_ACTOR immunities BP 1 FP 1 EP 1 CP 1 MP 1
jump @MENU_8
//dat zorgt ervoor dat als je de 1e optie selecteert dat je dan niet meer dood kan. zo kan je bij elke iets neerzetten. bij elke springt ie naar label :MENU_8. die staat bovenaan. die zorgt ervoor dat het menu weer weggehaald word en dat je weer kan bewegen.
dit stukje zorgt ervoor dat ie gaat checken welke knop je indrukt. dus spatie, dat ie dan de optie selecteerd. en enter, dat ie dan het menu afsluit. al eerder in het script stond er na: 08DB: set_panel: gosub @MENU_30
dat was het. hier alles in 1 code:
als je wil weten hoe je het maakt dat als je een optie selecteert dat je nog een menu krijgt, dan kan je altijd even kijken in de: Source van mijn mod: Link
dat was alles, als er een fout in zit of je hebt suggesties? post het dan.