Armed-Assault.de Twitter
 
 
Themen-Optionen Ansicht
Alt 04.10.2012, 09:00   #1 (permalink)
Newbie
 
Benutzerbild von Rubbermen
 
Registriert seit: 31.05.2009
Beiträge: 34
Standard 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 ?!
Rubbermen ist offline  
Alt 04.10.2012, 09:33   #2 (permalink)
Armed-Assault.de Team10 Jahre hx3
500 Beiträge1000 Beiträge2.500 Beiträge
 
Benutzerbild von Moerderhoschi
 
Registriert seit: 02.07.2006
Ort: Kabul
Alter: 38
Beiträge: 2.666
Standard

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
__________________



Geändert von Moerderhoschi (04.10.2012 um 13:32 Uhr). Grund: codeoptimierung im ersten script
Moerderhoschi ist offline  
Alt 04.10.2012, 16:44   #3 (permalink)
Newbie
 
Benutzerbild von Rubbermen
 
Registriert seit: 31.05.2009
Beiträge: 34
Standard

Ahhhaa, danke dir gefällt mir sehr gut, danke.
Rubbermen ist offline  
Alt 04.10.2012, 18:13   #4 (permalink)
SQF Zauberer 10 Jahre hx3
500 Beiträge1000 Beiträge
 
Benutzerbild von Vienna
 
Registriert seit: 12.07.2004
Ort: Wien
Beiträge: 1.917
Standard

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
Angehängte Dateien
Dateityp: zip Move_Objekte-utes.zip (1,7 KB, 84x aufgerufen)
Vienna ist offline  
 


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Fragen zum Editor chris2110 Editing & Scripting 1014 26.08.2014 00:25
- Evolution Blue und Hohei für [OA] und [A2]- Pfandgiraffe Usermade Missions 155 26.08.2011 20:11
Fehlermeldungen bei Schüssen GER_CJ-187 Technische Fragen & Probleme 2 22.11.2010 13:47
Probleme bei Norrin Revive Script 0.49b Jekko Editing & Scripting 24 21.09.2010 20:39
Multiplayer PROBLEM!!! Panzagrenadier Multiplayer 15 18.06.2010 15:12


Kontakt - HX3.de - Archiv - Nach oben

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