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

Страница 19 из 32 ПерваяПервая ... 915161718192021222329 ... КрайняяКрайняя
Показано с 451 по 475 из 789

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

  1. #451
    3GIAP.ru Аватар для -atas-
    Регистрация
    26.12.2001
    Адрес
    Москва
    Возраст
    53
    Сообщений
    2,992
    Записей в дневнике
    1

    Re: Вопросы.

    Цитата Сообщение от podvoxx Посмотреть сообщение
    GamePlay.gpPlayer() - это кто?
    Игрок сингла и хост сервера из GUI (на деди возможно сам Сервер).

    Цитата Сообщение от podvoxx Посмотреть сообщение
    Для мультиплеера:
    GamePlay.gpRemotePlayers() - массив игроков на сервере(он состоит из GamePlay.gpPlayer() ?)
    Не думаю.

    Цитата Сообщение от podvoxx Посмотреть сообщение
    И почему определение игрока отличается для сингла и выделенного?
    Чтобы юзерам было неудобно программировать, было меньше миссий, меньше продаж. Саботаж, в общем Все авторы, даже такие профессионалы как Kodiak с этим мучаются часами.

    --- Добавлено ---

    Цитата Сообщение от podvoxx Посмотреть сообщение
    3.
    Есть примеры с использованием Stopwatch(), он тоже подходит для отсчета времени? Выглядит очень удобным
    А компрессия времени в игре при этом работает?

    onTickGame при включении компрессии тоже дает небольшие сбои как мне показалось, но наверное это надежнее?
    ...зелёные горят.
    ----------------------

    i7-860@3.8, 4GB, ati4890-2GB, 1680x1050, Win7-64.

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

    Re: Вопросы.

    Цитата Сообщение от -atas- Посмотреть сообщение
    А компрессия времени в игре при этом работает?
    onTickGame при включении компрессии тоже дает небольшие сбои как мне показалось, но наверное это надежнее?
    Это замедление/ускорение времени? Делаю для онлайн миссии, поэтому все нормально должно быть. У Snafu весь учет времени практически построен. И если верить мсдн, то этот метод используется как раз для точного измерения производительности.

    --- Добавлено ---

    Цитата Сообщение от -atas- Посмотреть сообщение
    Чтобы юзерам было неудобно программировать, было меньше миссий, меньше продаж. Саботаж, в общем Все авторы, даже такие профессионалы как Kodiak с этим мучаются часами.
    А простые смертные как я днями и неделями

  3. #453

    Re: Вопросы.

    Для операций с временными интервалами - TimeSpan, с датой и временем - DateTime.

  4. #454

    Re: Вопросы.

    Цитата Сообщение от -atas- Посмотреть сообщение
    Чтобы юзерам было неудобно программировать, было меньше миссий, меньше продаж. Саботаж, в общем Все авторы, даже такие профессионалы как Kodiak с этим мучаются часами.[COLOR="Silver"]
    Определение игроков не отличается ни для сервера, ни для сингла. И там и там это - AiPlayer.
    GamePlay.gpPlayer() - мы всегда получаем хост. Для сингла он будет совпадать с собственно игроком. gpRemotePlayers() получает список всех игроков, подключившихся удаленно. Нет тут ни проблемы, ни противоречия вообще.
    Если хотим сделать универсальный скрипт, проверяем сразу gpRemotePlayers() + gpPlayer(). Не вижу зла, в общем.

    В конце концов можно проверить, что запущено - сингл, сервер или дедик.

    Для мультиплеера:
    GamePlay.gpRemotePlayers() - массив игроков на сервере(он состоит из GamePlay.gpPlayer() ?)
    Проблема с определениями. GamePlay.gpPlayer() - это метод, возвращающий объект AiPlayer(). GamePlay.gpRemotePlayers() соответственно возвращает набор таких AiPlayer.

    Универсальный совет - при получении любого массива методами из GamePlay и т.д., перед использованием всегда проверяем его на null.

    Попробую сделать определение языка для каждого игрока из массива и тправку сообщений в соответствии с ним, но я не очень хорошо понимаю отличия выделенного/сингла от мультиплеера. Хотел бы уточнить, чтобы правильно понимать что происходит с этими плеерами, так как они везде используются.
    Не изобретай велосипед.

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

    Re: Вопросы.

    Спасибо за информацию, проблемы нет, только от незнания и ее отсутствия Про плееры примерно так и представлял.

    Цитата Сообщение от Small_Bee Посмотреть сообщение
    Не изобретай велосипед.
    Там недолго править, в голове уже все исправил, осталось в коде )) Просто хочется попроще и без дополнений, чтобы миссии можно было запустить используя только ее файлы.

  6. #456
    3GIAP.ru Аватар для -atas-
    Регистрация
    26.12.2001
    Адрес
    Москва
    Возраст
    53
    Сообщений
    2,992
    Записей в дневнике
    1

    Re: Вопросы.

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

    В конце концов можно проверить, что запущено - сингл, сервер или дедик.
    Я о том, что с точки зрения usability и дружелюбности к создателю миссий эти проверки лучше бы делались самим движком, чтобы у создателя голова не болела.

    Делать удобно разработчику или делать удобно пользователю - это 2 разные парадигмы. Например меню мультика сделано полностью взглядом через глаза программиста, а не пользователя.

    Рабочему ВАЗа удобно пользоваться Жигулями. Остальным все же удобнее хотя бы Фиат. Yahoo или Altavista смотрели на свои страницы поиска глазами акционеров, менеджеров, программистов и размещали там рекламу, новости и т.д. Где они теперь? Гугл смотрел на страницу поиска глазами юзера и дал ему быстрый ответ на его вопрос "Как найти ...?".

    Юзер, заходящий в мультик с вопросом "Хочу сервер, чтобы полетать!" найдет ответ на него только с 3го тыка, потому что программисту так было быстрее и просто лениво думать заранее, поставив себя на место пользователя и посмотреть его глазами. В Арме почему-то такой проблемы нет, список серверов находится сразу. Шкода лучше жигулей. Поэтому Российские компании обычно и неконкурентоспособны.

    Также с созданием миссий. Тенденция, к сожалению. Мы с Kodiak тоже потратили немало времени на эту проблему http://forum.1cpublishing.eu/showthread.php?t=26623 Кодиак что-то в C# понимает в отличии от меня. podvoxx сталкивается абсолютно с теми же трудностями. Это уже проблема для продукта, "и так сойдет" может не прокатить на мировом рынке.

    Также с хотфиксами. Нет звука в онлайне? Подождут месяца 3, т.к. девелоперу неудобно делать хотфикс, а удобнее сразу новый движок. Нет возможности летать из-за вылета лончера? Не важно, хотфикса не будет, ждите еще 3 месяца. Если компания ориентирована не на клиента, а на себя любимых/своих акционеров, она может исправить какие-то баги, но не может дать клиенту то, что он хочет как целостный продукт.
    Крайний раз редактировалось -atas-; 11.01.2012 в 19:47.
    ...зелёные горят.
    ----------------------

    i7-860@3.8, 4GB, ati4890-2GB, 1680x1050, Win7-64.

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

    Re: Вопросы.

    Цитата Сообщение от -atas- Посмотреть сообщение
    Я о том, что с точки зрения usability и дружелюбности к создателю миссий эти проверки лучше бы делались самим движком, чтобы у создателя голова не болела.
    Поддерживаю тебя полностью, голова даже трещит иногда)) Но с другой стороны нам дали мощнейший инструмент, довольно сложный правда.

  8. #458

    Re: Вопросы.

    Цитата Сообщение от -atas- Посмотреть сообщение
    Я о том, что с точки зрения usability и дружелюбности к создателю миссий эти проверки лучше бы делались самим движком, чтобы у создателя голова не болела.

    Делать удобно разработчику или делать удобно пользователю - это 2 разные парадигмы. Например меню мультика сделано полностью взглядом через глаза программиста, а не пользователя.

    Рабочему ВАЗа удобно пользоваться Жигулями. Остальным все же удобнее хотя бы Фиат. Yahoo или Altavista смотрели на свои страницы поиска глазами акционеров, менеджеров, программистов и размещали там рекламу, новости и т.д. Где они теперь? Гугл смотрел на страницу поиска глазами юзера и дал ему быстрый ответ на его вопрос "Как найти ...?".

    Юзер, заходящий в мультик с вопросом "Хочу сервер, чтобы полетать!" найдет ответ на него только с 3го тыка, потому что программисту так было быстрее и просто лениво думать заранее, поставив себя на место пользователя и посмотреть его глазами. В Арме почему-то такой проблемы нет, список серверов находится сразу. Шкода лучше жигулей. Поэтому Российские компании обычно и неконкурентоспособны.

    Также с созданием миссий. Тенденция, к сожалению. Мы с Kodiak тоже потратили немало времени на эту проблему http://forum.1cpublishing.eu/showthread.php?t=26623 Кодиак что-то в C# понимает в отличии от меня. podvoxx сталкивается абсолютно с теми же трудностями. Это уже проблема для продукта, "и так сойдет" может не прокатить на мировом рынке.

    Также с хотфиксами. Нет звука в онлайне? Подождут месяца 3, т.к. девелоперу неудобно делать хотфикс, а удобнее сразу новый движок. Нет возможности летать из-за вылета лончера? Не важно, хотфикса не будет, ждите еще 3 месяца. Если компания ориентирована не на клиента, а на себя любимых/своих акционеров, она может исправить какие-то баги, но не может дать клиенту то, что он хочет как целостный продукт.
    Я так и не понял, в чем именно проблема с этими игроками. Как хотелось бы это реализовать, что бы было понятно?

    Хотфиксы - один, с точки зрения юзера маленький баг, может потребовать огромного труда и вложений. Понятно, что со стороны этого не видно.
    По поводу гугла, у меня несколько другая информация о причинах его успеха, ну да это оффтоп.
    Юзер это одно - создатель миссий - совсем разный уровень "пользователей". Поэтому. Текущий редактор практически ничем не отличается от старого, так что для миссий на уровне старого ила вообще никакими навыками обладать не надо, плюс он привычен уже.
    Для более сложных сценариев - в руках мощный инструмент, но что бы его применить, да, необходим некоторый багаж знаний. И тут разработчик и "пользователь" начинают говорить на одном языке. Если владеют, конечно. А как иначе? Соседи сделали мега редактор, и что? Подозреваю, что создатели миссий не используют и 10-й доли его возможностей, а труда туда вложено дай боже. Теперь они сделали внешние интерфейсы без всяких иконок и GUI - народ духом воспрянул. Да, для того что бы их юзать, тоже надо обладать определенными навыками. И никакого "юзерфриндли" там нет и не надо. Или надо было сделать так же - что бы когда дали скрипты, все от счастья заплясали? )))

    Для полного счастья мне не хватает только учета всех статиков и сетевых дополнений по аналогии с оффом. С остальным - проблем нет. У кого они есть - это не проблема ни игры, ни самого C#. За баги сейчас не говорим ).

    Интерфейс игровой - это совсем другой вопрос. Я бы тоже сказал, что он неудобный, если бы не увидел интерфейс новых "Героев" )))

  9. #459
    3GIAP.ru Аватар для -atas-
    Регистрация
    26.12.2001
    Адрес
    Москва
    Возраст
    53
    Сообщений
    2,992
    Записей в дневнике
    1

    Re: Вопросы.

    Цитата Сообщение от Small_Bee Посмотреть сообщение
    Я так и не понял, в чем именно проблема с этими игроками. Как хотелось бы это реализовать, что бы было понятно?
    Например, чтобы скрипт, который работает в оффлайне, или на хостед сервере, работал на выделенном. Если у меня нет внешнего IP я не могу выделенный сервер запустить, как мне миссии тестировать? Запускаю в лобби, они работают, запускаю на Репке, они не работают. Не порядок. Много таких моментов, где подходы не унифицированы. Например, танки можно как группу запустить, а корабли нельзя и т.д. и т.п. Унификация сильно облегчает обучение юзера, делающего миссии.

    Цитата Сообщение от Small_Bee Посмотреть сообщение
    Хотфиксы - один, с точки зрения юзера маленький баг, может потребовать огромного труда и вложений. Понятно, что со стороны этого не видно.
    Понятно, что это вопрос приоритетов (удобство пользователя vs. ресурсы команды, нервы, бессонные ночи, ругань с издателем, конфликты с начальством), бесплатного ничего не бывает. Кто выбирает правильные приоритеты, добивается любви пользователей, мировой славы продукта, выдающихся для Российской компании продаж. Кто выбирает неправильные, вызывает критику пользователей, забвение, закрытие проекта.

    Мне вот рассказывали, что бывшие сотрудники на Олега жаловались, мол приносишь ему хорошую работу, а он заставляет переделывать, и так много раз, просто невыносимо. Видимо Олег смотрел не глазами программиста/дизайнера, а глазами юзера, как на западе принято. Иначе бы Ил-2 не был успешен. Другие продукты там продать невозможно. Работал раньше в западной кампании немного с иностранцами. Совсем другой подход, как у братков "пацан сказал, пацан сделал " Ресурсы никого не волнуют, это личная ответственность называется: рви зубами, когтями, не спи ночами, поставь всех на уши, вывернись наизнанку, но сделай на 100%. Сильно отличается от осваивания бюджета строго в рабочее время в отечественной контторе.

    Но это все лирика, сори за оффтоп.
    ...зелёные горят.
    ----------------------

    i7-860@3.8, 4GB, ati4890-2GB, 1680x1050, Win7-64.

  10. #460

    Re: Вопросы.

    Учет статиков и сетевые дополнения это конечно хорошо, но API нет, вообще. Ни красивого объектного API ни безобъектного, вообще никакого. Нормальный API - целый комплекс сервисов, где можно получить список дескрипторов типов самолетов, которые содержат всю мета-информацию о самолете, (вплоть до максимальной скорости в горизонте на разных высотах, скороподъемности, вариантах вооружения), дескипторы эскадрилий (типы используемых самолетов, количество и размеры звеньев, типы стандартных построений и решаемых задач), возможность до старта миссии проложить маршруты наземки, получить информацио о расположении линии фронта и координатах секторов, нормальные человеческие функци CreateGroup() и CreateUnit() чтобы порождать юниты и группы. Всего этого нет. Что же есть? Вместо всего перечисленного у нас ISectionFile, который по хорошему давно пора бы похоронить в свинцовом гробу, убожество, написанное джава-программистом в джава-стиле, работающее наполовину (колонны в поддмиссиях нельзя создать через gpPostMissionLoad(ISectionFile), только предварительно сохранив файл и вызвав gpPostMissionLoad(string)). В общем трешово все внутри с точки зрения коммерческого программиста. Про комментарии, оформление кода, и говорить нечего, в путевой фирме такой код к продакшн-ветке репозитория близко бы не подпустили.

  11. #461

    Re: Вопросы.

    Цитата Сообщение от Octocat Посмотреть сообщение
    Колонны в поддмиссиях нельзя создать через gpPostMissionLoad(ISectionFile), только предварительно сохранив файл и вызвав gpPostMissionLoad(string)
    Гм. А каким образом тогда работает пример с машинками на аэродромах от naryv? Там как раз это дело и используется.

    Не очень представляю создание групп и прочего одним методом. Это ж сколько параметров туда передать? Разве что примитивное что-то вроде домиков и прочего. Моя претензия только к формату файла, ибо большой поклонник XML. ) Да и тоже можно найти оправдание - формат миссии привычен. )
    Хотя конечно можно. И обрубать себе руки, потому что если захочется добавить фичу, то нифига не получится, иначе придется менять интерфейсы (в лучшем случае), а это значит, что старый код (нами же написанный) работать не будет. Либо нарисовать их настолько обобщенными, что будет похоже на.. ISectionFile.

    По поводу скоростей и параметров. Их же можно вроде снять с самолета? Если надо макс. скорость по высотам - я делал небольшой скрипт, где у меня боты летали на всем на всех высотах. Через полтора часа мин. радиус виража я конечно не получил, но информация для генерации маршрутов у меня была в полном объеме.

    За Олега тоже неоднозначный вывод. Что значит переделывать? Я так понимаю, есть конкретное ТЗ - если проект ТЗ соответствует, какие вопросы? Переделывание всегда влечет за собой трату времени, как реального, так и потенциального (время на старую работу тоже ведь потрачено было?), и чревато набором трудно уловимых ошибок. Если нет внятного ТЗ - это уже к руководителю вопросы. Можно конечно применять там модульные решения, с прицелом на расширяемость... Но. Кто знает, будет ли эта вся модульность реально использоваться в условиях отсутствия нормального ТЗ? А время потрачено.. Сделай то, не знаю что и далее по тексту.

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

    В общем завязываем оффтопить, ибо все равно каждый при своем останется, а будет сообща искать выход из создавшегося положения.
    Во кстати, Octocat, есть предложение - нарисовать классы-обертки для вот такого создания юнитов и прочего, как предложил. Это реально будет востребованная фича. Ну или объединить усилия )
    Крайний раз редактировалось Small_Bee; 12.01.2012 в 00:25.

  12. #462

    Re: Вопросы.

    Мне практически этим приходится заниматься большую часть времени, разными обертками и подпорками, вместо полезных фич. А объединять усилия - дело хорошее, я однозначно за.

    Про неправильную работу gpPostMissionLoad(), в этой теме подробно расписал.

    Насчет большого числа параметров, вот хороший пример: Scripting_Commands_ArmA2, функции CreateUnit, CreateVehicle, CreateGroup

  13. #463

    Re: Вопросы.

    Цитата Сообщение от Octocat Посмотреть сообщение
    Мне практически этим приходится заниматься большую часть времени, разными обертками и подпорками, вместо полезных фич. А объединять усилия - дело хорошее, я однозначно за.

    Про неправильную работу gpPostMissionLoad(), в этой теме подробно расписал.

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

    По объединению усилий. Как известно, сейчас доделываю стату и коммандер. По коммандеру есть несколько задач, который можно раздельно писать, по самой библиотеке со статой и расширению ее функционала, ну и много чего есть. )
    По коммандеру кстати я там использовал прием, который раньше не юзал - не помешает взгляд другого программера, ибо подозреваю, что не все идеально.
    А вообще думаю надо обменяться ближайшими и не очень планами.
    Будет хорошо, если обменяемся контактами и как то согласовывать работу начинать.

  14. #464
    3GIAP.ru Аватар для -atas-
    Регистрация
    26.12.2001
    Адрес
    Москва
    Возраст
    53
    Сообщений
    2,992
    Записей в дневнике
    1

    Re: Вопросы.

    Цитата Сообщение от Octocat Посмотреть сообщение
    Про неправильную работу gpPostMissionLoad(), в этой теме подробно расписал.
    Можно в теме про редактор еще продублировать http://www.sukhoi.ru/forum/showthrea...t=68596&page=3

    Планы по объединению усилий радуют, надеюсь Репкам с этого что-то перепадет Спасибо за труды.
    ...зелёные горят.
    ----------------------

    i7-860@3.8, 4GB, ati4890-2GB, 1680x1050, Win7-64.

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

    Re: Вопросы.

    Цитата Сообщение от Octocat Посмотреть сообщение
    Подвох, вот SharpDevelop - думаю неплохой вариант для тебя, раз уж студия не встает. Ставишь, подключаешь игровые либы, как описано здесь [Tutorial] Simple Scripting Lessons - Preparations. Писать и отлаживать код в блокноте - это не вариант.
    Octocat , спасибо, что наставил на путь истинный. Все скачалось-установилось-подключилось за пять минут, интерфейс как в студии, мне понравилась программка О чем я думал полгода не понимаю, может это ide для c++(я с него начал, когда с Армой возился) меня оттолкнули от нефирменных программ Наконец-то кончилась у меня эпоха использования боба как компилятора))

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

    По процессу спауна наземки. Допустим есть группа статиков, расставленных красиво в редакторе, мне нужно эту группу спаунить скриптом в определенных местах на карте, где не будет конфликтов с окружением на земле. Для этого я ставлю всю группу в подходящем месте на карте, беру координаты из файла миссии, затем повторяю процесс сколько нужно. Потом заношу эти координаты группы объектов в массив, случайным образом выбираю оттуда их при создании миссии и создаю в скрипте миссию с заданными координатами и группой объектов. Это нормальное решение? И задния/окопы наверное тоже не будут подгружаться?

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

    Re: Вопросы.

    1.
    Есть ли в редакторы акторы, которые глючат/не работают, точнее список никто не составлял? Вчера из стандартной красной автоколонны черная дыра вылезла, танчик синий при этом удивительным образом пощадил машинку для аэростатов - возможно с лодом дамадж-модели проблемы или с человечком.


    Крайний раз редактировалось podvoxx; 12.01.2012 в 20:36.

  17. #467
    3GIAP.ru Аватар для -atas-
    Регистрация
    26.12.2001
    Адрес
    Москва
    Возраст
    53
    Сообщений
    2,992
    Записей в дневнике
    1

    Re: Вопросы.

    Цитата Сообщение от podvoxx Посмотреть сообщение
    Есть такой вопрос. Встречал в миссиях объект маркер, который использовался для спауна наземки в определенном этим маркером положении. В редакторе где этот маркер находится?

    По процессу спауна наземки. Допустим есть группа статиков, расставленных красиво в редакторе, мне нужно эту группу спаунить скриптом в определенных местах на карте, где не будет конфликтов с окружением на земле. Для этого я ставлю всю группу в подходящем месте на карте, беру координаты из файла миссии, затем повторяю процесс сколько нужно. Потом заношу эти координаты группы объектов в массив, случайным образом выбираю оттуда их при создании миссии и создаю в скрипте миссию с заданными координатами и группой объектов. Это нормальное решение? И задния/окопы наверное тоже не будут подгружаться?
    Это маркер линии фронта. Как на нем спаунить технику - в примерах naryv в моем архиве. У него там хорошая танковая война, которую с небольшими исправлениями можно превратить в проект. Жаль, что он не довел до конца. Banks грозится внедрить ее в свой генератор, но когда это будет...

    --- Добавлено ---

    Цитата Сообщение от podvoxx Посмотреть сообщение
    1.
    Если в редакторы акторы, которые глючат/не работают, точнее список никто не составлял? Вчера из стандартной красной автоколонны черная дыра вылезла, танчик синий при этом удивительным образом пощадил машинку для аэростатов - возможно с лодом дамадж-модели проблемы или с человечком.
    Это в багрепорты, если их кто-то еще читает. У меня была дыра с Pkz 222.
    ...зелёные горят.
    ----------------------

    i7-860@3.8, 4GB, ati4890-2GB, 1680x1050, Win7-64.

  18. #468

    Re: Вопросы.

    У меня при убийстве немецкой транспортной колонны "зенитки" и тягача G.QUAD подвисала игра.

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

    Re: Вопросы.

    1.
    Какой метод вызывается, когда боты(и игрок наверное тоже?) прыгают из самолета?
    Может быть этот?
    Код:
    public virtual void OnAircraftKilled(int missionNumber, string shortName, maddox.game.world.AiAircraft aircraft)
    С actorDead у меня разведчик без экипажа сейчас сообщения отправляет пока самолет падает, а Кондор с 5 км падает долго . Хотелось бы отобрать у экипажа сотовые

    2.
    Можно ли сменить юниту(наземному) изменить армию во время миссии?

    3.
    Цитата Сообщение от -atas- Посмотреть сообщение
    Это маркер линии фронта. Как на нем спаунить технику - в примерах naryv в моем архиве. У него там хорошая танковая война, которую с небольшими исправлениями можно превратить в проект. Жаль, что он не довел до конца. Banks грозится внедрить ее в свой генератор, но когда это будет...
    Т.е. "пустого" объекта-маркера нет? В Арме с маркерами здорово налажено все - цвет, вид, назначение - чего только нет. Я помню с помощью их маршруты автобусные делал в Чернорусии.
    Крайний раз редактировалось podvoxx; 13.01.2012 в 15:08.

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

    Re: Вопросы.

    Есть завод, состоит из объектов "Здание". В эти цеха необходимо поместить "живые" акторы, чтобы определить целые они или нет.
    Пробовали ставить машинки разных типов. Они разъезжаются при загрузке мисии и начинают прятаться и снова пятится при появлении вражеского самолета, причем стены им не помеха
    Что можно поставить вместо машинок? Прожекторы - живые объекты? Радары? Генератор? Можно артиллерию, но я не знаю как отключить ей стрельбу навсегда иначе она изнутри разнесет все цеха. Нужен 100% работающий вариант, так как тестировать и заниматься исследованиями нет больше возможности.

    На картинке видно как грузовички торчат. Хотя бы галку добавили в настройки юнитов "Стоять и недвигаться никогда" (таймаут не подходит), раз статики бесполезные


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

    Re: Вопросы.

    Снова проблема с null и HUD-сообщениями. Здесь миссия со скриптом - http://www.sukhoi.ru/forum/showthrea...=1#post1783621.

    Рецидив этой полученной в домашних условиях, ходя код совсем другой сейчас - http://www.sukhoi.ru/forum/showthrea...=1#post1767524.

    Суть ошибки такая получается. Имеем выделенный сервер. Отправляем HUD-сообщение только серверу(нет игроков) - ошибки нет.
    Отправляем игрокам и серверу - ошибка 100%.
    В чем может быть дело?

    Код скрипта:

    Код:
    //======================Small_Bee Localization Class====================
        string langFolderPath = Environment.GetFolderPath(Environment.SpecialFolder.Personal) + "\\1C SoftClub\\il-2 sturmovik cliffs of dover\\missions\\SMP\\Friday on my mind\\localization\\"; 
        string defaultLanguage = "en"; 
    	public Dictionary<string, Dictionary<string, string>> lines = new Dictionary<string, Dictionary<string, string>>();   
    	
        public void SendMessageToAll(string msgKey, string target, params object[] args)
        {
            List<Player> players = new List<Player>();
        	if (GamePlay.gpPlayer() != null)
                players.Add(GamePlay.gpPlayer());
            if (GamePlay.gpRemotePlayers() != null)
                players.AddRange(GamePlay.gpRemotePlayers());
        	
        	if (players.ToArray() != null)
            {
                send(players.ToArray(), msgKey, target, args);
            }
        }
    
        public void SendMessageToArmy(string msgKey, int army, string target, params object[] args)
        {        
            List<Player> players = new List<Player>();
            List<Player> acceptedPlayers = new List<Player>();
            
            if (GamePlay.gpPlayer() != null)
                players.Add(GamePlay.gpPlayer());
            if (GamePlay.gpRemotePlayers() != null)
                players.AddRange(GamePlay.gpRemotePlayers());
            
            if (players != null)
            {
            	foreach (Player player in players)
                {
                    if (player.Army() == army) acceptedPlayers.Add(player);
                }
                if (acceptedPlayers.Count > 0)
                {
                    send(acceptedPlayers.ToArray(), msgKey, target, args);
                }
            }
        }
    
        public void SendMessageToPlayers(string msgKey, Player[] players, string target, params object[] args)
        {
            if (players != null)
            {
                send(players, msgKey, target, args);
            }
        }
    
        private void send(Player[] players, string msgKey, string target, params object[] args)
        {
            Dictionary<string, List<Player>> sorted = new Dictionary<string, List<Player>>();
            load(langFolderPath);
            foreach (Player player in players)
            {
                string langName = player.LanguageName();
                if (!lines.ContainsKey(langName))
                {
                    langName = defaultLanguage;
                }
                if (!sorted.ContainsKey(langName))
                {
                    sorted.Add(langName, new List<Player>());
                }
                sorted[langName].Add(player);
            }
            foreach (KeyValuePair<string, List<Player>> kvp in sorted)
            {
                if (lines[kvp.Key].ContainsKey(msgKey))
                {
                    switch (target)
                    {
                        case "ChatAndScreen":
                        {
                            GamePlay.gpLogServer(kvp.Value.ToArray(), lines[kvp.Key][msgKey], args);
                            GamePlay.gpHUDLogCenter(kvp.Value.ToArray(), lines[kvp.Key][msgKey], args);
                        } break;
                		case "Chat": GamePlay.gpLogServer(kvp.Value.ToArray(), lines[kvp.Key][msgKey], args); break;
                		case "Screen": GamePlay.gpHUDLogCenter(kvp.Value.ToArray(), lines[kvp.Key][msgKey], args); break;
                    }
                } else
                {
                	switch (target)
                    {
                        case "ChatAndScreen":
                        {
                            GamePlay.gpLogServer(kvp.Value.ToArray(), msgKey, args);
                            GamePlay.gpHUDLogCenter(kvp.Value.ToArray(), msgKey, args);
                        } break;
                		case "Chat": GamePlay.gpLogServer(kvp.Value.ToArray(), msgKey, args); break;
                		case "Screen": GamePlay.gpHUDLogCenter(kvp.Value.ToArray(), msgKey, args); break;
                    }            	
                }
            }
        }
        /*
        public string sendOnlyTranslate(Player player, string msgKey)
        {        
            load(langFolderPath);        
            string langName = player.LanguageName();
            if (!lines.ContainsKey(langName))
            {
                langName = defaultLanguage;
            } 
            if (lines[kvp.Key].ContainsKey(msgKey))
            {
                return lines[kvp.Key][msgKey];
            }
            else { return msgKey; }
            
        }
        */
        private void load(string langFolderPath)
        {
            IEnumerable<string> fileNames = Directory.EnumerateFiles(langFolderPath, "*.txt", SearchOption.TopDirectoryOnly);
            foreach (string filename in fileNames)
            {
                parseLanguageFile(filename);
            }
        }
    
        private void parseLanguageFile(string filename)
        {
            string[] filelines = File.ReadAllLines(filename);
            string[] firstLine = filelines[0].Split(new char[] { '=' }, StringSplitOptions.RemoveEmptyEntries);
            if (firstLine[0].Equals("LanguageName"))
            {
                string langName = firstLine[1];
                if (!lines.ContainsKey(langName))
                {
                    lines.Add(langName, new Dictionary<string, string>());
                }
                for (int i = 1; i < filelines.Length; i++)
                {
                    string[] lineArr = filelines[i].Split(new char[] { '=' }, StringSplitOptions.RemoveEmptyEntries);
                    if (lineArr.Length != 2) continue;
                    lines[langName][lineArr[0]] = lineArr[1];
                }
            }
        }
        //======================================================================
    
    Вывод сообщения:
    SendMessageToAll("Hello null!", "Screen");
    По идее ошибка должна быть здесь, так как остальной код совпадает с GamePlay.gpLogServer:

    Код:
    GamePlay.gpHUDLogCenter(kvp.Value.ToArray(), msgKey, args);

    Примеры из логов:

    Ошибка при выводе HUD игрокам и серверу:
    Скрытый текст:
    Код:
    [13:25:59]	Server to [Server, Cassius Calhoun]: ======================================
    [13:25:59]	Server to [Server, Cassius Calhoun]: Команда красных уничтожила самолет-разведчик синих
    [13:26:00]	
    [13:26:00]	=================================================
    [13:26:00]	System.NullReferenceException: Ссылка на объект не указывает на экземпляр объекта.
    [13:26:00]	
    [13:26:00]	Server stack trace: 
    [13:26:00]	   в 6UZP66dp5dKAdD5LMYr.F9pJL9dGtcbAt8r8Umh.JwjWWYN9w9(xnKDxkk8wATA33F3hpA , G7xPRi2e9fpuLtHG23a )
    [13:26:00]	   в 5iyST5gABhh0WhImZtw.4W7PgSgvHpySuqonJno.sp1UnA9jmwb(Player[] , String , Object[] , Double )
    [13:26:00]	   в 5iyST5gABhh0WhImZtw.4W7PgSgvHpySuqonJno.yEy1eAe2YPQxskLBZIku(Object , Object , Object , Double )
    [13:26:00]	   в 5iyST5gABhh0WhImZtw.4W7PgSgvHpySuqonJno.d87UnNOmgnm(Player[] , String , Object[] )
    [13:26:00]	   в pqlnUTF7gnMAoU4L9MP.lm1GgkFoiOOBGu1gmwf.ZnhKPrKgxsgJUIGtmgOK(Object , Object , Object )
    [13:26:00]	   в pqlnUTF7gnMAoU4L9MP.lm1GgkFoiOOBGu1gmwf.HUDLogCenter(Player[] , String , Object[] )
    [13:26:00]	   в maddox.game.GameDef.gpHUDLogCenter(Player[] to, String msg, Object[] parms)
    [13:26:00]	   в System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr md, Object[] args, Object server, Int32 methodPtr, Boolean fExecuteInContext, Object[]& outArgs)
    [13:26:00]	   в System.Runtime.Remoting.Messaging.StackBuilderSink.SyncProcessMessage(IMessage msg, Int32 methodPtr, Boolean fExecuteInContext)
    [13:26:00]	
    [13:26:00]	Exception rethrown at [0]: 
    [13:26:00]	   в System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
    [13:26:00]	   в System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
    [13:26:00]	   в maddox.game.IGamePlay.gpHUDLogCenter(Player[] to, String msg, Object[] parms)
    [13:26:00]	   в Mission.send(Player[] players, String msgKey, String target, Object[] args)
    [13:26:00]	   в Mission.SendMessageToAll(String msgKey, String target, Object[] args)
    [13:26:00]	   в Mission.messageTaskComplite(Int32 taskPrice, Int32 armyTask, String msg)
    [13:26:00]	   в Mission.OnActorDead(Int32 missionNumber, String shortName, AiActor actor, List`1 damages)
    [13:26:00]	   в maddox.game.world.Strategy.OnActorDead(Int32 missionNumber, String shortName, AiActor actor, AiDamageInitiator initiator)
    [13:26:00]	   в maddox.game.ABattle.OnEventGame(GameEventId eventId, Object eventArg0, Object eventArg1, Int32 eventArgInt)
    [13:26:00]	   в maddox.game.world.Strategy.OnEventGame(GameEventId eventId, Object eventArg0, Object eventArg1, Int32 eventArgInt)
    [13:26:00]	   в System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr md, Object[] args, Object server, Int32 methodPtr, Boolean fExecuteInContext, Object[]& outArgs)
    [13:26:00]	   в System.Runtime.Remoting.Messaging.StackBuilderSink.SyncProcessMessage(IMessage msg, Int32 methodPtr, Boolean fExecuteInContext)
    [13:26:00]	
    [13:26:00]	Exception rethrown at [1]: 
    [13:26:00]	   в System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
    [13:26:00]	   в System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
    [13:26:00]	   в maddox.game.IBattle.OnEventGame(GameEventId eventId, Object eventArg0, Object eventArg1, Int32 eventArgInt)
    [13:26:00]	   в maddox.game.GameDef.eventGame(GameEventId eventId, Object eventArg0, Object eventArg1, Int32 eventArgInt)
    [13:26:00]	   в RoFTf9069W6jWRmA8PN.U2RoVL0OVdWjVQJ7319.eventGame(GameEventId , Object , Object , Int32 )
    [13:26:00]	   в NTlYp6NdtgpnKt7wGgO.VvFELvNie2My3mOTesk.WPGBQuHHKI8(GameEventId , Object , Object , Int32 )
    [13:26:00]	=================================================
    [13:29:30]	Server: Cassius Calhoun Bf 110 C-7 () Пилот готов.
    [13:29:30]	Server: Стрелок Bf 110 C-7 () (Бот) готов.
    [13:29:30]	Server: Cassius Calhoun на Bf 110 C-7 () разбился.
    [13:30:51]	Server: До свидания, Cassius Calhoun!


    Вывод HUD только серверу, нет ошибки:
    Скрытый текст:
    Код:
    [18:49:16]	Server: Носовой стрелок FW 200 () (Бот) погиб от рук Минный тральщик 1935.
    [18:50:34]	Server to [Server]: ======================================
    [18:50:34]	Server to [Server]: Команда красных уничтожила самолет-разведчик синих
    [18:50:34]	Server to [Server]: Команда красных получает очки за выполнение задания [ 500 ]
    [18:50:34]	Server to [Server]: ======================================
    [18:50:34]	Server: Минный тральщик 1935, Минный тральщик 1935 сбил ИИ на FW 200 ().
    [18:59:53]	Server: =m=black875 теперь с нами.
    [18:59:56]	Server: =m=black875 будет летать за Красные ВВС.


    В сообщении серверу нет ошибок:
    Скрытый текст:
    Код:
    [16:05:10]	Server: =Apostol= Bf 109 E-3 () Пилот готов.
    [16:05:10]	Server: =Apostol= в кабине =Apostol= разбился.
    [16:05:19]	Server: До свидания, =Apostol=!
    [16:05:56]	Server to [Server, =ZERO_13=]: ======================================
    [16:05:56]	Server to [Server, =ZERO_13=]: RED> [ 40 ] / [ 26 ] <BLUE 
    [16:05:56]	Server to [Server, =ZERO_13=]: Миссия будет остановлена через  60 min.
    [16:05:56]	Server to [Server, =ZERO_13=]: ======================================
    [16:06:11]	Server to [Server, =ZERO_13=]: ======================================
    [16:06:11]	Server to [Server, =ZERO_13=]: RED> [ 40 ] / [ 26 ] <BLUE 
    [16:06:11]	Server to [Server, =ZERO_13=]: До конца миссии осталось [ 60 ] min.
    [16:06:11]	Server to [Server, =ZERO_13=]: ======================================
    [16:06:45]	Server: =ZERO_13= Bf 109 E-3 () Пилот готов.
    [16:06:45]	Server: =ZERO_13= в кабине =ZERO_13= влетел в ландшафт.


    --- Добавлено ---

    И второй вопрос:

    Некоторые логи бывают такого вида с битой кодировкой:
    Код:
    [17:36:37]	Server to [Server]: ======================================
    [17:36:37]	Server to [Server]: RED> [ 9 ] / [ 27 ] <BLUE 
    [17:36:37]	Server to [Server]: До конца миссии осталось [ 210 ] min.
    [17:36:37]	Server to [Server]: ======================================
    [17:41:17]	>chat TS3: ts13.forteam.ru:10117 pass: sukhoi
    [17:41:17]	Chat: Server: 	TS3: ts13.forteam.ru:10117 pass: sukhoi
    [17:41:17]	>chat English-speaking channels available now!
    [17:41:17]	Chat: Server: 	English-speaking channels available now!
    [17:41:17]	>timeout 1800.00 f ts1.cmd
    [17:45:43]	Server: __MAVR__ РІС…РѕРґРёС‚ РІ Р±РѕР№.
    [17:45:46]	Server: __MAVR__ будет летать за Красные ВВС.
    [17:46:39]	Loading mission ...
    [17:46:39]	Mission loaded. time = 0,131
    [17:48:45]	Server: До свидания, __MAVR__!
    [17:49:50]	Server: __MAVR__ теперь с нами.
    [17:49:53]	Server: __MAVR__ сбежал! Его приветсвуют Красные.
    Это из-за чего может быть? Таких немного, но попадаются.
    Крайний раз редактировалось podvoxx; 03.02.2012 в 09:51.

  22. #472
    3GIAP.ru Аватар для -atas-
    Регистрация
    26.12.2001
    Адрес
    Москва
    Возраст
    53
    Сообщений
    2,992
    Записей в дневнике
    1

    Re: Вопросы.

    Цитата Сообщение от podvoxx Посмотреть сообщение
    Это из-за чего может быть? Таких немного, но попадаются.
    Баг. Желательно сообщать в багрепорты, чтобы не забыли.
    ...зелёные горят.
    ----------------------

    i7-860@3.8, 4GB, ati4890-2GB, 1680x1050, Win7-64.

  23. #473

    Re: Общение и работа с сообществом в разделе "Ил-2:БзБ"

    Александр, так как Вы занимаетесь дизайном миссий - Вам вопрос: возможно ли появление не стандартных миссий, вроде: пролетая на бреющем, найти в лесу спрятавшегося снайпера; или сделать фотоснимки расположения вражеской техники? Когда-то очень порадовали задания в MFSX - не ожидал такой интересной мотивации полётов в гражданской авиации. Не говорю о спасении тюленей, но что-то необычное было бы здорово!
    Windows 7 64 bit /// Core i5 2300 3,3 GHz /// ASUS P8P67 LE
    8 GB DDR3 1600 MHz /// Nvidia GeForce GTX 550 Ti 1024 Mb /// Logitech Extreme 3D Pro

  24. #474

    Re: Общение и работа с сообществом в разделе "Ил-2:БзБ"

    Цитата Сообщение от evilvoland Посмотреть сообщение
    Александр, так как Вы занимаетесь дизайном миссий - Вам вопрос: возможно ли появление не стандартных миссий, вроде: пролетая на бреющем, найти в лесу спрятавшегося снайпера; или сделать фотоснимки расположения вражеской техники? Когда-то очень порадовали задания в MFSX - не ожидал такой интересной мотивации полётов в гражданской авиации. Не говорю о спасении тюленей, но что-то необычное было бы здорово!
    Поддерживаю на все сто!
    На мой взгляд, для успешной игры в ней должна быть эмоциональная составляющая, сопереживание персонажам. В Иле это можно сделать как раз нестандартными миссиями. Например, АИ Вася пришел в эскадрилью недавно и уже имеет 10 сбитых, но тут его сбивают. Следующая миссия вполне может быть по спасению Васи на По-2... или на Тайгер Моте.
    Phenom II X6 1090T @3600Mhz, Corsair XMS3 16GB, Radeon HD7850 2Gb|1920 x 1080, ASUS Xonar D1|Microlab Solo 5C, Thrustmaster T.16000M, Win 7 X64 SP1.

  25. #475
    Конструктор
    Регистрация
    10.12.2000
    Адрес
    Москва, Россия
    Возраст
    46
    Сообщений
    2,952

    Re: Общение и работа с сообществом в разделе "Ил-2:БзБ"

    Цитата Сообщение от evilvoland Посмотреть сообщение
    Александр, так как Вы занимаетесь дизайном миссий - Вам вопрос: возможно ли появление не стандартных миссий, вроде: пролетая на бреющем, найти в лесу спрятавшегося снайпера; или сделать фотоснимки расположения вражеской техники? Когда-то очень порадовали задания в MFSX - не ожидал такой интересной мотивации полётов в гражданской авиации. Не говорю о спасении тюленей, но что-то необычное было бы здорово!
    Возможно, сейчас скрипты позволяют сделать очень многое.
    Community Manager 1С Game Studios
    www.il2sturmovik.ru

Страница 19 из 32 ПерваяПервая ... 915161718192021222329 ... КрайняяКрайняя

Ваши права

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