Français Empêcher de faire un traitement sans licence

  • Auteur de la discussion Auteur de la discussion papy cameron
  • Date de début Date de début
18/1/21
38
2
3
450
Salut je pense ne pas être le seul a me retrouver a vouloir bloquer un traitement pour une licence (c'est à dire enlever la possibilité de traiter sans licence) j'ai trouver la solution grâce a Maxence Maxence qui ma aider voila comment faire.​

Dans votre Mpmission\core\action\fn_processAction.sqf une fois ouvert aller a la ligne 96 sélectionnez tout jusqu'en bas du fichier et remplacez tout par ceci :
Code:
if (_hasLicense) then {
    for "_i" from 0 to 1 step 0 do {
        uiSleep  0.28;
        _cP = _cP + 0.01;
        _progress progressSetPosition _cP;
        _pgText ctrlSetText format ["%3 (%1%2)...",round(_cP * 100),"%",_upp];
        if (_cP >= 1) exitWith {};
        if (player distance _vendor > 10) exitWith {};
    };
    if (player distance _vendor > 10) exitWith {hint localize "STR_Process_Stay"; "progressBar" cutText ["","PLAIN"]; life_is_processing = false; life_action_inUse = false;};

    {
        [false,(_x select 0),((_x select 1)*(_minimumConversions))] call life_fnc_handleInv;
    } count _oldItem;

    {
        [true,(_x select 0),((_x select 1)*(_minimumConversions))] call life_fnc_handleInv;
    } count _newItem;

    "progressBar" cutText ["","PLAIN"];
    if (_minimumConversions isEqualTo (_totalConversions call BIS_fnc_lowestNum)) then {hint localize "STR_NOTF_ItemProcess";} else {hint localize "STR_Process_Partial";};
    life_is_processing = false; life_action_inUse = false;
} else {
    hint "Tu n'as pas la licence requise !";
    "progressBar" cutText ["","PLAIN"];
    life_is_processing = false;
    life_action_inUse = false;
};

Ensuite c'est la procédure classique pour ajouter un traitement :
Allez sur votre mapping et posez un objet ou autre et prenez dans l'init par exemple pour le pétrole mettez ceci :
Code:
this enableSimulation false;
this allowDamage false; this addAction[localize"STR_Process_Oil",life_fnc_processAction,"oil",0,false,false,"",' life_inv_oilUnprocessed > 0 && !life_is_processing && !life_action_inUse',5];
Voilà, les personnes qui auront la licence OIL pourront traiter et seulement eux.

Pour acheter la licence soit vous ajoutez cette ligne :
Code:
this addAction[format ["%1 ($%2)",localize (getText(missionConfigFile >> "Licenses" >> "oil" >> "displayName")), [(getNumber(missionConfigFile >> "Licenses" >> "oil" >> "price"))] call life_fnc_numberText],life_fnc_buyLicense,"oil",0,false,false,"",' !license_civ_oil && playerSide isEqualTo civilian ',5];
Soit vous faites un shop de licences en espérant avoir été assez clair :)
 
Dernière édition par un modérateur:
Bonjour juste pour vous informer que dans le fichier c'est pas la ligne 96 mais la ligne 104 de base

Cordialement