16.06.2009, 19:18 | #1 (permalink) |
Registriert seit: 12.06.2009
Beiträge: 53
|
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 "Av8b" createUnit [4210,3690,1, GrpOne, "_cut01_heli01 = this", 1, "Corporal", "FLY"] ps: Jaja ich weiß dass der AV8B kein Hubschrauber ist! |
16.06.2009, 19:57 | #2 (permalink) |
Registriert seit: 11.06.2009
Beiträge: 16
|
Ich kann es gerade nicht "live" testen, aber ich sehe so schon 3 Fehler: 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 "Av8b" createUnit [[4210,3690,1], GrpOne, "_cut01_heli01 = this;", 1, "Corporal] Allerdings fliegt der jetz nicht... Wenns in der Luft sein soll... müsste es so ähnlich aussehen: Code:
GrpOne = Creategroup WEST Plane = GrpOne createUnit ["Av8b",[4210,3690,100], [],0,"FLY"]; createUnit - Bohemia Interactive Community createUnit array - Bohemia Interactive Community |
16.06.2009, 20:13 | #3 (permalink) |
Registriert seit: 12.06.2009
Beiträge: 53
|
Oh mann, das fehlende Leerzeichen bei der "Creategroup WEST" ist echt hart!
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... Geändert von Hath Kull (16.06.2009 um 20:36 Uhr). |
16.06.2009, 22:46 | #4 (permalink) |
Code:
GrpOne = Creategroup WEST Plane = GrpOne createUnit ["Av8b",[4210,3690,100], [],0,"FLY"]; 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ß!
__________________
MR-MURRAY presents ArmA Editing Guide Deluxe Edition - English Version Download ArmA Editing Guide Deluxe Edition - German Version Download Visit me at Facebook! Mapfact Murray |
|
17.06.2009, 07:14 | #6 (permalink) |
Registriert seit: 11.06.2009
Beiträge: 16
|
Naja... aber nur fast.... 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; Plane = GrpOne createUnit ["Av8b",[(getpos player) select 0,(getpos player) select 1,100], [],0,"FLY"]; 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. |
17.06.2009, 08:27 | #7 (permalink) |
Registriert seit: 26.11.2006
Ort: Kiel, S-H
Alter: 57
Beiträge: 3.013
|
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.)
__________________
Nur ein Beispiel das zeigt wie BI "support" definiert: https://feedback.bistudio.com/T75547 |
17.06.2009, 10:32 | #8 (permalink) |
Registriert seit: 12.06.2009
Beiträge: 53
|
@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]; GrpOne = Creategroup WEST; PILOT = GrpOne createUnit ["USMC_Soldier_SL",[(getpos player) select 0,(getpos player) select 1,100], [],0,"FLY"]]; PILOT moveindriver HELI; PILOT flyinheight 20; //und zur Sicherheit noch dazu: HELI flyinheight 20; @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? Geändert von Hath Kull (17.06.2009 um 10:59 Uhr). Grund: Rechtschreibfehler + Erkenntnisse :) |
17.06.2009, 11:45 | #9 (permalink) |
Registriert seit: 26.11.2006
Ort: Kiel, S-H
Alter: 57
Beiträge: 3.013
|
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.
__________________
Nur ein Beispiel das zeigt wie BI "support" definiert: https://feedback.bistudio.com/T75547 |
17.06.2009, 12:04 | #10 (permalink) |
Registriert seit: 12.06.2009
Beiträge: 53
|
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)! Geändert von Hath Kull (17.06.2009 um 12:08 Uhr). |
17.06.2009, 12:09 | #11 (permalink) |
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
__________________
Ikolium für einen armen Mann Wer zu erst schießt verrät seine Position an die anderen |
|
17.06.2009, 12:17 | #12 (permalink) |
Registriert seit: 12.06.2009
Beiträge: 53
|
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. Geändert von Hath Kull (17.06.2009 um 12:20 Uhr). |
17.06.2009, 12:24 | #13 (permalink) |
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
__________________
Ikolium für einen armen Mann Wer zu erst schießt verrät seine Position an die anderen |
|
17.06.2009, 12:29 | #14 (permalink) |
Registriert seit: 12.06.2009
Beiträge: 53
|
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... |
17.06.2009, 19:07 | #16 (permalink) |
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
__________________
MR-MURRAY presents ArmA Editing Guide Deluxe Edition - English Version Download ArmA Editing Guide Deluxe Edition - German Version Download Visit me at Facebook! Mapfact Murray Geändert von Mr-Murray (17.06.2009 um 19:10 Uhr). |
|
17.06.2009, 19:35 | #17 (permalink) |
Registriert seit: 11.06.2009
Beiträge: 16
|
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; _vehicle_0 = objNull; if (true) then { _this = createVehicle ["MH60S", [3519.1914, 3616.2317], [], 0, "FLY"]; _vehicle_0 = _this; _this setVehicleVarName "HeliUH60"; HeliUH60 = _this; }; _unit_1 = objNull; if (true) then { _this = _group_0 createUnit ["CDF_Soldier_Pilot", [3567.2214, 3608.0342, 0], [], 0, "CAN_COLLIDE"]; _unit_1 = _this; _this setVehicleVarName "HeliPilot"; HeliPilot = _this; _this setUnitAbility 0.60000002; _this moveInDriver _vehicle_0; if (true) then {_group_0 selectLeader _this;}; }; Code:
NewGroup = CreateGroup West; HeliUH60 = createVehicle ["MH60S", [3519.1914, 3616.2317], [], 0, "FLY"]; HeliPilot = NewGroup createUnit ["CDF_Soldier_Pilot", [3567.2214, 3608.0342, 0], [], 0, "CAN_COLLIDE"]; HeliPilot moveInDriver HeliUH60; Hoffe das funktioniert.... Gruß HeliJunkie |
17.06.2009, 19:45 | #18 (permalink) |
Schaut doch schon besser aus
__________________
MR-MURRAY presents ArmA Editing Guide Deluxe Edition - English Version Download ArmA Editing Guide Deluxe Edition - German Version Download Visit me at Facebook! Mapfact Murray |
|
18.06.2009, 01:32 | #19 (permalink) |
Registriert seit: 06.10.2006
Ort: Manila
Alter: 43
Beiträge: 8.433
|
Hab ja nu wirklich keine AHnung von dem Kram und verzweifel regelmässig selber an derart klerinen Dingen(darum habsch auch glei hier nachgeguckt ), 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.
__________________
MSI B450 Gaming Plus Pro | AMD Ryzen 7 5700X3D | Nvidia RTX 3060 TI | Teamgroup 32GB DDR-4 3200 | Track NP 5 | Linux Mint |Seasonic 750W Geändert von Duke49th (18.06.2009 um 01:36 Uhr). |
18.06.2009, 11:17 | #20 (permalink) |
Registriert seit: 12.06.2009
Beiträge: 53
|
@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. Geändert von Hath Kull (18.06.2009 um 11:52 Uhr). |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
|
|
Ähnliche Themen | ||||
Thema | Autor | Forum | Antworten | Letzter Beitrag |
"Flügelanimationen" bzw "gefaltete Flügel" der Flugzeuge auf dem Träger | ST6_Predator | Technische Fragen & Probleme | 0 | 07.06.2009 18:19 |
Brauche hilfe zu -> FFAA requires addon "DBE1"?! | n0pp3 | Mods & Addons | 2 | 12.01.2009 22:06 |
Waypoint "GUARD" oder "BEWACHEN" | syn1979 | Editing | 2 | 21.12.2006 08:05 |
Der "Warum ist OFP immer noch mein Lieblingsgame" Thread | Lonely | Community | 24 | 27.02.2006 16:55 |
"Official Release of OFPSentry Anti Cheat System" | Kompost | Community | 2 | 15.06.2005 18:58 |