Français Not solved Comment faire en sorte qu'une licence puisse traiter plusieurs ressources différentes ?

  • Bonjour Visiteur ! Les sujets de cette catégorie sont clos. Si vous souhaitez réouvrir, merci de nous contacter en précisant le lien du post à réouvrir !

    Hello Visiteur ! The topics in this category are closed. If you wish to reopen, please contact us with the link of the post you wish to reopen !

Tzeam

User
16/4/20
2
0
100
Bonjour,
Je me casse la tête sur un truc qui a l'air plutôt simple...
J'aimerais faire en sorte qu'une licence soit en capacité de traitre plusieurs ressources différentes.
Sauf qu'avec le framework de tonic le nom de la License et calquer sur le nom de la ressources une fois process.

Exemple d'init que j'aimerai faire:
Code:
this addAction[localize"STR_Process_Exemple1",life_fnc_processAction,"Exemple1",0,false,false,"",' life_inv_Exemple1_pastraiter > 0 && !life_is_processing && !life_action_inUse',5];
this addAction[localize"STR_Process_Exemple2",life_fnc_processAction,"Exemple2",0,false,false,"",' life_inv_Exemple2_pastraiter > 0 && !life_is_processing && !life_action_inUse',5];
this addAction[format ["%1 ($%2)",localize (getText(missionConfigFile >> "Licenses" >> "NomRandom" >> "displayName")), 
[(getNumber(missionConfigFile >> "Licenses" >> "NomRandom" >> "price"))] 
call life_fnc_numberText],life_fnc_buyLicense,"NomRandom",0,false,false,"",' !license_civ_NomRandom && playerSide isEqualTo civilian ',5];

J'ai bien compris que je doit faire une modification dans le fn_processAction.sqf
j'ai essayez ceci comme modif

Ligne 11
apres
"_text"
J'ai rajouter:
"_LicenseNeed"

Ligne 23
Code:
_LicenseNeed = M_CONFIG(getArray,"ProcessAction",_type,"LicenseNeed");

Ligne 29 dans
_itemInfo =
J'ai rajouter
"LicenseNeed" apres _noLicenseCost

Dans mon Config_Process.hpp
J'ai rajouter
LicenseNeed[] = {{"NomRandom"}};
En dessous de:
NoLicenseCost = 100;
Pour préciser de quelle licences à besoin la ressource X pour être traité.
Quand je tests in-game je peux effectivement process mes deux ressources, sauf que je n'ai besoin d'aucune licence pour traiter...
et la barre de progression n'affiche aucun texte.
Si quelqu'un peu m'aidé je ne dis pas non ^^
 
Dernière édition:
Salut !

Dans fn_processAction.sqf (celui de base), en dessous de _cost = _cost * (count _oldItem); ajoute :
Code:
_exit = false;
if !(_hasLicense) then {
    _condition = M_CONFIG(getText,"ProcessAction",_type,"LicenseNeed");
    if !(_condition isEqualTo "") then {
        _condition_result = call compile _condition;

        if !(isNil "_condition_result") then {
            if (_condition_result isEqualType true) then {
                if (_condition_result isEqualTo true) then {
                    _hasLicense = true;
                } else {
                    _exit = true;
                };
            };
        };
    };
};
if (_exit) exitWith {hint "Vous n'avez pas la licence requise !"; life_is_processing = false; life_action_inUse = false;};

Et dans ton config_process.hpp ajoute cette ligne :
Code:
LicenseNeed = "";

Qui deviendra par exemple :
Code:
LicenseNeed = "license_civ_driver OR license_civ_trucking";
Ou encore :
Code:
LicenseNeed = "license_civ_driver AND  license_civ_trucking";
 
Dernière édition:
  • Like
Les réactions: Joe Dalton et Tzeam
Bonjour,
Merci pour la réponse Maxence, j'ai essayé les modifications que vous m'avez suggéré cela fonction à moitié.
Voici les résultats que j'ai:
J'ai pas besoin de la License pour traiter
Aucune différence au niveau du temps de traitement quand je traite avec ou sans celle-ci.
Le process s’effectue correctement.
Dans le panneau je ne peux pas acheter la License

Voici l'init du panneau :
Code:
this addAction[localize"STR_Process_Exemple1",life_fnc_processAction,"Exemple1",0,false,false,"",' life_inv_Exemple1_pastraiter > 0 && !life_is_processing && !life_action_inUse',5];
this addAction[localize"STR_Process_Exemple2",life_fnc_processAction,"Exemple2",0,false,false,"",' life_inv_Exemple2_pastraiter > 0 && !life_is_processing && !life_action_inUse',5];
this addAction[format ["%1 ($%2)",localize (getText(missionConfigFile >> "Licenses" >> "NomRandom" >> "displayName")),
[(getNumber(missionConfigFile >> "Licenses" >> "NomRandom" >> "price"))]
call life_fnc_numberText],life_fnc_buyLicense,"NomRandom",0,false,false,"",' !license_civ_NomRandom && playerSide isEqualTo civilian ',5];
Voici un exemple d'une class dans mon Config_Process.hpp :
Code:
   class Exemple1 {
        MaterialsReq[] = {{"Exemple1_pastraiter",10},{"itemrandom",1}};
        MaterialsGive[] = {{"Exemple1 ",10}};
        Text = "STR_Process_Exemple1";
        NoLicenseCost = 100;
        LicenseNeed = "NomRandom";
    };

Dans les log coter client j'ai ceci qui ressort :
Code:
18:45:49 Error in expression <NomRandom>
18:45:49   Error position: <NomRandom>
18:45:49   Error Variable indéfinie dans une expression: NomRandom
 
Bonjour,

Regarde ce que as mis Maxence, juste au dessus, dans la variable LicenseNeed =

il as mis une license_civ_xxx et non la class de la license.