Français Solved Comment personnaliser les salaires et les licences métiers dans le script Job System

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

Bonaparte

User
12/6/21
131
4
6
950
Bonjour, je fait se poste pour pouvoir utiliser des options du script Job System.
Aujourd'hui sur mon serveur j'ai plusieurs licences métiers et je voudrai les rajouter au script de façon a pouvoir avoir une prise de service avec salaire personnaliser pour chaque métier et donc qu'il ne touche leur salaire uniquement si ils sont en service. Pareil pour les shops métiers qu'il ne puisse avoir accès uniquement si ils ont pris leur services.
Et je voudrai rajouter mes licences métiers au pole emploi du script Job System.
Est ce que vous pouvez m'aidé a modifier le script pour l'adapter a ma demande je vous remercie d'avance.
 
Solution
Hello! J'ai une idée, mais je n'ai pas testé.

Dans ton jobs.cpp tu peux ajouter (à la fin) :
Code:
class JobPriseService1 {
    displayName = "Prise de service";
    description = "Test";
    paycheck = 1800;
    conditions = "license_civ_rebel";
    initPath = "The-Programmer\JobSystem\scripts\prise_service_1.sqf";
};

Et créer un fichier prise_service_1.sqf dans ta mission/The-Programmer/JobSystem/scripts avec :
Code:
/*
    Maxence
*/
#define config_job (missionConfigFile >> "The_Programmer_JobSystem" >> "jobs" >> "prise_service")

params [
    ["_controls", [], [[]]]
];

_controls params [["_title", controlNull, [controlNull]],["_btn1", controlNull, [controlNull]],["_btn2", controlNull, [controlNull]],["_btn3", controlNull, [controlNull]],["_btn4"...
Hello! J'ai une idée, mais je n'ai pas testé.

Dans ton jobs.cpp tu peux ajouter (à la fin) :
Code:
class JobPriseService1 {
    displayName = "Prise de service";
    description = "Test";
    paycheck = 1800;
    conditions = "license_civ_rebel";
    initPath = "The-Programmer\JobSystem\scripts\prise_service_1.sqf";
};

Et créer un fichier prise_service_1.sqf dans ta mission/The-Programmer/JobSystem/scripts avec :
Code:
/*
    Maxence
*/
#define config_job (missionConfigFile >> "The_Programmer_JobSystem" >> "jobs" >> "prise_service")

params [
    ["_controls", [], [[]]]
];

_controls params [["_title", controlNull, [controlNull]],["_btn1", controlNull, [controlNull]],["_btn2", controlNull, [controlNull]],["_btn3", controlNull, [controlNull]],["_btn4", controlNull, [controlNull]],["_btn5", controlNull, [controlNull]],["_btn6", controlNull, [controlNull]],["_btn7", controlNull, [controlNull]],["_btn8", controlNull, [controlNull]],["_btn9", controlNull, [controlNull]],["_btn10", controlNull, [controlNull]]];

_title ctrlSetText (getText (config_job >> "displayName"));

_btn1 ctrlSetText (["STR_StartJobServiceButton", "The_Programmer_JobSystem", "JobSystem_localization"] call theprogrammer_core_fnc_localize);
_btn1 ctrlAddEventHandler ["ButtonClick", {
    0 spawn {
        if (TP_JobSystem_onDuty) exitWith {
            hint (["STR_FinishMission", "The_Programmer_JobSystem", "JobSystem_localization"] call theprogrammer_core_fnc_localize);
        };

        closeDialog 0;
        TP_JobSystem_onDuty = true;
        closeDialog 0;
    };
}];

_btn2 ctrlSetText (["STR_EndJobServiceButton", "The_Programmer_JobSystem", "JobSystem_localization"] call theprogrammer_core_fnc_localize);
_btn2 ctrlAddEventHandler ["ButtonClick", {
    if !(TP_JobSystem_onDuty) exitWith {
        hint (["STR_CantDoThis", "The_Programmer_JobSystem", "JobSystem_localization"] call theprogrammer_core_fnc_localize);
    };

    TP_JobSystem_onDuty = false;
    ["TaskAssigned",["",(["STR_END_SERVICE", "The_Programmer_JobSystem", "JobSystem_localization"] call theprogrammer_core_fnc_localize)]] call BIS_fnc_showNotification;

    closeDialog 0;
}];

if (TP_JobSystem_onDuty) then {
    _btn1 ctrlEnable false;
} else {
    _btn2 ctrlEnable false;
};

{
    _x ctrlShow false;
} forEach [_btn3, _btn4, _btn5, _btn7, _btn8, _btn9, _btn10];

Dans les endroits qui nécessitent d'être en service pour accéder au shop par exemple, il faut que tu modifies la condition. Par exemple :
Code:
conditions = "license_civ_rebel";
deviendra ceci :
Code:
condition = "(license_civ_rebel && (TP_JobSystem_curJob == ""JobPriseService1""))";
Ici JobPriseService1 correspond à la class du jobs.cpp

Si tu as plusieurs jobs avec prise de service uniquement, tu peux refaire ces 3 étapes sans oublier de modifier la class du jobs.cpp, le nom du fichier .sqf et le chemin vers ce fichier .sqf dans ton jobs.cpp
 
Solution
salut j'ai tester ca fonctionne mais il y a encore quelque soucis par exemple je touche la paie même si je ne suis pas en service, des que je me déconnecte je perd ma licence aussi.