Да там было перенаправление на п.10 в этой теме. Сам файл cs просмотрел, но так как я не силён в программах, то нифига не разглядел в какой строке прописана именно регулировка диаметра круга триггера. http://gn.ucoz.ua/im/osnova/scratch_head.gif
Вид для печати
Да там было перенаправление на п.10 в этой теме. Сам файл cs просмотрел, но так как я не силён в программах, то нифига не разглядел в какой строке прописана именно регулировка диаметра круга триггера. http://gn.ucoz.ua/im/osnova/scratch_head.gif
Дублирую))
"Так ткни триггер, там радиус задается - какой нужно диаметр ставишь, смотри вот в примере крайняя цифра (выделена жирным) - это и есть диаметр. Я им всегда пользуюсь.
[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 метров".
да, это в .mis
Ну вот http://gn.ucoz.ua/im/radost_ulibki/mosking.gif а я все глаза обламал копаясь в cs. :) Все скрипты вродь работают. А с настройками правого и левого ножа пока никак ?
Обновлённый скрипт гоночной миссии, теперь в свойствах ворот задаётся желаемый крен (правый положительный, левый отрицательный) (элемент списка ворот теперь заполняется так - gatesList.Add(new Gate("Gate5Red", "GateV1", false, GateType.knifeGate, AfterGateAction.none, 246657, 234320, -90)); , крайняя цифра - как раз желаемый крен), за пролёт ниже нижней границы (6.5 м задаётся hMin, меняйте по своему усмотрению ) - дисквалификация, гонка обнуляется, при пролёте выше 30м (hMax - опять же можно менять) ворота не считаются пройденными. За не включенный дымогенератор - штраф 2 сек.
Теперь рестарт после гонки не обязательно делать, после финиша всё обнуляется и можно лететь снова. Сбитый пилон через 2 минуты восстанавливается.
Вложение 160392
Отлично! Теперь можно будет сбитые пилоны и в онлайне переделать. Илья, а как ты решил проблему с прохождением одного и того же триггера с разных направлений? Я про то, что одни и те же ворота приходится проходить с разных направлений в одной и той же гонке.
ЗЫ. Кстати, а для чего по сути нужен дымогенератор?
Так триггер ведь круглый, с любого направления проходится, направление сейчас не проверяется(можно конечно ещё и его проверять), но если проходить не оптимальным маршрутом - время увеличится, так что смысла особого нет.
Для красоты, наверное, это же шоу во многом :) . А так - в правилах РедБулльских есть пенальти за не включенный, ну и я сделал :)
А чтоб в других картах было подобное надо поставить новый cs файл и вставить свои координаты триггеров или можно в уже имеющийся вставить строчки ? -
......-90
double hMin = 6.5;
double hMax = 30.0;
bool smokeOn = false;
А время восстановления пилона регулируется ? А то 2 мин многовато.
Упс, сейчас только обратил внимание, а в змейке-то крен вообще не учитывается. http://gn.ucoz.ua/im/osnova/scratch_head.gif Змейку можно горизонтально проходить без штрафа. http://gn.ucoz.ua/im/osnova/unsure.gif
надо новый, в нём обработка этих новых условий. И в этот новый файл свои координаты(можно их просто из старого забрать, добавив в конце желаемый крен)
отдельной переменной нет, можно в функциинайти строчкуКод:public override void OnStationaryKilled(int missionNumber, GroundStationary _stationary, AiDamageInitiator initiator, int eventArgInt)
120.0 - время в секундах после которого пилон восстанавливается, поменяйте как Вам удобнее будет.Код:Timeout(120.0, () =>
а от направления движения это не зависит левый крен всегда отрицательный а правый - всегда положительный.
А пилоны-то по истечении любого времени Timeout(120.0, () не востанавливаются, а просто исчезают и больше не появляются. http://gn.ucoz.ua/im/osnova/scratch_head.gif
Ну так в скрипте каждый пролёт ворот описан в списке ворот, соответственно ворота на ноже будут 3,4 и 10,11 строчками в списке ворот и у них можно указать любой желаемый крен.
угу про локали забыл, в исходном сообщении исправленный скрипт перевыложил, либо просто руками в своём заменить строчкунаКод: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, в новом скрипте, если пролететь старт до восстановления пилонов, то пенальти остаются с прошлого вылета (если не перезапускать миссию). Возможно и в любом случае, ещё не проверил.
Сделал шикарный вылет: пролетел трассу, случайно открыл фонарь - пришлось садиться в поле, пролетая над кустиками, деревьями и домиками улыбнулся, сел, закрыл фонарь, взлетел, начал снова проходить трассу! Ах! Вроде бы и ничего необычного, а так погружает!
А перезарядку и дозаправку не выходя из миссии точно никак нельзя сделать?! :ups:
В змейе, вертикальный угол ( нож ) по прежнему не штрфуется. Файл 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
Мда, и в правду не учитывается крен в змейке.
Вложение 160157
Что-то никак не разберу, за что штраф начисляется, может кто подскажет ? 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));
no loop- нет петли
no barrel roll- нет бочки
double penaltyAerobatics = 6.0; // пенальти(с) за не выполнение пилотажных эл-тов 6*2 элемента = 12
нет бочки и петли, если они в гонке не предусмотрены в public void InitRace() поставьтебудет считаться что они выполнены и штрафа не будетКод:CheckLoopPass = true;
CheckBarrelPass = true;
--- Добавлено ---
добавьте, пожалуйста в скрипте миссии в public void InitRace() строчкузабыл обнулить пенальти, примерно так должно выглядеть:Код:penaltyTotal = 0.0;
Скрытый текст:
нет:(