HX3 Foren

HX3 Foren (https://hx3.de/)
-   Editing & Scripting (https://hx3.de/editing-scripting-187/)
-   -   Position auslesen (https://hx3.de/editing-scripting-187/position-auslesen-25184/)

Anemia 04.01.2016 17:13

Position auslesen
 
Hi zusammen,

hab eine kleine Frage ...
ich versuche mich gerade mal wieder ein bisschen im scripten und stehe vor einem Problem.

Ich lasse Spiderholes (Unsung Mod (Vietnam)) für den VC erstellen.
Dafür habe ich 10 Marker auf der Map plaziert.
Daraus werden über _vcholes eine anzahl x ausgewählt.
Um im nächsten Schritt nun bei den jeweiligen zufällig gewählten Markern den Feind spawnen zu lassen, muss ich ja irgendwie wissen welche Marker er nun ausgesucht hat.

Meine Idee ...
_vchole_pos = _vchole
diesen Wert lasse ich dann für "debug zwecken" ausgeben in einem Hint.
Die daten die dort zum vorscheinen kommen sind sowas wie
Code:

59159d00# 459117: uns_spiderhole_2c.p3d
ich vermute mal das die 459117 die Position X,Y ist ... doch wie bekomme ich diesen Wert nun alleine in der Variable _vchole_pos

Evtl. ist es aus schwachsinn was ich hier mache und es gibt einen viel besseren weg. Freue mich über Konstruktive Antworten.


Code:

for "_i" from 1 to _vcholes do {
sleep _delay;
_hole = createVehicle ["LAND_uns_spiderhole4c", getMarkerPos "h1", ["h2","h3","h4","h5","h6","h7","h8","h9","h10"],0, "NONE"];
_vchole_pos = _hole;
hint str _vchole_pos;
};

EDIT:
Oder gibt es evtl. eine Möglichkeit das ich den Marker-Namen ausgeben lasse, damit kann ich genau so gut leben :)

Moerderhoschi 04.01.2016 17:19

Mit getPos solltest Du doch die Position des Objekts bekommen.

Anemia 04.01.2016 17:23

Zitat:

Zitat von Moerderhoschi (Beitrag 490723)
Mit getPos solltest Du doch die Position des Objekts bekommen.

Ja :oh: danke das war sehr einfach ...
hätte ich ja mal selbst drauf kommen können...

Danke für die schnelle Hilfe ! :daumen:

Anemia 04.01.2016 18:10

Evtl. ist die Frage genau so "bescheiden" wie die vorherige ....


Code:

for "_i" from 1 to vcholes do {
sleep _delay;
_hole = createVehicle ["LAND_uns_spiderhole4c", getMarkerPos "h1", ["h2","h3","h4","h5","h6","h7","h8","h9","h10"],0, "NONE"];


_vcsoldier = _vcsquad createUnit ["uns_local_vc2b", getPos _hole, [], 0, "FORM"];
};

Wieso funktioniert es nicht ?!

wenn ich die Position auslese mit
Code:

_holepos = getPos _hole;
hint str _holepos;

Bekomme ich eine schöne Positionsangabe , aber es will nicht in der Codezeile funktionieren.



EDIT:
Code:

for "_i" from 1 to vcholes do {
sleep _delay;
_hole = createVehicle ["LAND_uns_spiderhole4c", getMarkerPos "h1", ["h2","h3","h4","h5","h6","h7","h8","h9","h10"],0, "NONE"];
_holepos = getPos _hole;
hint str _holepos;



_vcsoldier = _vcsquad createUnit ["uns_local_vc2b",_hole , [], 0, "FORM"];
};

Das script läuft so weit durch und erstellt alle gewünschten Spiderholes , so weit so gut , die Gewünschte eiheit taucht dennoch nicht an den Spiderholes auf ... sicherlich einfach nur ein kleiner Fehler....

EDIT 2:

Ich glaube ich weiß warum es nicht geht, kann es aber erst heute Nachmittag testen (derzeit bei der arbeit). Ich hatte mein Script schon vorher funktionsfähig geschrieben , allerdings nur für 1 VC_Spiderhole. Also ohne For *** do

Glaube ich hab aus versehen mein createGroup ausgeklammert //
Code:

_group = createGroup east
das würde auch erklären warum das Script durchläuft , aber nichts passiert.

Anemia 05.01.2016 17:38

Sooo sorry für den doppelpost .. aber ich dachte ich poste noch mal das Funktionierende Script ....


vchole.sqf
Code:

// VC Spiderhole
// Anemia 2016 - Unsung Mod
//

_vchmarker = ["h1","h2","h3","h4","h5","h6","h7","h8","h9","h10"];
_vcsquad = createGroup east;

_delay = 1;                                // Delay


for "_i" from 1 to vcholes do {
sleep _delay;
_hole = createVehicle ["LAND_uns_spiderhole4c", getMarkerPos "h1", ["h2","h3","h4","h5","h6","h7","h8","h9","h10"],0, "NONE"];
hintSilent str getPos _hole;


// Squadleader erstellen
_vcsoldier = _vcsquad createUnit ["uns_local_vc2b", (getPos _hole), [], 0, "FORM"];
                };

vcholes ist eine globale Variable die derzeit in der init vorgegeben ist.

Auf der Map werden dafür die Marker h1 - h10 verteilt, man kann natürlich mehr oder weniger Marker setzen und muss dann das Script anpassen.

init.sqf
Code:

// Total Spiderholes VC
vcholes = 5;
// Total VC Spawnpoints
vcspawnpoints = 10;


Das ganze bringt mich leider zu einer neuen Frage....

Wenn ich das Script so laufen lasse werden an 5 Spiderholes Einheiten erstellt. Diese gehören alle der Gruppe _vcsquad an. So weit so gut. Ich will aber das an jedem Spiderhole eine eigene Gruppe erstellt wird. Hat jemand einen Vorschlag wie ich unabhängige Gruppen voneinander erstellen kann ? Später sollen diese dann zufällige Wegpunkte ablaufen... Brauche also jeweils unabhängige Gruppen...
kann ich die Gruppen irgendwie nicht _vcsquad1 , 2 , 3 usw. benennen lassen ?! aber wie ?

Danke schon mal vorweg für konstruktive Vorschläge :)

Moerderhoschi 05.01.2016 18:02

so in der art sollte es klappen

Code:

// Total Spiderholes VC
vcHoles = 5;
_delay = 1;
_vchMarker = ["h1","h2","h3","h4","h5","h6","h7","h8","h9","h10"];
_vchGroups = [];

for "_i" from 1 to vcholes do
{
        // random Hole auswaehlen und aus array loeschen
        _currentHole = _vchmarker select (floor (random (count _vchmarker)));
        _vchmarker = _vchmarker - [_currentHole];

        // vc hole erstellen
        sleep _delay;
        _hole = createVehicle ["LAND_uns_spiderhole4c", getMarkerPos _currentHole, [],0, "NONE"];
        hintSilent str getPos _hole;

        // neue vc gruppe erstellen und in array speichern fuer spaetere weitere verarbeitung
        _vcsquad = createGroup east;
        _vchGroups = _vchGroups + [_vcsquad];

        // Squadleader erstellen
        _vcsoldier = _vcsquad createUnit ["uns_local_vc2b", (getPos _hole), [], 0, "FORM"];
};

// units erstellen und waypoints
{
        _x createUnit ....
        .
        .
        .       
        _wp = _x addWaypoint [[x,y], 0];
        _wp setWaypointType "sad";
} forEach _vchGroups


Anemia 06.01.2016 08:20

Genial !
Du bist mein Held ! :daumen:
Musste es noch ein bisschen umschreiben .. aber es funktioniert.
An jedem VC Spiderhole wird nun eine eigene Gruppe erstellt....

Hab es leider gestern nicht mehr geschafft Gruppenmitglieder den Gruppen zu zuteilen.

Muss ich mir heute noch mal anschauen. Allgemein muss ich mich wohl in das Thema Array's noch mal einlesen , damit hab ich noch nicht so.


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:37 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