???
Математика на уровне МГУ

Страница 28 из 30 ПерваяПервая ... 1824252627282930 КрайняяКрайняя
Показано с 676 по 700 из 789

Тема: Вопросы.

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1
    Инструктор Аватар для eekz
    Регистрация
    03.03.2012
    Адрес
    Минск
    Сообщений
    1,809
    Записей в дневнике
    12

    Re: Вопросы.

    У меня при таком раскладе как на скриншотах получается что все машинки респавнятся на сплайн_роуд маршруте независимо от места где их поставить на карте, причем одни движутся в конечную точку маршрута, дагие в начальную - и так по кругу. Я почему спрашиваю, просто таким способом - одной командой на маршрут можно поставить сколько угодно одиночных машинок.
    Потенциал развития в БзБ заложенный ребятами и мной в самом начале на самом деле огромен....
    Олег Медокс

  2. #2
    hehehe 111 Аватар для podvoxx
    Регистрация
    25.08.2008
    Адрес
    Барнаул - Питер
    Возраст
    41
    Сообщений
    4,245

    Re: Вопросы.

    1. Вот таких сообщений при уничтожении артиллерии собрал
    Код:
    [22:51:28]	[3055] ERROR [AI] callStateByName(): state "Main.OnActorDied" not found!
    [22:51:32]	[3185] ERROR [AI] callStateByName(): state "Main.OnActorDied" not found!
    [22:51:45]	[3597] ERROR [AI] callStateByName(): state "Main.OnActorDied" not found!
    Таких сообщений 7, а юнитов артиллерии всего было 16, т.е. получается не все вызывают такую ошибку. Артиллерия - это танки и броневики из категории "Артиллерия". Что это может быть?

    2. Каким событием можно отследить смерть пилота(от аварии или пули) в онлайне на выделенном?
    Крайний раз редактировалось podvoxx; 13.11.2012 в 09:20.

  3. #3
    Старший Офицер Форума
    Регистрация
    15.02.2002
    Адрес
    Moscow
    Возраст
    46
    Сообщений
    6,905
    Images
    51

    Re: Вопросы.

    Цитата Сообщение от eekz Посмотреть сообщение
    По какому принципу NPC-машинка ставится на spline_road маршрут, если сделать так как указано в этом моем посте http://www.sukhoi.ru/forum/showthrea...=1#post1923560 ?
    И есть ли способ как-то регулировать точку появления машинок на таком маршруте?
    стартуют в случайном сегменте сплайновой дороги, таким образом, чтобы в одном сегменте не было двух чифов. Точку появления, к сожалению, задавать нельзя.

    Цитата Сообщение от podvoxx Посмотреть сообщение
    1. Вот таких сообщений при уничтожении артиллерии собрал
    Код:
    [22:51:28]	[3055] ERROR [AI] callStateByName(): state "Main.OnActorDied" not found!
    [22:51:32]	[3185] ERROR [AI] callStateByName(): state "Main.OnActorDied" not found!
    [22:51:45]	[3597] ERROR [AI] callStateByName(): state "Main.OnActorDied" not found!
    Таких сообщений 7, а юнитов артиллерии всего было 16, т.е. получается не все вызывают такую ошибку. Артиллерия - это танки и броневики из категории "Артиллерия". Что это может быть?
    это пропущенный рудимент, на такие сообщения не надо обращать внимание, они ни на что не влияют.

    Цитата Сообщение от podvoxx Посмотреть сообщение
    2. Каким событием можно отследить смерть пилота(от аварии или пули) в онлайне на выделенном?
    Код:
    public override void OnPersonHealth(AiPerson person, AiDamageInitiator initiator, float deltaHealth)
        {
            base.OnPersonHealth(person, initiator, deltaHealth);
        }
    для игрока надо взять "person.Player()" (не забудьте проверить не null ли он, для АИшников, емнип null), person.Name() - игровое имя раненого или убитого,person.Player().Name() - имя игрока, соответственно, deltaHealth - степень повреждения, 1 - убили, 0-1, разные степени ранения, initiator - автор повреждений.
    Don't happy, be worry

  4. #4
    hehehe 111 Аватар для podvoxx
    Регистрация
    25.08.2008
    Адрес
    Барнаул - Питер
    Возраст
    41
    Сообщений
    4,245

    Re: Вопросы.

    Цитата Сообщение от naryv Посмотреть сообщение
    Код:
    public override void OnPersonHealth(AiPerson person, AiDamageInitiator initiator, float deltaHealth)
        {
            base.OnPersonHealth(person, initiator, deltaHealth);
        }
    для игрока надо взять "person.Player()" (не забудьте проверить не null ли он, для АИшников, емнип null), person.Name() - игровое имя раненого или убитого,person.Player().Name() - имя игрока, соответственно, deltaHealth - степень повреждения, 1 - убили, 0-1, разные степени ранения, initiator - автор повреждений.
    Спасибо

  5. #5
    hehehe 111 Аватар для podvoxx
    Регистрация
    25.08.2008
    Адрес
    Барнаул - Питер
    Возраст
    41
    Сообщений
    4,245

    Re: Вопросы.

    Еще вопрос, скорее уже NET больше касается. Чем больше добавляю кода, тем больше беспокоюсь
    Создается много классов и переменных, многие из которых используются один раз или ограниченное кол-во времени. Они куда деваются потом? Вроде читал, что есть какой-то сборщик мусора, который очищает память от неиспользуемых данных. Есть еще деструкторы, но не уверен что правильно понял их назначение(и вроде как их использовать с умом надо). Или это особого значения не имеет?
    Ресурсов сервер с миссией ест не много вроде.

  6. #6

    Re: Вопросы.

    Цитата Сообщение от podvoxx Посмотреть сообщение
    Еще вопрос, скорее уже NET больше касается. Чем больше добавляю кода, тем больше беспокоюсь
    Создается много классов и переменных, многие из которых используются один раз или ограниченное кол-во времени. Они куда деваются потом? Вроде читал, что есть какой-то сборщик мусора, который очищает память от неиспользуемых данных. Есть еще деструкторы, но не уверен что правильно понял их назначение(и вроде как их использовать с умом надо). Или это особого значения не имеет?
    Ресурсов сервер с миссией ест не много вроде.
    GS вообще тема достаточно сложная и неоднозначная. Имхо пока достаточно знать, что все объекты, на которые не осталось ссылок в видимой области, рано или поздно будут уничтожены без твоего вмешательства. Если класс не реализует IDisposable, в общем случае можно быть спокойным, какие-то специальные действия по его уборке не требуются.
    Если реализует, то вполне достаточно делать так
    using (DisposableObject obj = new DisposableObject())
    {
    obj.SomeMetod();
    // какой-то код
    }

    По выходу за блок using на объекте будет вызван Dispose(), дальше его сборщик приберет.

    Ну и в нашем случае, если ты объект не создавал, то не тебе его диспозить.

  7. #7
    hehehe 111 Аватар для podvoxx
    Регистрация
    25.08.2008
    Адрес
    Барнаул - Питер
    Возраст
    41
    Сообщений
    4,245

    Re: Вопросы.

    Цитата Сообщение от Small_Bee Посмотреть сообщение
    GS вообще тема достаточно сложная и неоднозначная. Имхо пока достаточно знать, что все объекты, на которые не осталось ссылок в видимой области, рано или поздно будут уничтожены без твоего вмешательства. Если класс не реализует IDisposable, в общем случае можно быть спокойным, какие-то специальные действия по его уборке не требуются.
    Если реализует, то вполне достаточно делать так
    using (DisposableObject obj = new DisposableObject())
    {
    obj.SomeMetod();
    // какой-то код
    }

    По выходу за блок using на объекте будет вызван Dispose(), дальше его сборщик приберет.

    Ну и в нашем случае, если ты объект не создавал, то не тебе его диспозить.
    Ну и отлично. Но на всякий случай уточню.
    Создаем два экземпляра класса Airfield:

    Код:
    Airfield zzz;
    
    Airfield xxx = new Airfield();
    zzz = xxx;
    
    Airfield yyy = new Airfield();
    zzz = yyy;
    Класс xxx будет сборщиком собран из-за смены ссылки zzz на другой экземляр?

  8. #8

    Re: Вопросы.

    Цитата Сообщение от podvoxx Посмотреть сообщение
    Ну и отлично. Но на всякий случай уточню.
    Создаем два экземпляра класса Airfield:

    Код:
    Airfield zzz;
    
    Airfield xxx = new Airfield();
    zzz = xxx;
    
    Airfield yyy = new Airfield();
    zzz = yyy;
    Класс xxx будет сборщиком собран из-за смены ссылки zzz на другой экземляр?
    Если это кусок метода, то собраны будут оба после выхода за метод. )
    Если zzz за пределами метода (скажем поле того же класса, где и метод), то явно, что при выходе за метод на на xxx ссылок больше нет, и он будет собран.

  9. #9
    hehehe 111 Аватар для podvoxx
    Регистрация
    25.08.2008
    Адрес
    Барнаул - Питер
    Возраст
    41
    Сообщений
    4,245

    Re: Вопросы.

    Цитата Сообщение от Small_Bee Посмотреть сообщение
    Если это кусок метода, то собраны будут оба после выхода за метод. )
    Если zzz за пределами метода (скажем поле того же класса, где и метод), то явно, что при выходе за метод на на xxx ссылок больше нет, и он будет собран.
    Спасибо, ясно. Надеюсь сиквел на с++ не будут переделывать, смотрел тут старые скрипты для армы, не хочу такой гибкости)) Хочу ставить точку и выбирать нужную строчку

  10. #10
    гдетатамзагаризонтам... Аватар для Zed4ever
    Регистрация
    29.08.2006
    Адрес
    НН
    Возраст
    44
    Сообщений
    227

    Re: Вопросы.

    Просьба тем, у кого под рукой есть скрипт с выводом повреждений в консоль:
    проверьте, плз, корректно ли выводится название оружия нанёсшего урон на Е4 (или Е3).
    Поясню - сейчас командер от Тимофея выводит в лог чем было нанесено повреждение.
    По Е4 имеем следующу картину - если 1-е попадание было из пулемёта, то все остальные пишут тоже как "попадание из пулемёта", если 1-е попадание из пушки, то всё какбудто бы из пушки повредилось.
    З.Ы. Исключение - ранения персонажей. У них, похоже, пишется инверсия от 1-го попадания. Е4 (Е3) выбран потому, как у него есть вооружение с разным названием.
    З.Ы.Ы. Либо, вложите скрипт - я сам проверю.
    i7 2600К, 16Gb, GTX660Ti, SSD, Win7-64 full ака SDPG_Zed4ever

  11. #11
    Инструктор Аватар для eekz
    Регистрация
    03.03.2012
    Адрес
    Минск
    Сообщений
    1,809
    Записей в дневнике
    12

    Re: Вопросы.

    Из-за чего могут пропадать все декали мелкого калибра после достижения определенного их количества? (подробности по ссылке у меня в подписи)
    Потенциал развития в БзБ заложенный ребятами и мной в самом начале на самом деле огромен....
    Олег Медокс

  12. #12
    Старший Офицер Форума
    Регистрация
    15.02.2002
    Адрес
    Moscow
    Возраст
    46
    Сообщений
    6,905
    Images
    51

    Re: Вопросы.

    Цитата Сообщение от eekz Посмотреть сообщение
    Из-за чего могут пропадать все декали мелкого калибра после достижения определенного их количества? (подробности по ссылке у меня в подписи)
    бага какая-то, не отловленная . Только эта тема скорее про редактор и скрипты
    Don't happy, be worry

  13. #13
    Инструктор Аватар для eekz
    Регистрация
    03.03.2012
    Адрес
    Минск
    Сообщений
    1,809
    Записей в дневнике
    12

    Re: Вопросы.

    Цитата Сообщение от naryv Посмотреть сообщение
    бага какая-то, не отловленная .
    Будем копать
    Потенциал развития в БзБ заложенный ребятами и мной в самом начале на самом деле огромен....
    Олег Медокс

  14. #14
    hehehe 111 Аватар для podvoxx
    Регистрация
    25.08.2008
    Адрес
    Барнаул - Питер
    Возраст
    41
    Сообщений
    4,245

    Re: Вопросы.

    Вопрос по респаунам BirthPlace появился.

    Есть набор эскадрилий, у каждой на вооружении стоят определенные самолеты. Задача - изменение плейнсета на аэродроме в зависимости от находящихся на нем эскадрилий.

    При загрузке миссии читается файл сохранения, откуда берется список эскадрилий и аэродромы на которых они базируются, далее в цикле каждая авиачасть добавляется на свой аэродром. При этом удаляется старый респаун с таким же именем и создается новый. Но тут я не учел время на загрузку подмиссии с респауном(а он создается как подмиссия). Получается что удаления не происходит, т.к. респаун еще не был загружен. В результате загружаются все подмиссии с респаунами и для каждой эскадрилии создается свой отдельный с таким же именем(кол-во респаунов равно кол-во добавленных эскадрилий, т.к. неактуальные не удаляются). При получении массива выглядит это примерно так:

    Код:
    [22:23:16]	Server to [podvoxx]: [TEST]: BirthPlace [Dieppe_Saint_Aubin]
    [22:23:16]	Server to [podvoxx]: [TEST]: at [Aircraft.SpitfireMkIIa]
    [22:23:16]	Server to [podvoxx]: [TEST]: at [Aircraft.SpitfireMkI]
    [22:23:16]	Server to [podvoxx]: [TEST]: at [Aircraft.SpitfireMkIa]
    [22:23:16]	Server to [podvoxx]: [TEST]: at [Aircraft.SpitfireMkIa_100oct]
    [22:23:16]	Server to [podvoxx]: [TEST]: BirthPlace [Grandvilliers]
    [22:23:16]	Server to [podvoxx]: [TEST]: at [Aircraft.HurricaneMkI_100oct]
    [22:23:16]	Server to [podvoxx]: [TEST]: at [Aircraft.HurricaneMkI_dH5-20]
    [22:23:16]	Server to [podvoxx]: [TEST]: at [Aircraft.HurricaneMkI]
    [22:23:16]	Server to [podvoxx]: [TEST]: BirthPlace [Deauville_Saint_Gatien]
    [22:23:16]	Server to [podvoxx]: [TEST]: at [Aircraft.HurricaneMkI_100oct]
    [22:23:16]	Server to [podvoxx]: [TEST]: at [Aircraft.HurricaneMkI_dH5-20]
    [22:23:16]	Server to [podvoxx]: [TEST]: at [Aircraft.HurricaneMkI]
    [22:23:16]	Server to [podvoxx]: [TEST]: BirthPlace [Montdidier]
    [22:23:16]	Server to [podvoxx]: [TEST]: at [Aircraft.BlenheimMkIV]
    [22:23:16]	Server to [podvoxx]: [TEST]: at [Aircraft.DH82A]
    [22:23:16]	Server to [podvoxx]: [TEST]: at [Aircraft.BR-20M]
    [22:23:16]	Server to [podvoxx]: [TEST]: BirthPlace [Dieppe_Saint_Aubin]
    [22:23:16]	Server to [podvoxx]: [TEST]: at [Aircraft.SpitfireMkIIa]
    [22:23:16]	Server to [podvoxx]: [TEST]: at [Aircraft.SpitfireMkI]
    [22:23:16]	Server to [podvoxx]: [TEST]: at [Aircraft.SpitfireMkIa]
    [22:23:16]	Server to [podvoxx]: [TEST]: at [Aircraft.SpitfireMkIa_100oct]
    [22:23:16]	Server to [podvoxx]: [TEST]: at [Aircraft.BlenheimMkIV]
    [22:23:16]	Server to [podvoxx]: [TEST]: at [Aircraft.DH82A]
    [22:23:16]	Server to [podvoxx]: [TEST]: at [Aircraft.BR-20M]
    Создано два респауна Dieppe_Saint_Aubin с одинаковыми координатами, но активный тот, что создан первым(где доступны только спиты). Это не дает быстро менять доступные самолеты на аэродромах, нужно вводить какую-то задержку для загрузки подмиссии с респауном.

    Вопрос такой. Возможно ли создание BirthPlace не используя подмиссию(чтобы сразу получить над ним контроль, не дожидаясь загрузки подмиссии)?
    Возможно ли модифицировать уже созданный BirthPlace(поменять настройки, изменить список самолетов). Нашел пока только методы для чтения параметров BirthPlace.

    Если нельзя ни первое ни второе хотелось бы, чтобы в будущем такая возможность была(подмиссии неудобны для динамичных респаунов). Также пригодилось бы событие на создание BirthPlace.
    Ну и может какой-нибудь совет кто-то даст, как в таком случае решить проблему корректной замены респауна на новый с удалением старого(так как именно он выбирается при клике на карте).
    Я пока придумал вариант с периодическим(например 5-10 сек) сканированием массива GamePlay.gpBirthPlaces() и при наличии в нем BirthPlace с одинаковыми именами удалять имеющие меньший индекс, но это будут постоянные проверки в OnTickGame()
    Крайний раз редактировалось podvoxx; 04.12.2012 в 09:22.

  15. #15
    Старший Офицер Форума
    Регистрация
    15.02.2002
    Адрес
    Moscow
    Возраст
    46
    Сообщений
    6,905
    Images
    51

    Re: Вопросы.

    Цитата Сообщение от podvoxx Посмотреть сообщение
    Вопрос по респаунам BirthPlace появился.

    Есть набор эскадрилий, у каждой на вооружении стоят определенные самолеты. Задача - изменение плейнсета на аэродроме в зависимости от находящихся на нем эскадрилий.

    При загрузке миссии читается файл сохранения, откуда берется список эскадрилий и аэродромы на которых они базируются, далее в цикле каждая авиачасть добавляется на свой аэродром. При этом удаляется старый респаун с таким же именем и создается новый. Но тут я не учел время на загрузку подмиссии с респауном(а он создается как подмиссия). Получается что удаления не происходит, т.к. респаун еще не был загружен. В результате загружаются все подмиссии с респаунами и для каждой эскадрилии создается свой отдельный с таким же именем(кол-во респаунов равно кол-во добавленных эскадрилий, т.к. неактуальные не удаляются). При получении массива выглядит это примерно так:

    Скрытый текст:
    Код:
    [22:23:16]	Server to [podvoxx]: [TEST]: BirthPlace [Dieppe_Saint_Aubin]
    [22:23:16]	Server to [podvoxx]: [TEST]: at [Aircraft.SpitfireMkIIa]
    [22:23:16]	Server to [podvoxx]: [TEST]: at [Aircraft.SpitfireMkI]
    [22:23:16]	Server to [podvoxx]: [TEST]: at [Aircraft.SpitfireMkIa]
    [22:23:16]	Server to [podvoxx]: [TEST]: at [Aircraft.SpitfireMkIa_100oct]
    [22:23:16]	Server to [podvoxx]: [TEST]: BirthPlace [Grandvilliers]
    [22:23:16]	Server to [podvoxx]: [TEST]: at [Aircraft.HurricaneMkI_100oct]
    [22:23:16]	Server to [podvoxx]: [TEST]: at [Aircraft.HurricaneMkI_dH5-20]
    [22:23:16]	Server to [podvoxx]: [TEST]: at [Aircraft.HurricaneMkI]
    [22:23:16]	Server to [podvoxx]: [TEST]: BirthPlace [Deauville_Saint_Gatien]
    [22:23:16]	Server to [podvoxx]: [TEST]: at [Aircraft.HurricaneMkI_100oct]
    [22:23:16]	Server to [podvoxx]: [TEST]: at [Aircraft.HurricaneMkI_dH5-20]
    [22:23:16]	Server to [podvoxx]: [TEST]: at [Aircraft.HurricaneMkI]
    [22:23:16]	Server to [podvoxx]: [TEST]: BirthPlace [Montdidier]
    [22:23:16]	Server to [podvoxx]: [TEST]: at [Aircraft.BlenheimMkIV]
    [22:23:16]	Server to [podvoxx]: [TEST]: at [Aircraft.DH82A]
    [22:23:16]	Server to [podvoxx]: [TEST]: at [Aircraft.BR-20M]
    [22:23:16]	Server to [podvoxx]: [TEST]: BirthPlace [Dieppe_Saint_Aubin]
    [22:23:16]	Server to [podvoxx]: [TEST]: at [Aircraft.SpitfireMkIIa]
    [22:23:16]	Server to [podvoxx]: [TEST]: at [Aircraft.SpitfireMkI]
    [22:23:16]	Server to [podvoxx]: [TEST]: at [Aircraft.SpitfireMkIa]
    [22:23:16]	Server to [podvoxx]: [TEST]: at [Aircraft.SpitfireMkIa_100oct]
    [22:23:16]	Server to [podvoxx]: [TEST]: at [Aircraft.BlenheimMkIV]
    [22:23:16]	Server to [podvoxx]: [TEST]: at [Aircraft.DH82A]
    [22:23:16]	Server to [podvoxx]: [TEST]: at [Aircraft.BR-20M]


    Создано два респауна Dieppe_Saint_Aubin с одинаковыми координатами, но активный тот, что создан первым(где доступны только спиты). Это не дает быстро менять доступные самолеты на аэродромах, нужно вводить какую-то задержку для загрузки подмиссии с респауном.
    я бы просто в миссию с BirthPlace-ом из списка все доступные самолёты добавлял и эту миссию грузил - получится на одном аэродроме - один спаун, с доступными самолётами, не надо никаких таймеров и т.п. что-то типа такого -
    Код:
    ISectionFile f = GamePlay.gpCreateSectionFile();
            string sect;
            string key;
            string value;
            for (int i = 0; i < список аэродромов.length; i++)
            {            
                sect = "BirthPlace";
                key = список аэродромов[i].name;
                string Country = ".";
                if (army == 1) Country = "gb";  // страну выбираем
                if (army == 2) Country = "de";
                value = " " + army.ToString() + " " + (список аэродромов[i].x).ToString() + " " + (список аэродромов[i].y).ToString() + " 0 " + BPMaxPlanesAllowed + " " + BPSpawnParked + " 0 " + Country + " . .";
                f.add(sect, key, value);
    
                sect = "BirthPlace" + список аэродромов[i].name;
                string[] PlaneSet = список нужных самолётов;
                if (PlaneSet.Length > 0)
                    for (int j = 0; j < PlaneSet.Length; j++)
                    {
                        key = PlaneSet[j];
                        value = "";
                        f.add(sect, key, value);
                    }
            }
            GamePlay.gpPostMissionLoad(f);
    а в Вашем варианте, более поздние не доступны скорее не потому-что удаляться не успевают, а стоят в одной точке и при клике на них берётся какой-то верхний из списка. Ну либо надо вокруг аэродрома их расставлять, чтобы не в одной точке были.

    Цитата Сообщение от podvoxx Посмотреть сообщение
    Вопрос такой. Возможно ли создание BirthPlace не используя подмиссию(чтобы сразу получить над ним контроль, не дожидаясь загрузки подмиссии)?
    Возможно ли модифицировать уже созданный BirthPlace(поменять настройки, изменить список самолетов). Нашел пока только методы для чтения параметров BirthPlace.
    нет, создать без миссии или модифицировать нельзя, только дестроить и читать св-ва.

    Цитата Сообщение от podvoxx Посмотреть сообщение
    Я пока придумал вариант с периодическим(например 5-10 сек) сканированием массива GamePlay.gpBirthPlaces() и при наличии в нем BirthPlace с одинаковыми именами удалять имеющие меньший индекс, но это будут постоянные проверки в OnTickGame()
    ну вот как выше написал, например, по событию когда надо сменить спаун - удаляете старый и генерите миссию в которой в одном спауне все нужные самолёты прописаны(у меня правда для списка аэродромов написано но для одного то-же самое будет, без верхнего цикла), мне кажется это оптимальный вариант.
    Don't happy, be worry

  16. #16
    hehehe 111 Аватар для podvoxx
    Регистрация
    25.08.2008
    Адрес
    Барнаул - Питер
    Возраст
    41
    Сообщений
    4,245

    Re: Вопросы.

    Цитата Сообщение от naryv Посмотреть сообщение
    я бы просто в миссию с BirthPlace-ом из списка все доступные самолёты добавлял и эту миссию грузил - получится на одном аэродроме - один спаун, с доступными самолётами, не надо никаких таймеров и т.п. что-то типа такого -
    Я так и сделал, но так как респауны постоянно меняются, а время загрузки подмиссии выходит за пределы методов, то только что созданные респауны не обрабатываются(не загрузились). Еще попробую сделать что-то вроде очереди событий типа удалить/создать, которые будут добавляться в список и обрабатываться по таймеру последовательно и учитывать время на загрузку подмиссии. А лучше наверное в событии OnMissionLoaded поставить на проверку - если есть уже такой респаун просто заменять его

  17. #17
    Старший Офицер Форума
    Регистрация
    15.02.2002
    Адрес
    Moscow
    Возраст
    46
    Сообщений
    6,905
    Images
    51

    Re: Вопросы.

    Цитата Сообщение от podvoxx Посмотреть сообщение
    А лучше наверное в событии OnMissionLoaded поставить на проверку - если есть уже такой респаун просто заменять его
    да, так можно без таймеров обойтись - если миссия загрузилась - тогда можно со спауном работать, не дёргаясь постоянно в тиках.
    Цитата Сообщение от podvoxx Посмотреть сообщение
    Я так и сделал, но так как респауны постоянно меняются, а время загрузки подмиссии выходит за пределы методов, то только что созданные респауны не обрабатываются(не загрузились). Еще попробую сделать что-то вроде очереди событий типа удалить/создать, которые будут добавляться в список и обрабатываться по таймеру последовательно и учитывать время на загрузку подмиссии.
    тут я не очень понял, спауны меняются многократно в пределах секунд?
    Don't happy, be worry

  18. #18
    hehehe 111 Аватар для podvoxx
    Регистрация
    25.08.2008
    Адрес
    Барнаул - Питер
    Возраст
    41
    Сообщений
    4,245

    Re: Вопросы.

    Цитата Сообщение от naryv Посмотреть сообщение
    тут я не очень понял, спауны меняются многократно в пределах секунд?
    Да, при загрузке миссии эскадрилии добавляются на аэродром и "обновляют" респауны за очень маленький промежуток времени(по логу - в пределах одной секунды, в следующую секунду уже идет сообщение о загрузке подмиссий, но к этому времени все эскадрилии распределены). Такая же ситуация может случится при одновременном перебазировании

  19. #19
    Старший Офицер Форума
    Регистрация
    15.02.2002
    Адрес
    Moscow
    Возраст
    46
    Сообщений
    6,905
    Images
    51

    Re: Вопросы.

    Цитата Сообщение от podvoxx Посмотреть сообщение
    Да, при загрузке миссии эскадрилии добавляются на аэродром и "обновляют" респауны за очень маленький промежуток времени(по логу - в пределах одной секунды, в следующую секунду уже идет сообщение о загрузке подмиссий, но к этому времени все эскадрилии распределены). Такая же ситуация может случится при одновременном перебазировании
    всё равно не очень понял - если в течении короткого времени спауны много раз обновляются - это, наверное, не очень хорошо с точки зрения построения логики миссии, а если один раз обновляется - тогда секундная задержка не влияет ни на что , нет?
    Don't happy, be worry

  20. #20
    hehehe 111 Аватар для podvoxx
    Регистрация
    25.08.2008
    Адрес
    Барнаул - Питер
    Возраст
    41
    Сообщений
    4,245

    Re: Вопросы.

    Цитата Сообщение от naryv Посмотреть сообщение
    всё равно не очень понял - если в течении короткого времени спауны много раз обновляются - это, наверное, не очень хорошо с точки зрения построения логики миссии, а если один раз обновляется - тогда секундная задержка не влияет ни на что , нет?
    Они обновляются, только когда добавляются эскадрилии на аэродром, что-то вроде Airfield.Add(Sqadron Name). Добавление происходит при загрузке миссии, при отступлении с потерянной территории, при перебазировании. В методе Add происходит сначала удаление старого респауна с тем же именем(если он есть) и загрузка подмисии с новым(в котором изменяется только список доступных самолетов). Загрузка подмиссии происходит независимо от выполнения метода Add в том смысле, что добавлено уже несколько эскадрилий, а респаун еще не один не загрузился. Timeout я не могу в коде dll поставить, да и неправильно это будет так как неизвестно сколько миссия грузится. Т.е. проблема в том, что нет метода который бы создавал респаун и только после него код исполнялся дальше, сейчас одно с другим не связано. Было бы проще при возможности изменять список самолетов/вооружения уже созданных респаунов - тогда их можно было бы создать "пустыми" заранее и управлять уже только параметрами.
    OnMissionLoaded позволит сделать "пошаговую" загрузку - даже если код по созданию респаунов уже выполнен здесь можно проверить результат и убрать ненужные респауны.

  21. #21
    hehehe 111 Аватар для podvoxx
    Регистрация
    25.08.2008
    Адрес
    Барнаул - Питер
    Возраст
    41
    Сообщений
    4,245

    Re: Вопросы.

    Хотел сделать блокировку аэродромов по результату падения бомб на взлетку, однако нашел только такие типы поверхности:

    Код:
    LandTypes gpLandType(double x, double y);
    
    public enum LandTypes
    	{
    		NONE = 0,
    		CITY = 16,
    		ROAD = 32,
    		RAIL = 64,
    		HIGHWAY = 128,
    		WATER = 28,
    		OBJECTS_MASK = 3,
    		ROAD_MASK = 224
    	}
    Есть способ определить падение бомбы именно на ВПП?

    И по приведенному выше хотелось бы уточнить как этим пользоваться. Номер означает цвет?
    Непонятно значение NONE, OBJECTS_MASK и ROAD_MASK.

    И что подразумевается под CITY? Это только города или деревни тоже? Если так можно определить падение бомбы на город, то отлично - можно расширить триггеры(сейчас я зону бомбежки по ним задаю) до максимального радиуса, а в зачет пойдут только бомбы упавшие и вызывающие CITY. Если это маска, то она есть в ресурсах игры?(возможность их посмотреть у меня есть)

  22. #22
    Старший Офицер Форума
    Регистрация
    15.02.2002
    Адрес
    Moscow
    Возраст
    46
    Сообщений
    6,905
    Images
    51

    Re: Вопросы.

    Цитата Сообщение от podvoxx Посмотреть сообщение
    Хотел сделать блокировку аэродромов по результату падения бомб на взлетку, однако нашел только такие типы поверхности:

    Код:
    LandTypes gpLandType(double x, double y);
    
    public enum LandTypes
    	{
    		NONE = 0,
    		CITY = 16,
    		ROAD = 32,
    		RAIL = 64,
    		HIGHWAY = 128,
    		WATER = 28,
    		OBJECTS_MASK = 3,
    		ROAD_MASK = 224
    	}
    Есть способ определить падение бомбы именно на ВПП?
    ВПП - это ROAD в границах аэродрома.

    Цитата Сообщение от podvoxx Посмотреть сообщение
    И по приведенному выше хотелось бы уточнить как этим пользоваться. Номер означает цвет?
    номер - это значение элемента в перечислении, можно использовать как номер, так и текстовое значение.

    Цитата Сообщение от podvoxx Посмотреть сообщение
    Непонятно значение NONE, OBJECTS_MASK и ROAD_MASK. И что подразумевается под CITY? Это только города или деревни тоже? Если так можно определить падение бомбы на город, то отлично - можно расширить триггеры(сейчас я зону бомбежки по ним задаю) до максимального радиуса, а в зачет пойдут только бомбы упавшие и вызывающие CITY. Если это маска, то она есть в ресурсах игры?(возможность их посмотреть у меня есть)
    ROAD_MASK - это одно из ROAD,RAIL,HIGHWAY можно с результатом с помощью "|","&" и т.д. сравнивать. А вот с CITY сейчас посмотрел - плохо, он не работает корректно, корректно работают дороги, вода. OBJECTS_MASK - это внутренний тип используеся в редакторе только.
    Don't happy, be worry

  23. #23
    hehehe 111 Аватар для podvoxx
    Регистрация
    25.08.2008
    Адрес
    Барнаул - Питер
    Возраст
    41
    Сообщений
    4,245

    Re: Вопросы.

    Цитата Сообщение от naryv Посмотреть сообщение
    ВПП - это ROAD в границах аэродрома.
    Спасибо. Т.е. именно ВПП без рулежек и полян?

  24. #24
    Старший Офицер Форума
    Регистрация
    15.02.2002
    Адрес
    Moscow
    Возраст
    46
    Сообщений
    6,905
    Images
    51

    Re: Вопросы.

    Цитата Сообщение от podvoxx Посмотреть сообщение
    Спасибо. Т.е. именно ВПП без рулежек и полян?
    рулёжки надо смотреть, скорее всего тоже будут road, просто поляна - none. Если надо прямо совсем полосу - можно из св-в аэропорта взять направление, длину и ширину полосы и посчитать попали ли в прямоугольник.
    Don't happy, be worry

  25. #25
    Пилот Аватар для LePage
    Регистрация
    17.07.2009
    Адрес
    Simbirsk
    Возраст
    56
    Сообщений
    511

    Re: Вопросы.

    Парни! Простите за нубский вопрос. AiAircraft и классы из part не позволяют определить какую систему измерения использует панель приборов данного крафта, не хотелось бы переопределять классы (память), по армии же будет не слишком универсально (что там серверострители удумают?), ни у кого идей нет на этот счет?
    a` la guerre comme a` la guerre
    profile: Core i5-3570K 3.4GHz, ASUS GTX660 2Gb GDDR5, ASUS GT520 Silent 1Gb, LCD 1600x1200x32 IPS, LCD 1600x1200x32 MVA, LCD 800х600 TFT,
    RAM DDR3 32GB, OCZ Vertex 4 128 Gb, OCZ Vertex 450 128 Gb, 4xHDD WD 1 Tb FAEX, RAID10, WD 2 Tb FAEX, Win 7 x64, БП FSP 600Вт
    lepage.sytes.net:21000

Страница 28 из 30 ПерваяПервая ... 1824252627282930 КрайняяКрайняя

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •