Wake of Gods Forum | Форум Во Имя Богов
Замена объектов при WoG-ификации - Printable Version

+- Wake of Gods Forum | Форум Во Имя Богов (http://wforum.heroes35.net)
+-- Forum: Герои Меча и Магии 3.5 WoG/ERA (/forumdisplay.php?fid=99)
+--- Forum: Моды (/forumdisplay.php?fid=104)
+---- Forum: Теория, идеи, обсуждение (/forumdisplay.php?fid=184)
+---- Thread: Замена объектов при WoG-ификации (/showthread.php?tid=5746)


Замена объектов при WoG-ификации - MOP - 21.08.2009 20:22

Давненько интересовал один вопрос...
Замена объектов во время вогификации уже достала своей тормознутостью. Поэтому я решил обмануть слегка генератор случайных карт и придать свойства стандартному объекту без входа - кратеру (118/0), вернее, одной из его разновидностей. Объекты без входа не ищутся через ERM, у них не работает ни триггер, ни пост-триггер. Ладно, ерунда. Делаем вход через ObjEditor. Если поставить на карту в редакторе, то объект можно найти через ERM, а там и задать ему другой тип и подтип, чтобы работал OB. Но когда генерируешь рандомку, объект всё равно получается БЕЗ ВХОДА.
То же самое с городами. Проходимость их не поддаётся изменению.
Где тут кроется секрет?


RE: Обсуждение - обо всём - MOP - 25.08.2009 12:39

(25.08.2009 10:45)GrayFace Wrote:  Попробуй поменять её в ZAOBJTS.TXT.
Спасибо, уже давно разобрался. 4 Просто забыл про этот текстовик - упоминается он редко.


Замена объектов при WoG-ификации - Ivor - 11.03.2014 12:53

В процессе игры на богатом шаблоне jebus cross заметил, что объект артефактор (artificer) заменяет слишком много полезных объектов, и вообще, его слишком дохрена, хотя по логике нужно, чтобы было не больше одного на зону.

Предлагаю изменить скрипт вогификации, чтобы он заменял только объекты, встречающиеся только в единственном экземпляре на зону:



RE: Ошибки, баги и недочёты WoG 3.58f - Ivor - 11.03.2014 15:08

Да и в целом скрипт замены объектов кривоват. В одну группу замены входят явно неравноценные объекты, с весами от 500 (святилище с заклинанием 1го уровня) до 2500 (мельница)

Заметил только сейчас, так как не использую 90% воговских объектов


RE: Ошибки, баги и недочёты WoG 3.58f - Algor - 11.03.2014 16:24

(11.03.2014 12:53)Ivor Wrote:  Предлагаю изменить скрипт вогификации, чтобы он заменял только объекты, встречающиеся только в единственном экземпляре на зону
Да, ВоГ'овскую замену объектов по хорошем нужно хоронить совсем - там слишком много моментов дисбалансирующих карту напрочь, но заменять объекты уникальные в локации совсем не дело - их и так мало, а тут совсем исчезнут под массой новых. Заменять нужно часто встречающиеся и некритичные объекты (типа золота/свитков/мельниц и пр.), но для новых объектов ставить не шанс замены (напр. каждый 5й свиток), а плотность/количество на карте (напр. 2 шт на площадь S-карты). А там уже выбираем 2 случайных свитка и заменяем. Можно добавить условие на удаленность от аналогичного объекта (напр. не менее 20% линейного размера карты), но это уже детали.

Тех же artificer'ов больше 1-го на M-ку (72x72) точно не нужно. Соотв. для S-ки (36х36) - 1/4 (25% шанс появления на карте), а для XL+U (144x144x2) - 8 шт.


RE: Ошибки, баги и недочёты WoG 3.58f - Ivor - 11.03.2014 16:44

Для фиксов - может быть. Для рандомок лучше ориентироваться на тип зоны. Те же ремесленники/artificer размещать только в трежерках, по одному на зону.

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

В целом - да, бродила мысль, что надо просто генерацию этих объектов вынести в отдельный мод. Замена графики от Valery была бы тут очень в тему


RE: Ошибки, баги и недочёты WoG 3.58f - gamecreator - 11.03.2014 17:57

(11.03.2014 16:44)Ivor Wrote:  Для рандомок лучше ориентироваться на тип зоны.
Для этого надо уже возиться с генератором, что исключает опциональность в нынешнем виде.


RE: Ошибки, баги и недочёты WoG 3.58f - Algor - 11.03.2014 19:11

(11.03.2014 16:44)Ivor Wrote:  Посмотри внимательно на список: это банальные повышалки морали/удачи. Если одну из них заменить, считаю, хуже не будет.

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

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

Наглядный пример: сейчас логова горынычей/пожаров/кошмаров в стартовых локациях просто кучами спавнятся. Это потому, что они заменяют Сады Лепрекона, который тоже не сильно ценный объект.


RE: Ошибки, баги и недочёты WoG 3.58f - Ivor - 11.03.2014 20:22

(11.03.2014 19:11)Algor Wrote:  Я играю с заменой объектов и на рандомках очень редко наблюдаю жертвенники и форты. Они и так объекты довольно редкие а тут вообще экзотическими стали. Картографы тоже, но я их все равно не посещал никогда.
А, их просто забыл убрать из списка. Так-то уникальных объектов больше
Магический Источник: 1.
Колодец: 1.
Обсерватория Красного Дерева: 1.
Огненный Столп: 1.
Конюшни: 1.
Рынок: 1.
Фабрика Военной Техники: 1.
Их заменять не стоит, имхо.

(11.03.2014 19:11)Algor Wrote:  Просто объектов уникальных для локации на карте гораздо меньше, чем новых объектов, которые на их место хотелось бы поставить, так что все подряд их заменять не дело.
Про все подряд я и не говорил. Из воговских объектов есть несколько вида "один есть - и ладно". Навскидку - упоминавшийся ремесленник и изумрудная башня, где монстров можно улучшить. Остальные - как раз вида "чем больше - тем лучше." и заменять уникальные объекты на них бессмысленно.


RE: Ошибки, баги и недочёты WoG 3.58f - Ivor - 12.03.2014 16:14

Таблица замены объектов


RE: Ваши вопросы по ERM-скриптам - Ivor - 12.03.2014 16:18

Вот смотрю стандартный скрипт 78 wog - wogify
Code:
!!UN:P13/?y3; [check if Tavern Card Game script is enabled]
!!VRy3&y21=0:S0; [set y3 to 0 if Replace Objects isn't enabled]
!!VRy20&y3=1:+1; [add one to object counter]
!!VRy11&y3=1:Sy20 *7; [number to add to index variable]
!!VRy10&y3=1:S593 +y11; [new index number]
!!VRvy10&y3=1:C95/ 0/2/-1/0/1/0; [tavern]


!!FU671&y20>0:P16/4/2/y20/70; [replace 70% of medusa stores]
!!FU671&y20>0:P16/0/2/y20/70; [replace 70% of cyclops stockpiles]
!!FU671&y20>0:P16/5/2/y20/70; [replace 70% of naga banks]
!!FU671&y20>0:P96/-1/2/y20/75; [replace 75% of temples]
!!FU671&y20>0:P106/-1/2/y20/75; [replace 75% of war machine factories]
!!FU671&y20>0:P28/-1/2/y20/75; [replace 75% of fairy rings]
!!FU671&y20>0:P14/-1/2/y20/80; [replace 80% of swan ponds]
Я правильно понимаю, что таверна с карточной игрой не заменяет обычные таверны, а заменяет перечисленные банки и повышалки? И что такая же ситуация со командирским святилищем (Commander Sanctuary)?


RE: Ваши вопросы по ERM-скриптам - Algor - 12.03.2014 18:11

(12.03.2014 16:18)Ivor Wrote:  Я правильно понимаю, что таверна с карточной игрой не заменяет обычные таверны, а заменяет перечисленные банки и повышалки? И что такая же ситуация со командирским святилищем (Commander Sanctuary)?
Игра в таверне и святилище командира используют стандартные объекты "таверна" и "святилище".
В замене объектов, если мне не изменяет, включение этих опций влияет только на частоту/шансы замены таверны/святилища.


RE: Вопросы по моддингу - Heromant - 08.03.2016 16:43

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


RE: Вопросы по моддингу - feanor - 08.03.2016 17:48

Да и да.


RE: Вопросы по моддингу - Heromant - 08.03.2016 19:05

(08.03.2016 17:48)feanor Wrote:  Да и да.
Никто даже не пытался с этим бороться посредством скриптов? То есть условие на замену навешивать. А в классических компаниях, как я понимаю, вообще отключать замену артефактов жизненно необходимо.
Можно ли в скрипте вогификации проверять, является ли в карте данный артефакт случайным n-ного уровня, либо четко определенным разработчиком карты? Может, если это можно определить, имеет смысл переписать скрипт вогификации, чтобы он заменял именно процент от случайных, с точки зрения составителя карты, артов на новые воговские?


RE: Вопросы по моддингу - Algor - 08.03.2016 20:52

С этим не надо бороться, замену объектов надо просто переписать.
С учетом параметров территории, ограничениями по количеству на карту, привязкой к размерам карты, выносом всех параметров в ini и прочими вещами.
Я когда-то обдумывал, но руки так и не дошли.


RE: Вопросы по моддингу - Heromant - 08.03.2016 23:50

(08.03.2016 20:52)Algor Wrote:  С этим не надо бороться, замену объектов надо просто переписать.
Как то слишком сложно. Ты имеешь в виду, что лучше не заменять спроектированные картостроителем лежащие на земле артефакты, а разбрасывать новые по определённому правилу?
Доступна ли на этапе вогификации карты информация о том, конкретный ли какой-то определённый артефакт, чисто случайный либо случайный в рамках соответствующего уровня?
И ещё, по поводу заданий по по поиску артефактов в хижинах провидца:
78 wog - wogify.erm
Отсюда видно, что как раз таки те арты, которые провидцу нужно принести не заменяются.


RE: Вопросы по моддингу - gamecreator - 10.03.2016 17:16

(08.03.2016 23:50)Heromant Wrote:  Отсюда видно, что как раз таки те арты, которые провидцу нужно принести не заменяются.
Нет, в комментарии написано иначе.


RE: Вопросы по моддингу - feanor - 10.03.2016 18:22

Quote:С этим не надо бороться, замену объектов надо просто переписать.
С учетом параметров территории, ограничениями по количеству на карту, привязкой к размерам карты, выносом всех параметров в ini и прочими вещами.
Я когда-то обдумывал, но руки так и не дошли.
..и переписать не на ERM, а встроить в стандартные процедуры.
Артов, существ, объектов.


RE: Вопросы по моддингу - Algor - 11.03.2016 00:47

Встроить в стандартные процедуры (как в ХотА) это конечно хороший вариант, особенно если он позволит динамически (wog-options? *.ini?) менять наборы объектов. Вот не хочу я, например, чтобы из всего нового ассортимента появлялись хижины старьевщика и эмеральд таверы. Или хочу, чтобы жилища 8го уровня появлялись в 2 раза реже, чем по-умолчанию. Или не более одного каждого вида на карту...

Можно технически такое реализовать при помощи "стандартных процедур"?

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


RE: Разные вопросы - Ivor - 16.01.2020 02:06

(18.12.2019 16:29)Algor Wrote:  имхо, замену объектов надо просто переписать заново и в другом ключе. Но новое видение по данному вопросу у меня так и не созрело в готовое решение.
Как минимум, считаю, надо пересмотреть перечень типов заменяемых объектов.

Quote:Школы Колдовства могут заменять что-либо из этого: Тайники Бесов (ценность 5000), Обсерватории Грифонов (2000), Флаги Единства (100), Башни Марлетто (1500)
Ну бред же

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


RE: Разные вопросы - feanor - 22.01.2020 12:44

А что, еще никто не запилил врезку в сам рмгшный генератор объектов?


RE: Разные вопросы - Algor - 22.01.2020 13:40

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


RE: Разные вопросы - XEPOMAHT - 22.01.2020 15:52

(22.01.2020 12:44)feanor Wrote:  А что, еще никто не запилил врезку в сам рмгшный генератор объектов?

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


RE: Разные вопросы - feanor - 22.01.2020 17:23

(22.01.2020 13:40)Algor Wrote:  feanor, erm же начинает работать после генерации, когда уже поздно выбирать что на что и в каком кол-ве менять.
Зачем ерм какой ерм.
Конфиги на объекты (ценности, частоты, бла, бла, бла), каждый воговский объект - отдельный мод.


RE: Разные вопросы - igrik - 22.01.2020 17:39

(22.01.2020 12:44)feanor Wrote:  А что, еще никто не запилил врезку в сам рмгшный генератор объектов?
Не. Я не лез ещё в генератор.
Но вот на handbookhmm чел уже глубоко полез в генерацию (правда дорог, а не объектов). И это для SoD.
И еще один момент: он пишет через заголовочники RoseKavalier


RE: Разные вопросы - Algor - 22.01.2020 23:24

(22.01.2020 17:23)feanor Wrote:  каждый воговский объект - отдельный мод.
Хм... несмотря на кажущиеся неудобство/непривычность, вполне себе хороший подход.


RE: Разные вопросы - XEPOMAHT - 23.01.2020 00:34

(22.01.2020 17:23)feanor Wrote:  Конфиги на объекты (ценности, частоты, бла, бла, бла)

Вот пример от одного типа пандорки, по сути там эта табличка потом загоняется в стек при вызове функции, заполняющей зону объектами:

mov dword ptr [eax+4], 6 - тип объекта
mov [eax+8], edi - возможно поддтип, обычно там ноль
mov dword ptr [eax+0Ch], 1770h - ценность максим.
mov [eax+10h], ebx - частота
mov dword ptr [eax], offset RMGObjGenPandoraExp_VTable - адрес функции, ставящей объект
mov dword ptr [eax+14h], 1388h - ценность мин.


Соответственно, если хотим ставить новый объект на карту, то табличку нужно будет дополнять новыми строками (т.е. ставить перехват в самый конец функции). Значения стандартных объектов можно менять обычным бинарным патчем.

(22.01.2020 17:39)igrik Wrote:  И еще один момент: он пишет через заголовочники RoseKavalier

Чем плохи те, что утекли в сеть давным давно?


И добрая половина утекших имён RMG-функций сами знаете откуда вполне помогает ориентироваться в коде по сравнению с тем, что было в древней воговской базе.


RE: Разные вопросы - igrik - 23.01.2020 02:05

(23.01.2020 00:34)XEPOMAHT Wrote:  
(22.01.2020 17:39)igrik Wrote:  И еще один момент: он пишет через заголовочники RoseKavalier
Чем плохи те, что утекли в сеть давным давно?
Я не сказал, что те плохи.
Я сказал что человек пишет через заголовочники RoseKavalier.
Ну и для полноты картины обозначу, что заголовочники RoseKavalier намного полнее, обширнее, углублёнее, и выполнены с более "программистским подходом"


RE: Обсуждение - обо всём - Ivor - 12.08.2020 15:20

// перенесено сюда, ибо по контексту обсуждения таки вновь пришли к сабжу темы

Поиграл тут. Осознал, что рядом объектов на карте по разным причинам почти никогда не пользуюсь. Посмотрел рандомки, получился такой перечень:
  • Таверна
  • Гильдия воров
  • Гильдия воров заснеженная
  • Тайник бесов
  • Склад циклопов
  • Святыня магического воплощения
  • Святыня магической мысли
  • Картограф
  • Школа войны
  • Святилище

В связи с этим появился вопрос: не было модов, делающих перечисленные объекты более значимыми?
Например, чтобы в городских тавернах появлялись герои только этой расы, а остальные - только во внешних тавернах?
Про святыни маны из ES знаю. Их идея как раз и появилась в попытках как-то задействовать малополезные объекты для исправления некоторых неудобств игры.


RE: Обсуждение - обо всём - daemon_n - 12.08.2020 17:30

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


RE: Обсуждение - обо всём - Bes - 12.08.2020 18:26

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


RE: Обсуждение - обо всём - Ivor - 12.08.2020 19:32

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


RE: Обсуждение - обо всём - daemon_n - 12.08.2020 19:47

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


RE: Обсуждение - обо всём - wessonsm - 12.08.2020 20:30

Я тоже задавался вопросом о более равномерном размещении объектов, так как при вогификации часто получается переизбыток одних объектов и недостаток других.
И не только при вогификации, стандартный ГСК тоже не безгрешен.
Здесь сразу несколько сложностей возникает.
Например, можно напрямую измерять расстояние между одинаковыми объектами, и не ставить объект, если расстояние слишком маленькое.
Но это сильно утяжелит скрипт.
Можно даже попытаться как-то определять принадлежность разных точек карты к одной зоне, но опять таки, вряд ли алгоритм будет простым.


RE: Обсуждение - обо всём - XEPOMAHT - 12.08.2020 20:34

(12.08.2020 19:47)daemon_n Wrote:  Вот если бы вогификацию можно было делать по пути генерации карты - от зоны к зоне, зная, каких объектов слишком много. Пусть это будет работать только на случайных картах. Тогда игра измениться в лучшую сторону процентов на 200

Вогификация - костыли, которые давно пора отправить на свалку истории. Лучше исправить сам генератор, заставив генерироваться объекты как нужно моддеру.


RE: Обсуждение - обо всём - daemon_n - 12.08.2020 20:41

XEPOMAHT, wessonsm, данные проблемы успешно решили хота Крю, если это все решается языком С, значит, осталось найти заинтересованного (оплаченного) программиста, если с нами не поделятся, конечно. Что самое интересное, мне кажется, что здесь вопрос не только в исключительности их разработок, но и в монополии на лицо героев...


RE: Обсуждение - обо всём - Ivor - 15.08.2020 22:56

(12.08.2020 20:34)XEPOMAHT Wrote:  Вогификация - костыли, которые давно пора отправить на свалку истории. Лучше исправить сам генератор, заставив генерироваться объекты как нужно моддеру.
Конечно лучше. И ты, разумеется, уже можешь это сделать?


RE: Обсуждение - обо всём - XEPOMAHT - 16.08.2020 00:41

(15.08.2020 22:56)Ivor Wrote:  И ты, разумеется, уже можешь это сделать?

Могу. Функцию случайной генерации можно разобрать и изменить.