Français Solved Comment créer un menu avec des animations de danse sans utiliser ACE ?

  • Auteur de la discussion Auteur de la discussion eclair_cc
  • Date de début Date de début

eclair_cc

User
13/8/21
63
2
0
300
Bonjour , j aimerais faire un menu ou on peux retrouver des animations comme des dance ou autre , sans utiliser ace comment je peux faire ? ou m aider
 
Solution
Bonjour,

Ce tutoriel date un peu (2016) par Scarso, mais devrait toujours fonctionner normalement.
(Lien d'origine : [Tutorial] Action Dialog Menu)

Dans core/pmenu, il faut créer un fichier : fn_movesMenu.sqf
Avec dedans ceci :
Code:
#include "..\..\script_macros.hpp"

/*File: fn_movesMenu.sqf   
Author: Jack "Scarso" Farhall*/

private["_display", "_list", "_moves"];
disableSerialization;
_moves = [ // Ajout des animations ici. Le nom est retrouvable dans "Animations" dans l'éditeur.
  ["Kung Fu", "AmovPercMstpSnonWnonDnon_exerciseKata"],
  ["Push Ups", "AmovPercMstpSnonWnonDnon_exercisePushup"],
  ["Knee Bends (Fast)", "AmovPercMstpSnonWnonDnon_exercisekneeBendB"],
  ["Knee Bends (Normal)"...
Bonjour,

Ce tutoriel date un peu (2016) par Scarso, mais devrait toujours fonctionner normalement.
(Lien d'origine : [Tutorial] Action Dialog Menu)

Dans core/pmenu, il faut créer un fichier : fn_movesMenu.sqf
Avec dedans ceci :
Code:
#include "..\..\script_macros.hpp"

/*File: fn_movesMenu.sqf   
Author: Jack "Scarso" Farhall*/

private["_display", "_list", "_moves"];
disableSerialization;
_moves = [ // Ajout des animations ici. Le nom est retrouvable dans "Animations" dans l'éditeur.
  ["Kung Fu", "AmovPercMstpSnonWnonDnon_exerciseKata"],
  ["Push Ups", "AmovPercMstpSnonWnonDnon_exercisePushup"],
  ["Knee Bends (Fast)", "AmovPercMstpSnonWnonDnon_exercisekneeBendB"],
  ["Knee Bends (Normal)", "AmovPercMstpSnonWnonDnon_exercisekneeBendA"],
  ["Scared", "AmovPercMstpSnonWnonDnon_Scared"]
];
waitUntil {
  !isNull(findDisplay 2900)
};
_display = findDisplay 2900;
_list = _display displayCtrl 2902;
lbClear _list; {
  _list lbAdd format["%1", _x select 0];
  _list lbSetdata[(lbSize _list) - 1, str(_x select 1)];
}
foreach _moves;

Puis dans Functions.hpp, dans la section Player_Menu, ajoutez ceci :
Code:
class movesMenu {};

Puis dans le dossier dialogs, créer un fichier nommé : moves_menu.hpp
Ajoutez ceci dedans :
Code:
class life_moves_menu {
  idd = 2900;
  name = "life_moves_menu";
  movingEnable = false;
  enableSimulation = true;
  onLoad = "[] spawn life_fnc_movesMenu;";
  class controlsBackground {
    class Life_RscTitleBackground: Life_RscText {
      colorBackground[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.3843])","(profilenamespace getvariable ['GUI_BCG_RGB_G',0.7019])(profilenamespace getvariable ['GUI_BCG_RGB_B',0.8862])","(profilenamespace getvariable ['GUI_BCG_RGB_A',0.7])"};
      idc = -1;
      x = 0.1;
      y = 0.2;
      w = 0.8;
      h = (1 / 25);
    };
    class MainBackground: Life_RscText {
      colorBackground[] = {0,0,0,0.7};
      idc = -1;
      x = 0.1;
      y = 0.2 + (11 / 250);
      w = 0.8;
      h = 0.6 - (2 / 250);
    };
  };
  class controls {
    class Title: Life_RscTitle {
      colorBackground[] = {0,0,0,0};
      idc = 2901;
      text = "CGI Moves Menu By Scarso327";
      x = 0.1;
      y = 0.2;
      w = 0.6;
      h = (1 / 25);
    };
    class movesList: Life_RscListBox {
      idc = 2902;
      text = "";
      sizeEx = 0.035;
      x = 0.12;
      y = 0.26;
      w = 0.30;
      h = 0.4;
    };
    class CloseButtonKey: Life_RscButtonMenu {
      idc = -1;
      text = "$STR_Global_Close";
      onButtonClick = "closeDialog 0;";
      x = -0.06 + (6.25 / 40) + (1 / 250 / (safezoneW / safezoneH));
      y = 0.88 - (1 / 25);
      w = (6.25 / 40);
      h = (1 / 25);
    };
    class performMove: Life_RscButtonMenu {
      idc = -1;
      text = "Move";
      onButtonClick = "_move = lbData[2902,lbCurSel (2902)];_move = call compile format[""%1"", _move]; player playMove _move; closeDialog 0;";
      x = 0.1 + (6.25 / 40) + (1 / 250 / (safezoneW / safezoneH));
      y = 0.88 - (1 / 25);
      w = (6.25 / 40);
      h = (1 / 25);
    };
  };
};

Puis toujours dans le dossier dialog, il faut ouvrir "player_inv.hpp" et ajoutez ceci (vers la fin) :
Code:
class ButtonMoves: life_RscButtonMenu {
    idc = -1;
    text = "Moves Menu";
    onButtonClick = "closeDialog 0; createDialog ""life_moves_menu"";";
    x = 0.1 + (6.25 / 40) + (1 / 250 / (safezoneW / safezoneH));
    y = 0.805;
    w = (6.25 / 40);
    h = (1 / 25);
};

Enfin, toujours dans le même fichier, il faut chercher la class "ButtonAdminMenu" et remplacez le bloc par ceci :
Code:
class ButtonAdminMenu: Life_RscButtonMenu {
        idc = 2021;
    text = "$STR_PM_AdminMenu";
    onButtonClick = "createDialog ""life_admin_menu"";";
    x = 0.1 + (6.25 / 19.8) + (1 / 250 / (safezoneW / safezoneH));
    y = 0.805;
    w = (6.25 / 40);
    h = (1 / 25);
};
Si cela fonctionne (ou pas), merci de me tenir au courant :)
 
Solution
Bonjour,

Ce tutoriel date un peu (2016) par Scarso, mais devrait toujours fonctionner normalement.
(Lien d'origine : [Tutorial] Action Dialog Menu)

Dans core/pmenu, il faut créer un fichier : fn_movesMenu.sqf
Avec dedans ceci :
Code:
#include "..\..\script_macros.hpp"

/*File: fn_movesMenu.sqf  
Author: Jack "Scarso" Farhall*/

private["_display", "_list", "_moves"];
disableSerialization;
_moves = [ // Ajout des animations ici. Le nom est retrouvable dans "Animations" dans l'éditeur.
  ["Kung Fu", "AmovPercMstpSnonWnonDnon_exerciseKata"],
  ["Push Ups", "AmovPercMstpSnonWnonDnon_exercisePushup"],
  ["Knee Bends (Fast)", "AmovPercMstpSnonWnonDnon_exercisekneeBendB"],
  ["Knee Bends (Normal)", "AmovPercMstpSnonWnonDnon_exercisekneeBendA"],
  ["Scared", "AmovPercMstpSnonWnonDnon_Scared"]
];
waitUntil {
  !isNull(findDisplay 2900)
};
_display = findDisplay 2900;
_list = _display displayCtrl 2902;
lbClear _list; {
  _list lbAdd format["%1", _x select 0];
  _list lbSetdata[(lbSize _list) - 1, str(_x select 1)];
}
foreach _moves;

Puis dans Functions.hpp, dans la section Player_Menu, ajoutez ceci :
Code:
class movesMenu {};

Puis dans le dossier dialogs, créer un fichier nommé : moves_menu.hpp
Ajoutez ceci dedans :
Code:
class life_moves_menu {
  idd = 2900;
  name = "life_moves_menu";
  movingEnable = false;
  enableSimulation = true;
  onLoad = "[] spawn life_fnc_movesMenu;";
  class controlsBackground {
    class Life_RscTitleBackground: Life_RscText {
      colorBackground[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.3843])","(profilenamespace getvariable ['GUI_BCG_RGB_G',0.7019])(profilenamespace getvariable ['GUI_BCG_RGB_B',0.8862])","(profilenamespace getvariable ['GUI_BCG_RGB_A',0.7])"};
      idc = -1;
      x = 0.1;
      y = 0.2;
      w = 0.8;
      h = (1 / 25);
    };
    class MainBackground: Life_RscText {
      colorBackground[] = {0,0,0,0.7};
      idc = -1;
      x = 0.1;
      y = 0.2 + (11 / 250);
      w = 0.8;
      h = 0.6 - (2 / 250);
    };
  };
  class controls {
    class Title: Life_RscTitle {
      colorBackground[] = {0,0,0,0};
      idc = 2901;
      text = "CGI Moves Menu By Scarso327";
      x = 0.1;
      y = 0.2;
      w = 0.6;
      h = (1 / 25);
    };
    class movesList: Life_RscListBox {
      idc = 2902;
      text = "";
      sizeEx = 0.035;
      x = 0.12;
      y = 0.26;
      w = 0.30;
      h = 0.4;
    };
    class CloseButtonKey: Life_RscButtonMenu {
      idc = -1;
      text = "$STR_Global_Close";
      onButtonClick = "closeDialog 0;";
      x = -0.06 + (6.25 / 40) + (1 / 250 / (safezoneW / safezoneH));
      y = 0.88 - (1 / 25);
      w = (6.25 / 40);
      h = (1 / 25);
    };
    class performMove: Life_RscButtonMenu {
      idc = -1;
      text = "Move";
      onButtonClick = "_move = lbData[2902,lbCurSel (2902)];_move = call compile format[""%1"", _move]; player playMove _move; closeDialog 0;";
      x = 0.1 + (6.25 / 40) + (1 / 250 / (safezoneW / safezoneH));
      y = 0.88 - (1 / 25);
      w = (6.25 / 40);
      h = (1 / 25);
    };
  };
};

Puis toujours dans le dossier dialog, il faut ouvrir "player_inv.hpp" et ajoutez ceci (vers la fin) :
Code:
class ButtonMoves: life_RscButtonMenu {
    idc = -1;
    text = "Moves Menu";
    onButtonClick = "closeDialog 0; createDialog ""life_moves_menu"";";
    x = 0.1 + (6.25 / 40) + (1 / 250 / (safezoneW / safezoneH));
    y = 0.805;
    w = (6.25 / 40);
    h = (1 / 25);
};

Enfin, toujours dans le même fichier, il faut chercher la class "ButtonAdminMenu" et remplacez le bloc par ceci :
Code:
class ButtonAdminMenu: Life_RscButtonMenu {
        idc = 2021;
    text = "$STR_PM_AdminMenu";
    onButtonClick = "createDialog ""life_admin_menu"";";
    x = 0.1 + (6.25 / 19.8) + (1 / 250 / (safezoneW / safezoneH));
    y = 0.805;
    w = (6.25 / 40);
    h = (1 / 25);
};
Si cela fonctionne (ou pas), merci de me tenir au courant :)
je test est je te dit
 
Bonjour,

Ce tutoriel date un peu (2016) par Scarso, mais devrait toujours fonctionner normalement.
(Lien d'origine : [Tutorial] Action Dialog Menu)

Dans core/pmenu, il faut créer un fichier : fn_movesMenu.sqf
Avec dedans ceci :
Code:
#include "..\..\script_macros.hpp"

/*File: fn_movesMenu.sqf 
Author: Jack "Scarso" Farhall*/

private["_display", "_list", "_moves"];
disableSerialization;
_moves = [ // Ajout des animations ici. Le nom est retrouvable dans "Animations" dans l'éditeur.
  ["Kung Fu", "AmovPercMstpSnonWnonDnon_exerciseKata"],
  ["Push Ups", "AmovPercMstpSnonWnonDnon_exercisePushup"],
  ["Knee Bends (Fast)", "AmovPercMstpSnonWnonDnon_exercisekneeBendB"],
  ["Knee Bends (Normal)", "AmovPercMstpSnonWnonDnon_exercisekneeBendA"],
  ["Scared", "AmovPercMstpSnonWnonDnon_Scared"]
];
waitUntil {
  !isNull(findDisplay 2900)
};
_display = findDisplay 2900;
_list = _display displayCtrl 2902;
lbClear _list; {
  _list lbAdd format["%1", _x select 0];
  _list lbSetdata[(lbSize _list) - 1, str(_x select 1)];
}
foreach _moves;

Puis dans Functions.hpp, dans la section Player_Menu, ajoutez ceci :
Code:
class movesMenu {};

Puis dans le dossier dialogs, créer un fichier nommé : moves_menu.hpp
Ajoutez ceci dedans :
Code:
class life_moves_menu {
  idd = 2900;
  name = "life_moves_menu";
  movingEnable = false;
  enableSimulation = true;
  onLoad = "[] spawn life_fnc_movesMenu;";
  class controlsBackground {
    class Life_RscTitleBackground: Life_RscText {
      colorBackground[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.3843])","(profilenamespace getvariable ['GUI_BCG_RGB_G',0.7019])(profilenamespace getvariable ['GUI_BCG_RGB_B',0.8862])","(profilenamespace getvariable ['GUI_BCG_RGB_A',0.7])"};
      idc = -1;
      x = 0.1;
      y = 0.2;
      w = 0.8;
      h = (1 / 25);
    };
    class MainBackground: Life_RscText {
      colorBackground[] = {0,0,0,0.7};
      idc = -1;
      x = 0.1;
      y = 0.2 + (11 / 250);
      w = 0.8;
      h = 0.6 - (2 / 250);
    };
  };
  class controls {
    class Title: Life_RscTitle {
      colorBackground[] = {0,0,0,0};
      idc = 2901;
      text = "CGI Moves Menu By Scarso327";
      x = 0.1;
      y = 0.2;
      w = 0.6;
      h = (1 / 25);
    };
    class movesList: Life_RscListBox {
      idc = 2902;
      text = "";
      sizeEx = 0.035;
      x = 0.12;
      y = 0.26;
      w = 0.30;
      h = 0.4;
    };
    class CloseButtonKey: Life_RscButtonMenu {
      idc = -1;
      text = "$STR_Global_Close";
      onButtonClick = "closeDialog 0;";
      x = -0.06 + (6.25 / 40) + (1 / 250 / (safezoneW / safezoneH));
      y = 0.88 - (1 / 25);
      w = (6.25 / 40);
      h = (1 / 25);
    };
    class performMove: Life_RscButtonMenu {
      idc = -1;
      text = "Move";
      onButtonClick = "_move = lbData[2902,lbCurSel (2902)];_move = call compile format[""%1"", _move]; player playMove _move; closeDialog 0;";
      x = 0.1 + (6.25 / 40) + (1 / 250 / (safezoneW / safezoneH));
      y = 0.88 - (1 / 25);
      w = (6.25 / 40);
      h = (1 / 25);
    };
  };
};

Puis toujours dans le dossier dialog, il faut ouvrir "player_inv.hpp" et ajoutez ceci (vers la fin) :
Code:
class ButtonMoves: life_RscButtonMenu {
    idc = -1;
    text = "Moves Menu";
    onButtonClick = "closeDialog 0; createDialog ""life_moves_menu"";";
    x = 0.1 + (6.25 / 40) + (1 / 250 / (safezoneW / safezoneH));
    y = 0.805;
    w = (6.25 / 40);
    h = (1 / 25);
};

Enfin, toujours dans le même fichier, il faut chercher la class "ButtonAdminMenu" et remplacez le bloc par ceci :
Code:
class ButtonAdminMenu: Life_RscButtonMenu {
        idc = 2021;
    text = "$STR_PM_AdminMenu";
    onButtonClick = "createDialog ""life_admin_menu"";";
    x = 0.1 + (6.25 / 19.8) + (1 / 250 / (safezoneW / safezoneH));
    y = 0.805;
    w = (6.25 / 40);
    h = (1 / 25);
};
Si cela fonctionne (ou pas), merci de me tenir au courant :)
je viens de le faire il me met cette erreur après je pense que sa viens du téléphone car j utilise l iphone 11 de theprogrammer
 

