tomtenberge Geplaatst: 13 maart 2007 Rapport Geplaatst: 13 maart 2007 (bewerkt) hallo allemaal, ik ben zins kort ook aan het modden gegaan. en dat wil prima lukken alleen nu heb ik zoveel kleine modjes dat ik graag een ingame menu wil maken. net zo iets al noobmode maar dan voor mezelf enn mijn eigen mods en onder een andere toets ( bijvoorbeeld g+h) nu heb ik al wel wat informatie gevonden over dat soord menus, alleen snap ik dat nog niet zo goed. dus ik wou vragen of iemand hier mischien een voorbeeld heeft over hoe dat te maken. of een goede tutorial. alvast bedankt. GRZ TO ALL THE PEOPLE IN THE WORLD!!! >>> Door Matiscus: Ik heb even alle enters uit je posts gehaald, want enters tussen elke zin, dat leest niet echt gemakkelijk. <<< ^^^^^^^^^^^^^^ OK sorry Bewerkt: 13 maart 2007 door tomtenberge Reageren
PatrickW Geplaatst: 14 maart 2007 Rapport Geplaatst: 14 maart 2007 Hieronder de tekst en uitleg zoals ik het destijds op het engelse forum heb gezet, toen ik de betreffende opcodes ontdekt heb. (zie originele post) This posting will present all the new opcodes to create ingame menu's I've coined the name "panel" for these things, as they are not only used to display ingame menu's (like in ammunations, mod-chops ) but also to display static/dynamic information ( e.g. during missions). A panel consists of one or more columns of information, and can contain upto 12 rows of data. Here's a screen from a custom menu ( still needs some good texts) that I'm working on for my new mod: Here's a listing of all the opcodes involved in panels: 08d4=9, Create_panel param 1: title, displayed in the SA font at the top of the panel param 2: left panel position ( for some reason a float) param 3: top panel position ( for some reason a float) param 4: width ( for some reason a float) param 5: number of columns param 6: interactive-flag, if set the panel acts as a menu, with a row selected param 7: background-flag, panel has a dark background param 8: default alignment of text ( 0=centre, 1=left, 2=right) param 9: handle, the created panel 08da=1,Remove_panel param 1: handle of the panel to be removed 08db=15,Set_panel_column_data param 1: handle of the panel param 2: column number [0,1,2.......] param 3: column header param 4..5: column_data 08ee=5,Set_panel_data_text1 param 1: handle of the panel param 2: column number [0,1,2.......] param 3: row number [0..11] param 4: column data text param 5: column data int argument 08ef=6,Set_panel_data_text2 param 1: handle of the panel param 2: column number [0,1,2.......] param 3: row number [0..11] param 4: column data text param 5: column data int argument 1 param 6: column data int argument 2 09db=3,Set_panel_column_width param 1: handle of the panel param 2: column number [0,1,2.......] param 3: column width ( this time it's an int ) 08d6=3,Set_panel_column_alignment param 1: handle of the panel param 2: column number [0,1,2.......] param 3: alignment of text ( 0=centre, 1=left, 2=right) 08d9=3,Set_panel_row_enable param 1: handle of the panel param 2: row number [0..11] param 3: 0->disabled, 1->enabled 090e=2,Set_panel_active_row param 1: handle of the panel param 2: row number [0..11] 08d7=2,Get_panel_active_row param 1: handle of the panel param 2: variable to receive the row number [0..11] 08d8=2,Get_panel_selected_row param 1: handle of the panel param 2: variable to receive the row number [0..11] The difference between the last two opcodes, is not completely clear. the first one is used, while the "select"-key (spacebar) is still pressed, and the latter is used after it has been released again. This is how R* code uses them. A simple example of a menu with three items 0512: permanent text box 'CLOTHA' 01B4: set player $PLAYER_CHAR frozen state 0 (frozen) 08D4: 'DNC_019' 29.0 145.0 200.0 2 1 1 1 $my_panel 08DB: $my_panel 0 'MTOR02C' 'IE1' 'IE2' 'IE3' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' :keywait 0001: wait 0 ms if 0 00E1: key pressed 0 15 jf ££test_select ;;------------------------- ; menu aborted ;;------------------------- 08DA: $my_panel 03E6: remove text box 01B4: set player $PLAYER_CHAR frozen state 1 (unfrozen) jump ££the_end :test_select if 0 00E1: key pressed 0 16 jf ££keywait ;;-------------------------- ; item selected ;;-------------------------- 08D7: $my_panel $choice 08DA: $my_panel 03E6: remove text box ; do someting useful with $choice :the_end Als dingen niet duidelijk zijn, moet je maar verder vragen.. succes Reageren
Recommended Posts
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.