Français Solved Soucis de portes avec bâtiment moddés et property system

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

cadwella

User
17/2/24
119
5
2
800
Hello !
On a crée un bâtiment moddés pour l'illégal sur notre serveur et malheureusement les portes sont ouvertes par n'importe qui et pas seulement par le proprio comme c'est normalement le cas dans le framework de base.
Voici la config de mes portes dans le config.cpp
Code:
class UserActions
         {
             class door_ext_open
             {
                 displayName="Open Door";
                 position="door_ext_openpoint";
                 radius=3;
                 condition="this animationPhase 'door_ext' < 0.5";
                 statement="this animate [""door_ext"",1]";
                 onlyforplayer=0;
             };

             class door_ext_close: door_ext_open

             {
                 displayName="Close Door";
                 condition="this animationPhase ""door_ext"" > 0.5";
                 statement="this animate [""door_ext"",0]";
             };

             class door_int_open
             {
                 displayName="Open Door";
                 position="door_int_openpoint";
                 radius=3;
                 condition="this animationPhase 'door_int' < 0.2";
                 statement="this animate['door_int',1];";
                 onlyforplayer=0;
             };

             class door_int_close: door_int_open
             {
                 displayName="Close Door";
                 condition="this animationPhase 'door_int' > 0.2";
                 statement="this animate['door_int',0];";
             };
         };

J'ai essayé de copier les class d'une maison vanilla mais cela n'a pas marché :/
Vous avez une idée ?

Posté par @.mikelima via discord.
 
Dernière édition par un modérateur:
Solution
Hello, à l'initialisation des maisons, les portes sont fermés par le code suivant :
Code:
_numOfDoors = getNumber(configFile >> "CfgVehicles" >> (typeOf _house) >> "numberOfDoors");
for "_i" from 1 to _numOfDoors do {
    _house setVariable [format ["bis_disabled_Door_%1",_i],1,true];
};

Il faudrait donc que tu désactives ton action "Ouvrir la porte" quand cette variable est sur true.

J'aurais testé un truc comme ça :
Code:
class UserActions {
    class door_ext_open {
        displayName="Open Door";
        position="door_ext_openpoint";
        radius=3;
        condition="(this animationPhase 'door_ext' < 0.5) && !(this getVariable ['bis_disabled_Door_1',false])";
        statement="this animate [""door_ext"",1]"...
--- Ce message a été généré automatiquement par ChatGPT, le contenu peut être incorrect. Veuillez lire le message avec précaution ! ---

Bonjour @.mikelima,

Il semble que le souci provienne des conditions d'ouverture des portes. Assurez-vous que la condition "onlyforplayer=1;" soit définie pour limiter l'interaction aux seuls propriétaires. Voici un exemple de modification pour la classe door_ext_open :

```sqf
class door_ext_open
{
displayName="Open Door";
position="door_ext_openpoint";
radius=3;
condition="(player distance _this) < 3 && (owner _this isEqualTo player)";
statement="_this animate [""door_ext"",1]";
onlyforplayer=1;
};
```

N'oubliez pas d'adapter de la même manière pour les autres classes de portes. Assurez-vous également que le système de propriété est correctement mis en place.

En espérant que cela résoudra votre problème !

Cordialement,
SQF Expert

--- 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, à l'initialisation des maisons, les portes sont fermés par le code suivant :
Code:
_numOfDoors = getNumber(configFile >> "CfgVehicles" >> (typeOf _house) >> "numberOfDoors");
for "_i" from 1 to _numOfDoors do {
    _house setVariable [format ["bis_disabled_Door_%1",_i],1,true];
};

Il faudrait donc que tu désactives ton action "Ouvrir la porte" quand cette variable est sur true.

J'aurais testé un truc comme ça :
Code:
class UserActions {
    class door_ext_open {
        displayName="Open Door";
        position="door_ext_openpoint";
        radius=3;
        condition="(this animationPhase 'door_ext' < 0.5) && !(this getVariable ['bis_disabled_Door_1',false])";
        statement="this animate [""door_ext"",1]";
        onlyforplayer=0;
    };
    class door_ext_close: door_ext_open {
        displayName="Close Door";
        condition="this animationPhase ""door_ext"" > 0.5";
        statement="this animate [""door_ext"",0]";
    };
    class door_int_open {
        displayName="Open Door";
        position="door_int_openpoint";
        radius=3;
        condition="(this animationPhase 'door_int' < 0.2) && !(this getVariable ['bis_disabled_Door_1',false])";
        statement="this animate['door_int',1];";
        onlyforplayer=0;
    };
    class door_int_close: door_int_open {
        displayName="Close Door";
        condition="this animationPhase 'door_int' > 0.2";
        statement="this animate['door_int',0];";
    };
};
 
Solution