Français Not solved Problème de duplication d'items inventaire " i "

  • Auteur de la discussion Auteur de la discussion Antoine80
  • 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 !

Antoine80

User
21/12/23
32
1
0
300
Hello j'ai un problème lorsque deux joueurs ouvre l'inventaire " i " que ce soient dans un véhicule au sol dans un coffre de maison ect il et possible de dupliquer les items avec une petite manip et je voudrais contrer ça et t-il possible que quelqu'un ces comment faire pour interdire d'ouvrir l'inventaire " i " a plusieurs je veut bloquer l'ouverture de l'inventaire de quelque chose a plusieurs en même temps ..
 
--- Ce message a été généré automatiquement par ChatGPT, le contenu peut être incorrect. Veuillez lire le message avec précaution ! ---

Bonjour, pour éviter la duplication d'objets en ouvrant l'inventaire "i" par plusieurs joueurs en même temps, vous pouvez utiliser le script suivant pour bloquer cette action :

Code:
if (count playableUnits > 1) then {
    hint "Désolé, vous ne pouvez pas ouvrir l'inventaire en même temps qu'un autre joueur !";
    closeDialog 0;
};

Insérez ce script dans le fichier où vous gérez l'ouverture de l'inventaire "i" pour empêcher son accès simultané par plusieurs joueurs. Cela devrait contrer la duplication des objets. N'hésitez pas si vous avez besoin d'aide supplémentaire !

--- Pour continuer la discussion avec ChatGPT, cliquez sur "Répondre" en bas à droite de ce message. Sinon, attendez que quelqu'un vous réponde. ---
 
Hello! Comment ils sont plus précisément pour dupliquer ? Si tu peux faire une vidéo ce sera plus clair.

Peut-être que ce tutoriel peut t'aider : Français - Bloquer l'accès à l'inventaire physique depuis l'intérieur du véhicule
Hello , non sa n'arrangerais pas le probléme
explication : Moi je met une arme au sol , mon amis et moi nous ouvrons l'inventaire a deux et nous spammons tous les deux en même temps pour récupérer l'items et si tu fait bien la manip tu la duplique.
Je voudrais juste que les joueurs non pas la possibilité d'ouvrir un inventaire a plusieurs , je voudrais que l'inventaire soient ouvrable pour 1 seul joueurs et que l'autre joueur soient obliger d'attendre que le 1er joueur quitte l'inventaire pour ouvrir l'inventaire ensuite.
 
Salut, dans ton inventoryOpened, ajoute :
[CODE lang="sql" title="bloc inventaire"]_inUse = _container getVariable ["vehicle_inventory_in_use",false];
if (_inUse) exitWith {
hint "Une personne utilise déjà l'inventaire de ce véhicule.";
true;
};

_container setVariable ["vehicle_inventory_in_use",true,true];[/CODE]
en dessous de :

SQL:
if (!(_container in life_vehicles) && {locked _container isEqualTo 2}) exitWith {
        hint localize "STR_MISC_VehInventory";
        true;
    };
 
Salut, dans ton inventoryOpened, ajoute :
[CODE lang="sql" title="bloc inventaire"]_inUse = _container getVariable ["vehicle_inventory_in_use",false];
if (_inUse) exitWith {
hint "Une personne utilise déjà l'inventaire de ce véhicule.";
true;
};

_container setVariable ["vehicle_inventory_in_use",true,true];[/CODE]
en dessous de :

SQL:
if (!(_container in life_vehicles) && {locked _container isEqualTo 2}) exitWith {
        hint localize "STR_MISC_VehInventory";
        true;
    };
Hello j'ai tout mis comme tu as dis mais le problème ces que après l'inventaire et bug ont ne peut plus l'ouvrir sa dis que un joueur et déjà dessus
 
essaie de changer ces lignes:
SQL:
if (KINDOF_ARRAY(_x, _list)) exitWith {
        if (!(_x in life_vehicles) && {locked _x isEqualTo 2}) exitWith {
            hint localize "STR_MISC_VehInventory";
            true breakOut "main";
        };
    };
par ces lignes

Code:
_list = ["LandVehicle","Ship","Air"];
if (KINDOF_ARRAY(_container,_list)) exitWith {  
    if (!(_container in life_vehicles) && {locked _container isEqualTo 2}) exitWith {
        hint localize "STR_MISC_VehInventory";
        true;
    };
   
    if (vehicle player != player) exitWith {
        hint "Action impossible depuis le véhicule";
        true;
    };
   
    _inUse = _container getVariable ["vehicle_inventory_in_use",false];
        if (_inUse) exitWith {
            hint "Une personne utilise déjà l'inventaire de ce véhicule.";
            true;
        };

        _container setVariable ["vehicle_inventory_in_use",true,true];
};
 
