Français Solved Comment faire en sorte que le script car painter demande un stock de peinture lors de la peinture d'une voiture?

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

Aiden

User
3/9/20
310
10
3
950
Bonjour j ai le script Car Painter et je voudrais savoir si il était possible de faire en sorte qu il faille un stock de peinture pour peindre des voiture je m expliqué enfaite je voudrais que lorsque l on peint une voiture sa nous demande genre 2 pot de peinture ou plus suivant la couche de peinture à mettre
 
Solution
Oui c'est ça le soucis. J'avais fait le code pour les items virtuels. Pour les items physiques :
Dans ton @The_Programmer/addons/car_painter/client/fn_carPainter_payAndPaint.sqf, en dessous de cette ligne :
Code:
[] call the_programmer_carpainter_fnc_carPainter_reset_vehicle_rvmats;
ajoute ces lignes :
Code:
_itemClassname = "pot_f";
_quantity = 5;

if (TP_carPainter_currentVeh_rvmat_index != -1 && !TP_carPainter_currentVeh_rvmat_remove) then {
    if (({_itemClassname isEqualTo _x} count (magazines player)) >= _quantity) then {
        for "_i" from 1 to _quantity do {
            [_itemClassname,false] spawn life_fnc_handleItem;
        };
    } else {
        _exit = true;
    };
};
if (_exit) exitWith {hint format ["Il...
Oui dans l inventaire sois du joueur ou téléphone après j’veux pas un truc compliqué juste qu il faudrait des pot en quantité sans indiquer la couleur
par exemple pour le mat il faut 4 pot pour le metalisé 8 pots et pour le chrome 16
 
Dernière édition:
les rvmat je pense que sa serait mieux pck y’a tellement de couleurs que sa dur à gerer
 
Dernière édition par un modérateur:
Alors tu peux essayer de modifier ton @The_Programmer/addons/car_painter/client/fn_carPainter_payAndPaint.sqf, en dessous de cette ligne :
Code:
[] call the_programmer_carpainter_fnc_carPainter_reset_vehicle_rvmats;
ajoute ces lignes :
Code:
if (TP_carPainter_currentVeh_rvmat_index != -1 && !TP_carPainter_currentVeh_rvmat_remove) then {
    if (life_inv_pot >= 1) then {
        life_inv_pot = life_inv_pot - 1;
    } else {
        _exit = true;
    };
};
if (_exit) exitWith {hint "Il vous faut un pot de peinture pour pouvoir appliquer un RVMAT !";};

Ce bout de code va vérifier s'il a bien un item ayant pour variable "pot" dans son inventaire pour en retirer 1, sinon il annule l'ajout du RVMAT.
Pour modifier l'objet, tu peux modifier (3 fois) life_inv_pot par life_inv_VARIABLE ITEM
 
Je ne vois pas vraiment où pourrait être le problème :unsure:

Est-ce que tu peux m'envoyer ton Config_vItems.hpp et les 8 lignes que tu as ajouté dans le fn_carPainter_payAndPaint.sqf pour vérifier que c'est bien la bonne variable de l'item ?
Est-ce que tu as regardé tes logs client pour vérifier qu'il n'y avait pas d'erreur également ?
 
Je ne vois pas vraiment où pourrait être le problème :unsure:

Est-ce que tu peux m'envoyer ton Config_vItems.hpp et les 8 lignes que tu as ajouté dans le fn_carPainter_payAndPaint.sqf pour vérifier que c'est bien la bonne variable de l'item ?
Est-ce que tu as regardé tes logs client pour vérifier qu'il n'y avait pas d'erreur également ?
du coup j ai modifier je l avait pas mis dans le stringtable mais la du coup quand je veut mettre un rvmat sa me dit qu il faut des pot alors que je les est dans mon inventaire

config.cpp du pot ; https://paste-me.net/oyaqa

config vitem.hpp ;
fn_carPainter_payAndPaint ; https://paste-me.net/fobuv
 
C'est un objet physique ou un objet virtuel en fait ? Parce que c'est pas le même code selon le type d'item.
Ici ça devrait fonctionner avec les items virtuels.

Si c'est bien un item virtuel, pour vérifier que le code est bien exécuté, j'ai ajouté des messages de debug, tu peux mettre ces lignes à la place :
Code:
if (TP_carPainter_currentVeh_rvmat_index != -1 && !TP_carPainter_currentVeh_rvmat_remove) then {
    systemChat "Ok";
    if (life_inv_pot >= 5) then {
        life_inv_pot = life_inv_pot - 5;
    } else {
        _exit = true;
    };
} else {
    systemChat format ["TP_carPainter_currentVeh_rvmat_index : %1 & !TP_carPainter_currentVeh_rvmat_remove : %2", TP_carPainter_currentVeh_rvmat_index, !TP_carPainter_currentVeh_rvmat_remove];
};
if (_exit) exitWith {hint "Il vous faut un pot de peinture pour pouvoir appliquer un RVMAT !";};

Regarde et dis-moi le message que tu as dans le chat après avoir fait l'action
 
Dernière édition:
Oui c'est ça le soucis. J'avais fait le code pour les items virtuels. Pour les items physiques :
Dans ton @The_Programmer/addons/car_painter/client/fn_carPainter_payAndPaint.sqf, en dessous de cette ligne :
Code:
[] call the_programmer_carpainter_fnc_carPainter_reset_vehicle_rvmats;
ajoute ces lignes :
Code:
_itemClassname = "pot_f";
_quantity = 5;

if (TP_carPainter_currentVeh_rvmat_index != -1 && !TP_carPainter_currentVeh_rvmat_remove) then {
    if (({_itemClassname isEqualTo _x} count (magazines player)) >= _quantity) then {
        for "_i" from 1 to _quantity do {
            [_itemClassname,false] spawn life_fnc_handleItem;
        };
    } else {
        _exit = true;
    };
};
if (_exit) exitWith {hint format ["Il vous faut %1 pots de peinture pour pouvoir appliquer un RVMAT !",_quantity];};
 
Solution