Français Solved Affichage et achat de licences dans le menu

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

Alexandre

User
29/6/21
20
1
1
300
Bonsoir,

Je m'interroge sur un sujet j'ai commencé un dialog pour les "licences" mais étant donné qu'elles sont réalisées par addAction de base, seriez-vous me guider avec quelques éléments pour afficher ces licences, et acheter celles-ci :

Par exemple ci-dessus en pièce jointe, vous avez un aperçu du dialog à gauche les licences à acheter (Par contre chose que j'aimerais faire c'est retirer au-fur-et-mesure des achats les licences dans cette listebox ? comment doit-je me débrouiller pour cela ? puis à gauche les licences acquises (donc achetées) ?)


licences.png
 
Solution
Petite update :


J'ai bien mes valeurs mais petit problème impossible de récupérer mes valeurs sur mon onButtonClick


C++:
#include "..\..\script_macros.hpp"

private ["_shopType"];

disableSerialization;

_listbuy = ((findDisplay 14122) displayCtrl 5000);
_curlist = ((findDisplay 14122) displayCtrl 5003);

lbClear _listbuy;
lbClear _curlist;

if (!isClass(missionConfigFile >> "ShopsLicenses" >> _this select 0)) exitWith {CloseDialog 0;};

_licences = getArray (missionConfigFile >> "ShopsLicenses" >> _this select 0 >> "items");

_side = switch (playerSide) do {
    case west: {"cop"};
    case independent: {"med"};
    case civilian: {"civ"};
};

{
    if (!(call compile format ['license_%1_%2',_side,_x]))...
Petite édition :

J'ai tenté ça


[CODE lang="cpp" title="fn_licence_menu"]

_shopType = (_this select 3) select 0;

if (isNull _shopType) exitwith {};

private _shopSide = getText (missionConfigFile >> "ShopsLicenses" >> _ShopType >> "side");

if !(playerSide isEqualTo _shopSide) exitWith {};

createDialog "Life_Licence_Menu";
[_shopType] call life_fnc_licence_update_menu;
[/CODE]

Et

[CODE lang="cpp" title="fn_licence_update_menu"]#include "..\..\script_macros.hpp"

private ["_shopType","_listbuy","_curlist","_licences","_name","_price","_textstructure","_side"];

disableSerialization;

_listbuy = ((findDisplay 14122) displayCtrl 2000);
_curlist = ((findDisplay 14122) displayCtrl 2001);

lbClear _listbuy;
lbClear _curlist;

if (!isClass(missionConfigFile >> "ShopsLicenses" >> _shopType)) exitWith {CloseDialog 0;};

_licences = getArray (missionConfigFile >> "ShopsLicenses" >> _shopType >> "items");

_side = switch (playerSide) do {
case west: {"cop"};
case independent: {"med"};
case civilian: {"civ"};
};

{
if (!(call compile format ['license_%1_%2',_side,_x])) then {
_displayName = getText (missionConfigFile >>,"Licenses" >> _x >> "displayName")
_price = getNumber (missionConfigFile >> "Licenses" >> _x >> "price");

if (!(_price isEqualTo -1)) then {
_listbuy lbAdd format ["%1 (%2 €)",(localize _displayName),[_price] call life_fnc_numberText];
_listbuy lbSetData [(lbSize _listbuy)-1,_x];
_listbuy lbSetValue [(lbSize _listbuy)-1,_price];
};
};

} forEach _licences;

_textstructure = "";

{
_name = getText(_x >> "displayName");
if (LICENSE_VALUE(configName _x,_side)) then {
_textstructure = _textstructure + format ["%1<br/>",localize _name];
};

} forEach (format ["getText(_x >> '_side') isEqualTo '%1'",_side] configClasses (missionConfigFile >> "Licenses"));

if (_textstructure isEqualTo "") then {
_curlist ctrlSetStructuredText parseText format ["<t size='0.8px'>Rien</t>"];
} else {
_curlist ctrlSetStructuredText parseText format ["<t size='0.8px'>%1</t>",_textstructure];
};[/CODE]
 
Dernière édition:
Petite update :


J'ai bien mes valeurs mais petit problème impossible de récupérer mes valeurs sur mon onButtonClick


C++:
#include "..\..\script_macros.hpp"

private ["_shopType"];

disableSerialization;

_listbuy = ((findDisplay 14122) displayCtrl 5000);
_curlist = ((findDisplay 14122) displayCtrl 5003);

lbClear _listbuy;
lbClear _curlist;

if (!isClass(missionConfigFile >> "ShopsLicenses" >> _this select 0)) exitWith {CloseDialog 0;};

_licences = getArray (missionConfigFile >> "ShopsLicenses" >> _this select 0 >> "items");

_side = switch (playerSide) do {
    case west: {"cop"};
    case independent: {"med"};
    case civilian: {"civ"};
};

{
    if (!(call compile format ['license_%1_%2',_side,_x])) then {
        _displayName = getText (missionConfigFile >> "Licenses" >> _x >> "displayName");
        _price = getNumber (missionConfigFile >> "Licenses" >> _x >> "price");

        if (!(_price isEqualTo -1)) then {
            _listbuy lbAdd format ["%1 (%2 €)",(localize _displayName),[_price] call life_fnc_numberText];
            _listbuy lbSetData [(lbSize _listbuy)-1,_x];
            _listbuy lbSetValue [(lbSize _listbuy)-1,_price];
        };
    };
   
} forEach _licences;

_textstructure = "";

{
    _name = getText(_x >> "displayName");
    if (LICENSE_VALUE(configName _x,_side)) then {
        _textstructure = _textstructure + format ["%1<br/>",localize _name];
    };
   
} forEach (format ["getText(_x >> '_side') isEqualTo '%1'",_side] configClasses (missionConfigFile >> "Licenses"));

if (_textstructure isEqualTo "") then {
    _curlist ctrlSetStructuredText parseText format ["<t size='0.8px'>Rien</t>"];
} else {
    _curlist ctrlSetStructuredText parseText format ["<t size='0.8px'>%1</t>",_textstructure];
};

Côté dialog

C++:
            onButtonClick = "if ((lbData[5000,lbCurSel (5000)] != """")) then { [false, false, false, lbData[5000,lbCurSel (5000)]] call life_fnc_buyLicenses; CloseDialog 0; };";
 
Dernière édition:
Solution