Français Solved Ajout d'items virtuels et menu T sur un objet

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

Skyrise

User
29/12/19
33
1
9
600
Bonjour,
Je suis entrain d'apprendre un peu le SQF sur Arma 3 (il était temps), mais j'ai un soucis car je n'ai pas de documentation pour le life.

Mon problème est le suivant :
Je fais spawn une caisse avec des armes et de l'équipement sauf que je voudrais bien ajouter des items virtuels, ainsi que ça fonctionne avec le menu T.

En conclusion, je voudrais bien faire comme les véhicules et coffre de maison.

Merci d'avance et bonne journée.
 
Solution
Hello! Dans ton fn_keyHandler.sqf trouve cette ligne :
Code:
private "_list";
et ajoute en dessous :
Code:
_list = ((ASLtoATL (getPosASL player)) nearEntities [["CLASSNAME_CAISSE"], 2.5]) select 0;
if !(isNil "_list") exitWith {
    [_list] spawn life_fnc_openInventory;
};
N'oublie pas de remplacer "CLASSNAME_CAISSE" par la classname de ta caisse.

Dans ton fn_vehicleWeightCfg.sqf trouve cette ligne :
Code:
if (isNil "_weight") then {_weight = -1;};
et ajoute en dessous :
Code:
if (_className == "CLASSNAME_CAISSE") then {_weight = 100;};
Remplace également "CLASSNAME_CAISSE", et le 100 correspond au poids maximum qui peut être mis dans l'inventaire.

Et pour définir correctement les variables et mettre des objets dans...
Hello! Dans ton fn_keyHandler.sqf trouve cette ligne :
Code:
private "_list";
et ajoute en dessous :
Code:
_list = ((ASLtoATL (getPosASL player)) nearEntities [["CLASSNAME_CAISSE"], 2.5]) select 0;
if !(isNil "_list") exitWith {
    [_list] spawn life_fnc_openInventory;
};
N'oublie pas de remplacer "CLASSNAME_CAISSE" par la classname de ta caisse.

Dans ton fn_vehicleWeightCfg.sqf trouve cette ligne :
Code:
if (isNil "_weight") then {_weight = -1;};
et ajoute en dessous :
Code:
if (_className == "CLASSNAME_CAISSE") then {_weight = 100;};
Remplace également "CLASSNAME_CAISSE", et le 100 correspond au poids maximum qui peut être mis dans l'inventaire.

Et pour définir correctement les variables et mettre des objets dans l'inventaire, dans le script qui spawn la caisse, ajoute :
Code:
_box setVariable ["trunk_in_use",false,true];
_box setVariable ["trunk_in_use_by",objNull,true];

_items = [];
_weight = 0;

// Tu peux modifier ici
_items pushBack ["CLASSNAME_ITEM_1",1]; // Format : [classname, quantité]
_items pushBack ["CLASSNAME_ITEM_2",1];
// Ne pas modifier en dessous

{ _weight = _weight + (([(_x select 0)] call life_fnc_itemWeight) * (_x select 1)); } forEach _items;
_box setVariable ["Trunk",[_items,_weight],true];
La variable _box doit correspondre à celle de l'objet créé
 
Solution