Arma : Les Weapon holders

Tu t’es sans doute déjà demandé comment déposer des objets par terre. Pour cela il existe des boites invisibles (sans rendu) qui vont avoir le rôle de conteneurs.

Les objets Weapon holders sont utilisables pour contenir des objets comme les armes, les chargeurs, et tous les autres objets que tu peux trouver normalement dans l’inventaire des joueurs.

Tu peux ajouter sur ces objets des menu action, et voir leur contenu comme tu verrais le contenu de ton inventaire. S’il y a plus d’un objet dans le Weapon holder, les objets apparaitront alors dispersé autour de ce conteneur.

Il existe 2 types de weapons holder

  • GroundWeaponHolder: La Simulation est désactivée, ce qui veut dire que la gravité n’aura pas d’effet sur cet objet.
  • WeaponHolderSimulated: La Simulation est activée, la gravité aura un effet sur cet objet.

Tu peux ajouter des objets dans ces weapons holders de la même façon que tu le ferais avec des conteneurs classiques en utilisant la commande cargo comme addItemCargoGlobal. La commande clearItemCargoGlobal restera par contre sans effet 😦 Vider le conteneur de l’ensemble de ses objets aura aussi pour effet de le détruire.

Faire tourner le conteneur weapon holder se fait de la même façon que pour un objet classique. Je t’invite donc à lire à ce sujet l’article sur le positionnement des objets.

Cependant l’objet que tu vas placer à l’intérieur du weapon holder ne sera pas forcément aligné avec le weapon holder lui même. Dans ce cas, il peut être plus simple d’attaché le centre du weapon holder avec le centre de l’autre objet, et de faire tourner l’objet lui même.

Pour terminer ce mini article, voici un exemple qui va te permettre de faire apparaitre une arme dans un weapon holder et de la faire tourner sur elle même.

fnc_pwrotate = {
    private _turntable = createVehicle [ "Land_Can_V3_F", _this select 0, [], 0,  "CAN_COLLIDE"];
    _turntable hideObject true;

    private _holder = createVehicle ["WeaponHolderSimulated", _this select 0, [],   0, "CAN_COLLIDE"];
    _holder addWeaponCargoGlobal [_this select 1, 1];
    _holder attachTo [_turntable, [0,-0.63,0.7]];
    _holder setVectorDirAndUp [[0,0,1],[0,-1,0]];
    
    private _time = time + 10;
    private _dir = getDir _turntable;
    waitUntil {
        _dir = _dir + ( if (_dir > 360) then [{-360},{3}]);
        _turntable setDir _dir;
        time > _time
    };

    deleteVehicle _holder;
    deleteVehicle _turntable;
};

_null = [player modelToWorld [0,2,0],"arifle_Mk20_ACO_pointer_F"] spawn fnc_pwrotate;

Cet article a été initialement rédigé par Killzone Kid, traduit, et réactualisé par Code34

Votre commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l’aide de votre compte WordPress.com. Déconnexion /  Changer )

Photo Google

Vous commentez à l’aide de votre compte Google. Déconnexion /  Changer )

Image Twitter

Vous commentez à l’aide de votre compte Twitter. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l’aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s