PDA

Просмотр полной версии : Слалом на Су-26



andersbravers
15.10.2012, 11:20
З.Ы. может стОит уже отдельный подфорум завести "Слалом" и там отдельные темы с названием трасс, в которых выкладывать треки и скрины с результатами?

Тема для слалома на Су-26.
РЛЭ на СУ-26 (http://aerochayka.ru/disc/teorija/expluataciya/su26m.htm)
СУ-26 в ВИКИ (http://wiki.sukhoi.ru/index.php?title=%D0%98%D0%BB-2_%D0%A8%D1%82%D1%83%D1%80%D0%BC%D0%BE%D0%B2%D0%B8%D0%BA:_%D0%91%D0%B8%D1%82%D0%B2%D0%B0_%D0%B7%D0%B0_%D0%91%D1%80%D0%B8%D1%82%D0%B0%D0%BD%D0%B8%D1%8E._%D0%A1%D1%83-26%D0%9C)

Ded-86
15.10.2012, 11:58
Карты "Abu Dhabi Rece", "Ontario Rece" автор Kzn_TIM
Если кто может- прикрутите скрипты, ибо кулинарного техникума не хватает для понимания...
И еще, в "Ontario Rece" почему-то фоторазведка не робит, хоть и сделана аналогично "Abu Dhabi Rece"

andersbravers
15.10.2012, 12:48
Правильно Abudabi Race, Ontario Race, а не "Rece" :). А насчет скриптов это лучше конечно к Naryv, он главный трассостроитель, хотя можно конечно попробовать по аналогии с его первой трассой сделать, чтобы лишний раз его не перегружать.

пуфик
15.10.2012, 19:00
Карты "Abu Dhabi Rece", "Ontario Rece" автор Kzn_TIM
Если кто может- прикрутите скрипты, ибо кулинарного техникума не хватает для понимания...
И еще, в "Ontario Rece" почему-то фоторазведка не робит, хоть и сделана аналогично "Abu Dhabi Rece" Так они не рабочие, или уже по таким можно летать?

Ded-86
15.10.2012, 19:20
Так они не рабочие, или уже по таким можно летать?
летать можно, только время и штрафы не считает :(

evilvoland
15.10.2012, 23:55
летать можно, только время и штрафы не считает
Скрипт naryv'а подкорректировал, трасса Онтарио: 160060
Но проверить не могу - не получается пролететь :ups: Это реальные расстояния? Сушка при проходах просто срывается. Ну или это я такой пилотажник :D

andersbravers
16.10.2012, 00:04
Вот еще вариант на тему :).

Kros
16.10.2012, 00:38
Скрипт naryv'а подкорректировал, трасса Онтарио: 160060
Но проверить не могу - не получается пролететь :ups: Это реальные расстояния? Сушка при проходах просто срывается. Ну или это я такой пилотажник :D

Попробовал, после шикан если получаешь пенальти то дальше ворота перестают считаться, или без пенальти пару раз после второго ножа синие ворота перед желтыми тоже не обсчитывались. И по первому ножу как то уж очень далеко его начинать надо еще не пролетел, а уже очки начисляют. А так ничего трасса, нормально можно погонять без срывов.

andersbravers
16.10.2012, 00:50
А мою не пробовал из поста #7? Просто интересно. Мне тоже шибко времени не хватило обкатать, но результат вроде выдало в конце.

naryv
16.10.2012, 01:25
Абу-даби миссия со скриптом- 160065 без джойстика прополз с штрафами за все ворота, но вроде-бы работает :).


2 Ded-86 чтобы этот скрипт работал на других миссиях нужно в редакторе выбрать "Редактировать->скрипт" закладка триггеры и там расставить триггеры пролёта игроком ворот160066160067, для обычных ворот - в центре их, для шикан - так, чтобы краем радиуса касалась зона триггера пилона(см, например, выше выложенную миссию абу-даби, как там триггеры располагаются, можно прямо из файла .mis взять эти триггеры и в новой миссии их только по воротам расставить). Потом, в скрипте кусок типа
// заполняем список ворот всеми воротами по порядку их прохождения
gatesList.Add(new Gate("StartGate", "GateStart", false, GateType.startGate, AfterGateAction.none, 29276, 15536));
gatesList.Add(new Gate("Gate1Red", "Shikana1", false, GateType.shicaneGate, AfterGateAction.none, 29340, 15308));
gatesList.Add(new Gate("Gate2Red", "Shikana2", false, GateType.shicaneGate, AfterGateAction.none, 29224, 15203));
gatesList.Add(new Gate("Gate3Red", "Shikana3", false, GateType.shicaneGate, AfterGateAction.none, 29341, 15092));
gatesList.Add(new Gate("Gate4Red", "Shikana4", false, GateType.shicaneGate, AfterGateAction.none, 29132, 14989));
gatesList.Add(new Gate("Gate5Red", "Shikana5", false, GateType.shicaneGate, AfterGateAction.none, 29116, 15143));
gatesList.Add(new Gate("Gate6Red", "Shikana6", false, GateType.shicaneGate, AfterGateAction.none, 28952, 15116));
gatesList.Add(new Gate("Gate7Red", "GateV1", false, GateType.knifeGate, AfterGateAction.none, 28995, 15352));
gatesList.Add(new Gate("Gate8Blue", "GateH1", false, GateType.levelGate, AfterGateAction.none, 28922, 15649));
gatesList.Add(new Gate("Gate9Blue", "GateH2", false, GateType.levelGate, AfterGateAction.none, 29082, 15582));
gatesList.Add(new Gate("Gate10Blue", "GateStart", false, GateType.levelGate, AfterGateAction.none, 29276, 15536));
gatesList.Add(new Gate("Gate11Red", "Shikana1", false, GateType.shicaneGate, AfterGateAction.none, 29340, 15308));
gatesList.Add(new Gate("Gate12Red", "Shikana2", false, GateType.shicaneGate, AfterGateAction.none, 29224, 15203));
gatesList.Add(new Gate("Gate13Red", "Shikana3", false, GateType.shicaneGate, AfterGateAction.none, 29341, 15092));
gatesList.Add(new Gate("Gate14Red", "Shikana4", false, GateType.shicaneGate, AfterGateAction.none, 29132, 14989));
gatesList.Add(new Gate("Gate15Red", "Shikana5", false, GateType.shicaneGate, AfterGateAction.none, 29116, 15143));
gatesList.Add(new Gate("Gate16Red", "Shikana6", false, GateType.shicaneGate, AfterGateAction.none, 28952, 15116));
gatesList.Add(new Gate("Gate17Red", "GateV1", false, GateType.knifeGate, AfterGateAction.none, 28995, 15352));
gatesList.Add(new Gate("Gate18Blue", "GateH1", false, GateType.levelGate, AfterGateAction.none, 28922, 15649));
gatesList.Add(new Gate("Gate19Blue", "GateH2", false, GateType.levelGate, AfterGateAction.none, 29082, 15582));
gatesList.Add(new Gate("FinishGate", "GateStart", false, GateType.finishGate, AfterGateAction.none, 29276, 15536)); заполняем своими значениями по порядку прохождения, в таком формате (для первой к примеру строчки ) :
"StartGate" - это то как в чате ворота пройденные назовуться, может быть любым, желательно понятным:)
"GateStart" - это имя триггера стоящего в этих воротах
false - признак того, что ворота пройдены, перед стартом пройденных нет - ставим false
GateType.startGate - тип ворот может быть одним из описанного выше в скрипте GateType
AfterGateAction.none - тип действия после ворот, может быть none - ничего, AfterGateAction.loop - петля, AfterGateAction.barrel - бочка
29276, 15536 - координаты центра ворот, от этой точки считается расстояние до самолёта при наименьшем - ворота считаются пройденными,можно посмотреть в файле миссии у соответствующего триггера

собственно и всё.

Ded-86
16.10.2012, 08:42
2 Ded-86
............
собственно и всё.
шикарное описание, спасибо!!! Вечером попробую
Еще вопрос, если проходишь ворота ВЫШЕ то скрипт считает, что ворота не взяты, т.е. дальше вообще ничего не считает, можно ли сделать так, чтобы начислял штраф? Например, синие ворота надо проходить на высоте ДО 20м, а штраф должен начисляться при прохождении высота от 20.1 до 30 или 40 м, все что выше- незачет

Kros
16.10.2012, 09:38
Надо с конкретными правилами определиться, чтобы однотипно все в картах считалось и высечь их в "камне" в шапке темы. Объектов то и способов пролета не много особо. Еще бы хотелось чтобы считались очки за неправильный нож, а то сейчас можно в любую сторону проходить.


А мою не пробовал из поста #7? Просто интересно. Мне тоже шибко времени не хватило обкатать, но результат вроде выдало в конце.
Да поздно уже было, и я скрин увидел думал ты просто эту же карту прошел и трек выложил.

tim32
16.10.2012, 09:44
Например, синие ворота надо проходить на высоте ДО 20м, а штраф должен начисляться при прохождении высота от 20.1 до 30 или 40 м, все что выше- незачет

Для незачёта ворот и 25 хватит. К стати, не надо забывать, что есть и нижний предел ворот. Он примерно получится 1\3 пилона, тоесть примерно 6.5 м от поверхности воды и штрафуется дисквалификацией.160069

aeros
16.10.2012, 11:17
Он примерно получится 1\3 пилона, тоесть примерно 6.5 м от поверхности воды и штрафуется дисквалификацией.
Нижний край, по идее, на всей трассе должен быть ограничен(дисквалификацией). Думаю, это легко скриптуется.

andersbravers
16.10.2012, 12:10
Да поздно уже было, и я скрин увидел думал ты просто эту же карту прошел и трек выложил.
Я так и понял уже потом, что непонятно написал.

tim32
16.10.2012, 14:35
Я так понял, что строчки - gates.Add("GateStart"); в файле cs, надо ручками прописывать чтоб было так -

gatesList.Add(new Gate("StartGate", "GateStart", false, GateType.startGate, AfterGateAction.none, 29276, 15536)); ?

Ибо не достаточно только прописать в редакторе, в разделе скрипт, точек триггеров.