Fichiers joints

  • ArmA 3 Screenshot 2023.06.21 - 19.41.01.35.png
    ArmA 3 Screenshot 2023.06.21 - 19.41.01.35.png
    2 Mo · Affichages: 22
Est-ce que tu peux être plus précis sur le problème ?
  • Tu ne vois pas l'icon dans l'Iphone
  • Quand tu cliques sur l'icon, le menu ne s'ouvre pas
  • Quand tu cliques sur "Move" dans le menu des dances, il ne se passe rien

Dans le config de ton bouton sur l'Iphone la "condition" me paraît bizarre. Le button ne sera affiché que si tu as Whitelist Menu installé et que tu es admin, ce qui n'a pas trop de sens pour ce menu. Tu peux retirer la condition pour l'afficher tout le temps, comme ça :
Code:
condition = "";
 
Est-ce que tu peux être plus précis sur le problème ?
  • Tu ne vois pas l'icon dans l'Iphone
  • Quand tu cliques sur l'icon, le menu ne s'ouvre pas
  • Quand tu cliques sur "Move" dans le menu des dances, il ne se passe rien

Dans le config de ton bouton sur l'Iphone la "condition" me paraît bizarre. Le button ne sera affiché que si tu as Whitelist Menu installé et que tu es admin, ce qui n'a pas trop de sens pour ce menu. Tu peux retirer la condition pour l'afficher tout le temps, comme ça :
Code:
condition = "";
j ai le bouton mais quand je clique sur le bouton il y a rien qui se passe
comme si ' action du bouton étais pas bonne
 
Dernière édition:
Je viens de voir que dans le config de l'Iphone tu as mis onButtonClick au lieu de action.

Voici le bouton corrigé à mettre dans le config_master.cpp de l'Iphone :
Code:
class ButtonMoves {
    action = "closeDialog 0; createDialog ""life_moves_menu"";";
    displayName = "Moves Menu";
    condition = "";
    iconFile = "icons\whitelistMenu.paa";
};
Dis-moi si c'est mieux :)
 
Je viens de voir que dans le config de l'Iphone tu as mis onButtonClick au lieu de action.

Voici le bouton corrigé à mettre dans le config_master.cpp de l'Iphone :
Code:
class ButtonMoves {
    action = "closeDialog 0; createDialog ""life_moves_menu"";";
    displayName = "Moves Menu";
    condition = "";
    iconFile = "icons\whitelistMenu.paa";
};
Dis-moi si c'est mieux :)
oui c étais sa c est good merci