NML версия набора (обсуждаем только вопросы кода!)

Модераторы: eraserkry, Smoky555, ihim4, Wowan, Группа модераторов

Re: NML версия набора (обсуждаем только вопросы кода!)

Сообщение дворник » Чт янв 12, 2012 00:30

Последняя промежуточная версия.
+ снижена стоимость обслуживания ПС (коэф-т с 10 до 4).
+ добавлен электропоезд ЭР2 методом электросекций.

Электропоезд ЭР2 собирается электросекциями по 2 вагона, один из которых моторный. Вид вагонов меняется в зависимости от положения в составе, характеристики вес и кол-во пассажиров тоже. Если ЭР2 подцеплен к др. локомотиву, то он идёт без тяги. В зависимости от года игры и года покупки доступны разные ливреи.

Просьба оценить, что удобнее и понятнее в игре для электропоездов - конструктор ЭР1 или электросекции ЭР2.

xussr.316.grf.7z
(363.59 Кб) Скачиваний: 247
дворник
Президент
Президент
 
Сообщения: 563
Зарегистрирован: Сб дек 05, 2009 22:57

Re: NML версия набора (обсуждаем только вопросы кода!)

Сообщение Wowan » Чт янв 12, 2012 13:03

Выложу тогда последнюю вчерашнюю версию набора с обновленными значками и исправлениями вот этой и других ошибок.
Вложения
xussr.321.grf.rar
(418.7 Кб) Скачиваний: 228
Аватара пользователя
Wowan
Почетный тайкунер
Почетный тайкунер
 
Сообщения: 1383
Зарегистрирован: Вт сен 18, 2007 14:43
Откуда: трасса М1, Минск — Москва

Re: NML версия набора (обсуждаем только вопросы кода!)

Сообщение дворник » Чт янв 12, 2012 14:51

chester писал(а):Локомотивы и вагоны длиннее 0.5 клеток надо сделать сочленёнными


Они и так сочленённые. :) А вынос голов/хвостов на поворотах - это feature этого набора. Как говорится, by design.

Прилагаю последний промежуточный вариант.
+ добавлены электропоезда ЭПг, Эпр. Оба методом секций из 4-х элементов.
+ У Эпр ёмкость в пассажирах 216 вместо 217 в xls. Обусловлено применяемой технологией программирования секций, требующей чётности груза. Будет доработано.

xussr.330.grf.7z
(367.3 Кб) Скачиваний: 259


Для тех, кому интересно, как это всё сделано, прилагаю исходники набора. Сделано с использованием NML, собирается с помощью описанной здесь технологии.

http://rghost.ru/35867173
дворник
Президент
Президент
 
Сообщения: 563
Зарегистрирован: Сб дек 05, 2009 22:57

Re: NML версия набора (обсуждаем только вопросы кода!)

Сообщение дворник » Вт янв 17, 2012 22:48

Гляжу, заскучали все. :)
Прилагаю последнюю промежуточную версию.

+ множественные технологические доработки,
+ у Эпр правильная ёмкость,
+ ЭР2 реализован методом конструктора,
+ ЭР1 и ЭР2 сделаны с применением нового технологического подхода, поэтому рисуют "крестики" где ни попадя, в т.ч. в сочетании с др. локомотивами и отсутствием тяги, значок "кирпич" потерял актуальность: если в депо не видны крестики, состав можно выпустить, если нельзя - видны крестики. Чтобы изобразить кирпич, нужна сложная многоэтажная проверка, пока решил её не использовать.,
+ добавлен полувагон 12-132, в переоборудовании грузы и ливреи, сталь грузится по каждому вагону случайно из 4-х видов визуализации,
+ при несоответствии мин. версии openttd теперь будет сообщение об ошибке (было предупреждение), такое же при неиспользовании динамического пула для транспорта,
+ исправлены найденные ошибки.

Напоминаю, минимальная версия openttd - trunk 23744. Лучше последняя, недавно там работу с ECS починили. Хоть прямо прописывай её в набор в качестве минимальной. :)

xussr.359.grf.7z
(386.94 Кб) Скачиваний: 240
дворник
Президент
Президент
 
Сообщения: 563
Зарегистрирован: Сб дек 05, 2009 22:57

Re: NML версия набора (обсуждаем только вопросы кода!)

Сообщение George » Ср янв 18, 2012 01:23

дворник писал(а):Гляжу, заскучали все. :)
+ ЭР2 реализован методом конструктора,
Попробовал собрать ... это песня, учитывая, что прицепные вагоны где-то в конце.
в общем, повторюсь.
делать надо секциями, а прицепные вагоны (где они вагоны, а не в составе секции), делать локомотивами и ставить мощность в 0 через CB.
Аватара пользователя
George
Почетный тайкунер
Почетный тайкунер
 
Сообщения: 1384
Зарегистрирован: Пн сен 20, 2004 12:02
Откуда: SPb, Russia

