Français Sans Réponses Cacher le bouton réparer quand les dépanneurs sont connectés

  • Bonjour Visiteur ! Si un de vos sujets est présent ici, et que vous souhaitez le ré-ouvrire, merci de contacter Loic Shmit par message privée sur le forum !

    Hello Visiteur ! If one of your topics is present here, and you want to reopen it, please contact Loic Shmit by private message on the forum!
Bonjour, J'aimerais trouver un script pour que quand un DP est en ligne, On peux pas réparer le véhicules. Aider moi svp
 
Solution
Alors, c'est pas si simple puisque un joueur ne peut pas savoir si un autre joueur à une certaine licence, donc ce que tu peux faire c'est dans ton fn_requestReceived.sqf, ajoute à la fin :
Code:
if (license_civ_depanneur) then {...

MaKKo

User
Salut tu peux check le script que nous proposons, il y a dans le config_master un moyen de faire que les civils ne puissent pas réparer entièrement les véhicules quand il y a un dépanneur en ligne :)
 

Maxence

Director
Membre du personnel
Director
Alors, c'est pas si simple puisque un joueur ne peut pas savoir si un autre joueur à une certaine licence, donc ce que tu peux faire c'est dans ton fn_requestReceived.sqf, ajoute à la fin :
Code:
if (license_civ_depanneur) then {
    player setVariable ["player_is_depanneur",true,true];
};
Cette variable permettra à chaque joueur de savoir qui est dépanneur, et ainsi de les compter. Pense bien à modifier license_civ_depanneur si depanneur n'est pas la variable de ta licence dépanneur.
Dans ton fn_vInteractionMenu.sqf, en dessous de :
Code:
_Btn1 ctrlSetText localize "STR_vInAct_Repair";
_Btn1 buttonSetAction "[life_vInact_curTarget] spawn life_fnc_repairTruck; closeDialog 0;";
ajoute :
Code:
_fnCountDepanneurs = {
    _count = 0;

    {
        if (_x getVariable ["player_is_depanneur",false]) then {
            _count = _count + 1;
        };
    } forEach playableUnits;   

    _count;
};

if ((([] call _fnCountDepanneurs) >= 1) && !license_civ_depanneur) then {_Btn1 ctrlEnable false;};

Dis-moi si ça fonctionne :)
 
Solution
Alors, c'est pas si simple puisque un joueur ne peut pas savoir si un autre joueur à une certaine licence, donc ce que tu peux faire c'est dans ton fn_requestReceived.sqf, ajoute à la fin :
Code:
if (license_civ_depanneur) then {
    player setVariable ["player_is_depanneur",true,true];
};
Cette variable permettra à chaque joueur de savoir qui est dépanneur, et ainsi de les compter. Pense bien à modifier license_civ_depanneur si depanneur n'est pas la variable de ta licence dépanneur.
Dans ton fn_vInteractionMenu.sqf, en dessous de :
Code:
_Btn1 ctrlSetText localize "STR_vInAct_Repair";
_Btn1 buttonSetAction "[life_vInact_curTarget] spawn life_fnc_repairTruck; closeDialog 0;";
ajoute :
Code:
_fnCountDepanneurs = {
    _count = 0;

    {
        if (_x getVariable ["player_is_depanneur",false]) then {
            _count = _count + 1;
        };
    } forEach playableUnits;  

    _count;
};

if ((([] call _fnCountDepanneurs) >= 1) && !license_civ_depanneur) then {_Btn1 ctrlEnable false;};

Dis-moi si ça fonctionne :)
Par contre j'ai le Radial Menu du coup je fait comment pr le fn_vInteractionMenu.sqf
 

Maxence

Director
Membre du personnel
Director
et la si y'a des dp normalement cela merchera pas pour reparer?
Oui, c'est le but.

Par contre j'ai le Radial Menu du coup je fait comment pr le fn_vInteractionMenu.sqf
Ah ! Dans ton config_button.hpp (de Radial Menu), remplace :
Code:
class button_3 {
    displayName = "STR_vInAct_Repair";
    buttonAction = "[cursorObject] spawn life_fnc_repairTruck; closeDialog 0;";
    buttonToolTip = "";
    side[] = {civ,west,guer};
    disable = false;
    condition = "";
};
par :
Code:
class button_3 {
    displayName = "STR_vInAct_Repair";
    buttonAction = "[cursorObject] spawn life_fnc_repairTruck; closeDialog 0;";
    buttonToolTip = "";
    side[] = {civ,west,guer};
    disable = false;
    condition = "_depOnline = false; {if (_x getVariable [""player_is_depanneur"",false]) exitWith {_depOnline = true;}} forEach playableUnits; (!_depOnline || license_civ_depanneur)";
};

Je ne suis pas certain que ça va fonctionner mais dis moi ;)
 
Dernière édition:
Salut Alors quand je suis pas dp et qu'il n'y en a pas je peux pas reparer, le bouton appartait pas et quand je suis dp le bouton apparait
et voila faut juste regler le soucis de quand y'a pas de dp que l'on puissent reparer
 

Maxence

Director
Membre du personnel
Director
Tu peux aussi tenter des trucs de ton côté, je ne suis pas là pour le faire à ta place ^^

Dans la debug console qu'est-ce que ça te donne comme résultat ceci :
Code:
_depOnline = false;
{if (_x getVariable ["player_is_depanneur",false]) exitWith {_depOnline = true;}} forEach playableUnits;
hint str _depOnline;
 
Non, la console de débug c'est ca :


Tu peux l'obtenir en écrivant dans le chat du jeu (Touche "!") : #login TONMDPADMINDANSTONSERVER.CFG
Et ensuite ta juste à faire Echap.
 
Tu peux aussi tenter des trucs de ton côté, je ne suis pas là pour le faire à ta place ^^

Dans la debug console qu'est-ce que ça te donne comme résultat ceci :
Code:
_depOnline = false;
{if (_x getVariable ["player_is_depanneur",false]) exitWith {_depOnline = true;}} forEach playableUnits;
hint str _depOnline;
Du coup cela me donne False ^^
 
C'est pas mon script ^^ et en gros
quand je suis pas dp et qu'il n'y en a pas je peux pas réparer, le bouton apparait pas et quand je suis dp le bouton apparait