Собственно появился такой вопрос: Можно ли в скрипте получить как-то доступ с статическим объектам в миссии и их свойствам? Скажем к зданиям и т.п?
Собственно появился такой вопрос: Можно ли в скрипте получить как-то доступ с статическим объектам в миссии и их свойствам? Скажем к зданиям и т.п?
К тем, которые, идут в миссии как объекты(можно по правой кнопке посмотреть) - емнип да, к зданиям стоящим на карте, опять таки емнип - нет.
Don't happy, be worry
Тут собственно почему спрашивал.. Так и не нашел, как этих статиков отследить.
Насколько я понимаю, они не являются AiActor (по крайней мере события на них не реагируют - уничтожен, поврежден и т.д.). Ни в Battle, ни в GamePlay методов никаких похожих тоже вроде не нашел. GamePlay.gpActorByName("StaticName") тоже ничего не дает. (
Jтследить уничтожение статика(ов) удалось только повесив на них триггер.
И еще заметил такую фиговину. Если загрузить миссию через GamePlay.gpPostMissionLoad, скажем с автоколонной, уничтожение автоколонны или машинок из нее - OnActorDead к примеру не вызывают. Загруженные таким же образом самолеты отрабатывают нормально.
Приложил миссии в аттаче. Там стодесятые отрабатывают по статикам (несколько машинок), по их убиению срабатывает триггер и загружает миссию - там новая группа стодесятых отрабатывает "колонну" из одной машинки.. По ее убиении OnActorDead не срабатывает.. ( Чего не так делаю, не въеду. (
В понедельник посмотрю, емнип, там что-то типа AiGroundGroup для машинок.
Don't happy, be worry
На каком языке вы разговариваете ?? xD Будет таки какая нибудь обучалка по редактору.. скрипты, триггеры... ??)) Мой нубский вопрос- можно как то отключить френдли фаер у зениток ?? всю статику на земле мне разворочили .. ))
1680 x 1050 (120Hz) | i7 3770K (4.4Ghz) | 16gb DDR3 (1600 Mhz) | gtx 680| win 7 x64
__Saitek__X52_pro___________________________________________________
Можно ли управлять включением- выключением аэродромных огней?
Скрытый текст:
Как заставить ботов на летающих лодках садится на воду и взлетать с воды?
Скрытый текст:
М.б. Вам стОит озадачится углами обстрела ЗА при их размещении?
Оффтопик:
Мне вспомнилась история из войны на Тихом океане, когда американский авианосец так яростно отбивался от японских самолётов, что крейсер охранения поднял сигнал "Сдаюсь".
Крайний раз редактировалось Ilya Kaiten; 17.04.2011 в 09:33.
1680 x 1050 (120Hz) | i7 3770K (4.4Ghz) | 16gb DDR3 (1600 Mhz) | gtx 680| win 7 x64
__Saitek__X52_pro___________________________________________________
Пока этих вещей нет, можно немного начинать изучать синтаксис C#. Собственно основные типы, циклы, конструкции, разобраться что такое интерфейс и что такое класс. Что такое наследование и области видимости. Когда гайд появится, будет намного проще, многое и без подсказок можно будет сделать.
Вот это или другую мурзилку посоветуете? http://simple-cs.ru/csharp.aspx
Здесь интереснее? http://www.realcoding.net/article/view/1748
...зелёные горят.
----------------------
i7-860@3.8, 4GB, ati4890-2GB, 1680x1050, Win7-64.
Интереснее всего - msdn, имея при этом visual c# express и тренируясь на примерах.
P.S.
Интересно. А на vbasic скрипты не подцепятся?
Сорри, суматошный день сегодня, толком не посмотрел ничего
Да, статики, это не акторы, у них "мозга" нет, и они для красоты стоят, событий не вызывают, м.б. как-то можно добраться но сегодня не смог покопаться.
Вроде всё нормально работает - машинку когда застрелили - сообщение "Dead :0_Chief" выскочило.
--- Добавлено ---
нет
Don't happy, be worry
Нарыв, что можно сделать с перезарядкой?
"Мурзилок" таких дофига на самом деле, это уже дело вкуса - что лучше пойдет, то и читайте. MSDN штука просто незаменимая, но имхо, для новичка будет сильно замороченная. Кстати можно и на ты.
2 nariv
Насчет машинок в колонне наверное недоглядел, сорри...
Статики было бы хорошо как-то вытянуть, ибо получается, что "ресурсы" хранить негде.. Можно конечно закрывать их оптом по триггеру и загружать миссии с ними, но имхо, как-то не кошерно... А так разные снарядные ящики, бочки и грузы просто "высшим разумом" для этого предназначены. Конечно если бы и здания (по крайней мере те, что ручками ставятся), можно было отследить, было бы вообще кучеряво.
2 Mirmiy
Чой то у меня такой чувство, что когда таки AddIn`ы включат, его на VB.NET таки можно будет нарисовать, имхо... Все ж таки все оно суть CLR.. А со скриптами да, тут уже конкретный язык рулит..
С какой?
Ну, что поделать
Я, как времени побольше будет, посмотрю, что да как с ними можно делать, но когда точно - не могу сказать, а то наобещал на сегодня, а посмотреть мельком только вечером смог и то 10 минут. "Ручные" домики, емнип, это обычные стационарные объекты, так что с ними можно всё, что и с обычными статиками делать.
Don't happy, be worry
СКАЖИТЕ ПОЖАЛУЙСТА ЕСТЬ КАКАЯ НИБУТЬ ИНСТРУКЦИЯ К ПОЛНОМУ РЕДАКТОРУ А ТО БЕЗ СТО ГРАМ НИКАК НЕ РАЗОБРАТСЯ
ОЧЕНЬ ИНТЕРЕСУЕТ ВОПРОС КАК НА ДОКФАЙТОВСКУЮ КАРТУ ПОСТАВИТЬ ФИЛД И ЧТОБ ПРИ ЗАПУСКЕ СЕРВЕРНОЙ ИГРЫ МОЖНО ВЫБРАТЬ ХОТЬ КАКОЙТО САМОЛЬ И ЛЮДИ МОГЛИ ПОДКЛЮЧИТСЯ И ПОЛЕТАТЬ ВМЕСТИ?
Я ПОЛЬЗОВАЛСЯ РЕДАКТОРОМ В ПЕРВОМ ИЛЕ ИВСЕ БЫЛО ДОСТУПНО И ПОНЯТНО, А ЗДЕСЬ ВСЕ ЗАШИФРОВАНО
Глаза взорвались
Лишь бы удача не встала спиной,
да скрыла б наш след пучина…
Боже! пошли нам британский конвой -
и охрани Kriegsmarine.
Пока нету инструкции, пока все на уровне нет для дот, шарп для чайников, рефлексоров, масдайстудий..... скоро тут на форуме (судя по всему сами пользователи выложат инструкцию). но так как было в 1-м иле тут видимо не будет. зато возможностей море - смотри, приезжаеш в автосервис - тебе дают падьемник, набор напильников, отверток, спецуху и даже подскажут че крутить надо.... что ты...!
В общем со статиками так пока и не разобрался, но дошла одна маленькая вещь.. Как до жирафа.. Надо сильно забыть концепцию миссии из ила, т.к. тут как таковой миссии (с точки зрения Ила) не существует. Есть "битва", а в ее рамках выполняются различные миссии.
Миссия вообще умеет может загружать сама себя. Технически это конечно не так, но выглядит именно так. Т.е. из миссии мы приказываем через GamePlay.gpPostMissionLoad() загрузить в битву еще одну миссию, а что это за миссия - не важно. Походу общими для всех миссий является объект Battle и наверное GamePlay... Каждая миссия загружается под новым номером.
Скажем у меня есть одна миссия-хост (так сказать, "точка входа"). По OnBattleStarted() она загружает стартовый набор миссий (скажем одна - красные танки, вторая синие танки, едут навстречу). И в каждой из этих миссий отслеживается OnActorDead(). Если была уничтожена группа (она одна все равно), миссия загружает себя снова, сразу или по таймеру. Если помер танчик, то через несколько сек. убираем его трупик через Destroy(), что бы не мешался. Получается "бесконечная" стенка-на-стенку. Но миссия-хост понятия не имеет, что там творится. Вот в чем затык. (
Что делать со старыми, "сёгранными" кар... миссиями? Или если на круглосуточном сервере скажем рано или поздно счетчик выйдет за MAXINT?
Что есть поле MissionNumberListener? Пробовал присваивать номер свежезагруженной миссии - вообще всякие события вызывать перестало (в этой миссии).
Ну и собственно, пока не придумал, как эти миссии связать в одну кучу. Т.е. у Battle есть список миссий, но он в защищенном поле... облом.. Ивентов у Battle тоже нет. Подозреваю, для этого надо бы рисовать свой собственный Battle, а это будет доступно только в юзер-аддоне? Или есть другой путь?
Кстати интересная особенность (возвращаясь все к той же машинке из колонны). Похоже события миссии должны срабатывать только для своих "объектов".. Но они работают и для другой миссии - частично для "продвинутой" наземки и полностью для самолетов. Частично - имеется ввиду, что когда загружается новая миссия с акторами, в "старой" на каждого свежесозданного актора срабатывает OnActorCreated(), но никакой внятной инфы из параметров выдрать нельзя. shortName = "NONAME", actor не является ни группой, ни наземкой, вообще ничем походу... Хотя если в одной миссии поставить триггер "Враги прилетели", то если эта "анонимная" наземка из другой миссии туда заезжает, тригер срабатывает... Или я совсем уже запутался.
Я конечно кроме бейсика и алгоритмов ничего не проходил, но мне кажется, отслеживать OnActorDead() и делать Destroy() нужно в миссии-хосте, т.к. только она и есть на сервере. Т.е. каждой под-миссии свой .сs файл совсем не обязателен и даже поначалу вреден, т.к. слишком ветвит скрипт основной миссии.
Допустим: запущена миссия, которая определила стартовые аэродромы, дала общий брифинг, запустила один основной скрипт.
Основной скрипт делает:
Через 5 минут подгрузили новые цели: синие бомбят аэродром, красные топят транспорты. (Это уже в момент подгрузки стало частью хост-миссии.)
По триггеру "посадка + 5 минут" уничтожаем ненужные тушки. По тригеру "умер" + 10 минут уничтожаем тушки ... и т.д.
По тригеру транспорт потоплен, загружаются следующие цели: синим судам выйти в море. Красным вылететь на перехват судов, синие самолеты прикрывают суда.
По триггеру "посадка + 5 минут" уничтожаем ненужные тушки. По тригеру "умер" + 10 минут уничтожаем тушки ... и т.д.
По тригеру красный аэродром разбомблен синие начинают бомбить заводы. Красные вылетают на перехват....
По триггеру "посадка + 5 минут" уничтожаем ненужные тушки. По тригеру "умер" + 10 минут уничтожаем тушки ... и т.д.
Через 40 минут выступают красные танки, 110е отправляются на штурмовку. И т.д. собрать пакет из 50-100 подмиссий, связанных логически тригерами. Причем как и в жизни эти задания могут происходить одновременно.
По триггеру "посадка + 5 минут" уничтожаем ненужные тушки. По тригеру "умер" + 10 минут уничтожаем тушки ... и т.д.
Там где нужно добавить ограничения по времени, ограничение на количество одновременно проистекающих "подмиссий" и др.
Ко всему этому прикрутить интерфейс в котором игрок может выбрать для себя миссию из ожидающих взлета в данный момент как в WWII Online, занять слот вместе с сосквадниками в соответствующей комнате миссии и через 5 минут появиться вместе с ними на полосе для вылета.
На следующем этапе прикрутить веб- или игровой интерфейс, где командиры сквадов выбирают направления для атаки, распределяют ограниченные ресурсы (самолеты и наземку), выбирают тип атаки (тип миссии) и т.п.
Где не прав, поправьте.
...зелёные горят.
----------------------
i7-860@3.8, 4GB, ati4890-2GB, 1680x1050, Win7-64.
Юмор в том, что наземка при гибели не вызывает OnActorDead в миссии-хосте. Только "родная"... Возможно так и задумано, возможно баг. Вообще наземку можно стартовать и по скрипту (ставить в свойствах "Старт по скрипту" прикрепить к группе экшен и из скрипта этот экшен запускать). НО, снова юмор. Такая галка для наземки как-то глючно работает, плюс наземные группы с такой галкой в начале миссии не создаются, но и появляться тоже упорно не желают. С самолетами этот номер проходит на ура, кстати. Я в соседней теме выложил миссию, можете поэкспериментировать.
Вообще я так и предполагал сделать. Миссия-хост, в ней свои переменные - ресурсы, состояния и т.д., и она всем остальным крутит. но.. Наземка "скриптом" не стартует, только через загрузку другой миссии, отследить состояние наземки из другой миссии тоже не могу.. Вот так вот. (((
Интерфейс и прочее... возможно когда разрешат аддоны делать... Пока его прикрутить чего-то не вышло (((
Возможно попробовать стоит такой принцип - раз обьекты подгруженные к баталии в субмисии не контролируются из другой субмисии, то собственно, все родные для субмиссии объекты должны контролироваться скриптом этой субмисии, то есть по логическому завершению этой саммой мисии дестроится как по гибели так и по достижению цели.