Français Solved Comment changer le menu selon le côté policier/civil

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

Alfresole

User
30/4/20
55
3
2
300
Bonjour tout le monde,

Donc voilà j'ai un menu que j'ai placé dans le dossier "textures". Il y a tout les boutons nécessaires etc... Mais je veux un menu différent pour la police. Est-ce possible de faire en sorte que si on est du côté police au lieu d'ouvrir le fichier menu.paa ça ouvre le menu1.paa ?

Je suppose que c'est un : if ( playerside == west) then { open menu1 .paa}

Quelque chose dans le style mais présicemment je ne sais pas donc si vouspouvez m'aiguiller ça serait avec plaisir :)
 
Solution
C'est bon j'ai trouvé merci grâce à vos conseils.

Il fallait mettre l'idd du dialog que je change pcq c'était 2001 dans mes scripts. Et le create dialog c'est playerSettings qu'il fallait mettre.
Encore mercià tous ;)
Salut !

Oui, c'est possible.
Il faut que tu créés une nouvelle fonction (donc un fichier .sqf et l'ajouter dans ton Functions.hpp) qui ouvrira le menu. Par exemple :
Code:
createDialog "MenuPolice"; // Class du dialog

_display = findDisplay 1520; // IDD du dialog
if (playerSide isEqualTo west) then {
    (_display displayCtrl 1521) ctrlSetText "textures\menu1.paa"; // 1521 : IDC du fond (Life_RscPicture)
} else {
    (_display displayCtrl 1521) ctrlSetText "textures\menu.paa";
};

Et pour ouvrir le menu, au lieu de faire un
Code:
createDialog "nom_du_dialog";
tu devras faire :
Code:
[] call life_fnc_NOM_FONCTION;
 
Bonjour merci de ta réponse dans un permier temps

Voilà ce que j'ai fait :

dans Function.hpp j'ai ajouté ce code :

class policemenu {} ;

en dessous de :

class Player_Menu {
file = "core\pmenu";

Dans mon player_inv j'ai :

class controlsBackground
{
class MainBackground : Life_RscPicture
{
text = "textures\zmenu.paa";
idc = 6457;
onButtonClick = "[] call life_fnc_policemenu";
x = 0.128125 * safezoneW + safezoneX;
y = -0.126843657817109 * safezoneH + safezoneY;
w = 0.7796875 * safezoneW;
h = 1.40412979351032 * safezoneH;
};

Et j'ai crée un .sqf ( fn_policemenu) que j'ai placé dans core\functions (serveur en création constant) puis dans dialog\functions (même scénario)


createDialog "MenuPolice"; // Class du dialog

_display = findDisplay 1520; // IDD du dialog
if (playerSide isEqualTo west) then {
(_display displayCtrl 6457) ctrlSetText "textures\zmenu1.paa"; // 1521 : IDC du fond (Life_RscPicture)
} else {
(_display displayCtrl 6457) ctrlSetText "textures\zmenu.paa";
};

Mes textures se nomment zmenu.paa et zmenu1.paa

Et du coup je suis revenu en arrière, où est-ce que je me suis trompé ?
 
bonsoir , enleve le redirection dans ton Life_RscPicturetext = "" et ensuite le onButtonClick = "[] call life_fnc_policemenu"; c'est sur un bouton qu'il se mets non sur une image
 
Bonsoir, merci de la réponse plutôt rapide mais ça reste en "création" au niveau du serveur...

Voilà ce que j'ai du coup :

Au niveau du playerinv :

class MainBackground : Life_RscPicture
{
idc = 6457;
x = 0.128125 * safezoneW + safezoneX;
y = -0.126843657817109 * safezoneH + safezoneY;
w = 0.7796875 * safezoneW;
h = 1.40412979351032 * safezoneH;
};

Puis du coup j'ai mit sur le fn_p_openmenu :

if (!alive player || dialog) exitWith {}; //Prevent them from opening this for exploits while dead.
[] call life_fnc_policemenu;
disableSerialization;

Le fuctions.hpp ainsi que le fn_policemenu n'ont pas été changé ?

Est-ce que je touche aux mauvais dossiers ? Est-ce que je me trompe d'emplacement etc... ?

merci beaucoup de votre aide
 
Salut, déjà première question, tes textures, c'est les boutons que tu veux changer de texture ou le menu entier ? Je veux dire c'est juste un fond avec les bouton directement intégré dans le background, ou tu veux carrément attribuer une texture par bouton ?

Ensuite normalement, si tu veux call un fichier, t'es obligé de le recenser dans le function.hpp, sinon il le trouvera jamais.
 
Salut !

Alors voilà c'est le menu entier c'est à dire que c'est un menu sur photoshop. Les menus sont quasi identiques juste les policiers n'ont pas les boutons market et gang dans leur interface mais seulement Interpol.
 
Encore merci

Le serveur se lance mais le menu Y ne fonctionne plus j'ai ajouté la function (class policemenu {} ;) dans Functions.hpp en Civil et police cela m'affiche ça :https://www.noelshack.com/2020-19-1-1588601105-107410-screenshots-20200504155601-1.jpg

Mais ça avance déjà,
Dans fn_p_openmenu j'ai :

Code:
if (!alive player || dialog) exitWith {}; //Prevent them from opening this for exploits while dead.

[] call life_fnc_policemenu;

disableSerialization;

à la place de

Code:
if (!alive player || dialog) exitWith {}; //Prevent them from opening this for exploits while dead.

createDialog "playerSettings";

disableSerialization;

Est-ce que c'est bien là que je dois mettre le call life_fnc_policemenu ?
Dans le player_inv j'ai :

Code:
class MainBackground : Life_RscPicture

{

idc = 6457;

x = 0.128125 * safezoneW + safezoneX;

y = -0.126843657817109 * safezoneH + safezoneY;

w = 0.7796875 * safezoneW;

h = 1.40412979351032 * safezoneH;

};

j'ai rajouté class policemenu [}; dans le functions.hpp dans la catégorie

Code:
class Player_Menu {

        file = "core\pmenu";

et j'ai ça dans le fn_policemenu.sqf que j'ai crée et bien mit core/pmenu :

Code:
createDialog "policemenu"; // Class du dialog



_display = findDisplay 1520; // IDD du dialog

if (playerSide isEqualTo west) then {

(_display displayCtrl 6457) ctrlSetText "textures\zmenu1.paa"; // 1521 : IDC du fond (Life_RscPicture)

} else {

(_display displayCtrl 6457) ctrlSetText "textures\zmenu.paa";

};

ça avance, peut etre définir quelque chose dans le player_sys ? Le 1520 dans la ligne _display = findDisplay 1520; // IDD du dialog, je ne sais pas à quoi il correspond et à quoi il faut potentiellement le lier.

Merci :)
 
Dernière édition:
Bonjour,

Tu pourrai juste ajouter tes codes dans l'outils adéquates car c'est indigeste comme ça ... (Le bouton insérer ( ... ) puis </> Code )

Merci !
 
C'est bon j'ai trouvé merci grâce à vos conseils.

Il fallait mettre l'idd du dialog que je change pcq c'était 2001 dans mes scripts. Et le create dialog c'est playerSettings qu'il fallait mettre.
Encore mercià tous ;)
 
Solution