Wie genau funktioniert "createUnit" ?
Hi!
Ich weiß, ich stelle in letzter Zeit ne Menge blöder Fragen, aber statt mich dafür zu entschuldigen, kommt hier die nächste: ääh siehe Threadtitel! Ich versuche für eine CutScene einen Hubschrauber zu erstellen, der in der Luft steht um den dann die Kamera dann ein bisschen kreisen kann usw... Ich will praktisch genau das, was man bekommt, wenn man im Editor per Mausklick einen bemannten Heli erstellt, der "Fliegend" in der Speziell-Zeile stehen hat. Nicht mehr und nicht weniger. Ich habs so probiert: Code:
GrpOne = CreategroupWEST ps: Jaja ich weiß dass der AV8B kein Hubschrauber ist! |
Zitat:
1. Es fehlt ein Leerzeichn hinter CreateGroup 2. Die Positionsangaben müssen als Array übergeben werden. 3. Der letzte Parameter ist für diese Version des Befehls zu viel. Probiere es doch mal so: Code:
GrpOne = Creategroup WEST Allerdings fliegt der jetz nicht... Wenns in der Luft sein soll... müsste es so ähnlich aussehen: Code:
GrpOne = Creategroup WEST createUnit - Bohemia Interactive Community createUnit array - Bohemia Interactive Community |
Oh mann, das fehlende Leerzeichen bei der "Creategroup WEST" ist echt hart! :D
Mit der Höhe von 1m hast du natürlich recht :), aber ich dachte durch das "FLY" kriegen Einheiten sowieso einen Standardwert von 50 zugewiesen... Abgesehen davon sind ja nicht solche Kleinigkeiten mein Problem, sondern dass der Heli (jetzt ein MH60S) gar nicht erzeugt wird. Ich habe deine beiden Codebeispiele 1:1 in mein Script kopiert (Beim Ersten natürlich hinter das Corporal noch ein " gesetzt und beim Zweiten "plane" durch mein "_cut01_heli01" ersetzt) und nach wie vor: es wird gar nichts erzeugt! Ich hatte schon immer Probleme mit diesem blöden createUnit. Bei Flashpoint hatte ich es irgendwann hingekriegt und jetzt bei ArmA2 bin ich natürlich total aus der Materie raus nach all der Zeit... |
Code:
GrpOne = Creategroup WEST Danke auch für das 3D-Addon!!! @Hath, ein bissl Fummelei und du bist wieder drin ;) Ohne Friemelei macht doch das Ganze nur halb so viel Spaß! |
Woran kann es liegen, dass mit genau diesem Code bei mir NICHTS erstellt wird? Bin mit meinem Latein am Ende...
Gibts vielleicht eine andere Möglichkeit einen besetzten Heli zu spawnen? |
Zitat:
hinter der ersten Zeile fehlte noch das ";" @Hath Kull: Warum bist du dir denn so sicher, das es nicht funktioniert? Woher hast du denn die Koordinaten? Nicht, das du das Flugzeug (oder den Heli) nicht siehst, weil der 4km von dir weg spawnt ???? Um "das Vehicle" mal über dir zu spawnen versuch doch mal folgendes: Code:
GrpOne = Creategroup WEST; Aber pass auf das dir das Ding nicht auf den Kopf fällt! Soweit ich mich erinnere, spawnen die ohne Besatzung! Die müsstest du noch mit extra Befehlen zuweisen. |
Das Vehicle mit CreateUnit zu erstellen ist doch nicht euer Ernst, oder ?
Der Befehl ist für "schlaue Objekte" (Einheiten) reserviert, während CreateVehicle für "tote Objekte" gedacht ist. (Und ja, Logiken sind de facto auch Einheiten und sollten somit in ArmA2 auch mit Createunit erzeugt werden, es mit CreateVehicleLocal zu machen ist nur ein dirty Hack zumal die dann untypischerweise beim Spieler lokal sind.) |
@HeliJunkie:
Dass der Heli nicht spawnt weiß ich, weil ich im Skript danach die Kamera auf den (nicht gespawnten) Heli fokussieren lasse (ja die Namen in der Spawnzeile und in der CamPrepareTarget-Zeile stimmen überein). Die Koordinaten hab ich mir vorher mit "camera.sqs" rausgesucht, sie befinden sich direkt neben dem Spieler. Lasse ich den Heli (leer) mit "CreateVehicle" spawnen, steht er genau wo er stehen soll. ich brauch ihn aber fliegend mit laufendem Rotor! EDIT: Lester hat tatsächlich recht! Man kann mit "CreateUnit" keine Fahrzeuge spawnen! Mit einem Soldaten funktionierts! Das behebt aber mein Problem nicht, dass ich einen fliegenden Heli brauche. Ich habs so versucht: Code:
HELI = "MH60S" createVehicle [4215,3690,100]; @Lester: Ich brauche aber eine "schlaue" Version vom Heli. Willst du sagen es ist nicht möglich per Skript einen von KI besetzten fliegenden Helikopter zu spawnen? |
Ein gescheites mittel kenn ich dazu auch nicht, ich hab damit aber auch noch nicht genauer mit rumgespielt.
Ich denke mal es hängt damit zusammen das die KI's einige Zeit brauchen bis sie "schlau" da sind. Ähnliches gibt es ja auch bei Fahrzeugen wo die Actions etwas brauchen bis sie zur Verfügung stehen. Ich würde versuchen entweder den Heli irgendwo weit entfernt auf dem Boden zu erzeugen, starten lassen und dann (wenn er abhebt, also die KI aktiv sein muß) zum Einsatzgebiet fliegen bzw. vielleicht sogar dort in die Luft hinbeamen. Ich hab aber keinen Schimmer wie die aktuelle KI dann damit klarkommt, bei OFP hatte ich mit einem Flugzeugtest ganz gute Erfolge erzielen können. Da hab ich eine bereits existierende KI im Missionsverlauf in eine Cessna gesetzt und das in die Luft gebeamt und mit velocity "angeschoben" die kam damit gut zurecht. |
Hm, dieses "erst auf dem Boden erzeugen, starten lassen..." ist für mich keine Lösung, weil ich den Heli sehr abrupt brauche.
SP-Mission. Spieler ist ein Bauer. Wird durch auslösendes Ereignis an Verangenheit erinnert (wo er Helikopterschütze war). Kamera Black Out; Kamerafokus auf entfernten Ort; fliegenden Heli erzeugen; Kamera Black In (SchwarzWeiß); kleine Kamerafahrt um den Heli, dessen Schütze auf ein imaginäres Ziel feuert; Kamera Black Out; Heli löschen; zurück zum Spiel... Das muss alles recht schnell gehen. Soll insgesamt nur ca.5-7sec in Anspruch nehmen. Weil der Spieler volle Bewegungsfreiheit hat, kann ich nicht schon Minuten vorher irgendwo nen Heli auf den Boden stellen. Das muss doch irgendwie zu machen sein. Meine Güte ich dachte die Engine hat sich seit Flashpoint irgendwie weiterentwickelt (außer mit Bloom & MotionBlur)! |
geht schon einfach irgendwo in die entlegenste Ecke und wenn du ihn benötigst per setpostion an den gewünschten Ort "beamen" per velocity noch ein wenig speed geben
|
DANKE!! Auf die einfachsten und besten Lösungen kommt man eben meist nicht selbst! :) Muss aber halt wirklich ne entlegene Ecke sein, damit der Spieler den Rotorsound nicht hört (kann man da irgendwie per script die Lautstärke auf 0 drehen und später wieder hoch?) ... außerdem darf das Fuel dem Heli nicht ausgehen, während er auf seinen Einsatz "wartet", aber das is ja alles hinzukriegen! Mensch alky du bist mein Retter.
...trotzdem blöd, dass man zu solchen "unsauberen" Mitteln greifen muss, weil es mit der BIS-Engine scheinbar nicht anders möglich ist. |
naja das gleiche hatte Lester gesagt nur vielleicht nicht ganz so verständlich für ein unerfahrenden Missionbastler also gehört der dank ihm
Ich weiß nicht ob das möglich ist aber las den Heli doch einfach später starten heißt du lässt ihn also 20-30sec bevor er benötigt wird starten |
Hast recht! Hatte ich ganz übersehen. Oder vielleicht war ich an der Stelle auch noch nicht so offen für "Alternativlösungen" und hab es willentlich übersehen. :o) Also ein genausogroßes Stück DANK an Lester!!
Ganz unerfahren bin ich eigentlich nicht. Naja zumindest hab ich in Flashpoint sehr ausgereifte Sachen gemacht, aber das ist ne Weile her und ich bin immer noch dabei die Basics wiederzuentdecken... |
OK...
... der Einwand von Leser war verdammt gut! :confused: Hätte man auch von selbst drauf kommen können (oder besser müssen). |
Ups *Asche auf mein Haupt*
Natürlich mit CreateVehicle !!! Erst gucken, dann kommentieren und loben! In meinem AirVehicleCreate-Example habe ich das natürlich auch so gemacht und wie Lester auch schon erwähnte die Kiste mit setVeloCity angeschoben. Lief in ArmA wunderbar, hab´s nur in A2 noch nicht getestet und würde es für A2 eh komplett neu aufsetzen und natürlich als Funktion. Viele Grüße Mr-Murray |
Hab das ganze mal im BI3DE nachgestellt, und mir dann den Code der misson.sqf angeschaut....
Hier ist der Originalausschnitt: Code:
_group_0 = createGroup _center_0; Code:
NewGroup = CreateGroup West; Hoffe das funktioniert.... Gruß HeliJunkie |
Schaut doch schon besser aus ;)
|
Hab ja nu wirklich keine AHnung von dem Kram und verzweifel regelmässig selber an derart klerinen Dingen(darum habsch auch glei hier nachgeguckt :D), aber ich meine da mal aus einer Evo geklaut zu haben und da war folgendes noch mit zwischen den Zeilen:
Code:
?!(EngineOn _jeep) : _jeep engineOn true Also irgendwas mit dem "EngineOn" Befehl halt. Guck mal wie das in ArmA 1 in einer Evo gelöst wird. Hatte mir damals auch geholfen. |
@HeliJunkie:
Ich bin begeistert! Was du unter "etwas vereinfacht" da hingescriptet hast ist genau perfekt! Kein vorher erstellen der Einheit, kein <setpos>... Funktioniert 1A! Das "engineON" ist noch nicht mal nötig. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:15 Uhr. |
Angetrieben durch vBulletin, Entwicklung von Philipp Dörner & Tobias