Portail OFCRA

Archives OFCRA => Arma 2 - Scripts/Addons/Mods => Scripts => Discussion démarrée par: Flamm le 23 Juin 2012 à 18:29:58

Titre: Nearest Objects
Posté par: Flamm le 23 Juin 2012 à 18:29:58
Bonjours à tous!

Actuellement, j'aimerai faire apparaître un addaction sur un véhicule uniquement si un objet est prêt de lui.

Donc j'essai d'utiliser ça en le mettant dans l'init.sqf.

if(nearestObjects [avion, ["uaz"], 15]) then
{
avion addaction ["Mon script","monscript.sqf"]
};

Hélas, même quand l'objet "uaz" est à côté de l'objet "avion", le addaction n'apparaît pas sur l'avion.
De plus j'aimerai que ce soit une boucle, donc si l'"uaz" est à coté de l'avion, l'action apparaît, à l'inverse, elle disparaît mais peut revenir.
Titre: Re : Nearest Objects
Posté par: Warlock le 23 Juin 2012 à 21:46:08
Ajouter la ligne :

#fucking_script [please_work]
////////////////////////////////////////////////////////////////////////////////////////////////////////////
Player "Flamm" if alive after fail then shut down Editor;


:plusun:


Titre: Re : Nearest Objects
Posté par: Flamm le 23 Juin 2012 à 22:37:58
Pas sur que ça m'aide héhé  :D
Titre: Re : Nearest Objects
Posté par: Zombi le 24 Juin 2012 à 11:27:40
Tu peux faire une boucle qui contrôle la distance entre les deux objets, en les appelant par leurs noms. Ca évite les problèmes de classnames (parce qu'en fait, nearest objects ne prend pas le nom d'une unité en tant que paramètre, mais son type, si je me souviens bien).

Genre :
Citer
If ( (avion distance uaz) < 15) then
{
    avion addaction blablabla:
};

Si tu veux continuer à utiliser le nearestobjects... bah je te conseillerais d'utiliser nearestobject (sans le s à objects) et de corriger le classname : UAZ c'est UAZ_Base, ou les spécificités genre UAZ_RU,etc.. (voir le cfgVehicles)
NearestObjects : te retourne un tableau d'objets
NearestObject : te retourne l'objet le plus proche (rayon de 50m par contre)

Donc, il te faut tester
Citer
if (nearestobject[avion,"UAZ_Base"] == "uaz") then ....

ou

Citer
_uaz = nearestobjects[avion, ["UAZ_Base"], 15];

{if _x == "uaz" then {avion addaction blablabla;}; }foreach _uaz;