Dernière édition par un modérateur:
essaie de changer ces lignes:
SQL:
if (KINDOF_ARRAY(_x, _list)) exitWith {
        if (!(_x in life_vehicles) && {locked _x isEqualTo 2}) exitWith {
            hint localize "STR_MISC_VehInventory";
            true breakOut "main";
        };
    };
par ces lignes

Code:
_list = ["LandVehicle","Ship","Air"];
if (KINDOF_ARRAY(_container,_list)) exitWith { 
    if (!(_container in life_vehicles) && {locked _container isEqualTo 2}) exitWith {
        hint localize "STR_MISC_VehInventory";
        true;
    };
  
    if (vehicle player != player) exitWith {
        hint "Action impossible depuis le véhicule";
        true;
    };
  
    _inUse = _container getVariable ["vehicle_inventory_in_use",false];
        if (_inUse) exitWith {
            hint "Une personne utilise déjà l'inventaire de ce véhicule.";
            true;
        };

        _container setVariable ["vehicle_inventory_in_use",true,true];
};
je regarde ce soir je te redis quoi ce soir si ça règle le problème mais j'ai vue que la ça régle le problème que de l'inventaire du véhicule moi je voudrais que sa règle le problème du véhicule des coffre maison et des items que tu pose au sol
 
essaie de changer ces lignes:
SQL:
if (KINDOF_ARRAY(_x, _list)) exitWith {
        if (!(_x in life_vehicles) && {locked _x isEqualTo 2}) exitWith {
            hint localize "STR_MISC_VehInventory";
            true breakOut "main";
        };
    };
par ces lignes

Code:
_list = ["LandVehicle","Ship","Air"];
if (KINDOF_ARRAY(_container,_list)) exitWith { 
    if (!(_container in life_vehicles) && {locked _container isEqualTo 2}) exitWith {
        hint localize "STR_MISC_VehInventory";
        true;
    };
  
    if (vehicle player != player) exitWith {
        hint "Action impossible depuis le véhicule";
        true;
    };
  
    _inUse = _container getVariable ["vehicle_inventory_in_use",false];
        if (_inUse) exitWith {
            hint "Une personne utilise déjà l'inventaire de ce véhicule.";
            true;
        };

        _container setVariable ["vehicle_inventory_in_use",true,true];
};
je viens de tester j'ai toujours le même problème quand ont l'ouvre 1 fois après ont ne peut plus l'ouvrir il faut ranger et sortir le véhicule du garage
 
Remplace ton fichier par celui la:

SQL:
#include "..\..\script_macros.hpp"
/*
    File: fn_inventoryOpened.sqf
    Author: Bryan "Tonic" Boardwine

    Description:
    For the mean time it blocks the player from opening another persons backpack
*/
private ["_container","_unit","_list"];
if (count _this isEqualTo 1) exitWith {false};
_unit = _this select 0;
_container = _this select 1;

_isPack = FETCH_CONFIG2(getNumber,"CfgVehicles",typeOf _container,"isBackpack");
if (_isPack isEqualTo 1) exitWith {
    hint localize "STR_MISC_Backpack";
    true;
};

if ((typeOf _container) in ["Box_IND_Grenades_F","B_supplyCrate_F"]) exitWith {
    _house = nearestObject [player, "House"];
    if (!(_house in life_vehicles) && (_house getVariable ["locked",true])) exitWith {
        hint localize "STR_House_ContainerDeny";
        true;
    };
};

_list = ["LandVehicle","Ship","Air"];
if (KINDOF_ARRAY(_container,_list)) exitWith {
    if ((life_in_mission) || (life_in_robbery)) exitWith {
        hint (["STR_CANT_OPEN_INVENTORY","The_Programmer_Advanced_Robbery","Advanced_Robbery_Localization"] call theprogrammer_core_fnc_localize);
        true;
    };
    
    if (!(_container in life_vehicles) && {locked _container isEqualTo 2}) exitWith {
        hint localize "STR_MISC_VehInventory";
        true;
    };
    
    if (vehicle player != player) exitWith {
        hint "Action impossible depuis le véhicule";
        true;
    };
    
    _inUse = _container getVariable ["vehicle_inventory_in_use",false];
        if (_inUse) exitWith {
            hint "Une personne utilise déjà l'inventaire de ce véhicule.";
            true;
        };
    _container getVariable ["vehicle_inventory_in_use",true,true];
};

//Allow alive players who've been knocked out to be looted, just not the dead ones
if (_container isKindOf "Man" && !alive _container) exitWith {
    hint localize "STR_NOTF_NoLootingPerson";
    true;
};
 
Dernière édition:
Bonjour, je reprend le sujet, ça fonctionne pas même en suivant les conversations au dessus !

si vous avez une solution

merci à vous d'avance