HX3 Foren

HX3 Foren (https://hx3.de/)
-   Editing & Scripting (https://hx3.de/editing-scripting-167/)
-   -   Camps an zufälliger Position (https://hx3.de/editing-scripting-167/camps-zufaelliger-position-21914/)

Rubbermen 04.10.2012 08:00

Camps an zufälliger Position
 
Hiho,
Ich würde gerne ein realativ kleines Camp errichten inkl. Besatzung welches zum Missionsbeginn immer an einer anderen Stelle ist (3-5 Positionen). Also recht ähnlich wie in der ArmA2 Mission.: Manhattan. Wie bewerkstelle ich das am besten ?!

Moerderhoschi 04.10.2012 08:33

Eine Moeglichkeit waere alle 5 Camps zu erstellen und 4 beim Missionstart zu loeschen. Das geht mit einem switch case und sollte in etwa so aussehen.

Code:

_camppos1 = [x,y];
_camppos2 = [x,y];
_camppos3 = [x,y];
_camppos4 = [x,y];
_camppos5 = [x,y];

_delcamp = {{deletevehicle _x} foreach (nearestobjects [(_this select 0),[],50])};

switch (ceil random 5) do {

case 1: {{[_x] call _delcamp} foreach [_camppos2,_camppos3,_camppos4,_camppos5]};
case 2: {{[_x] call _delcamp} foreach [_camppos1,_camppos3,_camppos4,_camppos5]};
case 3: {{[_x] call _delcamp} foreach [_camppos1,_camppos2,_camppos4,_camppos5]};
case 4: {{[_x] call _delcamp} foreach [_camppos1,_camppos2,_camppos3,_camppos5]};
default {{[_x] call _delcamp} foreach [_camppos1,_camppos2,_camppos3,_camppos4]};

};


Eine weitere Moeglichkeit waere die einzelnen Objekte und Einheiten mit einem setpos befehl an die richtige stelle zu verschieben. Das realisiert man auch wieder mit einem switch case und sollte in etwa so aussehen.

Code:

switch (ceil random 5) do {

case 1: {
Zelt1 setpos [x,y];
Zelt2 setpos [x,y];
Wache1 setpos [x,y];
Wache2 setpos [x,y];
};

case 2: {
Zelt1 setpos [x,y];
Zelt2 setpos [x,y];
Wache1 setpos [x,y];
Wache2 setpos [x,y];
};

case 3: {
Zelt1 setpos [x,y];
Zelt2 setpos [x,y];
Wache1 setpos [x,y];
Wache2 setpos [x,y];
};

case 4: {
Zelt1 setpos [x,y];
Zelt2 setpos [x,y];
Wache1 setpos [x,y];
Wache2 setpos [x,y];
};

default {
Zelt1 setpos [x,y];
Zelt2 setpos [x,y];
Wache1 setpos [x,y];
Wache2 setpos [x,y];
};

};


Ich wuerde die erste Variante vorziehen da man dort nicht jede einzelne Position fuer jedes Objekt an allen 5 Stellen ermitteln muss.

gruß
hoschi

Rubbermen 04.10.2012 15:44

Ahhhaa, danke dir gefällt mir sehr gut, danke.

Vienna 04.10.2012 17:13

Liste der Anhänge anzeigen (Anzahl: 1)
Das folgende Skript versetzt eine Menge von Objekten an eine bestimmte Position (beginnend mit dem ersten Objekt der Liste an der neuen Position) und behält dabei die Aufstellung der Objekte zueinander bei. So ist es z.B. möglich ein erstelltes Lager mit Fahrzeugen, Soldaten, usw. beliebig an verschiedene Positionen der Karte zu verlegen.

Man baucht nur den zu versetzenden Objekten einen Namen geben und dann die neue Position und die Namen der Objekte dem Skript übergeben.

Beispiel für einen Auslöser:
temp = [ position Player, [Name1 Name2,Name3] ] execVM "Move_Units.sqf"

Skript: Move_Units.sqf
Code:

// ***********************************************************
// 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



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