PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Platzierung einer Einheit mit Mindestabstand


hypercop
30.06.2013, 00:49
Ich habe eine Ammobox über folgenden Befehl erstellt.

_Ammo = createVehicle ["Box_East_Wps_F", getMarkerPos "area1", [], 800, "FORM"];

Die Ammobox darf nicht weiter als 800 Meter von dem Marker "area1" entfernt sein. Ich möchte allerdings auch nicht, dass sie näher als 400 Meter am Marker ist.

Gibt es eine einfache Möglichkeit, einen Mindestabstand zu definieren?

Moerderhoschi
30.06.2013, 10:01
Thema verschoben da "Box_East_Wps_F" ein Classname aus ArmA3 ist.

Zur Loesung deiner Problematik:

_Ammo = createVehicle ["Box_East_Wps_F", GetMarkerPos "area1", [], 800, "FORM"];

if ((getpos _Ammo) distance (GetMarkerPos "area1") < 400) then
{
private ["_object","_pos","_minDistance","_maxDistance","_newPosX","_newPosY","_newPos","_i"];

_object = _Ammo;
_pos = GetMarkerPos "area1";
_minDistance = 400;
_maxDistance = 800;

for "_i" from 1 to 2 do
{
_newPosX = ((_pos select 0) + (random _maxDistance - (random _maxDistance)));
_newPosY = ((_pos select 1) + (random _maxDistance - (random _maxDistance)));
_newPos = [round _newPosX, round _newPosY];

if (_newPos distance _pos > _minDistance && _newPos distance _pos < _maxDistance) then
{
_object setpos _newPos;
}
else
{
_i = _i - 1;
};
};
};

hintsilent format ["Das Objekt ist %1 meter vom Marker entfernt",(_ammo distance (GetMarkerPos "area1"))];

if (isNil "objectMarkerC") then {objectMarkerC = 0};
objectMarkerC = objectMarkerC + 1;
_objectMarkerS = format ["%1",objectMarkerC];

_objectMarker = createMarker ["t_objectmarker" + _objectMarkerS, getpos _Ammo];
_objectMarker setMarkerShapeLocal "ICON";
_objectMarker setMarkerTypeLocal "hd_dot";
_objectMarker setMarkerColor "ColorRed";
_objectMarker setMarkerTextLocal format ["Ammob%1",_objectMarkerS];

gruß
hoschi