Armed-Assault.de Twitter
Antwort
 
Themen-Optionen Ansicht
Alt 16.06.2009, 20:18   #1 (permalink)
50 Beiträge
 
Registriert seit: 12.06.2009
Beiträge: 53
Standard 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"]
aber irgendwas kann da nicht stimmen, denn es wird gar nichts erstellt. Ich habe tausendmal versucht, die "CreateUnit"-Zeile abzuändern, habe Stunden damit zugebracht. Nix! Mit "CreateVehicle" ist es kein Problem, aber dann ist das Ding ja leer und kann nicht fliegen! Es ist zum ausrasten!

ps: Jaja ich weiß dass der AV8B kein Hubschrauber ist!
Hath Kull ist offline   Mit Zitat antworten
Alt 16.06.2009, 20:57   #2 (permalink)
Newbie
 
Registriert seit: 11.06.2009
Beiträge: 16
Standard

Zitat von Hath Kull Beitrag anzeigen

Ich habs so probiert:

Code:
GrpOne = CreategroupWEST
"Av8b" createUnit [4210,3690,1, GrpOne, "_cut01_heli01 = this", 1, "Corporal", "FLY"]
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]
Wobei die Positions-Höhe (orange markiert) mit 1m für eine AV8B nicht wirklich hoch ist.... ;-)
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"];
Und hier noch die zwei links zu den Befehlssyntax aus dem WIKI:
createUnit - Bohemia Interactive Community
createUnit array - Bohemia Interactive Community
HeliJunkie ist offline   Mit Zitat antworten
Alt 16.06.2009, 21:13   #3 (permalink)
50 Beiträge
 
Registriert seit: 12.06.2009
Beiträge: 53
Standard

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 21:36 Uhr).
Hath Kull ist offline   Mit Zitat antworten
Alt 16.06.2009, 23:46   #4 (permalink)
500 Beiträge
 
Benutzerbild von Mr-Murray
 
Registriert seit: 10.06.2004
Ort: München - Germany
Beiträge: 876
Mr-Murray eine Nachricht über ICQ schicken Mr-Murray eine Nachricht über Skype™ schicken
Standard

Code:
GrpOne = Creategroup WEST
Plane = GrpOne createUnit ["Av8b",[4210,3690,100], [],0,"FLY"];
PERFEKT HeliJunkie!
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
Mr-Murray ist offline   Mit Zitat antworten
Alt 17.06.2009, 00:08   #5 (permalink)
50 Beiträge
 
Registriert seit: 12.06.2009
Beiträge: 53
Standard

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?
Hath Kull ist offline   Mit Zitat antworten
Alt 17.06.2009, 08:14   #6 (permalink)
Newbie
 
Registriert seit: 11.06.2009
Beiträge: 16
Standard

Zitat von Mr-Murray Beitrag anzeigen

Code:
GrpOne = Creategroup WEST;
Plane = GrpOne createUnit ["Av8b",[4210,3690,100], [],0,"FLY"];
PERFEKT HeliJunkie!
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"];
(P.S.: Kann ich nicht live testen, daher ohne Gewääähr! )


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.
HeliJunkie ist offline   Mit Zitat antworten
Alt 17.06.2009, 09:27   #7 (permalink)
10 Jahre hx3
500 Beiträge1000 Beiträge2.500 Beiträge
 
Benutzerbild von Lester
 
Registriert seit: 26.11.2006
Ort: Kiel, S-H
Alter: 51
Beiträge: 3.011
Standard

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
Lester ist offline   Mit Zitat antworten
Alt 17.06.2009, 11:32   #8 (permalink)
50 Beiträge
 
Registriert seit: 12.06.2009
Beiträge: 53
Standard

@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;
Der Heli entsteht, der Pilot sitzt drin. Das war's. Kein Rotor an, kein Zentimeter Flughöhe...

@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 11:59 Uhr). Grund: Rechtschreibfehler + Erkenntnisse :)
Hath Kull ist offline   Mit Zitat antworten
Alt 17.06.2009, 12:45   #9 (permalink)
10 Jahre hx3
500 Beiträge1000 Beiträge2.500 Beiträge
 
Benutzerbild von Lester
 
Registriert seit: 26.11.2006
Ort: Kiel, S-H
Alter: 51
Beiträge: 3.011
Standard

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
Lester ist offline   Mit Zitat antworten
Alt 17.06.2009, 13:04   #10 (permalink)
50 Beiträge
 