andersbravers
16.10.2012, 14:38
Да, триггеры же в файле миссии прописываются, а из .cs уже к ним привязываешься по координатам как Нарыв выше объяснял (http://www.sukhoi.ru/forum/showthread.php?t=77454&p=1909113&viewfull=1#post1909113).
Допустим, у меня вчера в Ontario Race.mis (http://www.sukhoi.ru/forum/showthread.php?t=77454&p=1909088&viewfull=1#post1909088) cтояли триггеры по следующим координатам:
[Trigger]
GateStart TPassThrough 0 13410 31579 60
GateH1 TPassThrough 0 13047 32210 60
GateH3 TPassThrough 0 13225 31900 60
GateH2 TPassThrough 0 13238 32296 60
GateV1 TPassThrough 0 13065 32436 60
Shikana3 TPassThrough 0 13383 32088 60
Shikana2 TPassThrough 0 13333 31939 60
Shikana1 TPassThrough 0 13491 31899 60

Я взял эти координаты триггеров и вписал в координаты ворот в Ontario Race.cs:
gatesList.Add(new Gate("StartGate", "GateStart", false, GateType.startGate, AfterGateAction.none, 13410, 31579));
gatesList.Add(new Gate("Gate1Red", "Shikana1", false, GateType.shicaneGate, AfterGateAction.none, 13491, 31899));
gatesList.Add(new Gate("Gate2Red", "Shikana2", false, GateType.shicaneGate, AfterGateAction.none, 13333, 31939));
gatesList.Add(new Gate("Gate3Red", "Shikana3", false, GateType.shicaneGate, AfterGateAction.none, 13383, 32088));
gatesList.Add(new Gate("Gate4Blue", "GateH1", false, GateType.levelGate, AfterGateAction.none, 13047, 32210));
gatesList.Add(new Gate("Gate5Red", "GateV1", false, GateType.knifeGate, AfterGateAction.none, 13065, 32436));
gatesList.Add(new Gate("Gate6Red", "GateV1", false, GateType.knifeGate, AfterGateAction.none, 13065, 32436));
gatesList.Add(new Gate("Gate7Blue", "GateH2", false, GateType.levelGate, AfterGateAction.none, 13238, 32296));
gatesList.Add(new Gate("Gate8Blue", "GateH3", false, GateType.levelGate, AfterGateAction.barrel, 13225, 31900));
gatesList.Add(new Gate("StartGate", "GateStart", false, GateType.levelGate, AfterGateAction.none, 13410, 31579));
gatesList.Add(new Gate("StartGate", "GateStart", false, GateType.levelGate, AfterGateAction.none, 13410, 31579));
gatesList.Add(new Gate("Gate9Blue", "GateH3", false, GateType.levelGate, AfterGateAction.barrel, 13225, 31900));
gatesList.Add(new Gate("Gate10Blue", "GateH2", false, GateType.levelGate, AfterGateAction.none, 13238, 32296));
gatesList.Add(new Gate("Gate11Red", "GateV1", false, GateType.knifeGate, AfterGateAction.none, 13065, 32436));
gatesList.Add(new Gate("Gate12Red", "GateV1", false, GateType.knifeGate, AfterGateAction.none, 13065, 32436));
gatesList.Add(new Gate("Gate13Blue", "GateH1", false, GateType.levelGate, AfterGateAction.none, 13047, 32210));
gatesList.Add(new Gate("Gate14Red", "Shikana3", false, GateType.shicaneGate, AfterGateAction.none, 13383, 32088));
gatesList.Add(new Gate("Gate15Red", "Shikana2", false, GateType.shicaneGate, AfterGateAction.none, 13333, 31939));
gatesList.Add(new Gate("Gate16Red", "Shikana1", false, GateType.shicaneGate, AfterGateAction.none, 13491, 31899));
gatesList.Add(new Gate("FinishGate", "GateStart", false, GateType.finishGate, AfterGateAction.none, 13410, 31579));

Ded-86
16.10.2012, 14:51
Надо с конкретными правилами определиться, чтобы однотипно все в картах считалось и высечь их в "камне" в шапке темы. Объектов то и способов пролета не много особо. Еще бы хотелось чтобы считались очки за неправильный нож, а то сейчас можно в любую сторону проходить.
по поводу ножа... Я так понял, что угол можно любой указать, при финише еще заметил, что угол показывает как со знаком "+" так и со знаком "-". т.е. чтобы контролировать направление ножа, наверно можно в скрипте прописать "+" или "-" к углу прохождения ворот...

andersbravers
16.10.2012, 15:09
по поводу ножа... Я так понял, что угол можно любой указать, при финише еще заметил, что угол показывает как со знаком "+" так и со знаком "-". т.е. чтобы контролировать направление ножа, наверно можно в скрипте прописать "+" или "-" к углу прохождения ворот...
Вот этот момент я тоже хотел бы уточнить, потому как за неправильный угол идет пенальти. Просто вчера когда возился с Онтарио, то там одни и те же ворота должны проходиться 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;
}

Kros
16.10.2012, 15:23
Вот этот момент я тоже хотел бы уточнить, потому как за неправильный угол идет пенальти. Просто вчера когда возился с Онтарио, то там одни и те же ворота должны проходиться 2 раза в разных направлениях. Получается в одну сторону у тебя один угол должен быть, в другую - другой, а триггер в этом месте - 1. Как к 1 триггеру 2 переменных привязать я чего-то не въехал. Может 2 маленьких не пересекающихся триггера поставить, хотя по сути это ерунда, т.к. самолет все равно пройдет через оба триггера. Вот как бы направление пролета вычислять и привязывать к углу.
Как вариант может чтобы параметры тригера менялись после первого его прохождения, т.е. к второму проходу он уже был готов к обратному ножу.

tim32
16.10.2012, 16:42
Хотелось бы добавить, что прохождение синих ворот под углом не должно штрафоваться, если конечно только пилон не сшибёшь.

160076

naryv
16.10.2012, 17:07
Я так понял, что строчки - gates.Add("GateStart"); в файле cs, надо ручками прописывать чтоб было так -

gatesList.Add(new Gate("StartGate", "GateStart", false, GateType.startGate, AfterGateAction.none, 29276, 15536)); ?

Ибо не достаточно только прописать в редакторе, в разделе скрипт, точек триггеров. У Вас старый скрипт был в миссиях, посмотрите в этой теме абу-даби миссию - там новый скрипт в нём как раз заполгняются gatesList.Add(new Gate("StartGate", "GateStart", false, GateType.startGate, AfterGateAction.none, 29276, 15536)); а не gates.Add("GateStart"); , вот их как раз под себя и перепешите.

tim32
16.10.2012, 22:14
Как ещё можно регулировать размер триггера кроме ползунка ? А то там градация только по 50. :(

andersbravers
16.10.2012, 22:50
Как ещё можно регулировать размер триггера кроме ползунка ? А то там градация только по 50. :(
Посмотри вот здесь (http://www.sukhoi.ru/forum/showthread.php?t=77324&page=14&p=1909311&viewfull=1#post1909311). Редактируется диаметр в файле .cs

Kros
17.10.2012, 00:00
Попробовал сделать карту по оригиналу (с учетом размеров) с этапа гонки RB в Lausitz, сушка не вписывается в трассу. Придется конкретно под нее переделывать.

tim32
17.10.2012, 00:08
Посмотри вот здесь (http://www.sukhoi.ru/forum/showthread.php?t=77324&page=14&p=1909311&viewfull=1#post1909311). Редактируется диаметр в файле .cs

Да там было перенаправление на п.10 в этой теме. Сам файл cs просмотрел, но так как я не силён в программах, то нифига не разглядел в какой строке прописана именно регулировка диаметра круга триггера. http://gn.ucoz.ua/im/osnova/scratch_head.gif

andersbravers
17.10.2012, 00:20
Дублирую))
"Так ткни триггер, там радиус задается - какой нужно диаметр ставишь, смотри вот в примере крайняя цифра (выделена жирным) - это и есть диаметр. Я им всегда пользуюсь.
[Trigger]
GateStart TPassThrough 0 13410 31579 60
GateH1 TPassThrough 0 13047 32210 60
GateH3 TPassThrough 0 13225 31900 60
GateH2 TPassThrough 0 13238 32296 60
GateV1 TPassThrough 0 13065 32436 60
Shikana3 TPassThrough 0 13383 32088 60
Shikana2 TPassThrough 0 13333 31939 60
Shikana1 TPassThrough 0 13491 31899 60
Т.е. в данном случае диаметр триггера 60 метров".

Kros
17.10.2012, 00:24
Дублирую))
"Так ткни триггер, там радиус задается - какой нужно диаметр ставишь, смотри вот в примере крайняя цифра (выделена жирным) - это и есть диаметр. Я им всегда пользуюсь.

И все это в файле *.mis а не *.cs

andersbravers
17.10.2012, 00:32
да, это в .mis

tim32
17.10.2012, 00:58
Ну вот http://gn.ucoz.ua/im/radost_ulibki/mosking.gif а я все глаза обламал копаясь в cs. :) Все скрипты вродь работают. А с настройками правого и левого ножа пока никак ?

andersbravers
17.10.2012, 08:05
Ну вот http://gn.ucoz.ua/im/radost_ulibki/mosking.gif а я все глаза обламал копаясь в cs. :) Вот свежая карта RB San Diego. Все скрипты вродь работают. 160086
А с настройками правого и левого ножа пока никак ?
Да я тормознул по запарке, пардончик :). Трассу посмотрим, а с ножом тоже пока никак, вчера Пуфику трассу рисовал.

naryv
18.10.2012, 16:00
Обновлённый скрипт гоночной миссии, теперь в свойствах ворот задаётся желаемый крен (правый положительный, левый отрицательный) (элемент списка ворот теперь заполняется так - gatesList.Add(new Gate("Gate5Red", "GateV1", false, GateType.knifeGate, AfterGateAction.none, 246657, 234320, -90)); , крайняя цифра - как раз желаемый крен), за пролёт ниже нижней границы (6.5 м задаётся hMin, меняйте по своему усмотрению ) - дисквалификация, гонка обнуляется, при пролёте выше 30м (hMax - опять же можно менять) ворота не считаются пройденными. За не включенный дымогенератор - штраф 2 сек.
Теперь рестарт после гонки не обязательно делать, после финиша всё обнуляется и можно лететь снова. Сбитый пилон через 2 минуты восстанавливается.
160392

andersbravers
18.10.2012, 16:07
Отлично! Теперь можно будет сбитые пилоны и в онлайне переделать. Илья, а как ты решил проблему с прохождением одного и того же триггера с разных направлений? Я про то, что одни и те же ворота приходится проходить с разных направлений в одной и той же гонке.
ЗЫ. Кстати, а для чего по сути нужен дымогенератор?

naryv
18.10.2012, 16:36
Илья, а как ты решил проблему с прохождением одного и того же триггера с разных направлений? Я про то, что одни и те же ворота приходится проходить с разных направлений в одной и той же гонке. Так триггер ведь круглый, с любого направления проходится, направление сейчас не проверяется(можно конечно ещё и его проверять), но если проходить не оптимальным маршрутом - время увеличится, так что смысла особого нет.

ЗЫ. Кстати, а для чего по сути нужен дымогенератор? Для красоты, наверное, это же шоу во многом :) . А так - в правилах РедБулльских есть пенальти за не включенный, ну и я сделал :)

tim32
18.10.2012, 16:36
160118Обновлённый скрипт гоночной миссии, теперь в свойствах ворот задаётся желаемый крен (правый положительный, левый отрицательный) (элемент списка ворот теперь заполняется так - gatesList.Add(new Gate("Gate5Red", "GateV1", false, GateType.knifeGate, AfterGateAction.none, 246657, 234320, -90)); , крайняя цифра - как раз желаемый крен), за пролёт ниже нижней границы (6.5 м задаётся hMin, меняйте по своему усмотрению ) - дисквалификация, гонка обнуляется, при пролёте выше 30м (hMax - опять же можно менять) ворота не считаются пройденными. За не включенный дымогенератор - штраф 2 сек.
Теперь рестарт после гонки не обязательно делать, после финиша всё обнуляется и можно лететь снова. Сбитый пилон через 2 минуты восстанавливается.

