Wake of Gods Forum | Форум Во Имя Богов
Новые типы почв для WoG/Era - Идеи - Printable Version

+- Wake of Gods Forum | Форум Во Имя Богов (http://wforum.heroes35.net)
+-- Forum: Русский Форум (/forumdisplay.php?fid=99)
+--- Forum: Обсуждение WoG (/forumdisplay.php?fid=69)
+--- Thread: Новые типы почв для WoG/Era - Идеи (/showthread.php?tid=5382)


Новые типы почв для WoG/Era - Идеи - Grossmaster - 18.10.2019 20:12

Я веду работу над новым ландшафтом для аддона Wake of Gods.
Название: Луг.
Почва будет призвана добавить атмосферу былины в Heroes III.

Планируемые особенности почвы:
  • Светлая гамма травы и озер
  • Берёзовые леса




Мне нужно бы найти программиста, способного расширить к-во типов почв в героях



На этом фото представлены объекты для луга

OLD
Image: WDwcE9g-itE.jpg?size=436x282&qua...type=album

Image: BU_zerWNVqE.jpg?size=414x273&qua...type=album

NEW
Image: 242412111111.png


RE: Новый тип почвы для WoG - Луг - XEPOMAHT - 18.10.2019 23:28

(18.10.2019 20:12)Grossmaster Wrote:  Я веду работу над новым ландшафтом для аддона Wake of Gods.
Название: Луг.

На первый взгляд - аналог травяного ландшафта. Лучше всего было бы, чтобы новый ландшафт визуально выделялся на фоне остальных.

(18.10.2019 20:12)Grossmaster Wrote:  - Программист, способный расширить к-во типов почв в героях

В игре такое сделать можно, а вот кто будет делать в редакторе?


RE: Новый тип почвы для WoG - Луг - Grossmaster - 19.10.2019 07:17

ХЕРОМАНТ, ландшафт будет визуально выделяться и отличаться от травяного наличием берёз, ярких цветов и светло зеленых тонов. Беспокоиться об этом не стоит. Также почва будет пока нейтральной


RE: Новый тип почвы для WoG - Луг - Macron1 - 19.10.2019 11:24

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


RE: Новый тип почвы для WoG - Луг - Bes - 01.07.2020 23:10

Grossmaster, ты не будешь этот проект выделять в отдельный мод для ERA?
вижу, что ты не забросил идею, на форуме стали появляться работы других художников. да и программисты весьма крутые и активные участвуют в жизни форума/известных проектов.
имхо, не стесняйся оживить тему, раз желание не ушло Yes


RE: Новый тип почвы для WoG - Луг - Grossmaster - 02.07.2020 07:45

Bes, Я все еще продолжаю работу над лугом. Он не будет выделен под отдельный мод, я его делаю в качестве полноценного, и самое важное, неопционального дополнения для вог 3.59


RE: Новый тип почвы для WoG - Луг - Grossmaster - 02.07.2020 07:51

Поле боя
Image: k2pRqRv-SNM.jpg


RE: Новый тип почвы для WoG - Луг - Raistlin - 02.07.2020 09:58

(02.07.2020 07:45)Grossmaster Wrote:  ...неопционального дополнения для вог 3.59
Расскажите пожалуйста об этом поподробнее)


RE: Новый тип почвы для WoG - Луг - Grossmaster - 02.07.2020 10:15

Raistlin, Имею ввиду, что луг планируется быть полноценным игровым элементом будущей версии вога, а не отключаемым модом. Слово "дополнение" было всё-таки неподходящим для этого определения.


RE: Новый тип почвы для WoG - Луг - Raistlin - 02.07.2020 10:28

Grossmaster, это понятно, мне интересно, насколько далеко Вы продвинулись, и есть ли у Вас единомышленники? Лично мне задумка нравится, единственное, что смущает, это некоторое сходство с одним из новых ландшафтов HotA...


RE: Новый тип почвы для WoG - Луг - Grossmaster - 02.07.2020 10:37

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

Луг отличается от высокогорья более тусклой гаммой, обильными грязевыми вкраплениями и песчанными проплешинами в траве, горы не будут снежными, они имеют цвет слоновой кости


RE: Новый тип почвы для WoG - Луг - Raistlin - 02.07.2020 10:46

Grossmaster, здорово, а Вы уже начали его встраивать?


RE: Новый тип почвы для WoG - Луг - Grossmaster - 02.07.2020 10:51

Нет, с кодом я не знаю, как работать

Так что сижу и отчаянно вырисовываю его Dash1


RE: Новый тип почвы для WoG - Луг - Macron1 - 02.07.2020 16:48

(02.07.2020 10:28)Raistlin Wrote:  Grossmaster, это понятно, мне интересно, насколько далеко Вы продвинулись, и есть ли у Вас единомышленники? Лично мне задумка нравится, единственное, что смущает, это некоторое сходство с одним из новых ландшафтов HotA...
Неужели Хота Крю запатентовала новый ландшафт?
Больше ландшафтов - лучше


RE: Новый тип почвы для WoG - Луг - daemon_n - 02.07.2020 18:39

мертвые земли для Некрополиса, грязь под новые замкиRolleyes


RE: Новый тип почвы для WoG - Луг - Grossmaster - 30.01.2021 10:09

Image: 242412111111.png


RE: Новые типы почв для WoG/Era - Идеи - Berserker - 30.01.2021 15:16

Прекрасный ландшафт. С каждым выпуском картинка всё более преображается в лучшую сторону.


RE: Новые типы почв для WoG/Era - Идеи - Raistlin - 30.01.2021 17:05

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

Маленький комментарий: там, где стоит значение 0xA, используется либо «меньше» либо «больше/равно».

sub_00401000 – 2 values (401014 – 0xA; 40101E – 0xA)
sub_00401370 – 2 values (40138E – 0xA; 401384 – 0xA)
sub_00410B60 – unknown (похоже есть пара мест, где используется число 8 как последний проходимый ландшафт)

Список ландшафтов:
0 - Грязь
1 - Песок
2 - Трава
3 - Снег
4 - Болото
5 - Скалы
6 - Подземелье
7 - Лава
8 - Вода
9 - Пропасть

Draw_ObjBlocks_0x4114F0 - то же, что и в sub_00410B60. Советую поглядеть, в каких случаях вызывается 404440 (TerrMaskError)

4FD470 GetTerrainOverlayTypeOfMapItem — (4FD51E - 08) ??? Возможно тоже относится сюда

Не по теме, но пусть будет:
4FD590 GetTypeOfLandModifier — в этой функции находится switch, в котором проверяются типы накладной почвы для последующего добавления бонуса. Это дело настраивается и через ERM см. BU:G
Code:
switch (GetTerrainOverlayTypeOfMapItem(this))
  {
    case 46:
      result = 1;
      break;
    case 226:
      result = 7;
      break;
    case 228:
      result = 6;
      break;
    case 229:
      result = 9;
      break;
    case 231:
      result = 8;
      break;
    default:
      result = -1;
      break;
  }

4FF280 DoGetObjectEnterance – 1 value (4FF2A2 – 0x08)

5031B0 LoadMap_SetUpRandomDwellings – 1 value ??? (503302 – 0x08)

503DD0 LoadMap_ReadObjectType – 8 мест (см. циклы do while)

sub_00504290 — тут похоже дофига проверок

sub_00504550 — тоже немало, так что пока без деталей

sub_005056B0 — такая же ситуация

505C60 AddDeleteToSquarePassible — такая же ситуация

506170 LoadMap_SetupMapItemsDrawListsForPosition - «506278 cmp eax, 8» Проверка на воду???

sub_00506570 — 1 value (5065ED – 0xA)

sub_005066D0 — 1 value (506879 – 0xA)

sub_00506E70 — 1 value (506E7C – 0xA)

Осторожно, много эмоционального удивления! Если бы я просто знал о том, что следующая сотня следующие две сотни функций существуют, то не стал бы принимать это близко к сердцу, но я не знал… Оригинальные комментарии сохранены.

"Далее идет десяток идентичных функций, смысл создания которых мне пока не ясен. Если все вы целом одно и тоже, то почему бы не использовать одну с парой логических операторов. Накрайняк ведь можно было сунуть данную проверку в какую-то отдельную функцию и не копировать ее кучу раз..."

_______________________________________________________________
Всю эту кучу надо обработать циклами, используя смещения, а лучше всего просто забыть и придумать альтернативу. Как и где данные функции используются — непонятно, но они есть, и это факт.

sub_005143C0 - 1 value (5143DA – 0xA)

sub_00514C70 - 1 value? (514D44 – 8)

sub_005168B0 - 1 value (5168BA – 0xA)

531D80 RMGMapItems_CantPlace – возможно, в данной функции тоже надо кое-что поправить

sub_005321C0 — 5322CF cmp esi, 9 — проверка на пропасть?

sub_00532370 - ?

sub_00537890 — 537D13 cmp dl, 9 — проверка на пропасть?

RMG_005492E0 — вот тут похоже есть интересное, желательно изучить внимательно. Сходу бросилось в глаза: 54998B – 0xA, но там похоже имеются проверки на воду и на что-то еще

54B320 RMG_WriteObjectPrototype – 4 values (54B4B5 – 0xA; 54B500 – 0xA; 54B51C – 0xA; 54B567 – 0xA)


RE: Новые типы почв для WoG/Era - Идеи - feanor - 30.01.2021 23:29

Я бы с другого конца делал, сделал бы hex-редактором карту с пятном одиннадцатой почвы и правил бы игру, пока она не перестанет на этой карте вылетать (сначала просто, а потом на всяких случаях типа битвы, осады, хинтов, копания, музыки и так далее)

Quote:"Далее идет десяток идентичных функций, смысл создания которых мне пока не ясен. Если все вы целом одно и тоже, то почему бы не использовать одну с парой логических операторов. Накрайняк ведь можно было сунуть данную проверку в какую-то отдельную функцию и не копировать ее кучу раз..."
Так извивы компилятора, скорее всего. Явно же какая-то автогенерация.


RE: Новые типы почв для WoG/Era - Идеи - RoseKavalier - 31.01.2021 06:44

(30.01.2021 17:05)Raistlin Wrote:  "Далее идет десяток идентичных функций, смысл создания которых мне пока не ясен. Если все вы целом одно и тоже, то почему бы не использовать одну с парой логических операторов. Накрайняк ведь можно было сунуть данную проверку в какую-то отдельную функцию и не копировать ее кучу раз..."

Static initializers for global or static variables. A lot of these are never used (no references outside initialization).
e.g.
Code:
std::bitset<10> g_Bitset = std::bitset<10>().set();



RE: Новые типы почв для WoG/Era - Идеи - Raistlin - 31.01.2021 15:09

(31.01.2021 06:44)RoseKavalier Wrote:  Static initializers for global or static variables. A lot of these are never used (no references outside initialization).
e.g.
Code:
std::bitset<10> g_Bitset = std::bitset<10>().set();
Thanks, I understood.

(30.01.2021 23:29)feanor Wrote:  Я бы с другого конца делал, сделал бы hex-редактором карту с пятном одиннадцатой почвы и правил бы игру, пока она не перестанет на этой карте вылетать (сначала просто, а потом на всяких случаях типа битвы, осады, хинтов, копания, музыки и так далее)
Спасибо за дельный совет! По началу я, честно говоря, и сам не знал, что я делаю, думал, что просто раскопаю десятка два адресов и забуду об этой теме на какое-то время...

(30.01.2021 23:29)feanor Wrote:  Так извивы компилятора, скорее всего. Явно же какая-то автогенерация.
Dash1


RE: Новые типы почв для WoG/Era - Идеи - daemon_n - 31.01.2021 16:02

Grossmaster, картина восхитительная!!!


RE: Новые типы почв для WoG/Era - Идеи - XEPOMAHT - 31.01.2021 23:00

(30.01.2021 23:29)feanor Wrote:  Я бы с другого конца делал, сделал бы hex-редактором карту с пятном одиннадцатой почвы и правил бы игру, пока она не перестанет на этой карте вылетать (сначала просто, а потом на всяких случаях типа битвы, осады, хинтов, копания, музыки и так далее)

Самое первое, что нужно сделать, (и самое трудное) - добавление новой почвы в сам редактор карт. В саму игру - не сложно (там расширяется соответствующий менеджер + весь сопутствующий ему код).