Wegpunkt an Einheit heften
Hallo Community :wave:, 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 :ugly: also auf dem Boden . Ich hab schon alles probiert ich krigs einfach nicht hin :nixweiss: 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 |
Versuche es mit diesem Befehl: http://community.bistudio.com/wiki/doMove
Das muss aber in einer Schleife wiederholt werden: Code:
temp = [Fahrer1,LKW] spawn |
Zitat:
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 :/ |
Zitat:
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 { also Quasi Code:
0= [] spawn {while {true} do {(driver NameDesVerfolgerAutos) doMove position NameDesZuVerfolgendenLKWs; sleep 1}}; hoschi |
Danke Hoschi :daumen: Jetzt verstehe ich den ganzen Code, ich werde ihn heute Abend mal testen
PS: Du hast zufällig den gleichen Spitznamen wie mein Bruder :D |
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 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 |
Vielen Dank Vienna, damit müsste ich es auf jedenfall hinbekommen!
Edit: :woop: Es hat geklappt und ich habe viel dazu gelernt! Vielen Dank für eure Hilfe, insbesondere Danke an Vienna :daumen: |
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 :confused: |
Einmal-Auslöser mit Namen Trigger1
Aktivierung: "Jeder" oder "Blufor", "Opfor" usw. Bedingung: true Bei Akt.: folgenden Code reinkopieren: Code:
temp = [20, Trigger1] spawn |
"Ein Spieler ist bei der Polizei anzuzeigen, wenn er zu schnell fährt." :D geile Idee, das werd ich glaube ich sogar einbauen ^^ Von euch kann man so einiges lernen! :danke:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:25 Uhr. |
Angetrieben durch vBulletin, Entwicklung von Philipp Dörner & Tobias