Français Solved Tutorial pour les dépanneurs sur les réparations avec le toolkit

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

_NEYPHIS_

User
29/12/19
297
7
20
1 100
mail-rp.com
Bonsoir, je cherche un script de ce style pour les dépanneur qui permet justement aux civil de as 50% et les dp as 100%, que le kit civil soit utilisable une seul fois et celui des dp en illimité


Merci par avance a celui qui feras un tuto pour tous le monde :)
 
Bonjour,

Il suffit de réparer le véhicule à moitié (divisé par 2) et si le type possède une licence dépanneur (ou le métier quoi que ce soit d'autre) tu répares à fond, ce n'est pas bien compliqué mais sans les fichiers c'est compliqué aha.
 
On peut oui, ajoute moi sur discord Aecy#1290 afin d'avoir plus d'infos concernant ta modification et on apportera les modifications ici ensuite pour ensuite en faire un tuto.
 
Personnellement j'aurais crée un deuxième fichier pour éviter de s'embrouiller mais tu peux procéder comme sa :

[CODE title="repairTruck"]#include "..\..\script_macros.hpp"
/*
File: fn_repairTruck.sqf
Author: Bryan "Tonic" Boardwine

Description:
Main functionality for toolkits, to be revised in later version.
*/
private ["_veh","_upp","_ui","_progress","_pgText","_cP","_displayName","_test","_sideRepairArray"];
_veh = cursorObject;
_dammage = 0; //Ici tu déclare tes dammages pour la suite
life_interrupted = false;
if (isNull _veh) exitWith {};
if ((_veh isKindOf "Car") || (_veh isKindOf "Ship") || (_veh isKindOf "Air")) then {
if (life_inv_toolkit > 0) then {
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"];};

_sideRepairArray = LIFE_SETTINGS(getArray,"vehicle_infiniteRepair");

//Check if playerSide has infinite repair enabled
if (playerSide isEqualTo civilian && (_sideRepairArray select 0) isEqualTo 0) then {
[false,"toolkit",1] call life_fnc_handleInv;
};
if (playerSide isEqualTo west && (_sideRepairArray select 1) isEqualTo 0) then {
[false,"toolkit",1] call life_fnc_handleInv;
};
if (playerSide isEqualTo independent && (_sideRepairArray select 2) isEqualTo 0) then {
[false,"toolkit",1] call life_fnc_handleInv;
};
if (playerSide isEqualTo east && (_sideRepairArray select 3) isEqualTo 0) then {
[false,"toolkit",1] call life_fnc_handleInv;
};
if (license_civ_depanneur) then { //Si le gars a la license dep
[true,"toolkit",1] call life_fnc_handleInv; //Sa lui utilisera un kit mais lui en rendra un
_veh setDamage _dammage; //Sa mettra les dammage a 0
titleText[localize "STR_NOTF_RepairedVehicle","PLAIN"]; //Sa titleText l'info
}else {
_dammage = 0.5;// si le gars n'a pas la license ducoup sa met le vehicule a 50% de vie
_veh setDamage _dammage;//On set les dammages
titleText[localize "STR_NOTF_RepairedHalfVehicle","PLAIN"]; //Info
};
};
};
[/CODE]

Dans ta stringtable tu met sa :

[CODE title="stringtable.xml"] <Key ID="STR_NOTF_RepairedHalfVehicle">
<Original>Vous avez réparé ce véhicule a moitié (Contacter les déppaneur pour une réparation compléte).</Original>
</Key>[/CODE]

Aprés ce qui pourrais être cool a faire c de récupe les dammages du véhicule avant la réparation pour check les parties du véhicule abimé pour ne pas abimer tout le véhicule a 50% et juste mettre les parts abîme a 50%