PatrickW Posted June 29, 2005 Share Posted June 29, 2005 (edited) 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' :keywait0001: wait 0 ms if 000E1: key pressed 0 15jf ��test_select ;;-------------------------; menu aborted;;-------------------------08DA: $my_panel 03E6: remove text box01B4: set player $PLAYER_CHAR frozen state 1 (unfrozen)jump ��the_end :test_selectif 000E1: key pressed 0 16jf ��keywait ;;--------------------------; item selected;;--------------------------08D7: $my_panel $choice 08DA: $my_panel 03E6: remove text box; do someting useful with $choice:the_end Edited August 20, 2005 by PatrickW Link to comment Share on other sites More sharing options...
DexX Posted June 29, 2005 Share Posted June 29, 2005 excellent work patrick now, time to change the font of that "The master!" text... Link to comment Share on other sites More sharing options...
Eclipse_nl Posted June 29, 2005 Share Posted June 29, 2005 Nice Patrick ...I'm going to play with it. Link to comment Share on other sites More sharing options...
Timonator Posted June 29, 2005 Share Posted June 29, 2005 good work patrick i can use that:) Link to comment Share on other sites More sharing options...
MrTi Posted June 29, 2005 Share Posted June 29, 2005 awesome find, patrick. gonna implement this in some of my mods. Link to comment Share on other sites More sharing options...
Quadropheniac90 Posted July 10, 2005 Share Posted July 10, 2005 Just one question: What do you do with choice? Do I have to make an if-check like: :Choice1 00D6: if 0 CODE: $choice == 0 (The first row) CODE: jump_if_false Choice2 0001: wait 0 ms CODE: create_car #BANSHEE CODE: end_thread :Choice2 00D6: if 0 CODE: $choice == 1 (The second row) CODE: jump_if_false Choice3 0001: wait 0 ms CODE: create_car #BULLET CODE: end_thread Etcetera... Or something else? Link to comment Share on other sites More sharing options...
PatrickW Posted July 10, 2005 Author Share Posted July 10, 2005 Just one question: What do you do with choice? Do I have to make an if-check like: :Choice1 00D6: if 0 CODE: $choice == 0 (The first row) CODE: jump_if_false Choice2 0001: wait 0 ms CODE: create_car #BANSHEE CODE: end_thread :Choice2 00D6: if 0 CODE: $choice == 1 (The second row) CODE: jump_if_false Choice3 0001: wait 0 ms CODE: create_car #BULLET CODE: end_thread Etcetera... Or something else? That completely depends on your mod, if you only have two or three choices, your method will do, but when you get to a situation where you have more choices there are two prefered alternatives: * Use the jumptable opcodes (0871&0872), which basicly implements a switch-statement ( as availabl in most proper programming languages: something like this switch($choice) {case 0: jump ££label_for0 break;case 1: jump ££label_for1 break;case 2: jump ££label_for2 break;default: jump ££label_for_default break;} would lead to the following opcode: 0871: init_jump_table $choice total_jumps 3 1 ££label_for_default jumps 0 ££label_for0 1 ££label_for1 2 ££label_for2 0 -1 0 -1 0 -1 0 -1 params: 1 : switch variable 2 : number of regular cases 3 : default availalble flag (if default case is not needed, this is 0 ) 4 : jump label for the default case 5 : case-value for the first case 6 : jump_label for the first case 7-18 : case-value/jump_labe; pairs for the other cases. If there are more than 7 cases, the rest of the cases should be given in subsequent 0872: opcodes, which can hold opto 9 case-value/jump_label pairs. * a second method of using the $choice, would be to use it as an index for an array. Hope this helps you further... Link to comment Share on other sites More sharing options...
am0n Posted July 13, 2005 Share Posted July 13, 2005 GTA San Andreas - MAIN.SCM Script Menu Generator (BETA1) Link to comment Share on other sites More sharing options...
Quadropheniac90 Posted July 13, 2005 Share Posted July 13, 2005 Thanks, am0n, that really helps! Does the Menu Title have to be in the .gxt file? Link to comment Share on other sites More sharing options...
am0n Posted July 13, 2005 Share Posted July 13, 2005 Thanks, am0n, that really helps! Does the Menu Title have to be in the .gxt file? yes Link to comment Share on other sites More sharing options...
Quadropheniac90 Posted July 13, 2005 Share Posted July 13, 2005 Yay, the menu works, now I just have to get a piece of code which lets the game do something when an option is selected... Dunno how to continue the thread, do I have to change this: :CUSTOM_MENU_6; selected button 'OPTION1' (0)0002: jump ££CUSTOM_MENU_END to this: :CUSTOM_MENU_6; selected button 'OPTION1' (0)0002: jump ££CUSTOM_MENU_END0002: jump ££CUSTOM_MENU_CHOICE1 or something? Link to comment Share on other sites More sharing options...
am0n Posted July 13, 2005 Share Posted July 13, 2005 Yay, the menu works, now I just have to get a piece of code which lets the game do something when an option is selected... Dunno how to continue the thread, do I have to change this: :CUSTOM_MENU_6; selected button 'OPTION1' (0)0002: jump ££CUSTOM_MENU_END to this: :CUSTOM_MENU_6; selected button 'OPTION1' (0)0002: jump ££CUSTOM_MENU_END0002: jump ££CUSTOM_MENU_CHOICE1 or something? example : :CUSTOM_MENU_6; selected button 'OPTION1' (0)00A1: put_actor $PLAYER_ACTOR at 428.3045 2536.698 16.375520002: jump ££CUSTOM_MENU_END Link to comment Share on other sites More sharing options...
Quadropheniac90 Posted July 13, 2005 Share Posted July 13, 2005 OK, thanks. Still need to sort some sh*t out... Link to comment Share on other sites More sharing options...
am0n Posted July 14, 2005 Share Posted July 14, 2005 Ok so what's wrong with my code? I'm a newbye at coding but i tried to do my best and still can't find whats wrong ... the game just crashes ... oh and about all those threads well i wanted to show where i put my create_thread is it there were it should be ? (MAIN) ... or is that what's wrong ... ?Please help me Thanks It seems that you pasted the _whole_ code at the MAIN part of script; only 'create_thread' part belongs there, move everything else outside, ie. at the end of script. Link to comment Share on other sites More sharing options...
AmonRa Posted July 18, 2005 Share Posted July 18, 2005 is it possible to create a menu with the options to type in values? like number of ammo or even coords Link to comment Share on other sites More sharing options...
PatrickW Posted July 18, 2005 Author Share Posted July 18, 2005 Nope, there is no easy data entry method for the menu, of course you could use the method used to determine the bet-amount in casino's. And there's also some data-entry code in the high-score handling of the ingame video-games, but these are very complicated to code. Link to comment Share on other sites More sharing options...
AmonRa Posted July 18, 2005 Share Posted July 18, 2005 well as my father (and half of mankind) used to (and still) say little is better then nothing thanks Link to comment Share on other sites More sharing options...
spaceeinstein Posted August 15, 2005 Share Posted August 15, 2005 09d6=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) 09d6=3,Set_panel_row_enable param 1: handle of the panel param 2: row number [0..11] param 3: 0->disabled, 1->enabled Uhhh... Wtf? Link to comment Share on other sites More sharing options...
spaceeinstein Posted August 18, 2005 Share Posted August 18, 2005 Maybe I wasn't clear but those two opcodes above me are wrong. Link to comment Share on other sites More sharing options...
Craig Kostelecky Posted August 18, 2005 Share Posted August 18, 2005 Well, what's wrong with them? Are they incorrectly named? Or are the parameters wrong? You didn't really elaborate at all (even in your second post) about why it's wrong. Link to comment Share on other sites More sharing options...
spaceeinstein Posted August 18, 2005 Share Posted August 18, 2005 How can you not see it? 09d6=3,Set_panel_column_alignment 09d6=3,Set_panel_row_enable They are the same, and 09d6 has 5 params. Link to comment Share on other sites More sharing options...
Un3462 Posted August 18, 2005 Share Posted August 18, 2005 in my ini i have 08d6=3,set_panel_col_alignment 08d9=3,set_panel_row_enabled but that might be an incorrect guess. Link to comment Share on other sites More sharing options...
PatrickW Posted August 20, 2005 Author Share Posted August 20, 2005 Thanks for spotting those space-einstein. The ones that CyQ ( ) listed are indeed the correct ones.. So much for ctrl-C/ctrl-V being a handy tool I've corrected the first post.. Link to comment Share on other sites More sharing options...
Quadropheniac90 Posted August 21, 2005 Share Posted August 21, 2005 (edited) How many 'options' can the menu have? Edited August 21, 2005 by teun.steenbekkers Link to comment Share on other sites More sharing options...
GTASan Andreas CJ Rules Posted August 28, 2005 Share Posted August 28, 2005 can sum1 like explain this is in n00b format. (i can spawn cars tho) Link to comment Share on other sites More sharing options...
GTASan Andreas CJ Rules Posted September 8, 2005 Share Posted September 8, 2005 any1 Link to comment Share on other sites More sharing options...
Demarest Posted September 8, 2005 Share Posted September 8, 2005 No. It's already as simple as it can get. If that's above your coding level, then either develop your skills, get somebody to do it for you, or abandon the idea. Of course, if you just explained which part you feel is over your head, maybe somebody would be better able to explain it. Just saying you'd like it in newbie terms doesn't get you anywhere. Link to comment Share on other sites More sharing options...
Eclipse_nl Posted September 8, 2005 Share Posted September 8, 2005 How many 'options' can the menu have? 11 options Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now