Français Solved Problème avec le script pour poser le meuble

  • Auteur de la discussion Auteur de la discussion Mathias
  • Date de début Date de début
Solution
C'est pour une ancienne version visiblement. Pour ton fichier il faut remplacer cette ligne :
Code:
if (!((typeOf life_container_activeObj) in ["B_supplyCrate_F","Box_IND_Grenades_F"])) exitWith {};
par celle-ci :
Code:
if (!((typeOf life_container_activeObj) in ["B_supplyCrate_F","Box_IND_Grenades_F","ICI_TON_CLASSNAME_DE_TON_MEUBLE"])) exitWith {};

N'oublie pas de remplacer ICI_TON_CLASSNAME_DE_TON_MEUBLE
Salut ! La ligne 22 de ton fn_placeStorage.sqf vient d'où ?
Code:
if ((typeOf _container) == "Land_ChairWood_F") then {// Mettez ici votre gros stockage

Je n'ai pas vu d'étape du genre dans le lien que tu as envoyé. Le problème vient surement de là, il manque un }; à la fin (et surtout la condition n'est pas utile ici)
 
Salut ! La ligne 22 de ton fn_placeStorage.sqf vient d'où ?
Code:
if ((typeOf _container) == "Land_ChairWood_F") then {// Mettez ici votre gros stockage

Je n'ai pas vu d'étape du genre dans le lien que tu as envoyé. Le problème vient surement de là, il manque un }; à la fin (et surtout la condition n'est pas utile ici)
Il disent de faire sa

Ligne 19 :
Code:

Code:
if (_vehicle isKindOf "Box_IND_Grenades_F" || _vehicle isKindOf "B_supplyCrate_F" || _vehicle isKindOf "ICI_TON_CLASSNAME_DE_TON_MEUBLE") then {
Ligne 36 :
Code:

Code:
if (_this isKindOf "Box_IND_Grenades_F" || _this isKindOf "B_supplyCrate_F" || _this isKindOf "ICI_TON_CLASSNAME_DE_TON_MEUBLE") then {

mais dans mon fichier j'ai pas c'est ligne la

mon fchier de base c'est

Code:
#include "..\..\script_macros.hpp"
/*
    File : fn_placestorage.sqf
    Author: NiiRoZz

    Description:
    PLace container were player select with preview

*/
private ["_container","_isFloating"];

if (!life_container_active) exitWith {};
if (life_container_activeObj isEqualTo objNull) exitWith {};
if (!((typeOf life_container_activeObj) in ["B_supplyCrate_F","Box_IND_Grenades_F"])) exitWith {};

_container = life_container_activeObj;
_isFloating = if (((getPos _container) select 2) < 0.1) then {false} else {true};
detach _container;
[_container,true] remoteExecCall ["life_fnc_simDisable",RANY];
_container setPosATL [getPosATL _container select 0, getPosATL _container select 1, (getPosATL _container select 2) + 0.7];
_container allowDamage false;
_container enableRopeAttach false;

if ((typeOf _container) == "Box_IND_Grenades_F") then {
    [false,"storagebig",1] call life_fnc_handleInv;
} else {
    [false,"storagesmall",1] call life_fnc_handleInv;
};

[_container, _isFloating] call life_fnc_placeContainer;
life_container_active = false;
life_container_activeObj = objNull;
 
C'est pour une ancienne version visiblement. Pour ton fichier il faut remplacer cette ligne :
Code:
if (!((typeOf life_container_activeObj) in ["B_supplyCrate_F","Box_IND_Grenades_F"])) exitWith {};
par celle-ci :
Code:
if (!((typeOf life_container_activeObj) in ["B_supplyCrate_F","Box_IND_Grenades_F","ICI_TON_CLASSNAME_DE_TON_MEUBLE"])) exitWith {};

N'oublie pas de remplacer ICI_TON_CLASSNAME_DE_TON_MEUBLE
 
Solution
Non effectivement, il faut remplacer ces lignes :
Code:
if ((typeOf _container) == "Box_IND_Grenades_F") then {
    [false,"storagebig",1] call life_fnc_handleInv;
} else {
    [false,"storagesmall",1] call life_fnc_handleInv;
};
par :
Code:
_type = switch (typeOf _container) do {
    case "B_supplyCrate_F": {"storagebig"};
    case "Box_IND_Grenades_F" : {"storagesmall"};
    case "ICI_TON_CLASSNAME_DE_TON_MEUBLE": {"iciLeNomDeTaVariable"}; // Tu ajoute une ligne pour chaque meuble
    default {};
};

[false,_type,1] call life_fnc_handleInv;
 
Non effectivement, il faut remplacer ces lignes :
Code:
if ((typeOf _container) == "Box_IND_Grenades_F") then {
    [false,"storagebig",1] call life_fnc_handleInv;
} else {
    [false,"storagesmall",1] call life_fnc_handleInv;
};
par :
Code:
_type = switch (typeOf _container) do {
    case "B_supplyCrate_F": {"storagebig"};
    case "Box_IND_Grenades_F" : {"storagesmall"};
    case "ICI_TON_CLASSNAME_DE_TON_MEUBLE": {"iciLeNomDeTaVariable"}; // Tu ajoute une ligne pour chaque meuble
    default {};
};

[false,_type,1] call life_fnc_handleInv;
Sa me dit

Code:
placement of container has been aborted
 
Peut être qu'il n'y a pas le case XX selon le _size dans ce fichier et du coup l'objet n'est pas créé, d'où l'erreur
Pourtant si

voici les 3 fichier


fn_storageBox

Code:
#include "..\..\script_macros.hpp"

private ["_object","_attachPos"];
params [
    ["_size",0,[0]]
];
//if (!(nearestObject [player, "House"] in life_vehicles)) exitWith {hint localize "STR_ISTR_Box_NotinHouse";};

life_container_active = true;
closeDialog 0;

switch (_size) do {
    // AJOUTER CLASS NAME DE LA COLONNE A
    case 0: { _object = "B_supplyCrate_F" createVehicle [0,0,0]; };
    case 1: { _object = "Box_IND_Grenades_F" createVehicle [0,0,0]; };
    case 2: { _object = "Land_ChairWood_F" createVehicle [0,0,0]; };
    case 3: { _object = "Land_OfficeCabinet_02_F" createVehicle [0,0,0]; };
    case 4: { _object = "Land_OfficeChair_01_F" createVehicle [0,0,0]; };
    case 5: { _object = "Land_OfficeCabinet_01_F" createVehicle [0,0,0]; };
    case 6: { _object = "OfficeTable_01_old_F" createVehicle [0,0,0]; };
    case 7: { _object = "OfficeTable_01_new_F" createVehicle [0,0,0]; };
    case 8: { _object = "Land_MapBoard_01_Wall_F" createVehicle [0,0,0]; };
    case 9: { _object = "Land_MapBoard_F" createVehicle [0,0,0]; };
    case 10: { _object = "Land_ChairPlastic_F" createVehicle [0,0,0]; };
    case 11: { _object = "Land_CampingChair_V2_F" createVehicle [0,0,0]; };
    case 12: { _object = "Land_CampingChair_V2_white_F" createVehicle [0,0,0]; };
    case 13: { _object = "Land_RattanChair_01_F" createVehicle [0,0,0]; };
    case 14: { _object = "Land_CampingChair_V1_F" createVehicle [0,0,0]; };
    case 15: { _object = "Land_CampingTable_F" createVehicle [0,0,0]; };
    case 16: { _object = "Land_CampingTable_white_F" createVehicle [0,0,0]; };
    case 17: { _object = "Land_CampingTable_small_F" createVehicle [0,0,0]; };
    case 18: { _object = "Land_TablePlastic_01_F" createVehicle [0,0,0]; };
    case 19: { _object = "Land_WoodenTable_02_large_F" createVehicle [0,0,0]; };
    case 20: { _object = "Land_WoodenTable_large_F" createVehicle [0,0,0]; };
    case 21: { _object = "Land_WoodenTable_small_F" createVehicle [0,0,0]; };
    case 22: { _object = "Land_RattanTable_01_F" createVehicle [0,0,0]; };
    case 23: { _object = "Land_ShelvesWooden_F" createVehicle [0,0,0]; };
    case 24: { _object = "Land_ShelvesWooden_blue_F" createVehicle [0,0,0]; };
    case 25: { _object = "Land_ShelvesWooden_khaki_F" createVehicle [0,0,0]; };
    case 26: { _object = "Land_ShelvesMetal_F" createVehicle [0,0,0]; };
    case 27: { _object = "Land_CashDesk_F" createVehicle [0,0,0]; };
    case 28: { _object = "Land_Icebox_F" createVehicle [0,0,0]; };
    case 29: { _object = "Land_Rack_F" createVehicle [0,0,0]; };
    case 30: { _object = "Land_Metal_rack_F" createVehicle [0,0,0]; };
    case 31: { _object = "Land_Metal_rack_Tall_F" createVehicle [0,0,0]; };
    case 32: { _object = "Land_WoodenCounter_01_F" createVehicle [0,0,0]; };
    case 33: { _object = "Land_Sunshade_F" createVehicle [0,0,0]; };
    case 34: { _object = "Land_Sunshade_01_F" createVehicle [0,0,0]; };
    case 35: { _object = "Land_Sunshade_02_F" createVehicle [0,0,0]; };
    case 36: { _object = "Land_Sunshade_03_F" createVehicle [0,0,0]; };
    case 37: { _object = "Land_Sunshade_04_F" createVehicle [0,0,0]; };
    case 38: { _object = "Land_Sun_chair_F" createVehicle [0,0,0]; };
    case 39: { _object = "Land_Sun_chair_green_F" createVehicle [0,0,0]; };
    case 40: { _object = "Land_Bench_01_F" createVehicle [0,0,0]; };
    case 41: { _object = "Land_Bench_02_F" createVehicle [0,0,0]; };
    case 42: { _object = "Land_Bench_04_F" createVehicle [0,0,0]; };
    case 43: { _object = "Land_Bench_05_F" createVehicle [0,0,0]; };
    case 44: { _object = "Land_Sofa_01_F" createVehicle [0,0,0]; };
    case 45: { _object = "Land_ArmChair_01_F" createVehicle [0,0,0]; };
    case 46: { _object = "Land_WoodenBed_01_F" createVehicle [0,0,0]; };
    case 47: { _object = "Land_TableBig_01_F" createVehicle [0,0,0]; };
    case 48: { _object = "Land_TableSmall_01_F" createVehicle [0,0,0]; };
    case 49: { _object = "Land_Bench_F" createVehicle [0,0,0]; };
    case 50: { _object = "Land_Rug_01_F" createVehicle [0,0,0]; };
    case 51: { _object = "V12_MEUBLETVB" createVehicle [0,0,0]; };
    case 52: { _object = "V12_MEUBLETVBL" createVehicle [0,0,0]; };
    case 53: { _object = "V12_MEUBLETVG" createVehicle [0,0,0]; };
    case 54: { _object = "V12_MEUBLETVM" createVehicle [0,0,0]; };
    case 55: { _object = "V12_MEUBLETV" createVehicle [0,0,0]; };
    case 56: { _object = "V12_MEUBLETVR" createVehicle [0,0,0]; };
    case 57: { _object = "Ikea01_02_F" createVehicle [0,0,0]; };
    case 58: { _object = "Ikea01_03_F" createVehicle [0,0,0]; };
    case 59: { _object = "Ikea01_04_F" createVehicle [0,0,0]; };
    case 61: { _object = "Ikea01_05_F" createVehicle [0,0,0]; };
    case 62: { _object = "Ikea01_06_F" createVehicle [0,0,0]; };
    case 63: { _object = "V12_LIT" createVehicle [0,0,0]; };
    case 64: { _object = "V12_LIT1" createVehicle [0,0,0]; };
    case 65: { _object = "Fridge_01_closed_F" createVehicle [0,0,0]; };
    case 66: { _object = "V12_Lampe" createVehicle [0,0,0]; };
    case 67: { _object = "V12_LampeUV" createVehicle [0,0,0]; };
};

life_container_activeObj = _object;
_attachPos = [0.16, 3, ((boundingBoxReal _object) select 1) select 2];
[_object] remoteExecCall ["life_fnc_simDisable",RANY];
_object attachTo[player, _attachPos];

clearWeaponCargoGlobal _object;
clearMagazineCargoGlobal _object;
clearItemCargoGlobal _object;
clearBackpackCargoGlobal _object;

titleText [localize "STR_NOTF_PlaceContainer", "PLAIN"];

fn_placestorage

Code:
#include "..\..\script_macros.hpp"
/*
    File : fn_placestorage.sqf
    Author: NiiRoZz
    Description:
    PLace container were player select with preview
*/
private ["_container","_isFloating"];

if (!life_container_active) exitWith {};
if (life_container_activeObj isEqualTo objNull) exitWith {};
if (!((typeOf life_container_activeObj) in ["B_supplyCrate_F","Box_IND_Grenades_F","Land_ChairWood_F"])) exitWith {};

_container = life_container_activeObj;
_isFloating = if (((getPos _container) select 2) < 0.1) then {false} else {true};
detach _container;
[_container,true] remoteExecCall ["life_fnc_simDisable",RANY];
_container setPosATL [getPosATL _container select 0, getPosATL _container select 1, (getPosATL _container select 2) + 0.7];
_container allowDamage false;
_container enableRopeAttach false;

if (!((typeOf life_container_activeObj) in ["B_supplyCrate_F","Box_IND_Grenades_F","Land_ChairWood_F"])) exitWith {};


[_container, _isFloating] call life_fnc_placeContainer;
life_container_active = false;
life_container_activeObj = objNull;

fn_placeContainer

Code:
#include "..\..\script_macros.hpp"

private ["_container","_isFloating","_type","_house","_containers","_houseCfg","_message","_isPlaced"];
params [
        ["_container",objNull,[objNull]],
        ["_isFloating",true,[true]]
];

_uid = getPlayerUID player;
_house = nearestObject [player, "House"];

switch (true) do {
    case (typeOf _container isEqualTo "B_supplyCrate_F"): {_type = "storagebig"};
    case (typeOf _container isEqualTo "Box_IND_Grenades_F") : {_type = "storagesmall"};
    case (typeOf _container isEqualTo "Land_ChairWood_F"): {_type = "CHAISE_BOIS"};
    default {_type = ""};
};

_message = 0;
_isPlaced = false;
if (!isNull _house) then {
    _message = 1;
    if (([player] call life_fnc_playerInBuilding) && {([_container] call life_fnc_playerInBuilding)}) then {
        _message = 2;
        if ((_house in life_vehicles) && !(isNil {_house getVariable "house_owner"})) then {
            _message = 3;
            if (!_isFloating) then {
                _message = 4;
                _containers = _house getVariable ["containers",[]];
                _houseCfg = [(typeOf _house)] call life_fnc_houseConfig;
                if (_houseCfg isEqualTo []) exitWith {};
                if (count _containers < (_houseCfg select 1)) then {
                    _isPlaced = true;
                    if (life_HC_isActive) then {
                        [_uid,_container] remoteExec ["HC_fnc_addContainer",HC_Life];
                    } else {
                        [_uid,_container] remoteExec ["TON_fnc_addContainer",RSERV];
                    };
                    _container setVariable ["Trunk",[[],0],true];
                    _container setVariable ["container_owner",[_uid],true];
                    _containers pushBack _container;
                    _house setVariable ["containers",_containers,true];
                    sleep 1;
                };
            };
        };
    };
};

if (_isPlaced) exitWith {};

deleteVehicle _container;
[true,_type,1] call life_fnc_handleInv;

if (_message isEqualTo 0 || _message isEqualTo 1) then {
    hint localize "STR_House_Container_House_Near";
};
if (_message isEqualTo 2) then {
    hint localize "STR_House_Container_House_Near_Owner";
};
if (_message isEqualTo 3) then {
    hint localize "STR_House_Container_Floating";
};
if (_message isEqualTo 4) then {
    hint localize "STR_ISTR_Box_HouseFull";
};

fn_useItem

Code:
#include "..\..\script_macros.hpp"
disableSerialization;

if ((lbCurSel 2005) isEqualTo -1) exitWith {
    hint localize "STR_ISTR_SelectItemFirst";
};

private _item = CONTROL_DATA(2005);
#include "..\..\The-Programmer\Plants\scripts\useItemSelect.sqf"
#include "..\..\The-Programmer\Lockers\scripts\useItemSelect.sqf"
#include "..\..\The-Programmer\EffetsEcran\scripts\useItemSelect.sqf"
#include "..\..\The-Programmer\SpeedCam\scripts\useItemSelect.sqf"
#include "..\..\The-Programmer\CarPainter\scripts\useItemSelect.sqf"
#include "..\..\The-Programmer\Craft\scripts\useItemSelect.sqf"
#include "..\..\The-Programmer\Advanced_Insurance\scripts\useItemSelect.sqf"
#include "..\..\Zoko\CarImmobilizer\scripts\useItemSelect.sqf"


private _edible = M_CONFIG(getNumber, "VirtualItems", _item, "edible");
private _drinkable = M_CONFIG(getNumber, "VirtualItems", _item, "drinkable");

if (_edible > -1 || _drinkable > -1) exitWith {
    if ([false, _item, 1] call life_fnc_handleInv) then {
        if (_edible > -1) then {
            private _sum = life_hunger + _edible;
            life_hunger = (_sum max 5) min 100; // never below 5 or above 100
        };

        if (_drinkable > -1) then {
            private _sum = life_thirst + _drinkable;

            life_thirst = (_sum max 5) min 100; // never below 5 or above 100

            if (LIFE_SETTINGS(getNumber, "enable_fatigue") isEqualTo 1) then {
                player setFatigue 0;
            };
            if (_item isEqualTo "REDBULL" && {LIFE_SETTINGS(getNumber, "enable_fatigue") isEqualTo 1}) then {
                [] spawn {
                    life_redgull_effect = time;
                    titleText [localize "STR_ISTR_RedGullEffect", "PLAIN"];
                    player enableFatigue false;
                    waitUntil {!alive player || ((time - life_redgull_effect) > (3 * 60))};
                    player enableFatigue true;
                };
            };
        };
    };

    [] call the_programmer_iphone_xi_fnc_apps_inventory;
    [] call life_fnc_hudUpdate;
};

switch (_item) do {
    case "SERRURIER": {
        [cursorObject] spawn life_fnc_boltcutter;
        closeDialog 0;
    };

    case "blastingcharge": {
        player reveal fed_bank;
        (group player) reveal fed_bank;
        [cursorObject] spawn life_fnc_blastingCharge;
        closeDialog 0;
    };

    case "defusekit": {
        [cursorObject] spawn life_fnc_defuseKit;
        closeDialog 0;
    };

    case "storagesmall": {
    [0] call life_fnc_storageBox;
    };

    case "storagebig": {
        [1] call life_fnc_storageBox;
    };
    case "CARTE": {
          [] spawn life_fnc_rubbellos;
        closeDialog 0;
    };
    //MENUISERIE
    case "CHAISE_BOIS": {
        [2] call life_fnc_storageBox;
    };
    case "MEUBLE_BUREAU": {
        [3] call life_fnc_storageBox;
    };
    case "CHAISE_BUREAU": {
        [4] call life_fnc_storageBox;
    };
    case "MEUBLE_BUREAU": {
        [5] call life_fnc_storageBox;
    };
    case "BUREAU_ANCIEN": {
        [6] call life_fnc_storageBox;
    };
    case "BUREAU_NEUVE": {
        [7] call life_fnc_storageBox;
    };
    case "TABLEAU_BLANC_MURAL": {
        [8] call life_fnc_storageBox;
    };
    case "TABLEAU_BLANC  ": {
        [9] call life_fnc_storageBox;
    };
    case "CHAISE_PLASTIQUE": {
        [10] call life_fnc_storageBox;
    };
    case "CHAISE_CAMPING": {
        [11] call life_fnc_storageBox;
    };
    case "CHAISE_BLANCHE": {
        [12] call life_fnc_storageBox;
    };
    case "CHAISE_ROTIN": {
        [13] call life_fnc_storageBox;
    };
    case "CHAISE_PLIANTE": {
        [14] call life_fnc_storageBox;
    };
    case "TABLE_CAMPING": {
        [15] call life_fnc_storageBox;
    };
    case "TABLE_CAMPING_BLANCHE": {
        [16] call life_fnc_storageBox;
    };
    case "TABLE_CAMPING_PETITE": {
        [17] call life_fnc_storageBox;
    };
    case "TABLE_JARDIN": {
        [18] call life_fnc_storageBox;
    };
    case "TABLE_PIQUE_NIQUE": {
        [19] call life_fnc_storageBox;
    };
    case "GRANDE_TABLE_BOIS": {
        [20] call life_fnc_storageBox;
    };
    case "PETITE_TABLE_BOIS": {
        [21] call life_fnc_storageBox;
    };
    case "TABLE_ROTIN": {
        [22] call life_fnc_storageBox;
    };
    case "ETAGERE_BOIS": {
        [23] call life_fnc_storageBox;
    };
    case "ETAGERE_BLEU": {
        [24] call life_fnc_storageBox;
    };
    case "ETAGERE_KAKI": {
        [25] call life_fnc_storageBox;
    };
    case "ETAGERE_METAL": {
        [26] call life_fnc_storageBox;
    };
    case "CAISSE": {
        [27] call life_fnc_storageBox;
    };
    case "GLACIERE": {
        [28] call life_fnc_storageBox;
    };
    case "PRESENTOIR": {
        [29] call life_fnc_storageBox;
    };
    case "PRESENTOIR_ETAGERE": {
        [30] call life_fnc_storageBox;
    };
    case "PRESENTOIR_ETAGERE_5": {
        [31] call life_fnc_storageBox;
    };
    case "COMPTOIR": {
        [32] call life_fnc_storageBox;
    };
    case "PARASOL": {
        [33] call life_fnc_storageBox;
    };
    case "PARASOL_BLEU": {
        [34] call life_fnc_storageBox;
    };
    case "PARASOL_JAUNE": {
        [35] call life_fnc_storageBox;
    };
    case "PARASOL_PALMIER": {
        [36] call life_fnc_storageBox;
    };
    case "PARASOL_ROTIN": {
        [37] call life_fnc_storageBox;
    };
    case "TRANSAT": {
        [38] call life_fnc_storageBox;
    };
    case "TRANSAT_VERT": {
        [39] call life_fnc_storageBox;
    };
    case "BANC": {
        [40] call life_fnc_storageBox;
    };
    case "BANC_BLEU": {
        [41] call life_fnc_storageBox;
    };
    case "BANC_DECORATIF": {
        [42] call life_fnc_storageBox;
    };
    case "BANC_RURAL": {
        [43] call life_fnc_storageBox;
    };
    case "CANAPE": {
        [44] call life_fnc_storageBox;
    };
    case "FAUTEUIL": {
        [45] call life_fnc_storageBox;
    };
    case "LIT_DOUBLE": {
        [46] call life_fnc_storageBox;
    };
    case "TABLE": {
        [47] call life_fnc_storageBox;
    };
    case "TABLE_BASSE": {
        [48] call life_fnc_storageBox;
    };
    case "TABOURET": {
        [49] call life_fnc_storageBox;
    };
    case "TAPIS_MARRON": {
        [50] call life_fnc_storageBox;
    };
    case "MEUBLE_TV_BLANC": {
        [51] call life_fnc_storageBox;
    };
    case "MEUBLE_TV_BLEU": {
        [52] call life_fnc_storageBox;
    };
    case "MEUBLE_TV_GRIS": {
        [53] call life_fnc_storageBox;
    };
    case "MEUBLE_TV_MARRON": {
        [54] call life_fnc_storageBox;
    };
    case "MEUBLE_TV_NOIR": {
        [55] call life_fnc_storageBox;
    };
    case "MEUBLE_TV_ROUGE": {
        [56] call life_fnc_storageBox;
    };
    case "CHAISE01": {
        [57] call life_fnc_storageBox;
    };
    case "CHAISE02": {
        [58] call life_fnc_storageBox;
    };
    case "CHAISE": {
        [59] call life_fnc_storageBox;
    };
    case "CHAISE_LONGUE01": {
        [60] call life_fnc_storageBox;
    };
    case "CHAISE_LONGUE02": {
        [61] call life_fnc_storageBox;
    };
    case "LIT_DOUBLE": {
        [62] call life_fnc_storageBox;
    };
    case "LIT02": {
        [63] call life_fnc_storageBox;
    };
    case "FRIGO": {
        [64] call life_fnc_storageBox;
    };
    case "LAMPE": {
        [65] call life_fnc_storageBox;
    };
    case "LAMPE_UV": {
        [66] call life_fnc_storageBox;
    };

    case "HERSE": {
        if (!isNull life_spikestrip) exitWith {hint localize "STR_ISTR_SpikesDeployment"; closeDialog 0};
        if ([false, _item, 1] call life_fnc_handleInv) then {
            [] spawn life_fnc_spikeStrip;
            closeDialog 0;
        };
    };

    case "JERRYCAN_VIDE": {
        if !(isNull objectParent player) exitWith {hint localize "STR_ISTR_RefuelInVehicle"};
        [] spawn life_fnc_jerryRefuel;
        closeDialog 0;
    };

    case (_item in ["fuelFull","BIOETHANOL","HYDROGENE","SP95","GAZOLE","SP98","GPL","BIO","KEROSENE","DIESEL"]): {
        if !(isNull objectParent player) exitWith {hint localize "STR_ISTR_RefuelInVehicle"};
        [_item] spawn life_fnc_jerryRefuel;
        closeDialog 0;
    };

    case "CROCHETAGE": {
        [] spawn life_fnc_lockpick;
        closeDialog 0;
    };
    case "PINCE": {
        [] spawn life_fnc_pince;
        closeDialog 0;
    };
    
    case "CAMERA_SURVEILLANCE": {
        [] spawn C0kkie_fnc_InitmobileCCTV;
        closeDialog 0;
    };
    
    case "BRACELET_ELECTRONIQUE": {
        [] spawn loann_fnc_openMenuBracelet;
    };
    
    case "CISEAU": {
        if((side player) isEqualTo west || (playerSide isEqualTo civilian && license_civ_PDJ)) then {
            [] spawn loann_fnc_retirerBracelet;
        } else{
            [] spawn loann_fnc_casserBracelet;
        };
    };
    
    case "KIT_ADN": {
        [cursorObject] spawn life_fnc_useKitAdn;
    };

    default {
        ["Achats",format [localize "STR_ISTR_NotUsable"],"error"] spawn cplus_notification_fnc_notification;
    };
};

[] call life_fnc_p_updateMenu;
[] call life_fnc_hudUpdate;
 
Salut.

Je t'avoue que j'ai pas trop la tête à réfléchir de trop, mais tu devrais ajouter tous tes classnames dans le switch de fn_placeContainer ligne 12, ainsi que dans fn_placestorage ligne 12 et 21.
 
Si le problème est toujours d'actualité, je veux bien la réponse aussi ✋

J'ai aussi tenté d'installer ce tuto il y a quelques mois, et je me suis retrouvé confronté, semble t- il au même souci :
Je m'explique :

Lors de la pose du meuble, aucun souci pour le voir, juste l'action poser via espace n'a jamais fonctionné.

Je vais relire l'ensemble du tuto, y appliquer vos correctifs de ce post, sur mon serveur de dev et retenté l'opération en vous faisant une vidéo de ce qu'il ne se passe pas :)