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

Показано с 1 по 25 из 789

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

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

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

    Re: Вопросы.

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

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

    Re: Вопросы.

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

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

    Re: Вопросы.

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

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

    Re: Вопросы.

    Цитата Сообщение от naryv Посмотреть сообщение
    Ага, так вроде бы понятнее, Airfield.Add может приключаться в любой, заранее не известный момент времени и для каждого аэродрома их может быть любое количество, так? Если так и у аэродрома есть список эскадрилий на нём, я бы в конце метода Add вызвал бы функцию, которая удаляла бы спаун с именем аэродрома(если такой уже есть) и генерировала миссию со спауном в который записывались бы все доступные эскадрильи/самолёты и грузила бы её, тогда после крайнего Add-а для аэродрома всегда на нём будет актуальный спаун. Ну а если списка нет - тогда сделать его для аэродрома, и в Add добавлять сначала эскадрилью в этот список, а потом запускать рефреш спауна для этого аэродрома.
    Примерно так я и сделал(или даже точно также, список и рефреш есть), но проблема появляется из-за отсутствия времени на загрузку подмиссии. Либо нужно метод Add делать индивидуальный для загрузки сохранения(чтобы сначала собирался список самолетов и потом только один раз создавался респаун). Такой же метод нужно использовать при отступлении на ближайшие аэродромы - если сейчас я последовательно перебрасываю методом Add более двух эскадрилий - подмиссия тоже не успеет загрузиться(нужно будет сначала сформировать общий список и только потом менять респаун).

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

    Re: Вопросы.

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

Ваши права

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