А чтоб в других картах было подобное надо поставить новый cs файл и вставить свои координаты триггеров или можно в уже имеющийся вставить строчки ? -
......-90
double hMin = 6.5;
double hMax = 30.0;
bool smokeOn = false;

А время восстановления пилона регулируется ? А то 2 мин многовато.

tim32
18.10.2012, 22:18
Упс, сейчас только обратил внимание, а в змейке-то крен вообще не учитывается. http://gn.ucoz.ua/im/osnova/scratch_head.gif Змейку можно горизонтально проходить без штрафа. http://gn.ucoz.ua/im/osnova/unsure.gif

naryv
18.10.2012, 22:30
А чтоб в других картах было подобное надо поставить новый cs файл и вставить свои координаты триггеров или можно в уже имеющийся вставить строчки ? -
......-90
double hMin = 6.5;
double hMax = 30.0;
bool smokeOn = false;надо новый, в нём обработка этих новых условий. И в этот новый файл свои координаты(можно их просто из старого забрать, добавив в конце желаемый крен)


А время восстановления пилона регулируется ? А то 2 мин многовато. отдельной переменной нет, можно в функции
public override void OnStationaryKilled(int missionNumber, GroundStationary _stationary, AiDamageInitiator initiator, int eventArgInt) найти строчку
Timeout(120.0, () => 120.0 - время в секундах после которого пилон восстанавливается, поменяйте как Вам удобнее будет.


Да я про то, что когда ты идешь в одном направлении, то угол допустим 90 (правый нож), а на обратном направлении -90 (левый нож). И как это учесть в одной формуле, что именно с одной стороны так, а с другой эдак - вот я про что. а от направления движения это не зависит левый крен всегда отрицательный а правый - всегда положительный.

tim32
18.10.2012, 23:39
надо новый, в нём обработка этих новых условий. И в этот новый файл свои координаты(можно их просто из старого забрать, добавив в конце желаемый крен)

отдельной переменной нет, можно в функции
public override void OnStationaryKilled(int missionNumber, GroundStationary _stationary, AiDamageInitiator initiator, int eventArgInt) найти строчку
Timeout(120.0, () => 120.0 - время в секундах после которого пилон восстанавливается, поменяйте как Вам удобнее будет.

А пилоны-то по истечении любого времени Timeout(120.0, () не востанавливаются, а просто исчезают и больше не появляются. http://gn.ucoz.ua/im/osnova/scratch_head.gif

naryv
19.10.2012, 00:43
Я собственно вот к чему. Тут есть одна миссия Ontario Race (http://www.sukhoi.ru/forum/showthread.php?t=77454&p=1908755&viewfull=1#post1908755). Так вот там трасса состоит из двух этапов: вначале ты пролетаешь полпути в одном направлении, разворачиваешься за воротами и пролетаешь обратно все с точностью до наоборот, как в зеркале. Т.е. одни и те же ворота, которые пролетались с левым креном, теперь пролетаются с правым и т.д. (см. рисунок). Такая непростая трасса в плане скриптов. Получается после того как самолет прошел первую часть пути, развернулся за воротами - нужно поменять углы на обратные, допустим -90 должен стать +90, а +90 станет -90. Возможно ли эту смену углов как-то задать скриптом? Сейчас как получается: если ты прошел какие-то ворота с креном -90, то обратно тебе уже неудобно проходить с этим же креном, но если ты пройдешь с +90, тебе засчитается как ошибка (триггер же с любого направления будет считать правильным -90), хотя на обратном пути триггер каким-то образом должен понимать, что теперь правильно +90, а не -90. Ну так в скрипте каждый пролёт ворот описан в списке ворот, соответственно ворота на ноже будут 3,4 и 10,11 строчками в списке ворот и у них можно указать любой желаемый крен.


А пилоны-то по истечении любого времени Timeout(120.0, () не востанавливаются, а просто исчезают и больше не появляются. http://gn.ucoz.ua/im/osnova/scratch_head.gif угу про локали забыл, в исходном сообщении исправленный скрипт перевыложил, либо просто руками в своём заменить строчку
value += " " + _stationary.pos.x.ToString() + " " + _stationary.pos.y.ToString() + " 0";
на
value += " " + _stationary.pos.x.ToString(System.Globalization.CultureInfo.InvariantCulture.NumberFormat) + " " + _stationary.pos.y.ToString(System.Globalization.CultureInfo.InvariantCulture.NumberFormat) + " 0";

naryv
19.10.2012, 01:10
У меня есть список ворот:
gatesList.Add(new Gate("StartGate", "GateStart", false, GateType.startGate, AfterGateAction.none, 13410, 31579));
gatesList.Add(new Gate("Gate1Red", "Shikana1", false, GateType.shicaneGate, AfterGateAction.none, 13491, 31899));
gatesList.Add(new Gate(ga"Gate2Red", "Shikana2", false, GateType.shicaneGate, AfterGateAction.none, 13333, 31939));
gatesList.Add(new Gate("Gate3Red", "Shikana3", false, GateType.shicaneGate, AfterGateAction.none, 13383, 32088));
gatesList.Add(new Gate("Gate4Blue", "GateH1", false, GateType.levelGate, AfterGateAction.none, 13047, 32210));
gatesList.Add(new Gate("Gate5Red", "GateV1", false, GateType.knifeGate, AfterGateAction.none, 13065, 32436));
gatesList.Add(new Gate("Gate6Red", "GateV1", false, GateType.knifeGate, AfterGateAction.none, 13065, 32436));
gatesList.Add(new Gate("Gate7Blue", "GateH2", false, GateType.levelGate, AfterGateAction.none, 13238, 32296));
gatesList.Add(new Gate("Gate8Blue", "GateH3", false, GateType.levelGate, AfterGateAction.none, 13225, 31900));
gatesList.Add(new Gate("StartGate", "GateStart", false, GateType.levelGate, AfterGateAction.none, 13410, 31579));
gatesList.Add(new Gate("StartGate", "GateStart", false, GateType.levelGate, AfterGateAction.none, 13410, 31579));
gatesList.Add(new Gate("Gate9Blue", "GateH3", false, GateType.levelGate, AfterGateAction.none, 13225, 31900));
gatesList.Add(new Gate("Gate10Blue", "GateH2", false, GateType.levelGate, AfterGateAction.none, 13238, 32296));
gatesList.Add(new Gate("Gate11Red", "GateV1", false, GateType.knifeGate, AfterGateAction.none, 13065, 32436));
gatesList.Add(new Gate("Gate12Red", "GateV1", false, GateType.knifeGate, AfterGateAction.none, 13065, 32436));
gatesList.Add(new Gate("Gate13Blue", "GateH1", false, GateType.levelGate, AfterGateAction.none, 13047, 32210));
gatesList.Add(new Gate("Gate14Red", "Shikana3", false, GateType.shicaneGate, AfterGateAction.none, 13383, 32088));
gatesList.Add(new Gate("Gate15Red", "Shikana2", false, GateType.shicaneGate, AfterGateAction.none, 13333, 31939));
gatesList.Add(new Gate("Gate16Red", "Shikana1", false, GateType.shicaneGate, AfterGateAction.none, 13491, 31899));
gatesList.Add(new Gate("FinishGate", "GateStart", false,
GateType.finishGate, AfterGateAction.none, 13410, 31579));
но дальше в коде они нигде не встречаются по названиям. Так по названию и не должны, они по мере прохождения дистанции из списка выбираются.

Допустим, нет ни "Gate11Red", ни "GateV1" кроме как в этом списке. Или угол прописывать прямо в строке с конкретными воротами? Хотя там вроде он не указывается.да, в новом скрипте угол задаётся в сроке с конкретными воротами.

Kros
19.10.2012, 01:16
Старт гонки не корректно начинается. Если лететь через стартовые ворота прямо то появляется только надпись старт гонки, а прохождение ворот не считается ни этих ни соответственно следующих. Но если входить в ворота под углом и чуть отдать ручку от себя до ворот, то триггер нормально схватывается. И первый конус шиканы тоже через раз на пятый считается и то если ее проходить по большому радиусу.

evilvoland
19.10.2012, 03:00
Ах! С новым патчем если открыть фонарь - то это просто супер как чувствуется!!! Скорость падает катастрофически! =)) В общем - спасибо!
naryv, в новом скрипте, если пролететь старт до восстановления пилонов, то пенальти остаются с прошлого вылета (если не перезапускать миссию). Возможно и в любом случае, ещё не проверил.

Сделал шикарный вылет: пролетел трассу, случайно открыл фонарь - пришлось садиться в поле, пролетая над кустиками, деревьями и домиками улыбнулся, сел, закрыл фонарь, взлетел, начал снова проходить трассу! Ах! Вроде бы и ничего необычного, а так погружает!

А перезарядку и дозаправку не выходя из миссии точно никак нельзя сделать?! :ups:

andersbravers
19.10.2012, 08:44
А перезарядку и дозаправку не выходя из миссии точно никак нельзя сделать?! :ups:
емнип подгрузкой нового самолета, как-то так было.

--- Добавлено ---


(элемент списка ворот теперь заполняется так - gatesList.Add(new Gate("Gate5Red", "GateV1", false, GateType.knifeGate, AfterGateAction.none, 246657, 234320, -90));
Илья, простите грешного, старею! :superstition:

tim32
19.10.2012, 12:16
В змейе, вертикальный угол ( нож ) по прежнему не штрфуется. Файл cs из крайней правки.

// заполняем список ворот всеми воротами по порядку их прохождения
gatesList.Add(new Gate("StartGate", "GateStart", false, GateType.startGate, AfterGateAction.none, 246737, 233546, 0));
gatesList.Add(new Gate("Gate1Red", "Shikana1", false, GateType.shicaneGate, AfterGateAction.none, 246865, 233831, -90));
gatesList.Add(new Gate("Gate2Red", "Shikana2", false, GateType.shicaneGate, AfterGateAction.none, 246788, 233955, 90));
gatesList.Add(new Gate("Gate3Red", "Shikana3", false, GateType.shicaneGate, AfterGateAction.none, 246918, 234008, -90))
gatesList.Add(new Gate("Gate4Red", "GateV1", false, GateType.knifeGate, AfterGateAction.none, 246657, 234320, 90));
gatesList.Add(new Gate("Gate5Red", "GateV1", false, GateType.knifeGate, AfterGateAction.none, 246657, 234320, -90));
gatesList.Add(new Gate("Gate6Blue", "GateH1", false, GateType.levelGate, AfterGateAction.none, 246983, 234391, 0));
gatesList.Add(new Gate("Gate7Blue", "GateH2", false, GateType.levelGate, AfterGateAction.loop, 247421, 234340, 0));
gatesList.Add(new Gate("Gate8Blue", "GateH2", false, GateType.levelGate, AfterGateAction.none, 247421, 234340, 0));
gatesList.Add(new Gate("Gate9Blue", "GateH1", false, GateType.levelGate, AfterGateAction.none, 246983, 234391, 0));
gatesList.Add(new Gate("Gate10Red", "GateV1", false, GateType.knifeGate, AfterGateAction.none, 246657, 234320, 90));
gatesList.Add(new Gate("Gate11Red", "GateV1", false, GateType.knifeGate, AfterGateAction.none, 246657, 234320, 90));
gatesList.Add(new Gate("Gate12Blue", "GateH3", false, GateType.levelGate, AfterGateAction.barrel, 246528, 233988, 0));
gatesList.Add(new Gate("FinishGate", "GateStart", false, GateType.finishGate, AfterGateAction.none, 246737, 233546, 0));

160150

naryv
19.10.2012, 14:00
В змейе, вертикальный угол ( нож ) по прежнему не штрфуется. Файл cs из крайней правки.
так в правилах написано шикана проходится с любым креном, поэтому и нет там проверки

tim32
19.10.2012, 15:51
так в правилах написано шикана проходится с любым креном, поэтому и нет там проверки

Мда, и в правду не учитывается крен в змейке.

160157

tim32
19.10.2012, 23:35
Что-то никак не разберу, за что штраф начисляется, может кто подскажет ? http://gn.ucoz.ua/im/osnova/scratch_head.gif

160175

// заполняем список ворот всеми воротами по порядку их прохождения
gatesList.Add(new Gate("StartGate", "GateStart", false, GateType.startGate, AfterGateAction.none, 29276, 15536, 0));
gatesList.Add(new Gate("Gate1Red", "Shikana1", false, GateType.shicaneGate, AfterGateAction.none, 29340, 15308, 0));
gatesList.Add(new Gate("Gate2Red", "Shikana2", false, GateType.shicaneGate, AfterGateAction.none, 29224, 15203, 0));
gatesList.Add(new Gate("Gate3Red", "Shikana3", false, GateType.shicaneGate, AfterGateAction.none, 29341, 15092, 0));
gatesList.Add(new Gate("Gate4Red", "Shikana4", false, GateType.shicaneGate, AfterGateAction.none, 29132, 14989, 0));
gatesList.Add(new Gate("Gate5Red", "Shikana5", false, GateType.shicaneGate, AfterGateAction.none, 29116, 15143, 0));
gatesList.Add(new Gate("Gate6Red", "Shikana6", false, GateType.shicaneGate, AfterGateAction.none, 28952, 15116, 0));
gatesList.Add(new Gate("Gate7Red", "GateV1", false, GateType.knifeGate, AfterGateAction.none, 28995, 15352, 90));
gatesList.Add(new Gate("Gate8Blue", "GateH1", false, GateType.levelGate, AfterGateAction.none, 28880, 15675, 0));
gatesList.Add(new Gate("Gate9Blue", "GateH2", false, GateType.levelGate, AfterGateAction.none, 29041, 15607, 0));
gatesList.Add(new Gate("Gate11Red", "Shikana1", false, GateType.shicaneGate, AfterGateAction.none, 29340, 15308, 0));
gatesList.Add(new Gate("Gate12Red", "Shikana2", false, GateType.shicaneGate, AfterGateAction.none, 29224, 15203, 0));
gatesList.Add(new Gate("Gate13Red", "Shikana3", false, GateType.shicaneGate, AfterGateAction.none, 29341, 15092, 0));
gatesList.Add(new Gate("Gate14Red", "Shikana4", false, GateType.shicaneGate, AfterGateAction.none, 29132, 14989, 0));
gatesList.Add(new Gate("Gate15Red", "Shikana5", false, GateType.shicaneGate, AfterGateAction.none, 29116, 15143, 0));
gatesList.Add(new Gate("Gate16Red", "Shikana6", false, GateType.shicaneGate, AfterGateAction.none, 28952, 15116, 0));
gatesList.Add(new Gate("Gate17Red", "GateV1", false, GateType.knifeGate, AfterGateAction.none, 28995, 15352, 90));
gatesList.Add(new Gate("Gate18Blue", "GateH1", false, GateType.levelGate, AfterGateAction.none, 28880, 15675, 0));
gatesList.Add(new Gate("Gate19Blue", "GateH2", false, GateType.levelGate, AfterGateAction.none, 29041, 15607, 0));
gatesList.Add(new Gate("FinishGate", "GateStart", false, GateType.finishGate, AfterGateAction.none, 29276, 15536, 0));

Ded-86
19.10.2012, 23:57
no loop- нет петли
no barrel roll- нет бочки

andersbravers
20.10.2012, 00:55
double penaltyAerobatics = 6.0; // пенальти(с) за не выполнение пилотажных эл-тов 6*2 элемента = 12

naryv
20.10.2012, 01:02
Что-то никак не разберу, за что штраф начисляется, может кто подскажет ? нет бочки и петли, если они в гонке не предусмотрены в public void InitRace() поставьте
CheckLoopPass = true;

CheckBarrelPass = true; будет считаться что они выполнены и штрафа не будет

--- Добавлено ---



naryv, в новом скрипте, если пролететь старт до восстановления пилонов, то пенальти остаются с прошлого вылета (если не перезапускать миссию). Возможно и в любом случае, ещё не проверил.
добавьте, пожалуйста в скрипте миссии в public void InitRace() строчку
penaltyTotal = 0.0; забыл обнулить пенальти, примерно так должно выглядеть:
public void InitRace()
{
// заполняем список ворот всеми воротами по порядку их прохождения
gatesList.Add(new Gate("StartGate", "GateStart", false, GateType.startGate, AfterGateAction.none, 246737, 233546, 0));
gatesList.Add(new Gate("Gate1Red", "Shikana1", false, GateType.shicaneGate, AfterGateAction.none, 246865, 233831, 0));
gatesList.Add(new Gate("Gate2Red", "Shikana2", false, GateType.shicaneGate, AfterGateAction.none, 246788, 233955, 0));
gatesList.Add(new Gate("Gate3Red", "Shikana3", false, GateType.shicaneGate, AfterGateAction.none, 246918, 234008, 0));
gatesList.Add(new Gate("Gate4Red", "GateV1", false, GateType.knifeGate, AfterGateAction.none, 246657, 234320, 90));
gatesList.Add(new Gate("Gate5Red", "GateV1", false, GateType.knifeGate, AfterGateAction.none, 246657, 234320, -90));
gatesList.Add(new Gate("Gate6Blue", "GateH1", false, GateType.levelGate, AfterGateAction.none, 246983, 234391, 0));
gatesList.Add(new Gate("Gate7Blue", "GateH2", false, GateType.levelGate, AfterGateAction.loop, 247421, 234340, 0));
gatesList.Add(new Gate("Gate8Blue", "GateH2", false, GateType.levelGate, AfterGateAction.none, 247421, 234340, 0));
gatesList.Add(new Gate("Gate9Blue", "GateH1", false, GateType.levelGate, AfterGateAction.none, 246983, 234391, 0));
gatesList.Add(new Gate("Gate10Red", "GateV1", false, GateType.knifeGate, AfterGateAction.none, 246657, 234320, 90));
gatesList.Add(new Gate("Gate11Red", "GateV1", false, GateType.knifeGate, AfterGateAction.none, 246657, 234320, 90));
gatesList.Add(new Gate("Gate12Blue", "GateH3", false, GateType.levelGate, AfterGateAction.barrel, 246528, 233988, 0));
gatesList.Add(new Gate("FinishGate", "GateStart", false, GateType.finishGate, AfterGateAction.none, 246737, 233546, 0));


if (GamePlay.gpPlayer().Place() is AiAircraft)
playerPlane = GamePlay.gpPlayer().Place() as AiAircraft; // назначаем переменной playerPlane самолёт игрока

// заполняем переменные начальными значениями
startTime = 0;
finishTime = 0;
avgSpeed = 0;
maxSpeed = 0;
maxOverstress = 0;
raceStart = false;
startCheckLoop = false;
CheckLoopPass = false;
CheckLoopV = false;
CheckLoopHB = false;
startCheckBarrel = false;
checkB0 = false; checkB90 = false; checkB180 = false; checkB_90 = false;
CheckBarrelPass = false;
nextGate = 0;
checkGatePass = false;
smokeOn = false;
distSQ = 100000.0;
prevRoll = 0.0;
prevH = 0.0;
pilonsHit = 0;
penaltyTotal = 0.0;
}


А перезарядку и дозаправку не выходя из миссии точно никак нельзя сделать?! :ups: нет:(

andersbravers
20.10.2012, 01:12
Попробовал тупо скопировать скрипт в миссию с Ontario Race, почему-то даже стартовые ворота не считаются, хотя до этого считалось, только углы не учитывались... надо покопаться...

evilvoland
20.10.2012, 01:18
добавьте, пожалуйста в скрипте миссии в public void InitRace() строчку penaltyTotal = 0.0;


Премного благодарен! :thx:
Всё работает!

tim32
20.10.2012, 14:02
naryv http://gn.ucoz.ua/im/osnova/preved.gif Огромное спасибо за помощь ! На подходе ещё 2 карты - Istanbul 2007 и New York 2010

naryv
22.10.2012, 00:14
Попробовал тупо скопировать скрипт в миссию с Ontario Race, почему-то даже стартовые ворота не считаются, хотя до этого считалось, только углы не учитывались... надо покопаться... координаты своих ворот надо вставлять, иначе не будет считаться:)


Премного благодарен! :thx:
Всё работает! Хорошо, рад если нравится:)


naryv http://gn.ucoz.ua/im/osnova/preved.gif Огромное спасибо за помощь ! Подправил три свои карты. Теперь вроде всё считает правильно. Да не за что :)

andersbravers
22.10.2012, 00:29
координаты своих ворот надо вставлять, иначе не будет считаться:)

Да вроде совпадает с триггерами... в прошлой-то версии работало именно в этой миссии, только углы не считались. Буду смотреть еще.

Ded-86
22.10.2012, 22:38
naryv http://gn.ucoz.ua/im/osnova/preved.gif Огромное спасибо за помощь ! Подправил три свои карты. Теперь вроде всё считает правильно. 160189
Сан Диего :) 1:44,16

andersbravers
23.10.2012, 00:27
Ontario Race подправленная. Углы теперь наконец-то нормально считаются, спасибо Naryv.

andersbravers
23.10.2012, 09:11
Косяк был именно в следующем - не стояли нули, где по-новому они должны стоять, соответственно градус не обсчитывался:
// заполняем список ворот всеми воротами по порядку их прохождения
gatesList.Add(new Gate("StartGate", "GateStart", false, GateType.startGate, AfterGateAction.none, 13410, 31579, 0));
gatesList.Add(new Gate("Gate1Red", "Shikana1", false, GateType.shicaneGate, AfterGateAction.none, 13491, 31899, 0));
gatesList.Add(new Gate("Gate2Red", "Shikana2", false, GateType.shicaneGate, AfterGateAction.none, 13333, 31939, 0));
gatesList.Add(new Gate("Gate3Red", "Shikana3", false, GateType.shicaneGate, AfterGateAction.none, 13383, 32088, 0));

Ded-86
23.10.2012, 15:24
Windsor Ontario

0:52,68 + 2 балла штрафов 0:56,68

Ded-86
23.10.2012, 21:58
Абу-Даби

1:17,55

Rubin3
23.10.2012, 22:21
Мужики, для чего нам разработчики дали этот аппарат ? Самолёт хороший ! Это, просто, в качестве презента ?:)

