is there any way to load a .cs C sharp script file in a mission already running?
for example, if loading another mission, which has its own script, will this new script be loaded, or not?
is there any way to load a .cs C sharp script file in a mission already running?
for example, if loading another mission, which has its own script, will this new script be loaded, or not?
В DamagerScore, который из maddox.game.world есть две числовые переменные (или как это правильно называется) score и time.
Вопросы:
1. Score, если я правильно все понимаю, показывает степень повреждения (кстати, в чем она измеряется?). Если смотреть список инициаторов сбитого самолета (как акторов) по функции OnActorDead (из AMission), то в нем всегда есть сам убитый актор, у которого score больше нуля. Как это понять? Типа повреждения, которые наносятся не напрямую противником, записываются на самого актора. Например, противник повредил систему охлаждения (записано противнику), из-за поврежденной системы охлаждения накрывается двигатель (а это уже пишут самому актору). Или на убитого актора просто записывают очки повреждения от самого падения?
2. Что показывает параметр time? Как я понимаю это время нанесения последнего повреждения для инициатора.
Хотелось бы комментарий по этому поводу, что я правильно понимаю, что нет и как правильно?
Крайний раз редактировалось RC_Politruk; 21.07.2011 в 21:54.
А есть ли возможность в скрипте миссии получить доступ к интерфейсу IPlayerStat для сбора статистики? Или может быть есть какой-то альтернативный способ?
Когда я попробовал использовать IPlayerStat оказалось, что gamePlay.dll (в которой этот интерфейс описан) даже не подгружается.
если не ошибаюсь, score - это степень участия инициатора в демадже, т.е. если игроки вдвоём пилили один самолёт, убили его и нанесли одинаковые повреждения, у score будет по 0.5, если троём с тем же результатом - по 0.3(3) ну и т.д., если поврежедния не одинаковые - то у кого повреждения более значительные, у того и score больше.
да, на убитого актора записывают оставшийся демадж от падения, если взорвать его в воздухе - ему ничего не запишется. Т.е. мы сломали ему мотор нам записали, допустим 0.6 демаджа, дальше он упал и разбился - ему 0.4 запишут.
да, так.
вроде не планируется, а надо?
пожалуйста
Этот интерфейс для кампаний, в скрипте миссий не доступен. А альтернативный способ, вот как выше RC_Politruk-у писал - через события ActorDead и DamagerScore можно собрать.
Don't happy, be worry
А если игрок повредил самолет противника, противник вышел и создал новый самолет, скрипт повредил оставшемуся в самолете ИИ двигатель и управление, ИИ разбился. Кому запишут в счет повреждение двигателя и управления? Желательно делить пропорционально на всех повредивших.
Кстати, после сбития в лог тоже лучше писать имя игрока, управлявшего самолетом, а не ИИ, если игрок вышел до падения. Много недовольства по этому поводу. (Запретить выход из самолета в настройках сложности сервера пока нельзя, как обсуждалось в теме Repka.)
...зелёные горят.
----------------------
i7-860@3.8, 4GB, ati4890-2GB, 1680x1050, Win7-64.
Извините, но считаю это явной глупостью, требующей незамедлительного исправления. Записывать игроку плюс за то что он сломал собственный самолет? В вышеприведенном примере атакующему должно быть записано 0.6, а атакуемому 0 или -(минус)0.4.
Если продолжить линию... атакуемый долетел до своего филда и сел - атакующему 0.6. (или просто сел живой на любой участок земли) Атакуемый не смог добраться до филда, упал, разбился - атакующему 1.0, так как самолет уничтожен полностью.
is there any way to reference the AiActor when having the AiAircraft (you can do it the other way around using (AiAircraft)AiActor or AiActor as AiAircraft), please?
1 Как сделать чтобы боты атакавали не котнкретную цель а рандомно все в районе?
Точка штурмовка района не работает.
2 Как сделать чтобы боты летали моим сторем бизко др к др. Как в ил2 не работает если я ставлю точки близко они ставяться все равно в стороне на 100 или 200м др от друга.
3 Как сделать рулежку для взлета?
4 Почему когда я ставлю скажем 1 мессер е3 против 6 спитфаеров он не атакует их? Даже точка атакавать истребители не помогает.
Возникла некоторая непонятка. Как правильно взлетать?
Вот простенький скрипт. Как какой-нибудь самолет взлетает, то появляется надпись "Взлетел", как садится - "Сел". У меня это работает со всеми самолетами кроме самолета игрока под управлением игрока. Если включить автопилот, то взлет скрипт засчитывает. Соответственно посадка после такого взлета не засчитывается. При старте в воздухе все в порядке, при взлете автопилотом тоже все в порядке.
Что делать с игроком?
Соответственно .IsAirborne() для самолета игрока всегда ложь.Код:public class Mission : AMission { public override void OnAircraftTookOff(int missionNumber, string shortName, AiAircraft aircraft) { base.OnAircraftTookOff(missionNumber, shortName, aircraft); GamePlay.gpHUDLogCenter("Взлетел."); } private void checkLanded(AiAircraft aircraft) { GamePlay.gpHUDLogCenter("Сел."); } public override void OnAircraftLanded(int missionNumber, string shortName, AiAircraft aircraft) { checkLanded(aircraft); } public override void OnAircraftCrashLanded(int missionNumber, string shortName, AiAircraft aircraft) { checkLanded(aircraft); } }
Крайний раз редактировалось Vetochka; 03.08.2011 в 22:58.
А если вот так попробовать, будет работать?
Ну и со взлетом то же самое.Код:public class Mission : AMission { private void checkLanded(AiAircraft aircraft) { if (GamePlay.gpPlayer().Place() == aircraft) { GamePlay.gpHUDLogCenter("Сел игрок."); } else { GamePlay.gpHUDLogCenter("Сел бот."); } } public override void OnAircraftLanded(int missionNumber, string shortName, AiAircraft aircraft) { checkLanded(aircraft); } public override void OnAircraftCrashLanded(int missionNumber, string shortName, AiAircraft aircraft) { checkLanded(aircraft); } }
AMD Phenom(tm) II X4 955 3.21ГГц, Gigabyte GA-MA770-US3, 4Гб DDR2-800, ATI Radeon HD 5850 1Гб DDR5 256-бит, Microsoft Windows 7 Home SP1 x64, 1920х1080 24"
Не работает. Собственно изначально писалось для проверки взлета игрока иряда действий когда взлетит, а здесь выложено без чего-либо "лишнего". Т.е. проблема в том, что для самолета игрока в принципе OnAircraftTookOff не вызывается, а параметр .IsAirborne() всегда ложь. Соответственно раз не взлетал, то и сесть не может, т.е. OnAircraftLanded тоже не вызывается, когда садится игрок. Просто такое впечатление, что состояние "в воздухе" включается когда при взлете выполняется ряд операций, например, получение разрешения на взлет, отрыв, уборка шасси и еще что-то.
Боты и автопилот не торопятся оторваться, поэтому у них успевает событие OnTookOff срабатывать , лётчики-человеки торопятся. Попробуйте по полосе бежать подольше разгоняясь, должно сработать. Но вообще это, наверное, не очень правильно, в след. патче сделаем чтобы по отрыву срабатывало.
Don't happy, be worry
@ Geniok
Женя, я как то писал о тряске кабины в "Штуке", так вот в онлайнах этого нет, только в оффе. Ты говорил что может что то со скриптом? Есть выход?
Привет!
Да, я помню этот разговор.
Я имел ввиду как будто бы "скрипт" зашитый в самом коде игры. Конечно это не 100% факт, а только мое личное мнение, основанное на наблюдениях. Ну например как самолеты все становятся неуправляемыми при достижении определенной скорости. Я лично на 100% уверен что это сделано по скрипту вида: "Если скорость самолета больше, чем максимальная, начинаем хаотически двигать всеми управляемыми поверхностями".
Например при выходе игры лично разгонял мессер до 1000 км и ничего ему не было. Потом подняли хай, ввели вот этот "скрипт" и до 1000 уже просто не разгонишь, сильно болтает, хотя поверхности не отваливаются по-прежнему.
Так что пользователи увы изменить ничего не смогут, только разработчики, у них есть доступ к исходникам. Почему в Оффе и в он_лайне разные "законы" поведения, тоже к ним. К скриптам миссии это отношения не имеет.
--- Добавлено ---
Ил не совсем на Яве. Если совсем быть точным, он является смесью явы и С++.
Крайний раз редактировалось Geniok; 04.08.2011 в 22:37.
AMD Phenom(tm) II X4 955 3.21ГГц, Gigabyte GA-MA770-US3, 4Гб DDR2-800, ATI Radeon HD 5850 1Гб DDR5 256-бит, Microsoft Windows 7 Home SP1 x64, 1920х1080 24"
На всякий случай дубль http://www.sukhoi.ru/forum/showthrea...=1#post1669388
...зелёные горят.
----------------------
i7-860@3.8, 4GB, ati4890-2GB, 1680x1050, Win7-64.
Как-то можно в одиночной миссии установить новое игровое время? Или сделать пропуск какого-то временного участка?
Например, миссия началась в 10:00 игрового времени, полетали, постреляли, вдруг произошло какое-то событие, после которого установилось игровое время 12:00. Такое возможно?
Да, системное время желательно не трогать![]()
@ naryv
Накропал как мог http://www.sukhoi.ru/forum/showthrea...=1#post1671559
...зелёные горят.
----------------------
i7-860@3.8, 4GB, ati4890-2GB, 1680x1050, Win7-64.
А что конкретно не получается? Флажок? Сторона? Аэродром? Самолет?
Бывает, что в настройках сложности запрещают выбор стороны. Нужно там 4 галочки снять справа внизу.
А, ну и миссию сначала запустить нужно, а потом самолет создавать![]()
...зелёные горят.
----------------------
i7-860@3.8, 4GB, ati4890-2GB, 1680x1050, Win7-64.
AMD Phenom(tm) II X4 955 3.21ГГц, Gigabyte GA-MA770-US3, 4Гб DDR2-800, ATI Radeon HD 5850 1Гб DDR5 256-бит, Microsoft Windows 7 Home SP1 x64, 1920х1080 24"
Я запускал срвер из интерфейса и летал. Просто с настройками что-то.
--- Добавлено ---
Это точки где спаунятся самолеты на аэродроме. Один из объектов аэродрома в редакторе. В настройках клавиш в игре (не в редакторе) нужно назначить клавишу для команды branch (ветвление), чтобы оставлять рулежки мжду этими точками.
2 точки кажется должны находиться на ВПП, чтобы боты туда выруливали. Посмотри как в миссии с Р3 они поставлены красиво.
...зелёные горят.
----------------------
i7-860@3.8, 4GB, ati4890-2GB, 1680x1050, Win7-64.
Возник вопрос следующего плана.
1. В каких единицах возвращается значение по запросу Z_VelocityIAS и подобные? Получал с subtype=-1. Значение в среднем ниже на 2,36, если ориентироваться по прибору в км/ч на 500-х метрах.
2. Так как не совсем ясно, в каких единицах возвращается значение по вопросу выше, пробовал получать по Z_VelocityMach. Стало похоже на правду, но возник еще вопрос: конкретное значение ск. звука зависит от температуры воздуха?
В общем, коротко говоря, мне надо получить TAS и IAS в понятных единицах измерения.