PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Hallo frage Zufalls Position!


Ghost_Aut
15.03.2009, 18:40
Würde gerne in der Mp Mission eine Ari von Mr-Murray mit einbauen,die D30 Geschütze habe ich im Editor erstellt und den Auslöser auch!!Und habe mir 6 Scripts mit den Namen Artellerie1.sqs bis Artellerie6.sqs Erstellt mit verschiedenen Positionen, ich würde gerne am Anfang der Mission Eines der Skripts starten lassen, das die Position der Ari nicht immer auf der gleichen stelle, In der Mission steht! Wie könnte man das in der init.sqs konfigurieren!!
Es solte nur eins von den sechs ausgefürt werden einmal!!
Lg: Ghost

TeRp
15.03.2009, 20:22
Mal so aus'm Stehgreif, keine Garantie:

_tmp = ceil (random 6);
if (_tmp == 0) then { _tmp = 1; };

_script = format ["Artillerie%1.sqs",_tmp];
[] exec _script;

Master85
15.03.2009, 20:32
Du brauchst das mit den 6 verschiedenen Skripts gar nicht machen, kannst sowas verwenden:

_positions = [[1,2,3],[4,5,6],[7,8,9]];
_pos = _positions select floor(random (count _positions));_pos sollte dann eine der Positionen aus dem _positions-Array enthalten.

Wenn du das mit den 6 Skripts umbedingt haben willst, wird es irgendwas mit
exec format ["Artillerie%1.sqs", 1 + floor(random 6)]sein.

Edit: zu lange rumgebastelt, TeRp war schneller...

Ghost_Aut
15.03.2009, 21:54
Danke Leute!!

Ich habe es gerade getestet von euch beiden, und es gehen beide code!!
Danke noch mal für eure schnelle hilfe!!

Mfg: Ghost

Vienna
15.03.2009, 22:18
Ich nehme an, die Objekte einer Artilleriebatterie sollen beim Verstellen ihre Anordnung beibehalten. Das ist mit dem Skript möglich. Die versetzten Objekte verändern an ihrem neuen Platz nicht die Anordnung zueinander.

Es sollten aber nicht wahllose Plätze sein, da die Geschütze nicht an einem Steilhang stehen sollen. Einfach mehrere Positionen markieren und die Positionen per Zufall auswählen.

Skript Move_Units.sqf

// ************************************************** *********
// Versetzt eine Gruppe von Objekten an eine andere Position,
// unter Beibehaltung der Stellung der Objekte zueinander.
//
// Aufruf: [[<Neue Position>],[<Objektname 1>,<Objektname 2>,usw...]] execVM "Move_Units.sqf"
// ************************************************** *********

if (!isServer) exitWith {};

private ["_posX","_posY","_obj","_posRx","_posRy"];

//Parameter

//neue Position
_posX = (_this select 0) select 0;
_posY = (_this select 0) select 1;

//Liste (Array) mit den Objekt-Namen der Gruppe
_obj = _this select 1;

//Position der 1. Unit als Referenz
_posRx = getpos(_obj select 0)select 0;
_posRy = getpos(_obj select 0)select 1;

//Schleife durch alle Objekte der Liste
{
//Unit auf neue Position in Relation zur 1. Unit
_x setpos [_posX+((getpos _x select 0)-_posRx),_posY+((getpos _x select 1)-_posRy)]
} forEach _obj

Ghost_Aut
16.03.2009, 21:16
Hallo Vienna!

Es ist sicher ein guter code, und werd in sicher mal brauchen können,
aber ich habe 6 script.sqs!
wo ich auch marker erstellen muss und auslöser bei scripts, erstelle, da es ein artellerie lager werden solte!

dadurch versetze ich sie mit der,
position[]={6256.066895,-65.478279,12139.111328};

wie den einen Turm!!
turm1 = "WarfareBEastMGNest_PK" createVehicle [7855.384277,15779.550781,30.806419];
turm1 setDir 125
turm1 lock false

und die beiden code, sind eh ganz gut und einfach zu verwenden!!
aber danke!!
habe spähter eh noch eine frage an dich wegen den LaserAirHQ!!

Mfg: Ghost