fliegende Stuka

Zordiac
Moin, ich habe in meiner map eine fliegende Stuka eingebaut. (Genau wie im Tut. von LD.de)

funzt auch super.

Wie mache ich es aber, dass die Stuka die Richtung ändert?

Kann ich mehrere scipt_origin einbauen und verbinden?

Die Stuka soll auf dem Flugplatz erst die Startbahn entlang, dann ansteigen, dann eine 45 Grad Rolle und dann einen Bogen fliegen.

Ist das mit dem Tut. machbar, oder muss ich die Bewegung komplett Scripten? Mit moveto (koordinaten, koordinaten) usw.?
Private Grob
Ob man mehrere scipt_origin hintereinander verbinden kann weiß ich nicht. Noch nie ausprobiert. Könnte eventuell möglich sein. Ansonsten bleibt dir nur die Möglichkeit jede einzelne Bewegung zu scripten.....

Grüße
Private Grob
(Micka)
Zordiac
traurig "heul"

Will aber nicht soviel scripten.

Ich weiß auch noch nicht wie ich welche Koordinaten in die Klammern setze.

moveto (?,?,?) "Welche Werte sind für welche Achse?

Wo gebe ich hier welche Koordinaten ein?

Angenommen die Stuka soll zu folgenden Koordinaten im Radianten fliegen.

X: 512
Y: -2176
Z: 100

wie muss ich das in die Zeile movto einbinden?
self moveto( ??????, level.PlaneSpeed, 0.1, 0.1);
Red Killer
wo kann man sich das fliegende Stuka runterladen www.ld.de gibts nicht -.-

sonnst hätte ich ma bischen getestet
Zordiac
http://ld.dilate.de/forum/viewtopic.php?t=1786

Wenn man alles macht wie beschrieben, dann funzt es auch


hab´s anders hinbekommen.

ich habe 2 script_origin eingebaut mit den targetnames planepos1 und planepos2 ohne diese mit "W" zu verbinden.

und dann folgendes script

main()
{
level thread planes();
}

planes()
{
level.PlaneSpeed = 4;
// Erstelle 3 Flugzeuge
plane1 = getent ("plane1","targetname");
planepos1 = getent ("planepos1","targetname");
planepos2 = getent ("planepos2","targetname");
plane1.pos1 = planepos1.origin;
plane1.pos2 = planepos2.origin;
plane1.start = plane1.origin;
plane1 hide();

wait 15;
while (1)
{
plane1 thread plane_flyby("stuka_flyby");
wait 30;
}
}


plane_flyby(sound)
{
if (isdefined (sound))
self playsound (sound);
wait 1;
self show();
self moveto(self.pos1, level.PlaneSpeed, 0.1, 0.1);
wait level.PlaneSpeed;
self moveto(self.pos2, level.PlaneSpeed, 0.1, 0.1);
self rotateroll (45,2);
self waittill ("rotatedone");
self rotateroll (-45,2);
wait level.PlaneSpeed;
self hide();
self.origin = self.start;
}
Sniperhanz
du hast aber nur ein flugzeug erstellt oder und mit diesen script kann ich jetz das flugzeug kurven fliegen lassen oder??
Zordiac
Ja es ist nur 1 Flugzeug, es spawnt aber immer wieder neu zum Probieren habe ich es auf alle 30 sec. eingestellt. In der fertigen Map wird es wohl alle 5 Min starten, da es sonst nervig wird.

Kurve fliegen klappt nicht so richtig. Es fliegt zur Pos1. dann zur Pos2..Ich weis aber noch nicht wie ich es seitlich rotieren lassen kann. In meinem Script macht es eine 45 Grad Rolle aber fliegt seitlich schräg zum nächsten Punkt.

Kennt einer den Befehl zum seitlich rotieren lassen, geht rotatex oder sowas?
Private Grob
Mach es so:

Zitat:

stuka rotateroll (180,1);


Dreht die Stuka um 180° in einer Sekunde.

Grüße
Private Grob
(Micka)
Zordiac
@Grob

Da hast Du mich wohl falsch verstanden. Das mit rotateroll hab ich ja in meinem Script verwendet. Nur bei der Richtungsänderung fliegt das Flugzeug mit dem Flügel voran seitwärts zur nächsten Posi.

Ich möchte das Flugzeug nicht rollen, sondern um die Y-Achse drehen, sodass die Stuka mit der Nase voran zur nächsten Posi fliegt.
Private Grob
Ah sorry, das hatte ich wirklich falsch verstanden.

Aber schau mal hier, das wird dir sicherlich weiterhelfen. Da sind alle Bewegungsrichtungen aufgeführt:

Scripten von beweglichen Dingen

Grüße
Private Grob
(Micka)
Zordiac
Danke für den Link.

Ich versuchs mal mit rotateto ((45,10,15) 2);

Mal schauen was geht.
Zordiac

Zitat:

Original von Zordiac
Danke für den Link.

Ich versuchs mal mit rotateto ((45,10,15) 2);

Mal schauen was geht.



Ich hab´s jetzt endlich
main()
{
level thread planes();
}

planes()
{
level.PlaneSpeed = 4.5; //Zeit die das Flugzeug für den Weg braucht

plane1 = getent ("plane1","targetname");
planepos1 = getent ("planepos1","targetname");
planepos2 = getent ("planepos2","targetname");
plane1.pos1 = planepos1.origin;
plane1.pos2 = planepos2.origin;
plane1.start = plane1.origin;
plane1 hide();

wait 10;
while (1)
{
plane1 thread plane_flyby("stuka_flyby");
wait 30;
}
}


plane_flyby(sound)
{

if (isdefined (sound))
self playsound (sound);
self show();
self moveto(self.pos1, level.PlaneSpeed, 3);
wait level.PlaneSpeed;
self moveto(self.pos2, level.PlaneSpeed);
self rotateto ((-15,140,45),2.2); // ausgehend von den angles-Werte, die das model am Start hat
self waittill ("rotatedone");
self rotateto ((-15,140,0),2.2);
self waittill ("rotatedone");
wait level.PlaneSpeed;
self hide();
self rotateto ((352.92,163.881,1.898770),0.1); // zurück zu den Werten, die das model hat
self.origin = self.start;
}
Private Grob
Ja super, dann freue ich mich schon darauf das mal in deiner Map zu bewundern.... grosses Grinsen

Grüße
Private Grob
(Micka)
Sniperhanz
verstehe nicht ganz kannst du mal so ne art tut machen oder einbischen erlaeutern ich check dat nicht so ganz
Zordiac
Ich versuch mal was auf die Beine zu stellen, wenn ich mit meiner Map fertig bin.

Ich hab´s doch im Grunde auch gerade erst kapiert. LOL