Re: NML версия набора (обсуждаем только вопросы кода!)

Сообщение дворник » Ср янв 18, 2012 10:57

Попробую по-аргументировать.

Набор позиционируется приверженным реализму. В реальности у нас составы собираются из вагонов, и всё расцепляется. Вроде бы. Соответственно, больший реализм - это наличие большого парка вагонов и локомотивов в меню покупки. Облегчить ориентирование игрока в такой базе данных мы можем а) значками поверх вида ПС, б) надписями в пределах 2--3 строк текста внизу, в) цветом текста. Большего openttd не позволяет.
Чтобы вызвать у игрока психомоторную ассоциацию, я назвал это конструктором. Типа, сделай сам. Точнее, собери. И да, требуется некоторое время на понимание и привыкание, как и везде.

Второй момент - почему я не делаю прицепные вагоны локомотивами. Дело в том, что в openttd признак наличия мощности разбивает список ПС на 2 части: локомотивы могут возглавлять составы, покидать депо, иметь функции проверки запуска/останова, присоединения к нему в состав, заменять/подменять ливреи единиц в составе и многое др. Вагоны в этих возможностях ограничены, но главное - они не могут возглавлять составы.
Чтобы обеспечить логику сцепки и пуска мне приходится на каждый локомотив вешать функцию поведения и не одну, при этом в GRF нет подпрограмм, поэтому приходится делать полную индивидуализацию или прибегать к макросам с параметрами, если что-то можно объединить.

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

Как компромисс, можно заметить, что электро- и дизель- поезда расположены примерно в середине: головные и моторные ближе к концу списка локомотивов, прицепные ближе к началу списка вагонов.

По хорошему, локомотивом д.б. только те элементы, что могут водить поезд. Т.е. головные вагоны только в случае ЭР1/ЭР2. Остальные - просто вагоны, бесправные. :) И тягу давать через override моторных вагонов, но у меня оно что-то не получилось, и я наделал моторных локомотивов. Надо будет ещё попробовать избавиться от их локомотивных внутренностей.

Фишка в том, что в модели openttd локомотив должен давать тягу и должен стоять впереди, а вагон как бы нет. И функции проверок на это ориентированы, что запуск из депо, что проверка сцепки. Они вызываются только для локомотива, именно того, кто стоит первым в составе. Локомотив в опене один, вначале. Остальные все вагоны. :)
дворник
Президент
Президент
 
Сообщения: 563
Зарегистрирован: Сб дек 05, 2009 22:57

Re: NML версия набора (обсуждаем только вопросы кода!)

Сообщение George » Ср янв 18, 2012 11:14

дворник писал(а):при этом в GRF нет подпрограмм
Есть
Аватара пользователя
George
Почетный тайкунер
Почетный тайкунер
 
Сообщения: 1384
Зарегистрирован: Пн сен 20, 2004 12:02
Откуда: SPb, Russia

Re: NML версия набора (обсуждаем только вопросы кода!)

Сообщение George » Ср янв 18, 2012 11:17

дворник писал(а):Фишка в том, что в модели openttd локомотив должен давать тягу и должен стоять впереди, а вагон как бы нет
секция Г+М в эти условия прекрасно вписывается.
Override не для нас.
Аватара пользователя
George
Почетный тайкунер
Почетный тайкунер
 
Сообщения: 1384
Зарегистрирован: Пн сен 20, 2004 12:02
Откуда: SPb, Russia

Re: NML версия набора (обсуждаем только вопросы кода!)

Сообщение дворник » Ср янв 18, 2012 11:38

George писал(а):
дворник писал(а):при этом в GRF нет подпрограмм
Есть


Опа! :) Покажешь?
дворник
Президент
Президент
 
Сообщения: 563
Зарегистрирован: Сб дек 05, 2009 22:57

Re: NML версия набора (обсуждаем только вопросы кода!)

Сообщение George » Ср янв 18, 2012 11:54

дворник писал(а):
George писал(а):
дворник писал(а):при этом в GRF нет подпрограмм
Есть

Опа! :) Покажешь?
http://newgrf-specs.tt-wiki.net/wiki/VarAction2Advanced#Using_procedures
Аватара пользователя
George
Почетный тайкунер
Почетный тайкунер
 
Сообщения: 1384
Зарегистрирован: Пн сен 20, 2004 12:02
Откуда: SPb, Russia

Re: NML версия набора (обсуждаем только вопросы кода!)

Сообщение дворник » Ср янв 18, 2012 12:49

George писал(а):секция Г+М в эти условия прекрасно вписывается.


Каким образом? Если Г+М представляет собой сцепку из двух элементов, один из которых должен стоять впереди и только там, а др. должен давать тягу, и только он, и только если впереди стоит первый.

Локомотив один, его позиция исключительно в начале состава. Все остальные - вагоны. Да, дают мощность, вес, ёмкость груза и что-то ещё, но они вагоны бесправные шопипец. :)

С раздельными элементами всё как-то более очевидней. Не?

George писал(а):Override не для нас.


Почему? Это родной для опена путь, вроде именно так задумано позволить части вагонов с определёнными ID давать тягу.

--
За наводку на вызов подпрограмм спасибо, надо будет проверить, как это работает. Что-то навскидку не нашёл примеров обращения к 0x7E на NML. В FIRS есть какой-то одиночный блок с абсолютными цифрами. Интересно же подставить метку, используемую в блоке switch(), определённом ранее и получить результат по вызову return.
дворник
Президент
Президент
 
Сообщения: 563
Зарегистрирован: Сб дек 05, 2009 22:57

Re: NML версия набора (обсуждаем только вопросы кода!)

Сообщение George » Ср янв 18, 2012 13:32

дворник писал(а):
George писал(а):секция Г+М в эти условия прекрасно вписывается.

Каким образом? Если Г+М представляет собой сцепку из двух элементов,
в терминах GRF - одного. Именно это я понимаю под "секцией". Это articulated vehicle, визуально из 2-х частей (фактически из 4 или 6, не уточнял, как ты вагоны кодишь), характеристики совокупные (вместимость, масса и т.п., тяга от моторного вагона).

дворник писал(а):один из которых должен стоять впереди и только там, а др. должен давать тягу, и только он, и только если впереди стоит первый.
Локомотив один,
И этот локомтив - (Г+М)

дворник писал(а):С раздельными элементами всё как-то более очевидней. Не?
Нет. Электричку собирать - особый изврат :D

дворник писал(а):
George писал(а):Override не для нас.
Почему? Это родной для опена путь
Для TTDP. Для опена он рудмент в наследство от патча. Для опена правильный путь - CB 36
Аватара пользователя
George
Почетный тайкунер
Почетный тайкунер
 
Сообщения: 1384
Зарегистрирован: Пн сен 20, 2004 12:02
Откуда: SPb, Russia

Re: NML версия набора (обсуждаем только вопросы кода!)

Сообщение Wowan » Ср янв 18, 2012 13:59

А мне нравится конструктор. Но только к нему обязательно надо реализовать все три типа вагонов рядом. Неудобно, что моторные, головные и прицепные разросаны по меню покупки. Насколько понимаю, использование CB 36 c обнулением мощности как раз исправляет эту проблему.
Аватара пользователя
Wowan
Почетный тайкунер
Почетный тайкунер
 
Сообщения: 1383
Зарегистрирован: Вт сен 18, 2007 14:43
Откуда: трасса М1, Минск — Москва

Re: NML версия набора (обсуждаем только вопросы кода!)

Сообщение дворник » Ср янв 18, 2012 14:02

George писал(а):в терминах GRF - одного. Именно это я понимаю под "секцией". Это articulated vehicle, визуально из 2-х частей (фактически из 4 или 6, не уточнял, как ты вагоны кодишь), характеристики совокупные (вместимость, масса и т.п., тяга от моторного вагона).


Большие вагоны кодируются MU с невидимыми трейлерами нужного размера. Рисовал когда-то рисунок, в старой теме про NML.

А ты помнишь, что для сочленёнок характеристики членов не суммируются и не учитываются, кроме ёмкости груза? Т.е. чтобы их сделать совокупными надо всё самому совокупить, а затем приписать этому самому articulated vehicle.

George писал(а):И этот локомтив - (Г+М)

Гут. И сколько таких локомотивов в составе типичного ЭР1 на 8 вагонов?

George писал(а):Для опена правильный путь - CB 36

Почему-то у меня он сразу пошёл, а вот с override не заладилось. М.б. потому что вагоны и локомотивы у меня MU.
дворник
Президент
Президент
 
Сообщения: 563
Зарегистрирован: Сб дек 05, 2009 22:57

Re: NML версия набора (обсуждаем только вопросы кода!)

Сообщение дворник » Ср янв 18, 2012 14:07

Wowan писал(а):Неудобно, что моторные, головные и прицепные разросаны по меню покупки.


А я считаю, что это ограничение системное. Потому что в опене выделено всего 2-е группы в списке: локомотивы и вагоны. В то время как в жизни есть emu/dmu, которым бы неплохо бы выделить третью группу в этом списке, чтобы всё что к ним относится, в меню покупки было единообразно в третьем месте.
Учитывая наличие блока sort() необходимости делить на вагоны и локомотивы вообще нет. И это было бы тоже неплохо.

Тем не менее, системное ограничение говорит, что мальчики вверху, а девочки внизу. И кирдык, любая попытка объединить разделённое выглядит кривокосой.
дворник
Президент
Президент
 
Сообщения: 563
Зарегистрирован: Сб дек 05, 2009 22:57

Пред.След.

Вернуться в xUSSR Set

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7