tim32
23.10.2012, 22:35
У меня такой вопросик, можно ли сделать пролёт выше ворот и шикан не не засчитывающимися, а просто штрафуемыми на 2 сек. как в оригинале ?

Ded-86
23.10.2012, 22:39
Мужики, для чего нам разработчики дали этот аппарат ? Самолёт хороший ! Это, просто, в качестве презента ?:)
Летать и получать удовольствие не только от стрельбы ;)
Попробуй трассы от naryv и tim32... Обещаю, вечер пролетит на одном дыхании :)

andersbravers
24.10.2012, 01:01
Дед, ну ты зажигать, как это у тебя получается... я еще ни одной трассы толком не прошел, а уже руки трясутся от джоя)).

Ded-86
24.10.2012, 11:44
Дед, ну ты зажигать, как это у тебя получается... я еще ни одной трассы толком не прошел, а уже руки трясутся от джоя)).
"Давно здесь сидим" (С) "Белое солнце пустыни"

andersbravers
24.10.2012, 12:07
"Давно здесь сидим" (С) "Белое солнце пустыни"
"Ахмед, поджигай!" :D

Ded-86
24.10.2012, 16:36
"Ахмед, поджигай!" :D
с 2010-го года гонки зажигаем ;)

andersbravers
24.10.2012, 16:50
с 2010-го года гонки зажигаем ;)
Так ты профессиональный гонщик оказывается)). Тогда надо будет тебе еще какое-нибудь задание придумать.

Ded-86
25.10.2012, 21:08
Подправил в картах RB Abudabi 2008, RB San Diego, RB Windsor Ontario скрипт штрафа за пролёт выше ворот, порядок прохода ворот квадро и добавил ещё одну новую карту RB Interlaken 2007 плюс треки с проходом всех 4 трасс. Все обновления в архиве поста #53. http://www.sukhoi.ru/forum/showthread.php?t=77454&page=3&p=1911686&viewfull=1#post1911686
Молодца!!!
Еще 5 из 9-ти возможных, а дальше о турнире подумаем :)

andersbravers
25.10.2012, 22:03
В принципе ребят, смотрите, я могу все готовые наши трассы вынести в шапку темы для удобства, вы как, согласны? Удобнее считать будет :).

Ded-86
26.10.2012, 06:58
В принципе ребят, смотрите, я могу все готовые наши трассы вынести в шапку темы для удобства, вы как, согласны? Удобнее считать будет :).
Конечно согласны :)
Трассы tim32 и naryv'а в шапку, чтобы проще было искать, ну и если что-то обновили на трассах- обновлять. Крайний архив с трассами от tim32 просто уже несколько раз редактировался :)

Еще возник небольшой вопрос/спор. Дело в том, что проход ворот квадро в разные годы был разным, т.е. основное оставалось: проход на ноже, а вот правый или левый- в оригинале менялось. Так вот, стоит ли приводить все к одному знаменателю, т.е. установить общее правило для прохождения на всех трассах (например, если за квадро следует левый вираж, то проходить на правом ноже), либо устанавливать оригинальное прохождение для каждой трассы. Кто что думает?

andersbravers
27.10.2012, 01:41
Обновил шапку (http://www.sukhoi.ru/forum/showthread.php?t=77454&p=1908737&viewfull=1#post1908737), добавил 5 трасс.

aeros
04.11.2012, 00:29
Windsor Ontario
50.49

http://www.youtube.com/watch?v=z_GpysRy71g
огромное спасибо изготовителям:bravo:
Вопрос: что считается временем прохождения?? Если мерить секундометром по входу/выходу - получается ~1мин35сек.
В реале h..p://www.youtube.com/watch?v=0DOZP3Me7YQ получается ~1мин12сек.

Ded-86
04.11.2012, 10:43
Windsor Ontario
Вопрос: что считается временем прохождения?? Если мерить секундометром по входу/выходу - получается ~1мин35сек.
Скрипт- главный и неподкупный арбитр, то что показал на экране- не подлежит сомнению и обсуждению :)

З.Ы. ты захватывал видео фрапсом или стандартными способами, встроенными в игру? Просто если стандартными, то у меня не получается захватить не обработанное видео больших размеров, не более 1-1.5 гига... Если больше за 1 раз, то видео с ошибкой и не открывается..

aeros
04.11.2012, 11:34
Скрипт- главный и неподкупный арбитр
Ну не на столько же - 50 и 95 секунд - можно ошибаться с секундомером), сам замерь на своем треке.
Видео захватывал встроенным средством, большие ролики пока не писал.

Ded-86
04.11.2012, 11:59
Ну не на столько же - 50 и 95 секунд - можно ошибаться с секундомером), сам замерь на своем треке.
Ну дык он для всех одинаково считает, так что время, как таковое, значения не имеет, чисто цифры смотрим

Видео захватывал встроенным средством, большие ролики пока не писал.
т.е. ты выставлял сразу кодек которым декодировал?
Я пытался вытащить avi без сжатия, файл тяжелый получается (2-3 секунды весят около гига и больше). Если писать разом более 4-5 сек, то файл вообще потом не открывается

aeros
04.11.2012, 15:22
Ну дык он для всех одинаково считает, так что время, как таковое, значения не имеет, чисто цифры смотрим
Позвольте). Какие загадочные единицы тогда означают эти цифры? Мы же вроде как на реальных трассах отлетываем(я хочу так думать, по крайней мере)), результат хотелось бы видеть в минутах, секундах и их долях.
---
С видео - сплошные бубны:
Сначала не мог вернуться в меню(ескейпом), что бы галки с видов/времени убрать после начала проигрывания трека(из кабины) - выбрасывало на рабочий стол и закрыть БоБ можно было только через дисп.задач. Разрешение рабочего стола и игры нужно выставлять одинаковым.
Далее - кодек xvid ставил отсюда http://www.sukhoi.ru/forum/showthread.php?t=67973&page=2&p=1584410&viewfull=1#post1584410
- запускаешь трек с контролем видов, жмешь паузу, жмешь F2, F1 - попадаешь в кабину;
- жмешь Esc, возвращаешься в меню - ставишь галку "звук" в меню записи "Кино" в игре, убираешь контроль видов(если хочешь оставить взгляд с которым отлетал в реале);
- жмешь запись и выбираешь Xvid MPEG-4 Codec(настройки не менял), после выбора и нажатия OK пойдет захват(медленно и без звука)

Ded-86
04.11.2012, 16:50
Позвольте). Какие загадочные единицы тогда означают эти цифры? Мы же вроде как на реальных трассах отлетываем(я хочу так думать, по крайней мере)), результат хотелось бы видеть в минутах, секундах и их долях.
---
ну дык это скрипт так считает ;) Трассы Тим старался выдержать, чтобы максимально на оригинал были похожи

С видео - сплошные бубны:
Сначала не мог вернуться в меню(ескейпом), что бы галки с видов/времени убрать после начала проигрывания трека(из кабины) - выбрасывало на рабочий стол и закрыть БоБ можно было только через дисп.задач. Разрешение рабочего стола и игры нужно выставлять одинаковым.
Далее - кодек xvid ставил отсюда http://www.sukhoi.ru/forum/showthread.php?t=67973&page=2&p=1584410&viewfull=1#post1584410
- запускаешь трек с контролем видов, жмешь паузу, жмешь F2, F1 - попадаешь в кабину;
- жмешь Esc, возвращаешься в меню - ставишь галку "звук" в меню записи "Кино" в игре, убираешь контроль видов(если хочешь оставить взгляд с которым отлетал в реале);
- жмешь запись и выбираешь Xvid MPEG-4 Codec(настройки не менял), после выбора и нажатия OK пойдет захват(медленно и без звука)
С видео разобрался: установил кодеки посвежее, сначала Мегу накатил, потом х64

aeros
04.11.2012, 17:31
Вопрос остался открытым: скрипт считает одно, секундомер считает другое. Что считает секундомер ясно - это секунды(мне Кэп подсказывает). Что считает скрипт???

Ded-86
04.11.2012, 17:45
Что считает скрипт???
надо у naryv'a уточнять...

aeros
05.11.2012, 02:08
надо у naryv'a уточнять...
Все, уже не надо. Финальным выдается время в секундах между вторым прохождением стартовых ворот(перед петлей) и финишным прохождением. С секундомером сошлось до десятой доли.
Надеюсь это решаемо(не положение же шарика на треках:().

Ded-86
05.11.2012, 06:35
Все, уже не надо. Финальным выдается время в секундах между вторым прохождением стартовых ворот(перед петлей) и финишным прохождением. С секундомером сошлось до десятой доли.
Надеюсь это решаемо(не положение же шарика на треках:().
т.е. в данном случае скрипт считает только второй круг? Надо подумать как это исправить...

naryv
05.11.2012, 15:07
gatesList.Add(new Gate("StartGate", "GateStart", false, GateType.startGate, AfterGateAction.none, 13441, 31550, 0));
gatesList.Add(new Gate("Gate1Red", "Shikana1", false, GateType.shicaneGate, AfterGateAction.none, 13484, 31896, 0));
gatesList.Add(new Gate("Gate2Red", "Shikana2", false, GateType.shicaneGate, AfterGateAction.none, 13341, 31940, 0));
gatesList.Add(new Gate("Gate3Red", "Shikana3", false, GateType.shicaneGate, AfterGateAction.none, 13376, 32085, 0));
gatesList.Add(new Gate("Gate8Blue", "GateH1", false, GateType.levelGate, AfterGateAction.none, 13070, 32194, 0));
gatesList.Add(new Gate("Gate7Red", "GateV1", false, GateType.knifeGate, AfterGateAction.none, 13043, 32385, 90));
gatesList.Add(new Gate("Gate7Red", "GateV1", false, GateType.knifeGate, AfterGateAction.none, 13043, 32385, 90));
gatesList.Add(new Gate("Gate9Blue", "GateH2", false, GateType.levelGate, AfterGateAction.none, 13216, 32244, 0));
gatesList.Add(new Gate("Gate9Blue", "GateH3", false, GateType.levelGate, AfterGateAction.none, 13231, 31913, 0));
gatesList.Add(new Gate("StartGate", "GateStart", false, GateType.levelGate, AfterGateAction.none, 13441, 31550, 0));
gatesList.Add(new Gate("Gate9Blue", "GateH3", false, GateType.levelGate, AfterGateAction.none, 13231, 31913, 0));
gatesList.Add(new Gate("Gate9Blue", "GateH2", false, GateType.levelGate, AfterGateAction.none, 13216, 32244, 0));
gatesList.Add(new Gate("Gate7Red", "GateV1", false, GateType.knifeGate, AfterGateAction.none, 13043, 32385, -90));
gatesList.Add(new Gate("Gate7Red", "GateV1", false, GateType.knifeGate, AfterGateAction.none, 13043, 32385, -90));
gatesList.Add(new Gate("Gate8Blue", "GateH1", false, GateType.levelGate, AfterGateAction.none, 13070, 32194, 0));
gatesList.Add(new Gate("Gate3Red", "Shikana3", false, GateType.shicaneGate, AfterGateAction.none, 13376, 32085, 0));
gatesList.Add(new Gate("Gate2Red", "Shikana2", false, GateType.shicaneGate, AfterGateAction.none, 13341, 31940, 0));
gatesList.Add(new Gate("Gate1Red", "Shikana1", false, GateType.shicaneGate, AfterGateAction.none, 13484, 31896, 0));
gatesList.Add(new Gate("FinishGate", "GateStart", false, GateType.finishGate, AfterGateAction.none, 13441, 31550, 0));
надо при втором прохождении стартовых ворот установить их тип как GateType.levelGate т.к. GateType.startGate - сбрасывает начальное время, если сделать как я показал, всё должно быть ок, это в ф-ции public void InitRace()

aeros
05.11.2012, 16:58
Abu Dhabi
1.14.47

http://www.youtube.com/watch?v=CgqQGqzuPkA&feature=youtu.be
на этой трассе считает правильно.
naryv спасиб)

Ded-86
05.11.2012, 17:44
Abu Dhabi
отличный проход! Вот и "Мечи" в слалом заглянули, уже интересно ;)
З.Ы. после первых синих ворот надо вроде петлей проходить ко вторым синим воротам...

aeros
05.11.2012, 19:55
Я что то не нашел на ютубе именно такую трассу. На предыдущем реальном ролике трассы Онтарио(давал ссылку) пилот делал косую петлю для нужного угла входа в последующие ворота.

Ded-86
05.11.2012, 21:21
Я что то не нашел на ютубе именно такую трассу. На предыдущем реальном ролике трассы Онтарио(давал ссылку) пилот делал косую петлю для нужного угла входа в последующие ворота.
Тим в архиве с трассами вложил треки с прохождением... Я по ним смотрел

tim32
08.11.2012, 10:33
gatesList.Add(new Gate("StartGate", "GateStart", false, GateType.startGate, AfterGateAction.none, 13441, 31550, 0));
gatesList.Add(new Gate("Gate1Red", "Shikana1", false, GateType.shicaneGate, AfterGateAction.none, 13484, 31896, 0));
gatesList.Add(new Gate("Gate2Red", "Shikana2", false, GateType.shicaneGate, AfterGateAction.none, 13341, 31940, 0));
gatesList.Add(new Gate("Gate3Red", "Shikana3", false, GateType.shicaneGate, AfterGateAction.none, 13376, 32085, 0));
gatesList.Add(new Gate("Gate8Blue", "GateH1", false, GateType.levelGate, AfterGateAction.none, 13070, 32194, 0));
gatesList.Add(new Gate("Gate7Red", "GateV1", false, GateType.knifeGate, AfterGateAction.none, 13043, 32385, 90));
gatesList.Add(new Gate("Gate7Red", "GateV1", false, GateType.knifeGate, AfterGateAction.none, 13043, 32385, 90));
gatesList.Add(new Gate("Gate9Blue", "GateH2", false, GateType.levelGate, AfterGateAction.none, 13216, 32244, 0));
gatesList.Add(new Gate("Gate9Blue", "GateH3", false, GateType.levelGate, AfterGateAction.none, 13231, 31913, 0));
gatesList.Add(new Gate("StartGate", "GateStart", false, GateType.levelGate, AfterGateAction.none, 13441, 31550, 0));
gatesList.Add(new Gate("Gate9Blue", "GateH3", false, GateType.levelGate, AfterGateAction.none, 13231, 31913, 0));
gatesList.Add(new Gate("Gate9Blue", "GateH2", false, GateType.levelGate, AfterGateAction.none, 13216, 32244, 0));
gatesList.Add(new Gate("Gate7Red", "GateV1", false, GateType.knifeGate, AfterGateAction.none, 13043, 32385, -90));
gatesList.Add(new Gate("Gate7Red", "GateV1", false, GateType.knifeGate, AfterGateAction.none, 13043, 32385, -90));
gatesList.Add(new Gate("Gate8Blue", "GateH1", false, GateType.levelGate, AfterGateAction.none, 13070, 32194, 0));
gatesList.Add(new Gate("Gate3Red", "Shikana3", false, GateType.shicaneGate, AfterGateAction.none, 13376, 32085, 0));
gatesList.Add(new Gate("Gate2Red", "Shikana2", false, GateType.shicaneGate, AfterGateAction.none, 13341, 31940, 0));
gatesList.Add(new Gate("Gate1Red", "Shikana1", false, GateType.shicaneGate, AfterGateAction.none, 13484, 31896, 0));
gatesList.Add(new Gate("FinishGate", "GateStart", false, GateType.finishGate, AfterGateAction.none, 13441, 31550, 0));
надо при втором прохождении стартовых ворот установить их тип как GateType.levelGate т.к. GateType.startGate - сбрасывает начальное время, если сделать как я показал, всё должно быть ок, это в ф-ции public void InitRace()

Эту строчку gatesList.Add(new Gate("StartGate", "GateStart", false, GateType.levelGate, AfterGateAction.none, 13441, 31550, 0)); надо совсем убрать, т.к. угол прохождения ворот "Старт" "Финиш" не учитывается перед началом второго круга.

aeros
08.11.2012, 19:56
т.к. угол прохождения ворот "Старт" "Финиш" не учитывается перед началом второго круга.
Т.е. крен при этом прохождении этих ворот по реальным правилам произвольный?

Ded-86
08.11.2012, 20:36
Т.е. крен при этом прохождении этих ворот по реальным правилам произвольный?
учитывается только на старте и финише, все остальные проходы через ворота старт/финиш- произвольные.

tim32
08.11.2012, 23:25
Т.е. крен при этом прохождении этих ворот по реальным правилам произвольный?

Да, произвольный. Если обратишь внимание, то на всех картах, в начале второго круга, в воротах "старт" "финиш" не учитывается угол прохождения. В этой карте я посто проглядел эту ошибку. Со следующей картой Istambul 2007 выложу исправленную версию этой карты.

-atas-
09.11.2012, 15:47
Рекорд Абу Даби побит? http://forum.1cpublishing.eu/showpost.php?p=479018&postcount=14

Ded-86
09.11.2012, 16:50
Рекорд Абу Даби побит? http://forum.1cpublishing.eu/showpost.php?p=479018&postcount=14
эвона как :) Надо поработать над этим ;)

А пока представляю ролик "Слалом. Сан Диего".

http://www.youtube.com/watch?v=O9-29V6ByUs

В перспективе собираюсь подготовить подобное видео для каждой трассы, это поможет в освоении трассы и можно подглядеть за органами управления ;) .

З.Ы. Если у кого-то есть треки от взлета до посадки в оригинальном скине- выкладывайте, а то в двух скинах все трассы проходить- не кошерно.
З.З.Ы. Ну и если у кого-то есть подходящая музыка под Абу Даби, Онтарио и др. трассы, не жмитесь, постараюсь все сделать в кратчайшие сроки, основные задержки идут именно в подборе музыки :)

aeros
09.11.2012, 19:53
Считаю что для скорейшего освоения трасс ролик должен быть с оригинальным видом "из глаз". Режиссура для рекламного ролика - отдельная дисциплина.
Скин рисовать нужно конечно, но это ж времени сколько:eek:(

Рекорд Абу Даби побит?
- как видите). Линкс на желтом спрашивает - ограничена ли правилами скорость стартового прохождения стартовых ворот?(а то ж мы флаттером проходить их будем))

Ded-86
09.11.2012, 20:58
Считаю что для скорейшего освоения трасс ролик должен быть с оригинальным видом "из глаз". Режиссура для рекламного ролика - отдельная дисциплина.
В ролике видно прохождние трассы с внешек, так же модно отследить схему прохождения (вид с вертолета) и работу рулями (вид из кабины). Если критично, то могу оставить только эти 3 вида без переключений на статичные камеры.

Скин рисовать нужно конечно, но это ж времени сколько
есть готовые фотошоповские заготовки, на так много времени займет, а вот ролики с прохождением трасс хотелось бы иметь в разных скинах

Линкс на желтом спрашивает - ограничена ли правилами скорость стартового прохождения стартовых ворот?(а то ж мы флаттером проходить их будем))
Пока в стартовых воротах скорость не ограничена, но мы работаем над этим, в ближайшее время все будет в описании и скрипте ;) Главное определиться на сколько снизить скорость относительно максимальной, т.к. в оригинале скорость ограничена, но ограничение сделано для более скоростных крафтов, нежели сушка

aeros
09.11.2012, 23:10
Главное определиться на сколько снизить скорость относительно максимальной, т.к. в оригинале скорость ограничена, но ограничение сделано для более скоростных крафтов, нежели сушка
Да, Линкс на желтом пишет что максимальная ограничена 370, со штрафом 2 сек. при превышении =371-380 и дисквалификация за 381 и выше.
http://www.redbullairrace.com/cs/Satellite/en_air/Article/Rules-And-Principles-021238614010221

tim32
10.11.2012, 04:59
Да, Линкс на желтом пишет что максимальная ограничена 370, со штрафом 2 сек. при превышении =371-380 и дисквалификация за 381 и выше.
http://www.redbullairrace.com/cs/Satellite/en_air/Article/Rules-And-Principles-021238614010221

Хех, при такой скорости тут сушка уже почти во флатер входит. :jokingly: Да и смысла нет так разгоняться. Ведь в принципе, средняя скорость по трассе около 250 км\ч, а до стартовых ворот она разгоняется почти до 280 км\ч даже без горки, и этой скорости вполне хватает для старта. Ограничим до 300 км\ч. и без пенальти, чтоб шибко со скрипрами не морочиться. При 301 км\ч дисквалификация. Вот, как-то так.

aeros
10.11.2012, 13:53
Хех, при такой скорости тут сушка уже почти во флатер входит. Ограничим до 300 км\ч
Протестую:stop:
Почти, но не флаттерит ещё, проходил без флаттера ~372-375. Для возможности сравнения времени прохождения реальных и наших трасс - максимальная скорость входа должна быть одинаковой. Дальше - понятно, средняя будет примерно одинаковой, и зависеть будет от амплитуды и своевременности дерганья рулями, т.е. квалификации пилота.
Голосую за скрипт на 370.

aeros
10.11.2012, 17:13
Abu Dhabi
1.11.40
160964
Со скриптами - печаль, на скорости за 350 срабатывают с 3го раза на 4ый:(. Причем если сработал на стартовых воротах - вполне может пропустить на "змейке". От разработчиков ожидать правки вряд ли имеет смысл, а на имеющемся варианте чемпионат с реальными ограничениями не проведешь. Придется резать.
Если можно - ограничьте радиус скрипта замера максимальной скорости стартовыми воротами. Еще ньюанс - реальная максимальная скорость(на скрине) больше приборной на ~5-8 км/ч, нужно будет учитывать.

tim32
10.11.2012, 21:46
Сравнивать время прохождения с реальными трассами не имеет смысла, так как от оригинала в них только конфигурация и порядок прохождения ворот. И если делать ограничение в 370 км\ч, то вообще нет смысла в скрипте. Я трассы делал из расчёта скорости при старте максимум в 290 км\ч., ибо игра иногда просто не успевает считывать триггеры. И потом, уменьшение радиуса триггера только ещё усугубит пропуски и несчитываемость, а увеличение радиуса приводит не к скорости считывания, а к увеличению считываемого расстояния. В этом случае триггер начнёт считывать угол задолго до и после ворот. Ну а уж все нюансы к поправке скорости придётся учитывать самому, на то оно и мастерство пилота.

naryv
10.11.2012, 22:00
Триггер можно делать больше, расчёт ролла, высоты и т.п идёт в точке ближайшей к его центру.

tim32
10.11.2012, 22:05
Триггер можно делать больше, расчёт ролла, высоты и т.п идёт в точке ближайшей к его центру.
Ну ведь соответственно и сама точка увеличиывется. Иначе какой смысл в увеличении радиуса триггера ?

naryv
10.11.2012, 22:15
Ну ведь соответственно и сама точка увеличиывется. Иначе какой смысл в увеличении радиуса триггера ? нет, точка - она и есть точка , у неё нет размера :), а триггер - это область, и если самолёт пролетает эту область за время между тиками - триггер не срабатывает. Увеличив триггер - уменьшим вероятность несрабатывания триггера, а расчёт всё равно будет в центре.

tim32
10.11.2012, 23:21
нет, точка - она и есть точка , у неё нет размера :), а триггер - это область, и если самолёт пролетает эту область за время между тиками - триггер не срабатывает. Увеличив триггер - уменьшим вероятность несрабатывания триггера, а расчёт всё равно будет в центре.

А что это за тики ? http://gn.ucoz.ua/im/osnova/scratch_head.gif

naryv
11.11.2012, 00:07
А что это за тики ? http://gn.ucoz.ua/im/osnova/scratch_head.gif игровые кванты времени - промежутки когда какие-то события проверяются

aeros
11.11.2012, 02:45
Сравнивать время прохождения с реальными трассами не имеет смысла
:eek: - вот незадача, а я иного смысла не вижу(разнообразие особей - залог выживания вида):D.
naryv - как я понял вероятность не срабатывания триггера минимальна при проходе по диаметру окружности, а не по секущей и еще желательно с тангажом - чтобы увеличить время прохода(и вероятность попасть на "тик")).
Придется самому лезть.
---
Залез)
160992
"[Trigger]
GateStart TPassThrough 0 29276 15536 90
Shikana1 TPassThrough 0 29300 15310 80
Shikana2 TPassThrough 0 29266 15201 80
Shikana3 TPassThrough 0 29300 15091 60
..."
увеличил диаметры триггеров первых трех ворот и сдвинул центры триггеров шикан ближе к пилонам - на полотнища.
Попробовал, пропусков нет:rolleyes:

tim32
11.11.2012, 10:51
игровые кванты времени - промежутки когда какие-то события проверяются
Ясно. В таком случае надо будет везде увеличить триггеры.

Ded-86
11.11.2012, 16:26
Попробовал эти разгоны до флатера...
Да, результаты поприличнее получаются, но извращается сама идея слалома, получается бобслей какой-то :)
Я за ограничение скорости на отметке 300-320 км/ч (штраф 2 сек), больше 320- либо дисквалификация, либо штраф 4-6 сек.
З.Ы. если порог поднимать выше, то тогда следует вводить, как в реальных гонках, ограничение по перегрузкам, залез за 12G- дисквалификация

aeros
11.11.2012, 16:56
З.Ы. если порог поднимать выше, то тогда следует вводить, как в реальных гонках, ограничение по перегрузкам, залез за 12G- дисквалификация
И что мешает?
И что не мешает в реале пилотам входить на 370?
На какой скорости флаттер?
---
Эта (370) скорость держится до первого маневра, больше 8 перегрузка не получалась пока.
Если мы дорастем до чемпионатов - то с правилами щадящими нежную психику участников останемся на уровне междусобойчиков.

Ded-86
11.11.2012, 17:38
при бобслее ;) получается выигрыш 2-3 сек, т.е. он нивелирует оптимальное прохождение ворот.
у меня экран темнеет при перекладке из одной змейки в другую.
Как замерить величину перегрузки?

tim32
11.11.2012, 18:01
Если мы дорастем до чемпионатов - то с правилами щадящими нежную психику участников останемся на уровне междусобойчиков.

Таки что, теперь всем учасникам ждать пока стартующий будет на километр подниматься для старта !?

aeros
11.11.2012, 18:11
http://forum.1cpublishing.eu/showthread.php?p=479655#post479655
1.09.27 новый рекорд.

---
Не бобслей а проход стартовых ворот на реальной скорости.
Акселерометры - два нижних прибора по центру. Тот что перевернут - измеряет отрицательную перегрузку. Максимальные значения остаются показанными после достижения.

--- Добавлено ---


Таки что, теперь всем учасникам ждать пока стартующий будет на километр подниматься для старта !?
:D
Нет конечно. Стартовать можно в воздухе, на произвольной высоте и скорости.

Ded-86
11.11.2012, 18:27
http://forum.1cpublishing.eu/showthread.php?p=479655#post479655
Нет конечно. Стартовать можно в воздухе, на произвольной высоте и скорости.
Ну, это совсем аркадно получится ;)
Спроси у импортных товарищей, что они думают по поводу ограничения скорости...

aeros
11.11.2012, 19:53
На реальном шоу RB зрители не наблюдают взлета, комментаторы не его комментируют, а ТВ не транслирует. Каким боком это аркадно??
Меня как пилота и как зрителя меньше всего интересует взлет(и посадка), а вот вираж участника ко вторым шиканам после максимальной или умышленно сброшенной скорости на старте - очень даже.
На желтом спрошу конечно.

tim32
11.11.2012, 22:14
По ТВ, к стати, очень даже транслировали, канал 7ТВ. Ток канал этот щас почему-то не работает. :(

aeros
11.11.2012, 22:44
161060
Русские не сдаюца)
----
Тим, я устал что-то доказывать, честно. Хотите летать медленно - в путь.

tim32
12.11.2012, 01:04
Летать не медленно, а с более приближённой скоростью лтх самолёта.

naryv
12.11.2012, 02:37
naryv - как я понял вероятность не срабатывания триггера минимальна при проходе по диаметру окружности, а не по секущей и еще желательно с тангажом - чтобы увеличить время прохода(и вероятность попасть на "тик")). да, всё правильно. Триггер сейчас - это лишь сигнал о том, с какими воротами надо сравнивать, и что надо более внимательно смотреть на летящего, поэтому триггеры увеличивать можно (но в разумных пределах, если один на другой будет наползать, могут быть некорректно сработавшие триггеры).

Ded-86
12.11.2012, 08:44
161060
Русские не сдаюца)
ну ты монстр, я только к 1:10 с трудом подобрался.... При чем результат очень не стабилен

Тим, я устал что-то доказывать, честно. Хотите летать медленно - в путь.
Мы просто думаем как сделать и зрелищно и динамично, и в то же время не распугать желающих погоняться.
З.Ы. ты когда скрины с результатом выкладываешь, еще и сообщай о вероятности попадания в такое время (например, 250 стартов, лучшее время 1:08:82, повторяемость- 1 раз из 250 попыток ;) )

aeros
12.11.2012, 10:50
ЛТХ самолетов RB
http://www.air-races.com/the-planes/
Максимальная скорость пикирования у Сушек - 450 км/ч (я знаю что в БоБе меньше))
Максимальная горизонтального полета у MXS - 388 км/ч http://www.mxaircraft.com/mxs-performance.php
Таким образом, средняя скорость горизонтального полета у всех 310-330, т.е. все входят в стартовые ворота на разгоне со снижения.
----------------
Крайнее время получилось где-то с 30-40 попытки. 50/50 или падаешь или меньшее время(стартовал в воздухе). На соревнованиях так конечно не получится - падать же нельзя категорически. Так что желающим погонять пугаться особо нечего.

Ded-86
12.11.2012, 12:26
На соревнованиях так конечно не получится - падать же нельзя категорически. Так что желающим погонять пугаться особо нечего.
на турнире хотим дать 3-5 попыток с зачетом в протокол по лучшему времени. Думаю так будет справедливо :)

aeros
12.11.2012, 13:01
Если турнир стримить по взрослому - падать как то не айс. В идеале - этапы параллельные официальным гонкам на идентичных трассах/правилах с 16ю максимум участниками. На квалификациях, за кадром, думаю можно и три попытки дать с возможностью упасть.

Ded-86
12.11.2012, 14:38
есть опыт проведения гонок в иле, так вот, 16 участников еще набрать надо... Обычно все сводилось к 6-8 максимум...
По совпадению дат... Сложно держать людей на низком старте в течение года. Обычно на 2-3 месяц народ расползается, остаются только самые упертые.
Как вариант, проводили так называемые "гоночные уикэнды", т.е. раз в неделю или через неделю (старт один раз в 2 недели). По договоренности между участниками.
Если наделать разных трасс в большом количестве, то можно сезонно это устраивать, т.е. весна- 4 трассы. перекур, лето- 4 трассы, перекур, и т.д. Хотя лето я бы вообще вычеркнул- мертвый сезон. Самый оптимал- осень (октябрь, ноябрь) и зима (либо декабрь первая половина, либо январь вторая половина и февраль), весна- полумертвый сезон, хотя март-апрель можно людей собрать

aeros
12.11.2012, 18:45
6-10 было бы идеально, меньшему количеству гораздо проще сойтись во времени. В 2010 году было 8 этапов, корову мы пока не проигрываем, вполне можно отлетать ~2 минуты х 8 раз = 16 минут в год:D

Ded-86
12.11.2012, 18:54
вполне можно отлетать ~2 минуты х 8 раз = 16 минут в год:D
"маловато будет!" (с) мф "Падал прошлогодний снег" :D

aeros
14.11.2012, 01:40
1.08.19
161207
и это не предел:)

Ded-86
14.11.2012, 06:43
1.08.19
161207
и это не предел:)
Отличный результат!!!

ох, чую напрямки летають.... ;)

aeros
14.11.2012, 12:23
ох, чую напрямки летають.... ;)
В чем то Вы правы:D:

http://www.youtube.com/watch?v=jTWfBWcm3QY&feature=youtu.be
Считаю необходимым добавить скрипт минимальной высоты по всей площади трассы, либо насыпать этих скриптов по области траекторий, мне кажется я низковато прохожу. Так же нужно выяснить(Тим) - произвольный ли тангаж в воротах с последующей петлей?

