PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : distance Befehl


pspsps91
09.05.2006, 17:32
Hallo,
Ich hab ein Script geschrieben in dem steht, dass ein Fahrzeug zu einem bestimmten Punkt fährt, der als Koordinate ( [7470,3914,0] )gegeben ist. Das klappt auch alles Prima, doch wenn ich überprüfen will wie nah das Fahrzeug an dem Punkt ist um es dann zum nächsten Punkt fahren zu lassen will das Spiel beim distance Befehl aufeinmal ein Objekt statt einer Koordinate :stupid: . Da Ich mit dem Script aber mehrere Einheiten durch die Gegend schicken will wären mir Koordinaten lieber, weil sonst die ganze Map voller Logiken ist. :ugly:

pspsps91
13.05.2006, 17:35
Hat den wirklich keiner eine Idee wie man die entfernung zwischen einem Objekt und einer Koordinate abfragen kann? Oder eine andere Lösung. :(

SWAT
13.05.2006, 17:48
Vielleicht könntest du einen entsprechenden Auszug aus dem Script mal posten?

MarcusErgalla
13.05.2006, 22:29
Du must wenn dann an den Punkt ein Objekt setzen, da Abfragen mit Koordinaten nicht funktionieren... ;)

xezon
14.05.2006, 00:33
probier halt

H_unsichtbar setpos [7470,3914,0]
Auslöser Aktivierung:
UNIT distance H_unsichtbar < 20

pspsps91
14.05.2006, 15:50
erstmal danke für die Antworten :daumen:

Das hier ist das Script:
_punkt1=_this select 0
_punkt2=_this select 1
_punkt3=_this select 2
_unit =_this select 3

#safe
_unit setspeedmode "limited"
_unit setbehaviour "safe"

#movea
_unit domove getpos _punkt1
? _unit distance _punkt1 <10: goto "moveb"
? !(alive _unit): goto "exit"
~2
goto "movea"


#moveb
_unit domove getpos _punkt2
? _unit distance _punkt2 <10: goto "movec"
? !(alive _unit): goto "exit"
~2
goto "moveb"

#movec
_unit domove getpos _punkt3
? _unit distance _punkt3 <10: goto "movea"
? !(alive _unit): goto "exit"
~2
goto "movec"

#exit
exit
_punkt1,... sind dann die Koordinaten

das mit dem unsichtbaren H werde ich mal ausprobieren.
Und noch was: gibt es einen Befehl mit dem man ein Objekt wieder löschen kann, weil sonst ja irgendwann die map voller H´s ist und das für die performence wahrscheinlich nicht so gut ist...

xezon
14.05.2006, 15:56
Ne kostet keine Performance. Wie ich das sehe hast du ja 3 Punkte, also 3x H. Das kostet nix. :)

pspsps91
14.05.2006, 18:47
Ja schon aber ich würde das Script gerne für mehrere Einheiten benutzen... Naja egal ich werds ausprobieren und dann mal weitersehen :rolleyes:

pspsps91
15.05.2006, 18:08
also mal Danke an euch alle... :daumen: :daumen: mein Script funktioniert! es sieht jetzt nach dem Überarbeiten so aus:
_punkt1=_this select 0
_punkt2=_this select 1
_punkt3=_this select 2
_unit =_this select 3

#einstellungen
_unit setspeedmode "Limited"
_unit setbehaviour "safe"
_h3="HeilHEmpty" camcreate _punkt3
_h2="HeliHEmpty" camcreate _punkt2
_h1="HeliHEmpty" camcreate _punkt1


#movea

_unit domove getpos _h1
@ _unit distance _h1 <10
? !(alive _unit): goto "exit"
~2



#moveb

_unit domove getpos _h2
@ _unit distance _h2 <10
? !(alive _unit): goto "exit"
~2
goto "moveb"

#movec

_unit domove getpos _h3
@ _unit distance _h3 <10
? !(alive _unit): goto "exit"
~2
goto "movea"

#exit
exit

ein kleines Problem hätte ich aber doch noch: die Einheit läuft zwar zu der Koordinate aber sie ist zu schnell!!:nixweiss: Ich hab doch am Anfang des Scripts _unit setspeedmode "limited", aber trotzdem rennt der Soldat :motz: sieht vielleicht jemand einen Fehler?

xezon
15.05.2006, 18:16
Es gibt nur 2 Rennmodi, Rennen und Sprinten halt. Wenn du willst dass er geht muss er zuerst seine Waffe schultern per combatmode.

pspsps91
15.05.2006, 20:45
hmm...? eigentlich hat er die Waffe schon geschultert (_unit setbehaviour "safe") und in Mr. Murray´s Editing bibel steht das mit dem setspeedmode "limited". Es kommt auch keine Fehlermeldung wie dass setspeedmode ein unbekannter Operator sei oder so was. Ich hab auch schon ausprobiert auf die Einheit im Editor eine Wegmarke setzen mit geschwindigkeit auf begrenzt. Bringt auch nichts :(

xezon
16.05.2006, 20:56
Hmm müsste eigendlich gehen. Lass dir mal von der betreffenden Einheit die Geschwindigeit auslesen.
Befehl: speed Obj
machste dann z.B.:
hint format ["%1", speed _unit];
Wenn du alles richtig gemacht hast müsste er dir "limited" anzeigen.

pspsps91
17.05.2006, 13:52
also da wird ein Wert angezeigt: 10.1752 :stupid:
wenn ich mir die Geschwindigkeit gleich am Anfang anzeigen lasse, wenn der Soldat gerade erst losläuft, dann steht da 1.1752. Gibts vielleicht einen Befehl mit dem ich die geschwindigkeit in so einem Wert angeben kann :stupid:

xezon
17.05.2006, 19:01
ahh, der zeigt dir die Geschwindigkeit in km/h an. Probier halt mal speedmode, wenn es das als Abfrage gibt. ;)

Sudden Death
19.06.2006, 15:02
Und noch was: gibt es einen Befehl mit dem man ein Objekt wieder löschen kann, weil sonst ja irgendwann die map voller H´s ist und das für die performence wahrscheinlich nicht so gut ist..
deletevehicle Einheitenname hier z.B. _h1

ein kleines Problem hätte ich aber doch noch: die Einheit läuft zwar zu der Koordinate aber sie ist zu schnell!! Ich hab doch am Anfang des Scripts _unit setspeedmode "limited", aber trotzdem rennt der Soldat sieht vielleicht jemand einen Fehler?

unitname setBehaviour "careless"
unitname setCombatMode "BLUE"
unitname setSpeedMode "LIMITED"

Gruß

S.D.

Sudden Death
19.06.2006, 15:25
Hat den wirklich keiner eine Idee wie man die entfernung zwischen einem Objekt und einer Koordinate abfragen kann?
Dazu sollte uns Mr. Pythagoras etwas sagen können:
http://de.wikipedia.org/wiki/Satz_des_Pythagoras

_a = (_punkt1 select 0)-(getpos _unit select 0)
_b = (_punkt1 select 1)-(getpos _unit select 1)

_distance = sqrt ((_a*_a)+(_b*_b))

Sicherheitshalber habe ich ein paar mehr Klammern gesetzt. Es dürfte auch mit weniger funktionieren.

S.D.

pspsps91
29.06.2006, 12:35
aha... :stupid:
leider versteh ich das jetzt überhaupt nicht :( mit dem erstellen von unsichtbaren H´s gehts aber auch ganz gut.
Trotzdem danke das du dich bemüht hast :daumen: