Français Not solved Script pour améliorer les dépanneurs en modifiant les actions possibles

  • 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 !
20/4/20
53
1
300
Bonjour à tous, j'ai en tête de faire un script pour améliorer le gameplay des dépanneurs en utilisant les hit des véhicules

Par exemple, les dépanneurs ne pourront réparer que le moteur ou bien que les roues en gros chaques parties du véhicule...
J'ai trouvé les classnames des hit des véhicules et j'arrive à créer un add actions dans la console sur eden
Le but est cependant de modifier le script de tonic pour y intégrer les add actions a conditions d'être civil et dépanneur

Seulement voila, lorsque j'appel mon script dans la console, impossible qu'il s'execute....

voici le bout de script en question
Code:
#include "..\..\script_macros.hpp"
/*
    File: fn_depanneur.sqf
    Author: John O'connor (Arkane08)

    Description:
    dépanneur avancer via addactions
*/
_veh = cursorObject;
life_interrupted = false;

private ["_veh","_upp","_ui","_progress","_pgText","_cP","_displayName","_test"];
if (isNull _veh) exitWith {};
if ((_veh isKindOf "Car") then {
    if playerSide isEqualTo civilian && license_civ_dir then {
        if (_veh hitPointEngine = 1) then {
        player addaction ["Changer le joint de culasse",{_veh setHitPointDamage ["HitPointEngine",0];};];
        };
        if (_veh HitPointFuel = 1) then {
        player addaction ["Changer la pompe à essence",{_veh setHitPointDamage ["HitPointFuel",0];};];
        };
        if (_veh hitPointBody = 1) then {
        player addaction ["Redresser l'aile",{_veh setHitPointDamage ["HitPointBody",0];};];
        };
        life_action_inUse = true;
        _displayName = FETCH_CONFIG2(getText,"CfgVehicles",(typeOf _veh),"displayName");
        _upp = format [localize "STR_NOTF_Repairing",_displayName];
                       
        //Setup our progress bar.
        disableSerialization;
        "progressBar" cutRsc ["life_progress","PLAIN"];
        _ui = uiNamespace getVariable "life_progress";
        _progress = _ui displayCtrl 38201;
        _pgText = _ui displayCtrl 38202;
        _pgText ctrlSetText format ["%2 (1%1)...","%",_upp];
        _progress progressSetPosition 0.01;
        _cP = 0.01;

        for "_i" from 0 to 1 step 0 do {
            if (animationState player != "AinvPknlMstpSnonWnonDnon_medic_1") then {
                [player,"AinvPknlMstpSnonWnonDnon_medic_1",true] remoteExecCall ["life_fnc_animSync",RCLIENT];
                player switchMove "AinvPknlMstpSnonWnonDnon_medic_1";
                player playMoveNow "AinvPknlMstpSnonWnonDnon_medic_1";
            };

            uiSleep 0.27;
            _cP = _cP + 0.01;
            _progress progressSetPosition _cP;
            _pgText ctrlSetText format ["%3 (%1%2)...",round(_cP * 100),"%",_upp];
            if (_cP >= 1) exitWith {};
            if (!alive player) exitWith {};
            if !(isNull objectParent player) exitWith {};
            if (life_interrupted) exitWith {};
        };

        life_action_inUse = false;
        "progressBar" cutText ["","PLAIN"];
        player playActionNow "stop";
        if (life_interrupted) exitWith {life_interrupted = false; titleText[localize "STR_NOTF_ActionCancel","PLAIN"]; life_action_inUse = false;};
        if !(isNull objectParent player) exitWith {titleText[localize "STR_NOTF_ActionInVehicle","PLAIN"];};
    };
};

Merci de m'éclairer via vos lanternes magique sxD ;)
 
Salut ! On dirait que ce que tu veux faire c'est ce que Repair System fait déjà 😅

Si ton script ne s’exécute pas, c'est peut être simplement qu'il est exit par un exitWith. Par exemple, si tu ne regarde pas le véhicule au moment d'executer le script, il ne se passera rien :
Code:
if (isNull _veh) exitWith {};
Si le véhicule n'est pas une voiture, non plus :
Code:
if ((_veh isKindOf "Car") then {
Si tu n'es pas civil ou que tu n'as pas la licence dépanneur, rien non plus :
Code:
if playerSide isEqualTo civilian && license_civ_dir then {
D'ailleurs il manque des parenthèses sur cette condition, c'est peut être le problème.

Si ce n'est pas tout ça, le plus simple c'est d'ajouter des messages de logs (= debug) aux endroits qui t'intéresse par exemple au tout début pour voir si le fichier est bien lancé, après le premier exitWith, dans la première condition etc. Pour faire un message dans le chat il suffit d'ajouter :
Code:
systemChat "Fichier exécuté !";