Ded-86
14.11.2012, 14:45
скрипт минимальной высоты есть, но он считает от центра самолета, по этому может показаться, что ходишь низко. Тангаж в воротах с последующей петлей не учитывается (насколько я знаю)

aeros
15.11.2012, 00:05
161265
Трасса АбуДаби с увеличенными диаметрами триггеров стартовых ворот и первых шикан. Старт в воздухе.
----
Ded, минимальная высота считается только на триггерах ворот/шикан. То есть получается(как я думаю) что в момент отработки триггера он "начинает" отслеживать самолет и фиксирует параметры в точке траектории, ближайшей к центру триггера. При этом остальные точки траектории внутри диаметра триггера могут быть на любых высотах без последствий. Вне тириггеров можно летать сколь угодно низко. Это нужно править. В идеале - одним триггером диаметром на всю трассу.
naryv - помогите пожалуйста. Возможно ли одним триггером, или нужно их множество по траектории.

tim32
15.11.2012, 09:26
Вот что Рахманин ответил.

161273

Из этого следует, что если брать натуральные правила и применить к Су-26, то максимальный предел скорости на Су-26 должен быть в 270 км. Тоесть, скорость в воротах должна быть ниже максималки в горизонте на 10% У сушки максималка в горизонте 310 значит ограничение в 300 км\ч вполне приемлимо. И ещё ограничить минимальную высоту в 10 м, это какраз половина пилона, ниже второй полосы на пилоне. Сейчас на всех картах стоит 6 м. Так что как-то так получается.

naryv
15.11.2012, 11:04
Ded, минимальная высота считается только на триггерах ворот/шикан. То есть получается(как я думаю) что в момент отработки триггера он "начинает" отслеживать самолет и фиксирует параметры в точке траектории, ближайшей к центру триггера. При этом остальные точки траектории внутри диаметра триггера могут быть на любых высотах без последствий. Вне тириггеров можно летать сколь угодно низко. Это нужно править. В идеале - одним триггером диаметром на всю трассу.
naryv - помогите пожалуйста. Возможно ли одним триггером, или нужно их множество по траектории. если надо смотреть минимальную высоту на всём протяжении полёта, то можно без триггеров обойтись, добавить в public override void OnTickGame() проверку, вот так:
public override void OnTickGame()
{
base.OnTickGame();
if (raceStart) // все проверки делаем если гонка начата
{
double curH = playerPlane.getParameter(part.ParameterTypes.Z_AltitudeMSL, -1) ; // проверка минимальной высоты полёта
if (curH < hMin)
{
GamePlay.gpHUDLogCenter(null, "Disqualification ! Height:{0} is too low", new object[] { curH.ToString("f1") }, 30);
InitRace();
return;
}
// дальше всё как было, начиная с double curSpeed = playerPlane.getParameter(part.ParameterTypes.Z_VelocityTAS, -1); // тут считаем среднюю и максимальную скорости
на всём протяжении полёта (после прохождения стартовых ворот) высота будет сравниваться с hMin, если ниже - дисквалификация.

aeros
15.11.2012, 12:51
naryv спасибо! Мы академиев не кончали, где именно эта константа hMin в приведенном коде??
tim, спасибо Вам и Сергею! Если не получается аутентичной скорости входа, давайте хоть минимальную высоту реальную оставим. Пилоны(и полосы на них)) же стандартные.

naryv
15.11.2012, 13:37
naryv спасибо! Мы академиев не кончали, где именно эта константа hMin в приведенном коде??

В самом начале , там где все константы описаны :
double hMin = 6.5; // нижняя граница - ниже - дисквалификация, та-же что и для фиксации в воротах была:)

tim32
15.11.2012, 14:34
naryv спасибо! Мы академиев не кончали, где именно эта константа hMin в приведенном коде??
tim, спасибо Вам и Сергею! Если не получается аутентичной скорости входа, давайте хоть минимальную высоту реальную оставим. Пилоны(и полосы на них)) же стандартные.

Ну я про то и говорю, что максимальная скорость в стартовых воротах 300, а минимальная высота 10 м, по нижнему краю полосы на пилоне, а так как высота пилона 20 м то как раз получается пол пилона. Так думаю будет оптимально.

aeros
15.11.2012, 21:17
tim, под реальной минимальной высотой я понимаю ту что ограничена на реальных гонках RB.)
----
Да, naryv, ясно(и эти люди критикуют кодеров БоБа:umora:)

tim32
16.11.2012, 12:38
tim, под реальной минимальной высотой я понимаю ту что ограничена на реальных гонках RB.)

Совершенно верно.

andersbravers
18.11.2012, 22:01
Хочется отметить, что начиная с сезона 2010 года на соревнованиях не используются квадро ворота, что помогло Ханнесу выйти из сложнейшей ситуации (http://www.sergeyrakhmanin.com/obzor_windsor.html), так как при использовании классических квадро ворот произошло бы столкновение с двумя пилонами.

tim32
21.11.2012, 01:05
naryv я что-то не нашёл где и в каком файле прописано время возрождения сбитого пилона. Подскажи пожалуйста.

tim32
21.11.2012, 02:37
Нижний предел высоты придётся снизить с 10 до 8 м, так как в игре, нижний край полосы на пилоне на уровне 8 м.

161502 161503

naryv
21.11.2012, 14:11
naryv я что-то не нашёл где и в каком файле прописано время возрождения сбитого пилона. Подскажи пожалуйста. вот функция восстановления -
public override void OnStationaryKilled(int missionNumber, GroundStationary _stationary, AiDamageInitiator initiator, int eventArgInt)
{
base.OnStationaryKilled(missionNumber, _stationary, initiator, eventArgInt);
penaltyTotal += penaltyCollision;
pilonsHit++;
GamePlay.gpLogServer(null, "Pilon hit, penalty:{0}", new object[] { penaltyTotal });

Timeout(120.0, () =>
{
ISectionFile sf = GamePlay.gpCreateSectionFile();
string section = "";
string key = "";
string value = "";
section = "Stationary";
key = "Static0";
switch (_stationary.Title)
{
case "Stationary#RacingSigns#RacingSign1":
value = "Stationary.RacingSigns.RacingSign1 nn";
break;
case "Stationary#RacingSigns#RacingSign2":
value = "Stationary.RacingSigns.RacingSign2 nn";
break;
case "Stationary#RacingSigns#RacingSign3":
value = "Stationary.RacingSigns.RacingSign3 nn";
break;
default: break;
}
value += " " + _stationary.pos.x.ToString(System.Globalization.CultureInfo.InvariantCulture.NumberFormat) + " " + _stationary.pos.y.ToString(System.Globalization.CultureInfo.InvariantCulture.NumberFormat) + " 0";
sf.add(section, key, value);
GamePlay.gpPostMissionLoad(sf);
_stationary.Destroy();
});
} 120.0 после Timeout - это и есть время восстановления, в секундах.

tim32
21.11.2012, 20:38
naryv, благодарю. :ok:

Merkava
04.12.2012, 08:35
Доброго дня всем.
Вопрос такой. Вот смотрю я ролик (внизу должен появиться, если правильно сообщение создам) и не догоняю - почему у меня пламеньев из выхлопух нету, и дым по W не активируется. Что я делаю не так?
Спасибо.

http://www.youtube.com/watch?v=BCaF2WaMUzI

tim32
05.12.2012, 18:06
naryv, Можно ли дописать в скрипт штраф за превышение скорости во время старта, при прохождении стартовых ворот ? К примеру, от 300 до 310 км\ч штраф 2 сек, а выше 310 дисквалификация. В принципе, в правилах этот штраф предусмотрен. http://gn.ucoz.ua/im/osnova/scratch_head.gif

naryv
13.12.2012, 10:59
naryv, Можно ли дописать в скрипт штраф за превышение скорости во время старта, при прохождении стартовых ворот ? К примеру, от 300 до 310 км\ч штраф 2 сек, а выше 310 дисквалификация. В принципе, в правилах этот штраф предусмотрен. http://gn.ucoz.ua/im/osnova/scratch_head.gif
да, пожалуйста :
в описании переменных добавить
public class Mission : AMission
{
double penaltyH = 2.0; // пенальти(с) за пролёт выше границы
double penaltyRoll = 2.0; // пенальти(с) за пролёт с неправильным креном
double penaltySmoke = 2.0; // пенальти(с) за не включенный дым
double penaltyCollision = 6.0; // пенальти(с) за сбитый пилон
double penaltyAerobatics = 6.0; // пенальти(с) за не выполнение пилотажных эл-тов
double hPenaltyLimit = 20.0; // лимит высоты - выше - пенальти
double rollPenaltyLimit = 10.0; // лимит крена - выше - пенальти
double hMin = 8.0; // нижняя граница - ниже - дисквалификация
double hMax = 23.0; // верхняя граница - выше ворота не засчитываются
double startSpeedLimit = 300.0; // предельная скорость в стартовых воротах (км/ч) , выше - пенальти
double startSpeedLimitDisq = 310.0; // предельная скорость в стартовых воротах (км/ч) , выше - дисквалификация
double penaltySGSpeedLimit = 2.0; // пенальти(с) за превышение скорости в стартовых воротах
в проверке ворот (public void checkGatePassed() // проверка прохождения ворот) заменяем проверку прохождения стартовых ворот -
if (gatesList[nextGate].type == GateType.startGate) // если это стартовые или финишные ворота - заполняем соответствующие переменные
{
double speed = playerPlane.getParameter(part.ParameterTypes.Z_VelocityTAS, -1) * 3.6;
if (speed > startSpeedLimitDisq) // если превысили скорость startSpeedLimitDisq - дисквалификация
{
GamePlay.gpHUDLogCenter(null, "Disqualification ! Start gate speed:{0} is too hi!", new object[] { (playerPlane.getParameter(part.ParameterTypes.Z_VelocityTAS, -1) * 3.6).ToString("f2") }, 30);
InitRace();
return;
}
if (speed > startSpeedLimit) // если превысили скорость - startSpeedLimit пенальти
{
GamePlay.gpLogServer(null, "Start Gate Speed Limitation penalty :{0}s, speed:{1}", new object[] { penaltySGSpeedLimit.ToString("f1"), speed.ToString("f1") });
penaltyTotal += penaltySGSpeedLimit;
penalty += penaltySGSpeedLimit;
}
startTime = triggerTime;

}

tim32
14.12.2012, 09:29
naryv http://gn.ucoz.ua/im/osnova/preved.gif Огромное спасибо !

naryv
14.12.2012, 10:11
naryv http://gn.ucoz.ua/im/osnova/preved.gif Огромное спасибо ! да не за что:)

tim32
22.12.2012, 15:31
Подправил все карты RB Abudabi, RB Interlaken, RB Istambul, RB San Diego, RB Windsor Ontario, RB Lausitz, RB New-York под новые параметры. Теперь превышение скорости в стартовых воротах от 300 до 310 км\ч штрафуется двумя секундами, а свыше 310 дисквалификация. Добавил 2 новые карты RB Porto и RB Barcelona.
Карты тут -
163063
163064
163065
Во избежании глюков, предыдущие версии карт желательно удалить !