26.09.2012, 14:43 | #1 (permalink) |
Registriert seit: 26.09.2012
Beiträge: 120
|
Wegpunkt an Einheit heften
Hallo Community , vielleicht kann mir jemand bei einem Problem helfen.
Was ich vorhabe: Ich sitze zum Start der Mission als Beifahrer in einem Auto und warte darauf das ein LKW in eine bestimmte Zone (Auslöser) fährt, wenn das passiert, möchte ich das mein Fahrer (Fahrer1) dem LKW folgt. Dazu müsste ich wahrscheinlich einen Wegpunkt an den LKW heften. Ich habe es so probiert, hat aber nicht so funktioniert wie ich wollte: WP1 = Fahrer1 addWaypoint[position LKW, 0]; Es wird zwar ein Wegpunkt erstellt, aber nur an der aktuellen Position des LKWs also auf dem Boden . Ich hab schon alles probiert ich krigs einfach nicht hin PS: Ich habe auch schon Mr. Murrays Arma I - Hilfe Tutorial zu rate gezogen, aber bin noch nicht fündig geworden. Appropo Mr. Murray , arbeitet er noch an dem Tut für Arma II ? Übrigens danke an Mr. Murray für deine Arbeit Gruß MagicStyle Geändert von MagicStyle (26.09.2012 um 14:57 Uhr). |
26.09.2012, 18:35 | #2 (permalink) |
Registriert seit: 12.07.2004
Ort: Wien
Beiträge: 1.917
|
Versuche es mit diesem Befehl: http://community.bistudio.com/wiki/doMove
Das muss aber in einer Schleife wiederholt werden: Code:
temp = [Fahrer1,LKW] spawn { while {true} do {_this select 0 doMove position (_this select 1); sleep 1} } |
26.09.2012, 22:28 | #3 (permalink) |
Registriert seit: 26.09.2012
Beiträge: 120
|
Danke für deine Antwort Ich versteh den Code aber nicht ganz, könntest du mir bitte erklären warum du "spawn" verwendet hast? Was hat der unterstrich bei _this zu bedeuten? Welchen zweck hat select? Ansonsten ist alles klar. EDIT: Ich habe es gerade probiert, aber bekomms nicht gebacken Ich habe im Missionsordner eine script Datei mit dem Namen "script1.sqs" angelegt, dort ist dein Code gespeichert, bei Endbedinung war ich mir nicht sicher was ich reinschreiben soll, ich hab einfach mal "player alive" reingeschrieben. Im Spiel habe ich dann einen Wegpunkt für den LKW gesetzt, irgendwo auf dem Weg liegt der Auslöser, dort habe ich unter "Bei aktivierung" folgendes hingeschrieben: [] exec"script1.sqs" Leider klappt es nicht :/ Geändert von MagicStyle (26.09.2012 um 23:08 Uhr). |
26.09.2012, 23:01 | #4 (permalink) |
Registriert seit: 02.07.2006
Ort: Kabul
Alter: 38
Beiträge: 2.666
|
Ich bin zwar nicht Vienna aber trotzdem mal so frei. temp = [Fahrer1,LKW] spawn {while {true} do {_this select 0 doMove position (_this select 1); sleep 1}}; Mit spawn erzeugst Du ein neues Script und benoetigst dafuer nicht eine externe Datei. Der untersrich bei _this gehoert zu _this select 0 / _this select 1 und bezieht sich auf den ertsten/zwoten Parameter den Du dem Script mit uebergibst. Code:
0 = [Paramter1,Paramter2] spawn { MeinErsterParameter = _this select 0; MeinZweiterParameter = _this select 1; } also Quasi Code:
0= [] spawn {while {true} do {(driver NameDesVerfolgerAutos) doMove position NameDesZuVerfolgendenLKWs; sleep 1}}; hoschi |
27.09.2012, 08:57 | #6 (permalink) |
Registriert seit: 12.07.2004
Ort: Wien
Beiträge: 1.917
|
Den Code kopierst du in Bei Akt. in deinen Auslöser.
Der Befehl doMove lenkt Fahrer1 zur angegebenen Position von LKW. Da sich die Position von LKW immer verändert, wird sie nach der Pause von sleep 1 nach einer Sekunde nachgestellt. Die erforderliche Pause ist von der Geschwindigkeit von LKW abhängig. Kann sein dass du die Pausezeit ändern musst. Wie bereits erwähnt läuft die Schleife, durch "while {true} do ..." endlos. Anstelle von true musst du noch eine Bedingung fürs Beenden der Schleife einfügen. z.B. wenn LKW eine bestimmte Position erreicht die du mit einer Fahne mit Namen Fahne1 markiert hast: while {LKW distance Fahne1 > 10} do ... Damit läuft die Schleife so lange, als LKW einen größeren Abstand als 10m zur Fahne1 hat. Auch Fahne1 als Parameter übergeben sieht der Code dann so aus: Code:
temp = [Fahrer1,LKW,Fahne1] spawn { while {(_this select 1) distance (_this select 2) > 10} do { (_this select 0) doMove position (_this select 1); sleep 1 } } Es ist nicht notwendig (_this select x) in jedem Fall in Klammern zu setzen, aber so können in bestimmten Anwendungen Fehler vermieden werden. Warum für den Code die Objekte als Parameter übergeben? Man kann so den Code auch für andere Objekte verwenden, ohne die Objektnamen im Code ändern zu müssen. Übersichtlicher ist ein Code wenn man lokale Variable verwendet: Code:
temp = [Fahrer1, LKW, Fahne1] spawn { private ["_Verfolger","_ZielObjekt","_EndObjekt"]; _Verfolger = _this select 0; _ZielObjekt = _this select 1; _EndObjekt = _this select 2; while {_ZielObjekt distance _EndObjekt > 10} do { _Verfolger doMove position _ZielObjekt; sleep 1 } } |
27.09.2012, 17:17 | #7 (permalink) |
Registriert seit: 26.09.2012
Beiträge: 120
|
Vielen Dank Vienna, damit müsste ich es auf jedenfall hinbekommen!
Edit: Es hat geklappt und ich habe viel dazu gelernt! Vielen Dank für eure Hilfe, insbesondere Danke an Vienna Geändert von MagicStyle (27.09.2012 um 17:50 Uhr). |
28.09.2012, 21:34 | #8 (permalink) |
Registriert seit: 26.09.2012
Beiträge: 120
|
Mir ist noch etwas eingefallen, ich möchte eine Zone um ein Dorf bauen indem alle Autos nur eine bestimmte Geschwindigkeit fahren dürfen, leider kenn ich mich mit den Klassen noch nicht aus,... Weiss jemand wie ich das umsetzen kann?
Ich hätte gesagt: Klasse forceSpeed 15; Nur weiss ich nicht was ich bei Klasse hinschreiben soll |
29.09.2012, 10:50 | #9 (permalink) |
Registriert seit: 12.07.2004
Ort: Wien
Beiträge: 1.917
|
Einmal-Auslöser mit Namen Trigger1
Aktivierung: "Jeder" oder "Blufor", "Opfor" usw. Bedingung: true Bei Akt.: folgenden Code reinkopieren: Code:
temp = [20, Trigger1] spawn { while {true} do { { if (speed _x > (_this select 0)) then {_x limitSpeed (_this select 0)} } forEach list (_this select 1); sleep 0.1 } } |
03.10.2012, 14:55 | #10 (permalink) |
Registriert seit: 26.09.2012
Beiträge: 120
|
"Ein Spieler ist bei der Polizei anzuzeigen, wenn er zu schnell fährt." geile Idee, das werd ich glaube ich sogar einbauen ^^ Von euch kann man so einiges lernen!
Geändert von MagicStyle (03.10.2012 um 14:58 Uhr). |
Stichworte |
folgen, heften, kleben, waypoint, wegpunkt |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
Themen-Optionen | |
Ansicht | |
|
|
Ähnliche Themen | ||||
Thema | Autor | Forum | Antworten | Letzter Beitrag |
ArmA Wargames | mwd2 | Die Litfaßsäule | 4 | 18.10.2012 21:37 |
Patch 1.60! | Xeno | Community | 69 | 11.01.2012 13:41 |
1.60 rc | Dieter66 | Community | 47 | 22.12.2011 16:49 |
ArmA 2 DVD - ArmA OA Steam | Probleme und Hilfesuche | Console | Technische Fragen & Probleme | 17 | 01.03.2011 11:25 |
ARMA 2 und ARMA 2.5 ( Opa ) 3 mal auf einem Computer installieren? | det99 | Technische Fragen & Probleme | 5 | 29.06.2010 21:44 |