Français Solved Problème de comptage des objets dans un conteneur

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

martine

User
17/6/20
63
5
4
450
bonjour à tous, j'ai crée divers objects à placer dans les maison avec un inventaire physique afin d'y placer un traitement. j'ai bien sur crée une action dans le useraction du PBO

Code:
class farine
            {
                displayName="<t color='#2E9AFE'>Broyer le blé</t>";
                displayNameDefault="<t color='#2E9AFE'>Broyer le blé</t>";
                position="camera";
                priority=1;
                radius=5;
                onlyForPlayer=1;
                showWindow=0;
                shortcut="LeanLeft";
                condition="(!(player in (crew this))) && {alive this};";
                statement="[this] execvm ""\objdavis\scripts\farine.sqf"";";
            };

j'ai crée cette condition dans le code exécuté: [CODE title="farine.sqf"]if ({_x isEqualTo "item"} count magazines (_this select 0) < _itemMin) exitwith {Hint ""};[/CODE]
mais celui-ci ne marche pas par contre celui-ci fonctionne:[CODE title="farine.sqf"]if ({_x isEqualTo "item"} count magazines player < _itemMin) exitwith {Hint ""};[/CODE]

je n'arrive pas à compter les items dans le conteneur mais je ne comprend pas pourquoi, merci de vôtre aide.
 
Solution
re !
[CODE title="farine.sqf"]private _itemMin = 1;
private _itemNeed = "martine_bles";
private _itemGet = "martine_pain";
if ({_x isEqualTo "martine_bles"} count (magazineCargo (_this select 0)) < _itemMin) exitwith {Hint "Il vous faut plus blé"};


private _nitem = 20;

for "_i" from 1 to _nitem do {
sleep 5;

(_this select 0) removeItem _itemNeed;

(_this select 0) addItemCargo ["martine_pain", 1];

};[/CODE]

le but c'est de pouvoir crée un traitement physique dans les maison avec le furniture system. pour cela je crée directement le traitement dans le mod.
j'ai finalement réussi à faire ce que je voulais faire pour compter les items, comme tu peux le voir ci dessus. par contre je n'avais pas remarqué que il n'y aucune commande possible...
re !
[CODE title="farine.sqf"]private _itemMin = 1;
private _itemNeed = "martine_bles";
private _itemGet = "martine_pain";
if ({_x isEqualTo "martine_bles"} count (magazineCargo (_this select 0)) < _itemMin) exitwith {Hint "Il vous faut plus blé"};


private _nitem = 20;

for "_i" from 1 to _nitem do {
sleep 5;

(_this select 0) removeItem _itemNeed;

(_this select 0) addItemCargo ["martine_pain", 1];

};[/CODE]

le but c'est de pouvoir crée un traitement physique dans les maison avec le Furniture System. pour cela je crée directement le traitement dans le mod.
j'ai finalement réussi à faire ce que je voulais faire pour compter les items, comme tu peux le voir ci dessus. par contre je n'avais pas remarqué que il n'y aucune commande possible pour retirer un item précis mais seulement enlever tout les items de l'inventaire sur une conteneur.
aurait-tu une idée afin de retirer un item avec une quantité précise ? merci d'avance
 
Solution
j'ai réussi à faire cela comme alternative, mais c'est pour le moins
du bricolage.
[CODE title="farine.sqf"]private _NitemMin = 1;
private _NitemGet = 1;
private _itemNeed = "martine_bles";
private _itemGet = "martine_pain";
if ({_x isEqualTo _itemNeed} count (magazineCargo (_this select 0)) < _NitemMin) exitwith {Hint "Il vous 10kg de blé"};


private _nitem = 40;

for "_i" from 1 to _nitem do {
sleep 5; //temps de traitement
_itemN = {_x isEqualTo _itemNeed} count (magazineCargo (_this select 0));
_itemG = {_x isEqualTo _itemGet} count (magazineCargo (_this select 0));
if (_itemN < _NitemMin) exitwith {Hint "Le Pain est cuit !"};
_itemN = _itemN - _NitemMin;
_itemG = _itemG + _NitemGet;
clearItemCargo (_this select 0);
clearMagazineCargo (_this select 0);
(_this select 0) addItemCargo ["martine_bles", _itemN];
(_this select 0) addItemCargo ["martine_pain", _itemG];

};[/CODE]
 
Dernière édition: