rendered paste body public void Fly()
{
FrameLock fl = new FrameLock(false);
for (int i = 0; i < _NodeList.Count; i++)
{
P3d me;
// wir haben noch kein interessantes echtes z
P3d destNode = new P3d(TLocToCoord(_NodeList[i]).X, TLocToCoord(_NodeList[i]).Y, 0);
richTextBox1.BeginInvoke(new UpdateTextCallback(this.UpdateText), new object[] { string.Format("Next: X: {0} Y: {1}", _NodeList[i].X, _NodeList[i].Y) });
do
{
Thread.Sleep(100);
fl.Lock();
// aktuelle position auffrischen
me = new P3d(isxwow.Me.X, isxwow.Me.Y, isxwow.Me.Z);
// finde bodenhöhe, zähle 50 yards für flughöhe drauf
destNode.Z = isxwow.CollisionTest(me.X, me.Y, me.Z, me.X, me.Y, 0).Z;
// länge der strecke von aktuellem aufenthalsort zum ziel
double pyth = me.Pyth(destNode.X, destNode.Y, destNode.Z);
// ermittlung des vektors
P3d vektor = new P3d(destNode.X - me.X, destNode.Y - me.Y, destNode.Z - me.Z);
double vektorLaenge = vektor.Pyth();
// umrechnung zu einheitsvektor
vektor.X = vektor.X / vektorLaenge;
vektor.Y = vektor.Y / vektorLaenge;
vektor.Z = vektor.Z / vektorLaenge;
// 35 yards oder so weiter
P3d zwischenPosi = new P3d(vektor.X * 300 + me.X, vektor.Y * 300 + me.Y, vektor.Z * 300 + me.Z);
// wenn wir übers ziel hinaus schießen, holen wir uns das reguläre ziel wieder
if (zwischenPosi.Pyth(me.X, me.Y, me.Z) > destNode.Pyth(me.X, me.Y, me.Z))
zwischenPosi = destNode;
// finde kollision mit zielposition
Point3f last = isxwow.CollisionTest(me.X, me.Y, me.Z, zwischenPosi.X, zwischenPosi.Y, zwischenPosi.Z);
double newZ = zwischenPosi.Z;
while (last.X != 0 && last.Y != 0 && last.Z != 0)
{
zwischenPosi.X = last.X + vektor.X * 10; zwischenPosi.Y = last.Y + vektor.Y * 10;
last = isxwow.CollisionTest(me.Y, me.Y, destNode.Z, zwischenPosi.X, zwischenPosi.Y, newZ);
newZ += 10;
}
isxwow.RightClickTerrain(zwischenPosi.X, zwischenPosi.Y, newZ+50);
richTextBox1.BeginInvoke(new UpdateTextCallback(this.UpdateText), new object[] { string.Format("newZ: {0}", newZ + 50) });
fl.Unlock();
}
while (!InInterval(me.X, destNode.X - 5, 5) && !InInterval(me.Y, destNode.Y - 5, 5));
}
}