Registriert seit: 12.06.2009
Beiträge: 53
Standard

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 13:08 Uhr).
Hath Kull ist offline   Mit Zitat antworten
Alt 17.06.2009, 13:09   #11 (permalink)
500 Beiträge
 
Benutzerbild von deralky
 
Registriert seit: 26.07.2006
Ort: Hoetmar
Alter: 27
Beiträge: 822
deralky eine Nachricht über ICQ schicken
Standard

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
deralky ist offline   Mit Zitat antworten
Alt 17.06.2009, 13:17   #12 (permalink)
50 Beiträge
 
Registriert seit: 12.06.2009
Beiträge: 53
Standard

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 13:20 Uhr).
Hath Kull ist offline   Mit Zitat antworten
Alt 17.06.2009, 13:24   #13 (permalink)
500 Beiträge
 
Benutzerbild von deralky
 
Registriert seit: 26.07.2006
Ort: Hoetmar
Alter: 27
Beiträge: 822
deralky eine Nachricht über ICQ schicken
Standard

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
deralky ist offline   Mit Zitat antworten
Alt 17.06.2009, 13:29   #14 (permalink)
50 Beiträge
 
Registriert seit: 12.06.2009
Beiträge: 53
Standard

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...
Hath Kull ist offline   Mit Zitat antworten
Alt 17.06.2009, 15:27   #15 (permalink)
Newbie
 
Registriert seit: 11.06.2009
Beiträge: 16
Standard

OK...
... der Einwand von Leser war verdammt gut!
Hätte man auch von selbst drauf kommen können (oder besser müssen).
HeliJunkie ist offline   Mit Zitat antworten
Alt 17.06.2009, 20:07   #16 (permalink)
500 Beiträge
 
Benutzerbild von Mr-Murray
 
Registriert seit: 10.06.2004
Ort: München - Germany
Beiträge: 876
Mr-Murray eine Nachricht über ICQ schicken Mr-Murray eine Nachricht über Skype™ schicken
Standard

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 20:10 Uhr).
Mr-Murray ist offline   Mit Zitat antworten
Alt 17.06.2009, 20:35   #17 (permalink)
Newbie
 
Registriert seit: 11.06.2009
Beiträge: 16
Standard

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;};
};
Etwas vereinfacht würde ich sagen:
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;
Die Positionsdaten müssen natürlich auf eure Bedürfnisse angepasst werden....

Hoffe das funktioniert....

Gruß
HeliJunkie
HeliJunkie ist offline   Mit Zitat antworten
Alt 17.06.2009, 20:45   #18 (permalink)
500 Beiträge
 
Benutzerbild von Mr-Murray
 
Registriert seit: 10.06.2004
Ort: München - Germany
Beiträge: 876
Mr-Murray eine Nachricht über ICQ schicken Mr-Murray eine Nachricht über Skype™ schicken
Standard

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
Mr-Murray ist offline   Mit Zitat antworten
Alt 18.06.2009, 02:32   #19 (permalink)
10 Jahre hx3
5000 Beiträge
 
Benutzerbild von Duke49th
 
Registriert seit: 06.10.2006
Ort: Manila
Alter: 37
Beiträge: 7.914
Standard

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
(Habs jetzt direkt aus der Biki kopiert, aber es geht ja nur ums Prinzip)

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.
__________________

Intel Board | Intel i3 2100 |Dell 8GB DDR-3 1600 | AMD HD7770 1GB | Creative Audigy EX Platinum | TrackIR 5 | Win 10 Pro x64 | Linux Mint x64 | Coolermaster Modular 620W

Geändert von Duke49th (18.06.2009 um 02:36 Uhr).
Duke49th ist offline   Mit Zitat antworten
Alt 18.06.2009, 12:17   #20 (permalink)
50 Beiträge
 
Registriert seit: 12.06.2009
Beiträge: 53
Standard

@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 12:52 Uhr).
Hath Kull ist offline   Mit Zitat antworten
Antwort


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
"Flügelanimationen" bzw "gefaltete Flügel" der Flugzeuge auf dem Träger ST6_Predator Technische Fragen & Probleme 0 07.06.2009 19:19
Brauche hilfe zu -> FFAA requires addon "DBE1"?! n0pp3 Mods & Addons 2 12.01.2009 23:06
Waypoint "GUARD" oder "BEWACHEN" syn1979 Editing 2 21.12.2006 09:05
Der "Warum ist OFP immer noch mein Lieblingsgame" Thread Lonely Community 24 27.02.2006 17:55
"Official Release of OFPSentry Anti Cheat System" Kompost Community 2 15.06.2005 19:58


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