AviaSkins.Forums

Вернуться   AviaSkins.Forums > Основные разделы > Моды для Ил-2 > "МОДный" ON-LINE.

Важная информация

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 05.11.2009, 15:18   #101
LePage
Местный
 
Регистрация: 15.06.2009
Сообщений: 114
По умолчанию

Цитата:
Сообщение от Karabas-Barabas Посмотреть сообщение
Объяснт пож. это зачем?
Файл миссии читается один раз и более не используется.
Все же данны, по определению храняться в базе, ну или её имитации.
я написал общий синткасис. а в конкретном случае замена свойств это изменение маршрута конкретного подвижного объекта. Но может быть и замена свойств конкретной зены и смена маршрута и цели авиаботам - синтаксис-то общий, а объекты различаются именами.

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

блин, да все можно!!!

О! чтоб было понятно, я алгоритм ила представляю так - считал файл мис. отпарсил - занес маршруты и объекты в массив. И потом. по тикам времени, перемещает их в те координаты, что прописаны в массиве, а если их сменить? поедет по другой дороге . А по статикам - как подлетаешь к объекту, он лезет в массив и показывает тебе его. сначала первый - из мис, а второй раз подлетишь, объект сменили, уже покажет второй. Должно быть так, как то...

Последний раз редактировалось LePage; 05.11.2009 в 15:41.
LePage вне форума   Ответить с цитированием
Старый 05.11.2009, 15:50   #102
Sexton
Администратор
 
Аватар для Sexton
 
Регистрация: 28.02.2007
Адрес: Выборг
Сообщений: 1,148
По умолчанию

Цитата:
Сообщение от LePage Посмотреть сообщение
О! чтоб было понятно, я алгоритм ила представляю так - считал файл мис. отпарсил - занес маршруты и объекты в массив. И потом. по тикам времени, перемещает их в те координаты, что прописаны в массиве, а если их сменить? поедет по другой дороге ...
На данный момент в иле маршрут создается при создании объекта, функции замены маршрута я не нашел. Можно тупо текущий объект удалять, а на его месте создавать такой же, но с другим маршрутом.
Как-то так.
Sexton вне форума   Ответить с цитированием
Старый 05.11.2009, 16:04   #103
ZloyPetrushkO
Местный
 
Регистрация: 31.05.2008
Сообщений: 1,159
По умолчанию

Цитата:
Сообщение от LePage Посмотреть сообщение
Да и ТЗ легче составить. Типа: есть вот это и вот это, надо еще это и это.

Имхуется:
надо впихнуть в него 3 команды.
1.1 set X_obj_name x y v add_param - возможность переопределения свойств объекта заданного в файле *.mis
1.2 define X_Static_obj_name1 as X_Static_obj_name2 - возможность переопределения объекта (статического) заданного в файле *.mis
1.3 create X_obj_name x y add_param - возможность создания объекта не заданного в файле *.mis

, где add_param может быть все, что угодно от построения до меткости зен. в зависимости от объекта.

2. ну и соответственно расширить свойства подвижных объектов
2.1 ввести понятие построения
2.2 ......
2.3 ......

Таким путем можно и ботам маршрут менять, кстати. А то полетят под конец карты бомбить уже ставший своим филд или промзону

что то типа ТЗ я уже пытался сформулировать... вот что получилось


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

2) внешняя(интерфейс обмена между илом и внешней средой) для етого нужен
- интерфейс обмена(преположительно-консоль)
- интерфейс ввода(?)
- технология динамической подгрузки пути для юнитов наземных
- технология обмена между юзером и сервером обновленного маршрута


а вот как и что, каким команды будут в АПИ- пока неясно...но идея правильная что нужно решать уже какие команды ОБЯЗАТЕЛЬНО нужны и искать места в коде..

с командой 1.3 согласен на 100%-нужна такая команда. так и запишем. а вот с переопределением...ну ето очевидно, что что то надо переопределить. может просто добавлять новые точки к маршруту?
и команда будет типа
add (unit_name) X Y Z V(скорость)?

----
а теперь касательно илоносной части( ет у мя в списке 1 пунктами идет
поскольку всякие там построения, остановки и т.п. ето уже задано в алгоритмах кода, ИМХО, команды на ето с командера НЕ НУЖНЫ, ибо тут хотябы путь бы сделать, не то что построение...
и предложение у меня такое- все ети перестроения можно спокойно подвязать к скорости например(командеру все равно нужно задавать скорость)

работать ето будет таким алгоритмом:

если скорость больше 20 км\ч то юниты при атаке останавливаться не будут(типа идут на прорыв).если меньше-они остановяться и будут стрелять стоя.
аналогично перестроение: если скорость в интервале ( 15-20) км\ч то значит они едут на марше, строяться колонной.
если скорость менее 15 км\ч то при втсрече с врагом они перестраиваються в линию. если скорость больше 20 км\ч значит они в прорыве и едут например линией(ромбом)
аналогично с остановками под атакой авиации
вот такие вот дела...сразу команд нужно будет меньше делать
как думаешь на счет такого способа задания свойвств? имхо. так будет лучше...кроме того, если ето запрограммить то и в оффлайне не нужен будет командер, достаточно будет в полном редакторе задавать скорости

Цитата:
Сообщение от Sexton Посмотреть сообщение
На данный момент в иле маршрут создается при создании объекта, функции замены маршрута я не нашел. Можно тупо текущий объект удалять, а на его месте создавать такой же, но с другим маршрутом.
Как-то так.
тоже идея, нужно запомнить. но думаю перезагрузка объектов даст фризы...но если ничего не останеться-то лучше так


Цитата:
Сообщение от LePage Посмотреть сообщение
О! чтоб было понятно, я алгоритм ила представляю так - считал файл мис. отпарсил - занес маршруты и объекты в массив. И потом. по тикам времени, перемещает их в те координаты, что прописаны в массиве, а если их сменить? поедет по другой дороге . А по статикам - как подлетаешь к объекту, он лезет в массив и показывает тебе его. сначала первый - из мис, а второй раз подлетишь, объект сменили, уже покажет второй. Должно быть так, как то...
вроде бы так...только не факт что мы ето найдем...работа сложная...

Последний раз редактировалось ZloyPetrushkO; 05.11.2009 в 16:07.
ZloyPetrushkO вне форума   Ответить с цитированием
Старый 05.11.2009, 17:04   #104
JGr124_boRada
Местный
 
Регистрация: 19.02.2009
Сообщений: 450
По умолчанию

Я понял так алгоритм ила
Читаем из файла миссии и создаем объект и привязанный к нему лист с маршрутом. Он читается не в виде точек а в виде отрезков - segments (Так же и я сделал на ГФ маршруты) . Движение идет по сегментам ( 200м) которые еще делятся для обсчитывания. Потом с производной от скорости и идет смена координат. В этом и проблема с синхорнизацией видимо, так как временной переменной нету. Принцип трека - с середины его смотреть не получится... У паравозов сегмент больше, потому заметнее рассинхронизация. У кораблей еще больше.
Один из способов - менять на лету этот массив с сегментами. Но боюсь будут проблемы, так как надо отслеживать какой из сегментов сейчас в работе у объекта. Хотя это чисто техническая проблема.

Последний раз редактировалось JGr124_boRada; 05.11.2009 в 17:14.
JGr124_boRada вне форума   Ответить с цитированием
Старый 05.11.2009, 18:12   #105
LePage
Местный
 
Регистрация: 15.06.2009
Сообщений: 114
По умолчанию

ну координаты юнитов на данный момент должны быть где-то, иначе откуда бы это взялось - фрагмент эвентлога:

[1:41:35 AM] 3do/Buildings/Airdrome/Hangar1/live.sim destroyed by 1_Chief2 at 111464.89 113493.55
[1:43:55 AM] 63_Static destroyed by 1_Chief0 at 111458.82 113515.07
[1:44:05 AM] 3do/Buildings/Airdrome/Hangar1/live.sim destroyed by 1_Chief0 at 111310.33 113452.14
[1:44:16 AM] 59_Static destroyed by 1_Chief0 at 111302.75 113474.61
[1:44:18 AM] 3do/Buildings/Airdrome/Hangar1/live.sim destroyed by 1_Chief2 at 111348.984 113462.484
[1:45:35 AM] 3do/Buildings/Airdrome/Hangar1/live.sim destroyed by 1_Chief2 at 111194.45 113421.08
[1:45:46 AM] 57_Static destroyed by 1_Chief2 at 111226.83 113454.18
[1:45:48 AM] 55_Static destroyed by 1_Chief0 at 111148.6 113434.14
[1:45:50 AM] 68_Static destroyed by 103_Static at 110905.82 113488.09
[1:45:50 AM] 1_Chief0 destroyed by 15_Chief1 at 111072.94 113290.49

особенно последняя строка.

надо тока найти. и как вариант, ввести команду для юнита, на выдачу в АПИ своих координат. Типа определить местоположение .
LePage вне форума   Ответить с цитированием
Старый 05.11.2009, 22:20   #106
ZloyPetrushkO
Местный
 
Регистрация: 31.05.2008
Сообщений: 1,159
По умолчанию

Цитата:
Сообщение от LePage Посмотреть сообщение
надо тока найти.
это ключевое...я ща попутно ковыряюсь в моде на остановку танков...
ZloyPetrushkO вне форума   Ответить с цитированием
Старый 05.11.2009, 22:21   #107
Sexton
Администратор
 
Аватар для Sexton
 
Регистрация: 28.02.2007
Адрес: Выборг
Сообщений: 1,148
По умолчанию

Цитата:
Сообщение от JGr124_boRada Посмотреть сообщение
П
2. Проблема с поездами
МГ сделал ЖД с одной веткой и без стрелок. В итоге если поезда идут в встречном направлении, то они сталкиваются и ессно повреждаются.
нельзя ли исключить повреждение при столкновении вагон с вагоном? Ведь тот же поезд, если изменить ему направление, проходит сам через себя, вагон за вагоном, безболезненно. Добавить только чтоб с любым вагоном так было, а не только со своим.
Тебе нужен Wagon.java Ищи там msgCollisionRequest, как я понял эта функция отвечает за возможность столкновения вагона с другим объектом.
Там есть строки
Код:
00342         if(actor instanceof BridgeSegment)
00343         {
00344             aflag[0] = false;
00345             return;
00346         } else
00347         {
00348             return;
00349         }
Короче, тебе нужна 342 строка этого файла.
Меняешь ее на
Код:
if(actor instanceof BridgeSegment) && (actor instanceof Wagon)
По идее вагон с вагоном больше не столкнется, локомотив (как я понял) тоже считается вагоном.

По аналогии, наверное, и с короблями
Sexton вне форума   Ответить с цитированием
Старый 05.11.2009, 22:32   #108
Sexton
Администратор
 
Аватар для Sexton
 
Регистрация: 28.02.2007
Адрес: Выборг
Сообщений: 1,148
По умолчанию

По кораблям.
Класс BigshipGeneric.java
Тоже функция msgCollisionRequest
Код:
01231         if(actor instanceof BridgeSegment)
01232         {
01233             if(dying != 0)
01234                 aflag[0] = false;
01235             return;
01236         }
после 1236 строки добавляешь

Код:
else
{
if(actor instanceof BigShipGeneric) && (actor instanceof ShipGeneric)
{
aflag[0] = false;
return;
}
}
ТОже проделываешь в классе ShipGeneric
Sexton вне форума   Ответить с цитированием
Старый 05.11.2009, 22:42   #109
JGr124_boRada
Местный
 
Регистрация: 19.02.2009
Сообщений: 450
По умолчанию

Ок, спасибо.
JGr124_boRada вне форума   Ответить с цитированием
Старый 05.11.2009, 22:46   #110
JGr124_boRada
Местный
 
Регистрация: 19.02.2009
Сообщений: 450
По умолчанию

Цитата:
Сообщение от ZloyPetrushkO Посмотреть сообщение
это ключевое...я ща попутно ковыряюсь в моде на остановку танков...
По моему берется последнее значение переменной позишен, там есть какой-то шаг обсчета. Шаг зависит от скорости.
JGr124_boRada вне форума   Ответить с цитированием
Старый 05.11.2009, 23:07   #111
Sexton
Администратор
 
Аватар для Sexton
 
Регистрация: 28.02.2007
Адрес: Выборг
Сообщений: 1,148
По умолчанию

F что касается создания АПИ для внешнего "генерала", то за основу можно взять код devicelink - там уже реализован код обмена данными с внешней программой. Придумать формат сообщений, которыми будут обмениваться ил и "генерал".
Ну и самое сложное - дистрибьюция этих сообщений по иловским объектам и организация их реакции на сообщения. D Иле уже есть класс Message - можно попытаться его наследовать и вклиниться в существующюю цепочку передачи сообщений.
Sexton вне форума   Ответить с цитированием
Старый 06.11.2009, 09:41   #112
Sexton
Администратор
 
Аватар для Sexton
 
Регистрация: 28.02.2007
Адрес: Выборг
Сообщений: 1,148
По умолчанию

Нашел место в коде, где колонна упирается в разрушенный мост и встает намертво.
Класс ChiefGround.java
Функция moveChiefPacked

Код:
01046             if(cantEnterIntoSegmentPacked_checkComplete(chiefSeg + 1))
01047             {
01048                 chiefAlong = roadsegment.length2D;
01049                 d = 0.0D;
01050                 break;
Если следующий сегмент дороги не проходим (а это происходит, если след. сегмент проходит по разрушенному мосту), то пройденное за тик расстояние просто ставят равное 0. В это место кода нужно добавлять запрос на новый маршрут.
Sexton вне форума   Ответить с цитированием
Старый 06.11.2009, 09:48   #113
Sexton
Администратор
 
Аватар для Sexton
 
Регистрация: 28.02.2007
Адрес: Выборг
Сообщений: 1,148
По умолчанию

Кстати есть класс ChiefManager, в нем нет кода, но он создается в классе World

Сам ОМ велел реализовать в нем управление колоннами
Sexton вне форума   Ответить с цитированием
Старый 07.11.2009, 01:43   #114
LePage
Местный
 
Регистрация: 15.06.2009
Сообщений: 114
По умолчанию

Цитата:
Сообщение от Sexton Посмотреть сообщение
F что касается создания АПИ для внешнего "генерала", то за основу можно взять код devicelink - там уже реализован код обмена данными с внешней программой. Придумать формат сообщений, которыми будут обмениваться ил и "генерал".
Ну и самое сложное - дистрибьюция этих сообщений по иловским объектам и организация их реакции на сообщения. D Иле уже есть класс Message - можно попытаться его наследовать и вклиниться в существующюю цепочку передачи сообщений.

devicelink, конечно, хорошо...
Но одолевают сомнения. В плане «безопасности». Мод то предполагается серверный. А использование такой фичи, как связь с внешним управлением, на клиенте, чисто теоретически может дать ему некоторые дополнительные возможности, в плане изменения геймплея «лично для себя».

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

з/ы/ Кроме того, devicelink, кажется UDP? Не исключена вероятность что генерал отдаст команду, а сервер пропустит ее мимо ушей. Или наоборот.
Лучше будет отдельный потоковый сокет.

Последний раз редактировалось LePage; 07.11.2009 в 01:54.
LePage вне форума   Ответить с цитированием
Старый 07.11.2009, 01:52   #115
ZloyPetrushkO
Местный
 
Регистрация: 31.05.2008
Сообщений: 1,159
По умолчанию

Цитата:
Сообщение от LePage Посмотреть сообщение
devicelink, конечно, хорошо...
Но одолевают сомнения. В плане «безопасности». Мод то предполагается серверный. А использование такой фичи, как связь с внешним управлением, на клиенте, чисто теоретически может дать ему некоторые дополнительные возможности, в плане изменения геймплея «лично для себя».

может через консоль - по старинке, или еще одну завести?
тут уж надо смотреть сначала что получиться...
я то пока сорри немного не тем занимаюсь, атмосферный мод дотачиваю...
а что такое devicelink если не секрет?
ZloyPetrushkO вне форума   Ответить с цитированием
Старый 07.11.2009, 01:58   #116
LePage
Местный
 
Регистрация: 15.06.2009
Сообщений: 114
По умолчанию

Насколько помню - это интерфейс для связи с внешними устройствами - на его базе делают устройства, типа кокпитов, со всякими, почти настоящими приборами - в общем тренажеры. Ну и используют проги, типа UDPGraf, триммер и подобные.
LePage вне форума   Ответить с цитированием
Старый 07.11.2009, 11:52   #117
Sexton
Администратор
 
Аватар для Sexton
 
Регистрация: 28.02.2007
Адрес: Выборг
Сообщений: 1,148
По умолчанию

Цитата:
Сообщение от LePage Посмотреть сообщение
devicelink, конечно, хорошо...
Но одолевают сомнения. В плане «безопасности». Мод то предполагается серверный. А использование такой фичи, как связь с внешним управлением, на клиенте, чисто теоретически может дать ему некоторые дополнительные возможности, в плане изменения геймплея «лично для себя».

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

з/ы/ Кроме того, devicelink, кажется UDP? Не исключена вероятность что генерал отдаст команду, а сервер пропустит ее мимо ушей. Или наоборот.
Лучше будет отдельный потоковый сокет.
Шанс, что сервер пропустить команду мимо ушей - никакого.
В плане безопасности - в devicelink'е уже есть код, который отключает его при сетевой игре. Почему бы его не задействовать?
Sexton вне форума   Ответить с цитированием
Старый 07.11.2009, 13:26   #118
ZloyPetrushkO
Местный
 
Регистрация: 31.05.2008
Сообщений: 1,159
По умолчанию

такс. ковыряю мод от Зути.
имхо, надо делать на его основе сразу же. там есть какая то синхрониазация. так что мб путь даже при изменении будет синхронизироваться? положение ведь синхронизируеться и т.п.


а вообще нашел в классе например ShipGeneric метод
private void LoadPath(SectFile sectfile, String s) {
ну он есть почти везде. очевидно, что он и прогружает путь(разбивает на сегменты и т.п.). найти бы что его вызывает( в каком месте) и куда передаються ети данные. думаю ето то что нужно...копаю в общем дальше тут
ZloyPetrushkO вне форума   Ответить с цитированием
Старый 07.11.2009, 14:03   #119
Sexton
Администратор
 
Аватар для Sexton
 
Регистрация: 28.02.2007
Адрес: Выборг
Сообщений: 1,148
По умолчанию

Сделай doxygen'ом документацию с диаграммами dot с CALL_GRAPH, CALLER_GRAPH - будет тебе красивые диаграммы кто кого вызывает (правда прога работать будет полдня )

LoadPath есть только в ShipGeneric и Ship, вызывается конструктором (это я про оригинальный ил)

ДА! Не забудь в доки еще исходники добавить - разбираться будет куда проще.
Sexton вне форума   Ответить с цитированием
Старый 07.11.2009, 15:31   #120
Sexton
Администратор
 
Аватар для Sexton
 
Регистрация: 28.02.2007
Адрес: Выборг
Сообщений: 1,148
По умолчанию

Цитата:
Сообщение от JGr124_boRada Посмотреть сообщение
1. Проблема с ботами после посадки
Боты после посадки заруливают на плошадки и бросают самолеты и уходят по бабам, а самолеты стоят там бесконечно. ...
Теперь боты исчезают через 1 секунду.
Тестировалось только в оффлайне. Я не знаю, что нужно чтоб оно заработало в онлайне - возможно ничего больше и не надо = просто достаточно наличия этого мода у юзера.

Если что - могу сказать где что править
Вложения
Тип файла: rar SX_DeleteLandedBots.rar (5.4 Кб, 308 просмотров)
Sexton вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 01:52. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd. Перевод: zCarot
Рейтинг@Mail.ru