Vicolaships Posté(e) le 6 novembre 2007 Signaler Partager Posté(e) le 6 novembre 2007 (modifié) Ce tutoriel est à la porté d'un codeur SCM initié, il est cependant conseillé d'avoir les bases. 1. Présentation et objectifs Dans ce tutoriel vous allez apprendre à créer et modifier des menus dans GTA San Andreas 2. Etapes de bases: 2.1 Lancez SannyBuilder 2.2 Créez un main basic (cf: tuto) ainsi qu'un label pour insérer le code 2.3 Pour créer un menu nous allons utiliser les opcodes suivants : 08D4: $id_menu = create_panel_with_title 'TITRE' position X Y width A columns 2 interactive 1 background 2 alignment 1 08DB: set_panel $id_menu column 0 header 'DUMMY' data 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 2.4 Pour pouvoir sélectionner un menu ou même quitter il va falloir rajouter des suites d'opcodes, en voilà une qui marche parfaitement : :Menu_open wait 0 if and 00E1: player 0 pressed_key X 80DF: not actor $PLAYER_ACTOR driving jf @Menu_open Player.CanMove($PLAYER_CHAR) = False 08D4: $menu_objet = create_panel_with_title 'DUMMY' position 10.0 140.0 width 60.0 columns 2 interactive 1 background 2 alignment 1 08DB: set_panel $menu_objet column 0 header 'DUMMY' data 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 09DB: set_panel $menu_objet column 0 width 250 :Menu_quitte wait 0 if 00E1: player 0 pressed_key 14 jf @Menu_choisit 08DA: remove_panel $menu_objet 03E6: remove_text_box Player.CanMove($PLAYER_CHAR) = True jump @Menu_open :Menu_choisit wait 0 if 00E1: player 0 pressed_key 16 jf @Menu_quitte 08D7: $menu_objet_LIGNE = panel $menu_objet active_row 08DA: remove_panel $menu_objet 03E6: remove_text_box wait 0 if $menu_objet_LIGNE == 0 jf @menu_ligne2 XXXXXXXXXXXXXXXXXXXXXXX jump @Menu_open :menu_ligne2 wait 0 if $menu_objet_LIGNE == 1 jf @menu_ligne3 XXXXXXXXXXXXXXXXXXXXXXX jump @Menu_open :menu_ligne3 wait 0 if $menu_objet_LIGNE == 2 jf @menu_ligne3 XXXXXXXXXXXXXXXXXXXXXXX jump @Menu_open Ce menu ne marche qu'avec 3 propositions dans le menu, n'en mettez pas plus elles ne marcheront pas, pour en rajouter il suffit de copier le label "menu_ligne3" en le renommant comme j'ai fait pour les 2 autres. Remplacez les "DUMMY" par des noms d'entrées GXT pour avoir du texte dans votre menu 3. Création d'un menu ON/OFF: 3.1 Créer un menu qui gère une option ON/OFF est bien plus compliqué, il faut un texte qui se modifie et un label qui change selon que l'option ai été activé ou non 3.2Voici un exemple de code qui gère une seule option : :Label 05A9: s$onoff = 'OFF' $1 = 0 :Menu wait 0 if 00E1: player 0 pressed_key 11 // COnversation YES jf @Menu Player.CanMove($PLAYER_CHAR) = False 08D4: $menu = create_panel_with_title 'OPTIONS' position 10.0 140.0 width 60.0 columns 2 interactive 1 background 2 alignment 1 08DB: set_panel $menu column 0 header 'DUMMY' data 'GXT_REF' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 08DB: set_panel $menu1 column 1 header 'DUMMY' data s$onoff 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 09DB: set_panel $menu column 0 width 250 09DB: set_panel $menu1 column 1 width 100 :Quitte wait 0 if 00E1: player 0 pressed_key 14 // Sauter jf @Choisit 08DA: remove_panel $menu 08DA: remove_panel $menu1 03E6: remove_text_box wait 100 Player.CanMove($PLAYER_CHAR) = True jump @Menu :Choisit wait 0 if 00E1: player 0 pressed_key 16 // Sprint jf @Quitte 08D7: $ligne_choix = panel $menu active_row 08DA: remove_panel $menu 08DA: remove_panel $menu1 03E6: remove_text_box Player.CanMove($PLAYER_CHAR) = True wait 0 if $ligne_choix == 0 jf @Choisit :Off_to_on wait 0 if $1 == 0 jf @On_to_off 05A9: s$onoff = 'ON' 015D: set_gamespeed 0.5 $1 = 1 jump @Menu :On_to_off wait 0 if $1 == 1 jf @Off_to_on 05A9: s$onoff = 'OFF' 015D: set_gamespeed 1.0 $1 = 0 jump @Menu 4. Conclusion: De cette facon vous pouver créer des menus relativement complexes, il vous suffit de multiplier le code et de faire attention aux IDs. Si vous avez une question n'hésitez pas ! Ce tutoriel est le fruit de plus d'une heure de travail, merci d'en respecter les droits d'auteur Si vous trouvez des fautes d'orthographes merci de me le signaler par MP Modifié le 6 novembre 2007 par Vicolaships Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Rejoindre la conversation
Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.