Jump to content

Recommended Posts

Geplaatst: (bewerkt)

hallo allemaal,

ik ben zins kort ook aan het modden gegaan.

en dat wil prima lukken :bier:

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: door tomtenberge
Geplaatst:

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:

SA_MMM.jpg

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

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...