HX3 Foren

HX3 Foren (https://hx3.de/)
-   Editing & Scripting (https://hx3.de/editing-scripting-187/)
-   -   Funktion wird nur beim ersten Durlauf korrekt abgearbeitet (https://hx3.de/editing-scripting-187/funktion-nur-beim-ersten-durlauf-korrekt-abgearbeitet-23190/)

SmokyJoey 08.12.2013 11:37

Funktion wird nur beim ersten Durlauf korrekt abgearbeitet
 
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.


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:50 Uhr.

Angetrieben durch vBulletin, Entwicklung von Philipp Dörner & Tobias


SEO by vBSEO 3.2.0 ©2008, Crawlability, Inc.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119