Цитата Сообщение от Ded-86 Посмотреть сообщение
по поводу ножа... Я так понял, что угол можно любой указать, при финише еще заметил, что угол показывает как со знаком "+" так и со знаком "-". т.е. чтобы контролировать направление ножа, наверно можно в скрипте прописать "+" или "-" к углу прохождения ворот...
Вот этот момент я тоже хотел бы уточнить, потому как за неправильный угол идет пенальти. Просто вчера когда возился с Онтарио, то там одни и те же ворота должны проходиться 2 раза в разных направлениях. Получается в одну сторону у тебя один угол должен быть, в другую - другой, а триггер в этом месте - 1. Как к 1 триггеру 2 переменных привязать я чего-то не въехал. Может 2 маленьких не пересекающихся триггера поставить, хотя по сути это ерунда, т.к. самолет все равно пройдет через оба триггера. Вот как бы направление пролета вычислять и привязывать к углу.
Скрытый текст:
public double checkGate(bool vert) // тут проверяем высоту и крен в воротах
{
double res = 0;
if (playerPlane != null)
{
double h = (playerPlane.Pos().z + prevH)/2;
double roll = (playerPlane.getParameter(part.ParameterTypes.Z_Orientation, 2) + prevRoll)/2;
gatesList[nextGate].h = h;
gatesList[nextGate].roll = roll;
if (h > hPenaltyLimit)
{
penaltyTotal += penaltyH;
res += penaltyH;
}
if (vert)
{
if ((Math.Abs(roll) < (90 - rollPenaltyLimit)) || (Math.Abs(roll) > (90 + rollPenaltyLimit)))
{
penaltyTotal += penaltyRoll;
res += penaltyRoll;
}
}
else
{
if ((Math.Abs(roll) > (+rollPenaltyLimit)))
{
penaltyTotal += penaltyRoll;
res += penaltyRoll;
}
}

GamePlay.gpLogServer(null, "Height :{0}, roll:{1}, penalty:{2}", new object[] { h.ToString("f1"), roll.ToString("f1"), penaltyTotal });
}
return res;
}