Hallo,
wieder mal ein Problem...
Ich weiß nicht was ich hier falsch mache - ich versteh´s nicht.
Ich hab mir eine Funktion gebaut, welche mit Angabe eines Markers, der Richtung und der Entfernung einen zweiten Marker in Richtung und Entfernung setzt.
WMP_distance01
Code:
scriptName "wmp_distance01.sqf";
private ["_ziel", "_zielpos", "_richtung", "_abstand", "_zielSize", "_zielTyp", "_zielBrush", "_zielShape", "_zielCol", "_zielDir", "_xposM2", "_yposM2", "_markerNeu"];
_ziel = _this select 0;
_zielpos = [];
_richtung = _this select 1;
_abstand = _this select 2;
if (typename _ziel == typename objnull) exitWith {hintSilent "Kein Marker angegeben";};
if (typename _ziel == typename "") then {_zielpos = markerpos _ziel;};
_zielSize = MarkerSize _ziel;
_zielTyp = MarkerType _ziel;
_zielBrush = MarkerBrush _ziel;
_zielShape = MarkerShape _ziel;
_zielCol = MarkerColor _ziel;
_zielDir = MarkerDir _ziel;
_xposM2 = (_zielPos select 0) + _abstand * (sin _richtung);
_yposM2 = (_zielPos select 1) + _abstand * (cos _richtung);
_markerNeu = createMarker [format ["_Marker_%1", _richtung], [_xposM2, _yposM2, 0]];
_markerNeu setMarkerSize _zielSize;
_markerNeu setMarkerType _zielTyp;
_markerNeu setMarkerBrush _zielBrush;
_markerNeu setMarkerShape _zielShape;
//_markerNeu setMarkerText "Spawnmarker";
_markerNeu setMarkerColor _zielCol;
_markerNeu setMarkerDir _zielDir;
if (true) exitWith {};
eine andere Funktion soll mir von einem Marker ausgehend mit Angabe des Umkreises zufällige Marker im Umkreis generieren und nutzt dabei auch die Funktion wmp_distance01:
Code:
scriptname "wmp_randomMarkers.sqf";
private ["_umkreis", "_rad", "_count"];
_umkreis = _this select 0;
_count = 0;
_rad = 0;
for "_rad" from 0 to 360 step 10 do
{
["droppos",_rad,(ceil random _umkreis)] spawn wmp_distance01;
_count = _count + 1;
_nameArray = ["", "_umkreis", "_rad", "_count"];
[_nameArray, _umkreis, _rad, _count] spawn wmp_ShowVars;
sleep 1;
};
if (true) exitWith {_count};
Via Funkauslöser rufe ich ein Testscript auf:
Code:
_counta = [500] call wmp_RandomMarker;
sleep 10;
_countb = [2000] call wmp_RandomMarker;
_countc = _counta + _countb;
sleep 5;
hintC format ["%1", _countc];
wenn ich den Test starte, passiert im ersten Durchlauf von "wmp_RandomMarker" auch was passieren soll - im Umkreis von 500 werden mir Marker generiert.
beim zweiten Durchlauf von "wmp_RandomMarker" werden mir zwar die korrekten Werte zurück geliefert, aber es werden keine Marker mehr generiert.
Was übersehe ich hier?
EDIT: Hat sich erledigt - Problem erkannt. Manchmal übersieht man einfachste Dinge.
Problem war dir Namensgebung der Marker. Beim ersten Durchlauf haben die Marker beim generieren den Namen "Marker_" und die Richtung bekommen also "Marker_10", "Marker_20", "Marker_20" .... "Marker_360".
was natürlich beim 2-ten Durchgang Probleme verursachte, da ja wieder Marker mit den selben Namen erzeugt wurden.
LÖSUNG:
Ich frage jetzt die Anzahl des Funktions-Aufrufes mit ab und verwende sie bei der Namensgebung mit:
erster Durchlauf:
"Marker_010", "Marker_020", "Marker_030" .... "Marker_0360".
nächster Durchlauf:
"Marker_110", "Marker_120", "Marker_130" .... "Marker_1360".
....
Sorry für den damit unnützen Thread - @Moderatoren bitte Löschen oder falls es die Nachwelt mal braucht lassen.