Armed-Assault.de Twitter
 
 
Themen-Optionen Ansicht
Alt 26.09.2012, 14:43   #1 (permalink)
50 Beiträge100 Beiträge
 
Benutzerbild von MagicStyle
 
Registriert seit: 26.09.2012
Beiträge: 120
Icon5 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).
MagicStyle ist offline  
Alt 26.09.2012, 18:35   #2 (permalink)
SQF Zauberer 10 Jahre hx3
500 Beiträge1000 Beiträge
 
Benutzerbild von Vienna
 
Registriert seit: 12.07.2004
Ort: Wien
Beiträge: 1.917
Standard

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}
 }
Bei while {true} do ... musst du statt true eine Endbedingung einfügen.
Vienna ist offline  
Alt 26.09.2012, 22:28   #3 (permalink)
50 Beiträge100 Beiträge
 
Benutzerbild von MagicStyle
 
Registriert seit: 26.09.2012
Beiträge: 120
Standard

Zitat von Vienna Beitrag anzeigen

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}
 }
Bei while {true} do ... musst du statt true eine Endbedingung einfügen.
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).
MagicStyle ist offline  
Alt 26.09.2012, 23:01   #4 (permalink)
Armed-Assault.de Team10 Jahre hx3
500 Beiträge1000 Beiträge2.500 Beiträge
 
Benutzerbild von Moerderhoschi
 
Registriert seit: 02.07.2006
Ort: Kabul
Alter: 38
Beiträge: 2.666
Standard

Zitat von MagicStyle Beitrag anzeigen

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

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;
}
Du koenntest auch direkt die Namen der Vehicle benutzen ohne _this select x
also Quasi

Code:
0= [] spawn {while {true} do {(driver NameDesVerfolgerAutos) doMove position NameDesZuVerfolgendenLKWs; sleep 1}};
gruß
hoschi
__________________


Moerderhoschi ist offline  
Alt 27.09.2012, 06:31   #5 (permalink)
50 Beiträge100 Beiträge
 
Benutzerbild von MagicStyle
 
Registriert seit: 26.09.2012
Beiträge: 120
Icon7

Danke Hoschi Jetzt verstehe ich den ganzen Code, ich werde ihn heute Abend mal testen

PS: Du hast zufällig den gleichen Spitznamen wie mein Bruder

Geändert von MagicStyle (27.09.2012 um 06:34 Uhr).
MagicStyle ist offline  
Alt 27.09.2012, 08:57   #6 (permalink)
SQF Zauberer 10 Jahre hx3
500 Beiträge1000 Beiträge
 
Benutzerbild von Vienna
 
Registriert seit: 12.07.2004
Ort: Wien
Beiträge: 1.917
Standard

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
    }
 }
Hinweise:

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
   }
 }
Aber bei einfachen Routinen kann man sich das ersparen.
Vienna ist offline  
Alt 27.09.2012, 17:17   #7 (permalink)
50 Beiträge100 Beiträge
 
Benutzerbild von MagicStyle
 
Registriert seit: 26.09.2012
Beiträge: 120
Standard

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).
MagicStyle ist offline  
Alt 28.09.2012, 21:34   #8 (permalink)
50 Beiträge100 Beiträge
 
Benutzerbild von MagicStyle
 
Registriert seit: 26.09.2012
Beiträge: 120
Standard

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
MagicStyle ist offline  
Alt 29.09.2012, 10:50   #9 (permalink)
SQF Zauberer 10 Jahre hx3
500 Beiträge1000 Beiträge
 
Benutzerbild von Vienna
 
Registriert seit: 12.07.2004
Ort: Wien
Beiträge: 1.917
Standard

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
   }
 }
Das begrenzt im Auslöserbereich die Geschwindigkeit auf 20 km/h. Aber nur wenn das Fahrzeug eine KI lenkt. Ein Spieler ist bei der Polizei anzuzeigen, wenn er zu schnell fährt.
Vienna ist offline  
Alt 03.10.2012, 14:55   #10 (permalink)
50 Beiträge100 Beiträge
 
Benutzerbild von MagicStyle
 
Registriert seit: 26.09.2012
Beiträge: 120
Icon7

"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).
MagicStyle ist offline  
 

Stichworte
folgen, heften, kleben, waypoint, wegpunkt


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


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 117 118 119