28.03.2014, 14:49 | #1 (permalink) |
Registriert seit: 26.02.2014
Beiträge: 19
|
Was hab ich falsch gemacht?
temp = [Civil1,Player] spawn { if {(_this select 1) distance (_this select 2) > 100} do { (_this select 0) doMove position (_this select 1); sleep 1 } };
Also... Zivilist rennt zum Player ... soweit alles gut nur wenn er dann in die 100 meter reingeht folgt er mir immer noch d.h. ich kann nicht stoppen bis wann er mir folgt Danke für eure Antworten |
28.03.2014, 14:57 | #2 (permalink) |
Registriert seit: 15.05.2011
Beiträge: 1.110
|
Das script kann so nicht funktionieren
IF () then {} du hast geschrieben if {} do {} oder meinst du while do? dann ist _this select 2 nicht vergeben. Gezählt wird mit 0 beginnend. Läuft er in die 100 MEter rein, rennt er noch immer zu letzten ihm durchgegebenen Position. Du musst also, wenn die 100 unterschritten wird sagen: _pos = position (_this select 0); (_this select 0) doMove _pos Eine Schleife die nicht wahr ist, wird übergangen. Also wenn die 100 Meter wieder aufgebaut werden, muß du das script neu starten oder eine while {true} als Hauptschleife nehmen Geändert von Drunken Officer (28.03.2014 um 14:59 Uhr). |
28.03.2014, 15:59 | #4 (permalink) |
Registriert seit: 12.07.2004
Ort: Wien
Beiträge: 1.917
|
[Civil1,LKW,] spawn .... Der Fehler ist der Beistrich nach LKW
Hast du die Anzeige von Skriptfehlern beim Aufruf von Arma nicht aktiviert? ".....\xxx.exe" -showscripterrors https://community.bistudio.com/wiki/...tup_Parameters |
28.03.2014, 18:41 | #6 (permalink) |
Registriert seit: 12.07.2004
Ort: Wien
Beiträge: 1.917
|
Die Routine ist lauffähig!
Wenn der Civ über 100m entfernt ist, dann sendet ihn diese Routine so lange an die jeweilige Position des LKW, bis der Abstand 100m oder weniger beträgt. Dann wird die Routine beendet, aber der Civ läuft nun die letzten 100m noch an die letzte befohlene Position. Was willst du eigentlich genau? |
28.03.2014, 23:07 | #7 (permalink) |
Registriert seit: 15.05.2011
Beiträge: 1.110
|
Genau dass hatte ich ihm auch gesagt. Und wie er das "weiterlaufen" unterbinden kann. Evtl. so. Hier rennt die Puppe bis Distanze kleiner 100 ist. Sie bleibt stehen, bis die Distanze wieder größer als 100 ist und rennt los. (was aber Blödsinn ist. Dient nur zur Veranschaulichung) Das Script läuft so lange, wie beide PArteien am Leben sind. Code:
ttemp = [Civil1,LKW] spawn { while {alive (_this select 0) && alive (_this select 1)} do { while {(_this select 0) distance (_this select 1) > 100} do { (_this select 0) doMove position (_this select 1); sleep 1; }; _pos = getPos (_this select 0); (_this select 0) doMove _pos; waitUntil {sleep 1; (_this select 0) distance (_this select 1) > 100}; }; }; Geändert von Drunken Officer (28.03.2014 um 23:41 Uhr). |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
Themen-Optionen | |
Ansicht | |
|
|
Ähnliche Themen | ||||
Thema | Autor | Forum | Antworten | Letzter Beitrag |
Prügelt die Politiker und Finanzlobby | INNOCENT&CLUELESS | Diskussionsplattform | 128 | 20.09.2016 17:05 |
Arma 3 - Was ist falsch sich auf Qualität statt Quantität zu fokussieren? | .kju | Community | 151 | 04.12.2012 17:55 |
UAV erfasst keine Ziele - oder mache ich was falsch? | Clausewitz | Technische Fragen & Probleme | 7 | 06.02.2012 23:55 |