Français Solved Problème avec le fichier deviceMine.sqf pour le minage de pétrole avec plusieurs camions citerne

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

Phoenix53

User
30/9/21
137
4
3
800
Bonjour,
J'ai regardé ce post https://forum.the-programmer.com/post/pétrole-via-camion-citerne.2155/#post-12319 , et je n'arrive pas à faire ce que je veux...
J'aimerais faire en sorte que plusieurs camions citerne puisse récolter du pétrole mais ça me dit que le deviceMine.sqf n'est pas correcte quand j'essaye des chose en rajoutant les classname des autres camion. Je pense que je l'écrit mal et c'est pour ca que ca cause une erreur.

Les classname sont:
  • C_Van_01_fuel_F
  • Hazendarck_GAZ_Next_Fuel
  • Hosali_MercedesActrosTanker
  • Hosali_ManTanker
  • B_Truck_01_fuel_F
  • C_Truck_02_fuel_F

Et mon fichier deviceMine.sqf se présente comme cela:
Code:
_exit = false;
if ((typeOf _vehicle) == ("C_Van_01_fuel_F","Hazendarck_GAZ_Next_Fuel","Hosali_MercedesActrosTanker","Hosali_ManTanker","B_Truck_01_fuel_F","C_Truck_02_fuel_F")) then {
    if !(_zone == ("oil_field_1","oil_field_2","gaz_field")) exitWith {_exit = true;};
};
if (_exit) exitWith {hint "Vous ne pouvez pas récolter cette ressource avec ce véhicule.";};

_vehicle setVariable ["mining",true,true]; //Lock the device

Merci d'avance pour votre aide !!!
 
Dernière édition par un modérateur:
Hello

Essaye ça


Code:
 _exit = false;
if ((typeOf _vehicle) == ["C_Van_01_fuel_F","Hazendarck_GAZ_Next_Fuel","Hosali_MercedesActrosTanker","Hosali_ManTanker","B_Truck_01_fuel_F","C_Truck_02_fuel_F"]) then {
if !(_zone == ("oil_field_1","oil_field_2","gaz_field")) exitWith {_exit = true;};
};
if (_exit) exitWith {hint "Vous ne pouvez pas récolter cette ressource avec ce véhicule.";};

J'ai pas teste mais pas quelque ça marche
Par contre un forEach je pense que y a un monde où ça marche
 
Bonjour
Et merci Davidovitch Davidovitch pour ta réponse :)
J'ai testé et je n'ai plus d'erreur dans les logs, cependant cela ne fonctionne pas plus, le camion ne se met pas à récolter …
J'utilise le menu radial, et j'ai essayé deux solutions

SOLUTION N°1: (buttonAction de base)
Code:
class button_8 {
            displayName = "Mining And Fuel";
            buttonAction = "[] spawn {closeDialog 0; sleep 0.1; ['vehicle_mining'] spawn CBX_fnc_openInteraction;};";
            buttonToolTip = "";
            side[] = {civ};
            disable = false;
            condition = "(((typeOf cursorObject) == 'O_Truck_03_device_F') || ((typeOf cursorObject) in ['C_Van_01_fuel_F','Hazendarck_GAZ_Next_Fuel','Hosali_MercedesActrosTanker','Hosali_ManTanker','B_Truck_01_fuel_F','C_Truck_02_fuel_F']) && (cursorObject in life_vehicles))";
};

Résultat: Le menu Radial s'ouvre et quand j'appui sur "Mining" un hint s'affiche en disant "il n'y a aucune interaction a afficher"

SOLUTION N°2: (buttonAction modifié)
Code:
class button_8 {
            displayName = "Mining And Fuel";
            buttonAction = "[cursorObject] spawn life_fnc_deviceMine; closeDialog 0;";
            buttonToolTip = "";
            side[] = {civ};
            disable = false;
            condition = "(((typeOf cursorObject) == 'O_Truck_03_device_F') || ((typeOf cursorObject) in ['C_Van_01_fuel_F','Hazendarck_GAZ_Next_Fuel','Hosali_MercedesActrosTanker','Hosali_ManTanker','B_Truck_01_fuel_F','C_Truck_02_fuel_F']) && (cursorObject in life_vehicles))";
};

Résultat: Le menu Radial s'ouvre et quand j'appui sur "Mining" rien ne se passe quand je me trouve sur le lieu de récolte mais quand je suis ailleurs ca me marque "vous n'êtes pas a proximité du champs de récolte" et par contre ca me bloque le menu radial ou la touche Windows pendant quelques secondes . . .
 
Dernière édition par un modérateur:
Hey
J'ai testé de modifier ton code pour y mettre un forEach, et je pense que ça devrait fonctionner :

Code:
_vehAllow = ["C_Van_01_fuel_F","Hazendarck_GAZ_Next_Fuel","Hosali_MercedesActrosTanker","Hosali_ManTanker","B_Truck_01_fuel_F","C_Truck_02_fuel_F"]; 
{
if ((typeOf _vehicle) == _x ) then {
if !(_zone == ("oil_field_1","oil_field_2","gaz_field")) exitWith {_exit = true;};
};
    }forEach _vehAllow;



if (_exit) exitWith {hint "Vous ne pouvez pas récolter cette ressource avec ce véhicule.";};
Disclaimer : je n'ai pas tout ton code, donc il y a des chances que ça foire x) mais essaye de l'adapter.
ForEach fonction => https://community.bistudio.com/wiki/forEach
 
Davidovitch Davidovitch
ce que je comprends pas c'est que quand j'appuie sur le menu radial et que rien ne se passe après je n'ai plus accès ni au menu Windows ni à l'inventaire Y pendant un certains temps environ 1 min
 
Bizarre
essaye de refaire l'installation complète du script
Cependant, avec un véhicule qui mine automatiquement, normalement tu n'as pas besoin d'ouvrir le menu radial$
 
voilà le fn_vInteractionMenu.sqf Maxence Maxence
et si le menu radial s'ouvre, et quand j'appui sur le minage, un deuxième menu radial s'ouvre pour mettre en route le dispositif de pompage mais quand je clique rien ne se passe . . .
 

Fichiers joints

j'ai essayé de créer l'action sur la molette et ca fonctionne mais la seule chose qui fonctionne pas c'est que ca met le hint "le véhicule est plein" alors qu'il est vide