08.12.2013, 10:37 | #1 (permalink) |
Registriert seit: 03.11.2013
Beiträge: 23
|
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}; Code:
_counta = [500] call wmp_RandomMarker; sleep 10; _countb = [2000] call wmp_RandomMarker; _countc = _counta + _countb; sleep 5; hintC format ["%1", _countc]; 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. Geändert von SmokyJoey (08.12.2013 um 13:03 Uhr). Grund: selber auf die Lösung gekommen |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
Themen-Optionen | |
Ansicht | |
|
|
Ähnliche Themen | ||||
Thema | Autor | Forum | Antworten | Letzter Beitrag |
Einzelne Waffe korrekt und im Haus platzieren | Crisis | Editing & Scripting | 5 | 14.12.2011 19:10 |
Hilfe bei Funktion um Gegnerspawns zu erstellen | Ante G. | Editing & Scripting | 10 | 25.11.2010 17:26 |