HX3 Foren

HX3 Foren (https://hx3.de/)
-   Editing & Scripting (https://hx3.de/editing-scripting-167/)
-   -   Was hab ich falsch gemacht? (https://hx3.de/editing-scripting-167/hab-falsch-gemacht-23597/)

TaNDO 28.03.2014 13:49

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 :stupid:
Danke für eure Antworten

Drunken Officer 28.03.2014 13:57

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

TaNDO 28.03.2014 14:10

Oh sry ich meinte natürlich : temp = [Civil1,LKW,] spawn { while {(_this select 0) distance (_this select 1) > 100} do { (_this select 0) doMove position (_this select 1); sleep 1 } };

Vienna 28.03.2014 14:59

[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

TaNDO 28.03.2014 15:16

Funktioniert immer noch nicht...

Vienna 28.03.2014 17:41

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?

Drunken Officer 28.03.2014 22:07

Zitat:

Zitat von Vienna (Beitrag 470546)
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?

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


TaNDO 29.03.2014 17:11

Danke ich habs hinbekommen !:daumen:


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:37 Uhr.

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