Français Not solved Script pour bloquer la réparation lorsque les dépanneurs sont en ligne

  • Auteur de la discussion Auteur de la discussion Robinox
  • Date de début Date de début
  • 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 !

Robinox

User
29/12/19
193
2
6
1 100
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 {
    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...
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 :)
 
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
 
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
 
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 :
800px-A3_console_mission.jpg


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