Français Solved Problème avec un point de récolte sous l'eau

R404

User
14/10/21
75
3
7
450
Bonjour / Bonsoir à tous,

Voila on as un petit soucis sur notre serveur, on essaye de crée un point de récolte sous l'eau mais impossible d'y arriver.
Nous avons rajoutez une fonction dans notre fichier fn_gather.sqf

Voila la fonction avant modifications :
Code:
for "_i" from 0 to count(_resourceCfg)-1 do {
    _curConfig = _resourceCfg select _i;
    _resource = configName _curConfig;
    _maxGather = getNumber(_curConfig >> "amount");
    _zoneSize = getNumber(_curConfig >> "zoneSize");
    _resourceZones = getArray(_curConfig >> "zones");
    _requiredItem = getText(_curConfig >> "item");
    {
        if ((player distance2D (getMarkerPos _x)) < _zoneSize) exitWith {_zone = _x;};
    } forEach _resourceZones;
    if (_zone != "") exitWith {};
};

Après modifications :
Code:
for "_i" from 0 to count(_resourceCfg)-1 do {
    _curConfig = _resourceCfg select _i;
    _resource = configName _curConfig;
    _maxGather = getNumber(_curConfig >> "amount");
    _zoneSize = getNumber(_curConfig >> "zoneSize");
    _resourceZones = getArray(_curConfig >> "zones");
    _requiredItem = getText(_curConfig >> "item");
    _AslPos = getPosASL player;
    {
        if ((player distance2D (getMarkerPos _x)) < _zoneSize) then {
            _zone = _x;
        } else {
            if ((ASLToATL(_AslPos) distance (getMarkerPos _x)) < _zoneSize) then {
                _zone = _x
            };
        };          
    } forEach _resourceZones;
    if (_zone != "") exitWith {};
};

Malheuresement rien ne fonctionne et les autres points de recolte déjà présent ne fonctionne plus.
Un grand merci d'avance pour toutes les idées de débug
 
  • Like
Les réactions: Joe Dalton
Solution
Je pense avoir compris, si ton champ est sous l'eau, ça veut dire que la surface est de l'eau. Donc le code s’exécute comme ça :
1635021303441.png
Et ne passe pas dans le else pour activer le système de récolte.

--

Donc ce qu'il faudrait faire c'est de remplacer cette ligne :
Code:
if (_isWater) then {
par celles-ci :
Code:
_fish = (nearestObjects[player,(LIFE_SETTINGS(getArray,"animaltypes_fish")),3]) select 0;
if (_isWater && (!isNil "_fish")) then {
De manière à ce que ça passe dans le else s'il n'y a pas de poissons à pécher
Hello Maxence,
Merci de ta réponse, je vient de vérifier, je n'ai que des :
Code:
distance2D
Aucuns
Code:
distance
 
Je pense avoir compris, si ton champ est sous l'eau, ça veut dire que la surface est de l'eau. Donc le code s’exécute comme ça :
1635021303441.png
Et ne passe pas dans le else pour activer le système de récolte.

--

Donc ce qu'il faudrait faire c'est de remplacer cette ligne :
Code:
if (_isWater) then {
par celles-ci :
Code:
_fish = (nearestObjects[player,(LIFE_SETTINGS(getArray,"animaltypes_fish")),3]) select 0;
if (_isWater && (!isNil "_fish")) then {
De manière à ce que ça passe dans le else s'il n'y a pas de poissons à pécher
 
  • Heart
Les réactions: Joe Dalton
Solution