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

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

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

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

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

    Re: Вопросы.

    Вопрос к naryv, наверное. Сейчас при разработке миссии приходится прибегать к локализации сообщений и более гибкой настройке параметров(иначе миссия будет только на одном языке) - куда отправлять это сообщение(например "Chat", "ChatAndScreen" и "Screen"), отправить определенным игрокам, всем или определенной армии или просто перевести текст, никуда не отправляя(для пункта меню к примеру). Также нужен вариант отправки сообщения без перевода как есть(но с аналогичным локализации примером). Сам перевод сообщений берется из текстового или xml-файлов. Для этого приходится в сам скрипт миссии добавлять большой кусок кода, но тогда появляется проблема - в скрипты подмиссий его тоже придется добавлять и вообще в любой скрипт, где используется локализация и отправка сообщений. В GamePlay.gpLogServer и GamePlay.gpHUDLogCenter не проводится проверка на null емнип и вообще эти команды в чистом виде неудобны(обычно используют введение дополнительных параметров, указаны выше).
    Есть другой способ - отдельный класс в своей сборке dll, которая подключается к каждому скрипту, где необходимо. Этот вариант лучше.
    Возможно ли введение нового класса для отправки/локализации сообщений с указанными выше параметрами в игру? Необходимость - для любой серьезной миссии на сервере.

    Есть еще одна необходимость - хранилище переменных разных типов, доступное из скриптов подмиссий и хост-миссии. Это реализовано в командере от Small_Bee с примером.

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

    П.С. Если потребуется, могу более подробно объяснить и привести примеры кода

    И пара дополнительных вопросов, более важных, т.к. их нельзя решить самим пользователям. Первое - это контроль над статиками. Проблема известная. Имеем много отлично проработанных наземных статических объектов и возможность создавать миссию нон-стоп, но не имеем возможности объединить их, т.к. учитывать и перезагружать статитики невозможно. Из-за это нынешние миссии мало чем отличаются от старых иловских. Есть наземка(причем посчитать можно только нестатики), длительность миссии несколько часов. Никакой линии фронта в нормальном виде или даже захватываемых аэродромов нет до сих пор в онлайне. Даже цель - завод/склад толком не организовать. Старые иловские костыли в виде машинок не работают. Потому-что если поставить живые - они разъезжаются сквозь стены в разные стороны несмотря на таймаут. Статические машинки - ничем не отличаются от зданий. Приходится ставить ПТ-пушки. Но это тоже плохой вариант, т.к. артиллерия имеет ИИ и отбирает лишние ресурсы у сервера. К тому же если приедут вражеские танки захватить склад - его продукция начнет стрелять по ним.

    Вторая проблема - нельзя из подмиссии загружать здания/окопы. Т.е. к примеру если команда "построила" аэродром, то он будет без ангаров и красот, обычное поле с зенитками. Или к примеру создаем объект завод, который загружается в подмиссии. Все здания/цеха приходится в ручную копировать в файл хост-миссии. Если бы возможность грузить такие объекты из подмиссий была - можно было бы сделать полноценные сменяемые аэродромы или опорные пункты, играющие роль линии фронта. Или строящиеся динамически оборону, склады, переправы.

    Велась/проводится ли какая-то работа по работе со статиками в ближайшем патче?
    Крайний раз редактировалось podvoxx; 31.05.2012 в 09:36.

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

    Re: Вопросы.

    Цитата Сообщение от podvoxx Посмотреть сообщение
    Вопрос к naryv, наверное. Сейчас при разработке миссии приходится прибегать к локализации сообщений и более гибкой настройке параметров(иначе миссия будет только на одном языке) - куда отправлять это сообщение(например "Chat", "ChatAndScreen" и "Screen"), отправить определенным игрокам, всем или определенной армии или просто перевести текст, никуда не отправляя(для пункта меню к примеру). Также нужен вариант отправки сообщения без перевода как есть(но с аналогичным локализации примером). Сам перевод сообщений берется из текстового или xml-файлов. Для этого приходится в сам скрипт миссии добавлять большой кусок кода, но тогда появляется проблема - в скрипты подмиссий его тоже придется добавлять и вообще в любой скрипт, где используется локализация и отправка сообщений. В GamePlay.gpLogServer и GamePlay.gpHUDLogCenter не проводится проверка на null емнип и вообще эти команды в чистом виде неудобны(обычно используют введение дополнительных параметров, указаны выше).
    Есть другой способ - отдельный класс в своей сборке dll, которая подключается к каждому скрипту, где необходимо. Этот вариант лучше.
    Возможно ли введение нового класса для отправки/локализации сообщений с указанными выше параметрами в игру? Необходимость - для любой серьезной миссии на сервере.

    Есть еще одна необходимость - хранилище переменных разных типов, доступное из скриптов подмиссий и хост-миссии. Это реализовано в командере от Small_Bee с примером.

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

    Цитата Сообщение от podvoxx Посмотреть сообщение
    И пара дополнительных вопросов, более важных, т.к. их нельзя решить самим пользователям. Первое - это контроль над статиками. Проблема известная. Имеем много отлично проработанных наземных статических объектов и возможность создавать миссию нон-стоп, но не имеем возможности объединить их, т.к. учитывать и перезагружать статитики невозможно. Из-за это нынешние миссии мало чем отличаются от старых иловских. Есть наземка(причем посчитать можно только нестатики), длительность миссии несколько часов. Никакой линии фронта в нормальном виде или даже захватываемых аэродромов нет до сих пор в онлайне. Даже цель - завод/склад толком не организовать. Старые иловские костыли в виде машинок не работают. Потому-что если поставить живые - они разъезжаются сквозь стены в разные стороны несмотря на таймаут. Статические машинки - ничем не отличаются от зданий. Приходится ставить ПТ-пушки. Но это тоже плохой вариант, т.к. артиллерия имеет ИИ и отбирает лишние ресурсы у сервера. К тому же если приедут вражеские танки захватить склад - его продукция начнет стрелять по ним.

    Вторая проблема - нельзя из подмиссии загружать здания/окопы. Т.е. к примеру если команда "построила" аэродром, то он будет без ангаров и красот, обычное поле с зенитками. Или к примеру создаем объект завод, который загружается в подмиссии. Все здания/цеха приходится в ручную копировать в файл хост-миссии. Если бы возможность грузить такие объекты из подмиссий была - можно было бы сделать полноценные сменяемые аэродромы или опорные пункты, играющие роль линии фронта. Или строящиеся динамически оборону, склады, переправы.

    Велась/проводится ли какая-то работа по работе со статиками в ближайшем патче?
    В принципе добавили три события - на убитого статика, здание и взрыв бомбы, с именами и координатами думаю для учёта поможет, не загружающиеся статики надо посмотреть, не знаю пока. Но это всё возможно будет только в финальной версии патча.
    Don't happy, be worry

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

    Re: Вопросы.

    Цитата Сообщение от naryv Посмотреть сообщение
    С транслятором, думаю можно сделать, что то типа функции возвращающей строку на указанном языке из файла-словаря, подойдёт такой вариант? С хранилищем не знаю, есть ли необходимость, тем более что Small_Bee уже сделал его. С проверкой на null нет, не получится.
    У Small_Bee dll, которая работает только с выделенным сервером. Однако сингл-миссии и кампании тоже нужно локализовывать(я добавил свою сборку, но это все-таки неудобно) . К тому же свою dll приходится прописывать в референсах, копировать в папку игры, добавлять нэймспэйс - не очень удобно. К стати о добавлении dll - хорошо бы какую-нибудь папку в папке с игрой сделать для пользовательских сборок, сейчас они помещаются либо в корень, либо в parts/core.
    По транслятору можно как-то так:
    Задаем путь к папке с файлами локализации. У Small_Bee каждый язык в отдельном .txt-файле, вполне удобно. Кодиак на желтом выкладывал вариант с xml-файлом и всеми языками в нем.
    Код:
        string langFolderPath = Environment.GetFolderPath(Environment.SpecialFolder.Personal) + "\\1C SoftClub\\il-2 sturmovik cliffs of dover\\missions\\Single\\LocalizationExample\\localization\\";
    Далее перевод нужного текста по метке(параметры: путь к папке с файлами локализации, метка для перевода текста, язык перевода). Т.е. метод возвращает текст перевода. Если перевод не найден - возвращается то же, что было отправлено.
    Код:
    public static string getTranslate(string langFolderPath, string msgKey, string langName)
    Ну и отправка сообщения, 3 метода(или же еще один параметр добавить, отвечающий за адресатов). Для армии, определенным игрокам и всем игрокам.
    Код:
    public static void SendMessageToAll(string msgKey, string target, params object[] args)
    public static void SendMessageToArmy(string msgKey, int army, string target, params object[] args)
    public static void SendMessageToPlayers(string msgKey, Player[] players, string target, params object[] args)
    target лучше как-то по другому сделать, наверное. Он имеет три варианта - Чат, Экран, Чат и экран.
    Причем по назначению метод(ToAll, ToArmy,ToPlayers) должен сам фильтровать игроков и быть универсальным для выделенного, сингла и кампании, ну и проверять на null конечно)).

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

    По хранилищу - вещь нужная для обмена данными между подмиссиями, но в принципе если сложно/долго сделать - можем пользоваться своими сборками.

    Цитата Сообщение от naryv Посмотреть сообщение
    В принципе добавили три события - на убитого статика, здание и взрыв бомбы, с именами и координатами думаю для учёта поможет,
    Спасибо, хорошая новость А удалять статики можно будет подобно "живым" объектам?

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

    И с желтого просили передать за статики )) :
    FG28_Kodiak
    Give him a big kiss from me!
    Крайний раз редактировалось podvoxx; 31.05.2012 в 13:37.

  4. #4

    Re: Вопросы.

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

Ваши права

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