Wake of Gods Forum | Форум Во Имя Богов
Вопросы по моддингу - Printable Version

+- Wake of Gods Forum | Форум Во Имя Богов (http://wforum.heroes35.net)
+-- Forum: Герои Меча и Магии 3.5 WoG/ERA (/forumdisplay.php?fid=99)
+--- Forum: Моды (/forumdisplay.php?fid=104)
+--- Thread: Вопросы по моддингу (/showthread.php?tid=4413)


Вопросы по моддингу - major - 24.03.2009 21:53

Берс, можешь добавить еще одно исправление в EXE Builder для TE++? Нашел баг для ТЕ - не работает кнопка H для переключения героев.
Нашел решение, по адресу 009CE9
надо заменить

JMP 00009F32
OR EAX,69CCFC

на

TEST DL,DL
JNZ SHORT 00009D63
MOV ECX,DWORD PTR DS:[69CCFC]


RE: ВоГовский флейм - Berserker - 25.03.2009 00:29

Это не баг. Слава отрубил сие из-за того, что в Героях есть баг, который позволяет через эту кнопку получать какую-то запретную инфу в мульте. Надо спросить его самого или Хорна. Хотя для сингла может быть стоит вернуть.


RE: ВоГовский флейм - hippocamus - 25.03.2009 01:45

Конечно стоит.
Кстати, а почему не листаются страницы в нижнем правом углу в ТЕ? Или это только у меня такой баг?


RE: ВоГовский флейм - Berserker - 25.03.2009 04:54

Не проверял. Наверное, тоже отрубили. Отрубили и листание артов в Торговце Артами (причём там появился новый баг). Нужно как-нибудь этими багами всерьёз заняться.


RE: ВоГовский флейм - asm - 25.03.2009 10:53

(25.03.2009 01:45)hippocamus Wrote:  Конечно стоит.
Лучше бы определять сетевая или нет игра и если сетевая, то отключать, а что можно сделать то я тоже не помню.

(25.03.2009 01:45)hippocamus Wrote:  Кстати, а почему не листаются страницы в нижнем правом углу в ТЕ? Или это только у меня такой баг?
Тоже отключено, по причине, что когда листаешь в чужой ход, то показывает информацию соперника, а не свою!

(25.03.2009 04:54)Berserker Wrote:  Отрубили и листание артов в Торговце Артами (причём там появился новый баг). Нужно как-нибудь этими багами всерьёз заняться.
Отрубили, из-за того что можно продать артефакт не по своей цене:
Кладёшь дорогой арт в рюкзак например, за 12000, а рядом много ссвитков. Скролишь и свитки начинают стоить по 12000.


RE: ВоГовский флейм - Berserker - 25.03.2009 18:40

Да, а теперь оставляешь три арта в слотах 2..4 и продаёшь их бесконечно. Они не исчезают.


RE: ВоГовский флейм - major - 25.03.2009 19:41

интересно.
особенно мне последнее понравилось.


RE: ВоГовский флейм - hippocamus - 26.03.2009 12:54

Считаю, что исправлять можно и надо, но отрубать привычные в игре функции - sukssss.


Новые Генераторы и Банки существ - major - 05.04.2009 19:08

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


RE: Новые Генераторы и Банки существ - Flashback - 05.04.2009 19:24

(05.04.2009 19:08)major Wrote:  Собственно, интересует вопрос, как можно добавить новый генератор или банк существ? Точнее, как их зарегистрировать в ехе (нанимаемые существа, охрана, вознаграждения)?

в ВоГ 3.58 есть же банк существ, а это не в лоде записано?


RE: Новые Генераторы и Банки существ - major - 05.04.2009 22:39

(05.04.2009 19:24)Flashback Wrote:  в ВоГ 3.58 есть же банк существ, а это не в лоде записано?
Ну да, есть такой ресивер. Но я хочу сделать так, чтоб его из редактора на карту поставил - и все.
Добавил в ZEOBJTS.TXT новый банк, в редакторе он есть. И на карте есть. Прописал его в ZCRBANK.TXT. Через ЕРМ поставил стражу и награду. И все было бы отлично, но вот имя у него не определяется (пустое), хотя в ZCRBANK.TXT оно есть и редактор его читает. Что можно еще сделать не через ЕРМ?
А с генератором - так вообще туши свет. Таких глюков я в жизни не видел...
Посоветуйте что-нибудь...


RE: Новые Генераторы и Банки существ - hippocamus - 07.04.2009 22:11

(05.04.2009 22:39)major Wrote:  
(05.04.2009 19:24)Flashback Wrote:  в ВоГ 3.58 есть же банк существ, а это не в лоде записано?
Ну да, есть такой ресивер. Но я хочу сделать так, чтоб его из редактора на карту поставил - и все.
Добавил в ZEOBJTS.TXT новый банк, в редакторе он есть. И на карте есть. Прописал его в ZCRBANK.TXT. Через ЕРМ поставил стражу и награду. И все было бы отлично, но вот имя у него не определяется (пустое), хотя в ZCRBANK.TXT оно есть и редактор его читает. Что можно еще сделать не через ЕРМ?
А с генератором - так вообще туши свет. Таких глюков я в жизни не видел...
Посоветуйте что-нибудь...

Пробовали.
Если сделать, как говоришь ты - то банк охраняет 7 пачек Копейщиков по 0 в каждой, со скоростью 1.
При выносе банка игра громко матерится и вылетает.

Исправлено расширением цикла в экзешнике.


RE: Новые Генераторы и Банки существ - major - 08.04.2009 21:45

(07.04.2009 22:11)hippocamus Wrote:  Если сделать, как говоришь ты - то банк охраняет 7 пачек Копейщиков по 0 в каждой, со скоростью 1.
При выносе банка игра громко матерится и вылетает.

Исправлено расширением цикла в экзешнике.

Гиппо, не поделишься инфой, где циклы находятся. Я нашел только в одном месте.


RE: Новые Генераторы и Банки существ - hippocamus - 11.04.2009 01:25

(08.04.2009 21:45)major Wrote:  Гиппо, не поделишься инфой, где циклы находятся. Я нашел только в одном месте.

Я не умею трассировать код. Bad
ЗЫ. В случае с банками - там не только цикл, там массив расширять нужно.


Вопросы по моддингу - Berserker - 04.12.2009 19:43

SAG Wrote:Друзья, прошу помочь кто чем может...
Задача 1:
вклиниться в функцию, которая пересчитывает выпадение морали - мне нужно в начале раунда получить точный прогноз по всем юнитам и отобразить его игрокам.
Задача 2:
получить событие "приход сообщения от другого игрока"
Задача 3:
получить управление длительностью отображения сообщения чата. по умолчанию 20 секунд, но я хотел бы динамически это менять

кто может реализовать?
Какие деф и wav у морали? Её можно будет выключить через бинарный патч, а уж как ты захочешь её эмулировать - другой вопрос. В Эре есть событие: Кто_Сейчас_Ходит, в ЕРМ есть проигрывание анимации и звука.


RE: Просьбы по реверс инжинирингу - SAG - 04.12.2009 20:09

(04.12.2009 19:43)Berserker Wrote:  в ЕРМ есть проигрывание анимации и звука.
про звук знаю..но анимация? можно проиграть произвольный деф в битве?


RE: Просьбы по реверс инжинирингу - Berserker - 04.12.2009 23:04

Нет, но мораль там есть, насколько я помню.


RE: Просьбы по реверс инжинирингу - SAG - 05.12.2009 13:29

где там? ты хочешь предложить эмулировать мораль на ERM без анимации?


RE: Просьбы по реверс инжинирингу - Berserker - 05.12.2009 14:25

BM:V


RE: Просьбы по реверс инжинирингу - SAG - 05.12.2009 18:49

(05.12.2009 14:25)Berserker Wrote:  BM:V
спасибо, не знал!
а есть команда упраления юнитом? т.е. если он уже отходил то как принудительно его активировать (эмуляция морали)?


RE: Просьбы по реверс инжинирингу - Berserker - 05.12.2009 19:15

Quote:В Эре есть событие: Кто_Сейчас_Ходит
Читаем сквозь строки? Sm

Code:
77006 - Бой: кто ходит?
Определить, какой стек ходит сейчас.
Параметры (2): Сторона (0 - левая, 1 - правая) / Номер стека (0..41)

Пример:
!?FU77006;
!!SN:X0/0; только 1-ый отряд левого игрока будет ходить в бою.



RE: Просьбы по реверс инжинирингу - SAG - 05.12.2009 20:01

спасибо. я раньше подумал что событие: Кто_Сейчас_Ходит это триггер, а мне нужен ресивер. потестирую.
P.S. проапдейтил первый пост новыми вопросами


RE: Просьбы по реверс инжинирингу - gamecreator - 05.12.2009 20:59

а если поставить
!!SN:X1/0;
то правый игрок будет играть за первый стек или ошибка?


RE: Просьбы по реверс инжинирингу - Berserker - 05.12.2009 21:25

Не пробовал так извращаться. Может быть ИИ будет биться сам с собой...


RE: Просьбы по реверс инжинирингу - GrayFace - 06.12.2009 13:59

Круто. Но, получается, ходящая сторона в двух экземплярах? В самих Героях, ведь, номер стека в форме (0..41) никогда не используется, только в ЕРМ.

(04.12.2009 20:09)SAG Wrote:  про звук знаю..но анимация? можно проиграть произвольный деф в битве?
Да, http://forum.df2.ru/index.php?showtopic=6813 - пост #11. Правда, там надо чуть-чуть подправить, чтобы все было чисто.


RE: Просьбы по реверс инжинирингу - SAG - 07.12.2009 13:30

Сергей, спасибо, реально полезно. Попутно придумал как реализовать еще одну задумку которую отложил ранее


RE: Просьбы по реверс инжинирингу - SAG - 22.06.2010 12:08

просьба к знающим людям сделать код, который рестартует случайную карту (т.е. когда случайная карта уже загружена но например игрокам не нравится, то чтобы по нажатию кнопки "Следующий герой" (или сделать новую кнопку) - карта генерилась заново с теми же настройками, а не рестартовалась уже сгенеренная карта. Надеюсь объяснил понятно Sm


RE: New Era Of Heroes - MOP - 03.08.2010 19:40

Понимаю, что, возможно, я уже поздновато, но кому не лень - помогите с задачкой.
Имеем следующий код самопальной функции (сильно не пинать):
Code:
6399FD 55;               PUSH EBP
6399FE 8BEC;             MOV EBP,ESP
639A00 83F930;           CMP ECX,30
639A03 7328;             JNB SHORT mop.00639A2D
639A05 8B1DFCCC6900;     MOV EBX,DWORD PTR DS:[69CCFC]
639A0B A1F4CC6900;       MOV EAX,DWORD PTR DS:[69CCF4]
639A10 69C068010000;     IMUL EAX,EAX,168
639A16 2BD8;             SUB EBX,EAX
639A18 81C3440B0000;     ADD EBX,0B44
639A1E 8B03;             MOV EAX,DWORD PTR DS:[EBX]
639A20 69C968010000;     IMUL ECX,ECX,168
639A26 83C13C;           ADD ECX,3C
639A29 03C8;             ADD ECX,EAX
639A2B EB0E;             JMP SHORT mop.00639A3B
639A2D 8B0D4C956900;     MOV ECX,DWORD PTR DS:[69954C]
639A33 83C138;           ADD ECX,38
639A36 8B09;             MOV ECX,DWORD PTR DS:[ECX]
639A38 83C13C;           ADD ECX,3C
639A3B 85D2;             TEST EDX,EDX
639A3D 7410;             JE SHORT mop.00639A4F
639A3F 8B4508;           MOV EAX,DWORD PTR SS:[EBP+8]
639A42 8901;             MOV DWORD PTR DS:[ECX],EAX
639A44 8B450C;           MOV EAX,DWORD PTR SS:[EBP+C]
639A47 66894104;         MOV WORD PTR DS:[ECX+4],AX
639A4B 8BE5;             MOV ESP,EBP
639A4D 5D;               POP EBP
639A4E C3;               RETN
639A4F 8B01;             MOV EAX,DWORD PTR DS:[ECX]
639A51 894508;           MOV DWORD PTR SS:[EBP+8],EAX
639A54 0FBF4104;         MOVSX EAX,WORD PTR DS:[ECX+4]
639A58 89450C;           MOV DWORD PTR SS:[EBP+C],EAX
639A5B 8BE5;             MOV ESP,EBP
639A5D 5D;               POP EBP
639A5E C3;               RETN
Функция предсталяет собой не что иное, как контроль Портала Вызова, некогда написанный Михаником в ERM-е.
Конвертирование - fastcall. Вызов: !!SN:E6527485/3/x1/x2/x3/x4;
Где:
x1 - номер города. Если больше или равно 48, то текущий
x2 - 0 - прочитать, 1 - записать
x3 и x4 - числа/переменные для записи/чтения типа и кол-ва существа.
Так вот: запись работает, а чтение - нет. Ибо я не пойму, как и куда ЭРА возвращает результаты. В v1, ясное дело, результат возвращается (кол-во существ), но судя по справке, можно возвращать и несколько результатов.
Можно, конечно, записывать результат напрямую в адрес переменной, но это лишает универсальности, да и охота разобраться...


RE: New Era Of Heroes - Berserker - 03.08.2010 20:24

Quote:Конвертирование - fastcall
Convention - соглашение. Полный термин: calling convention - соглашение о вызове Rolleyes

Quote:Ибо я не пойму, как и куда ЭРА возвращает результаты.
ЯП обычно возвращают результат через один регистр - EAX. Именно его значение и попадает в v1. Если нужно вернуть много значений или структуру, то передавай функции начальный номер v-переменной. А в функции в v[x], v[x+1], v[x+2] пиши результаты.


RE: New Era Of Heroes - MOP - 03.08.2010 20:25

(03.08.2010 20:24)Berserker Wrote:  
Quote:Конвертирование - fastcall
Convention - соглашение. Полный термин: calling convention - соглашение о вызове Rolleyes
Это не я, это ДракоЛич...

А что это?
Quote:!!SN:Ev3/1/v4/?z2; call function with address stored in v3 using Cdecl/Stdcall conversion, the first parameter is number and the second is the address of z2 (the function must return something to it).
Как там возможен возврат? Или это описка?


RE: New Era Of Heroes - Berserker - 04.08.2010 00:23

Описка, видно. Проверка орфографии на корректном слове не катит, вот и прошло.

Quote:Как там возможен возврат? Или это описка?
?z2 передаст в этом параметре адрес. Функция сама должна по нему что-то записать. В твоём случае ты можешь написать ?v50, а функция должна записать в Addr, Addr + 4, Addr + 8 - результат.


RE: New Era Of Heroes - Berserker - 10.08.2010 00:23

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


RE: New Era Of Heroes - MOP - 12.08.2010 13:55

(10.08.2010 00:23)Berserker Wrote:  MOP, ты не мог бы поделиться своей коллекцией общих бинарных патчей? Тех, что могли бы заюзать другие?
Таких мало, ибо в основном всё делаю в новой секции или на расчищенном конце содовской .text. Но попробую на досуге отобрать.

Вот для начала:



RE: New Era Of Heroes - Berserker - 12.08.2010 17:41

MOP, спасибо!
А с вратами инферно нужна функция их активации?


RE: New Era Of Heroes - MOP - 13.08.2010 00:34

В смысле?


RE: New Era Of Heroes - Berserker - 13.08.2010 00:55

Стандартно врата активировались по щелчку на строении в Инферно. Если патч убирает зависимость от строения и города, то как вызвать диалог выбора места телепортации?


RE: New Era Of Heroes - MOP - 13.08.2010 00:58

Так же. Патч убирает зависимость от наличия строения не в пункте-отправителе, а в пункте назначения.


RE: New Era Of Heroes - MOP - 16.08.2010 14:41

(13.08.2010 00:55)Berserker Wrote:  как вызвать диалог выбора места телепортации?
Так:
!?CM1; //тест: любой клик в любом городе
!!CA-1:H1/<0; //есть ли герой-гость?
!!FU&1:E; //выход, если нет
!!UN:C6919500/4/?y1; //указатель на TownManager
!!SN:E6129792/2/y1; //выполнить функцию


RE: New Era Of Heroes - Berserker - 16.08.2010 18:41

Спасибо.


RE: Нейтральные драконы - feanor - 21.08.2010 23:53

(14.08.2010 21:11)Sav Wrote:  Только хотелось бы узнать - нельзя ли как-нибудь универсально узнать, нет ли у существа иммунитета.

В Эре можно стандартную геройскую функцию дернуть.

double __fastcall sub_44A1A0(int spell, int creature, char* hero_caster, char* hero_target).

Первый параметр - номер заклинания,
Второй - номер существа
Третий - адрес структуры героя, кастующего заклинание
Четвертый - адрес структуры героя, чье существо подвергается заклинанию (0 - если героя нет)


RE: Нейтральные драконы - Berserker - 22.08.2010 00:03

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


RE: Нейтральные драконы - feanor - 22.08.2010 00:05

Примерный код должен быть таким:

!!UN:C6919480/4/?y1; //базовый адрес
!!VRy10:S<caster_hero_number> *1170 +136736 +y1;
!!VRy20:S<target_hero_number> *1170 +136736 +y1;
!!SN:E4497824/3/<spell>/<creature>/y10/y20;

А вот возвращает оно нефиксированные результаты. 8 бит, плавающая запятая, чтоб её >_<


RE: Нейтральные драконы - Berserker - 22.08.2010 00:06

Quote:В случае иммуна вернет 10.
В v1. Это на всякий случай. Спасибо за функцию.


RE: Нейтральные драконы - feanor - 22.08.2010 00:27

Черт, все-таки там какой-то странный формат идёт.
В случае иммуна функция возвращает, скажем так, небольшое положительное (16, 45, 34).
В случае уязвимости - большое отрицательное (порядка -60000)

Что будет в случае удвоенного урона или частичного иммуна - даже думать боюсь.
Проверил: то же, что и в случае уязвимости.


RE: Нейтральные драконы - GhostManSD - 22.08.2010 01:07

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


RE: Нейтральные драконы - feanor - 22.08.2010 01:52

Все сделанное - лежит в открытом доступе.
http://forum.df2.ru/index.php?showtopic=6813&view=findpost&p=392454

Текущее заклинание фейридрака лежит по сложной цепочке указателей: [[699420]+132C8]+4E0
С функцией что-то не срастается(


Кстати, а этой функцией все-таки лучше не пользоваться.


RE: New Era Of Heroes - baratorch - 29.09.2010 05:07

Плагин исправляет баги с продажей и подсказками в окне торговцев артефактами.

artmerfix.dll


RE: New Era Of Heroes - Berserker - 29.09.2010 18:13

Спасибо! 132


RE: New Era Of Heroes - Prayer - 03.11.2010 11:42

(29.09.2010 05:07)baratorch Wrote:  Плагин исправляет баги с продажей и подсказками в окне торговцев артефактами.

artmerfix.dll
Если не сложно, то в двух словах, что за баг?

И еще вопрос ко всем?
Есть dll-ка на чистку папки random_maps? Или кто может накидать такую?
Чтобы можно было выполнять через
!!SN:L
!!SN:A
!!SN:E
например в триггере !?PI
Тогда сервер лишился бы возможности просматривать созданную случайную карту.


RE: New Era Of Heroes - Berserker - 03.11.2010 16:36

Quote:Есть dll-ка на чистку папки random_maps?
Нет.


RE: New Era Of Heroes - SAG - 03.11.2010 19:09

(03.11.2010 11:42)Prayer Wrote:  Есть dll-ка на чистку папки random_maps? Тогда сервер лишился бы возможности просматривать созданную случайную карту.
для сингла это не нужно. а для мультика - в WT отключено сохранение карты на диск вообще.


RE: New Era Of Heroes - Berserker - 03.11.2010 19:24

А не в WT? ВоГ? ТЕ? Феникс?
Prayer, вам это часто нужно?


RE: New Era Of Heroes - SAG - 03.11.2010 19:42

мультик - это WT. Те кто играл в TE, перешли на WT. Остальные моды настолько бажные, несбалансированные, нестандартные в настройке и непопулярные в народе, что в мультик в них серьезно никто не играет.


RE: New Era Of Heroes - Sav - 03.11.2010 20:56

SAG Wrote:Остальные моды настолько бажные, несбалансированные, нестандартные в настройке и непопулярные в народе, что в мультик в них серьезно никто не играет.

Мало ли, может быть Prayer как раз и играет.


RE: New Era Of Heroes - Berserker - 03.11.2010 21:00

Quote:Те кто играл в TE, перешли на WT. Остальные моды настолько бажные, несбалансированные, нестандартные в настройке и непопулярные в народе, что в мультик в них серьезно никто не играет.
САГ, ты извини, но эти заявления уже достали. Играют любители в ВоГ. Играют в Феникс. Играет масса сторонников ТЕ, не принявших WT. Играет масса сторонников СоДа, не принявших ТЕ. А у тебя всё больно однобоко. До WT твердил, что все играют в ТЕ, а теперь, что в WT.


RE: New Era Of Heroes - Prayer - 04.11.2010 12:14

(03.11.2010 19:09)SAG Wrote:  для сингла это не нужно. а для мультика - в WT отключено сохранение карты на диск вообще.
Нужно для мультика разумеется, WT не устраивает. Мы играем в WoG, а WT все переделано и нас эти переделы не устраивают.

Quote:Prayer, вам это часто нужно?
Нужно каждый раз когда играем, а играем часто и только в WoG+собственные скрипты...

Quote:мультик - это WT. Те кто играл в TE, перешли на WT. Остальные моды настолько бажные, несбалансированные, нестандартные в настройке и непопулярные в народе, что в мультик в них серьезно никто не играет.
Как раз мы серьезно и играем. Притом WoG настроили для сети, так что багов сетевых нет и на это не один год ушел. А на WT потому и не перешли, что TE никогда не интересовал. И вообще, если WT популярнее других сетевых модов, то это не значит, что именно в него надо играть.


RE: New Era Of Heroes - Berserker - 04.11.2010 14:35

Prayer, ок, я попробую написать плагин.


RE: New Era Of Heroes - Prayer - 04.11.2010 14:52

Буду очень признателен!


RE: New Era Of Heroes - Berserker - 04.11.2010 19:32

Готово. http://wogarchive.ru/file.php?id=87


RE: New Era Of Heroes - Prayer - 04.11.2010 19:48

Спасибо, завтра опробую!
Кидать в EraPlugins? Скриптами ничего вызывать не надо?


RE: New Era Of Heroes - Berserker - 04.11.2010 20:12

Не за что. Поместите в папку EraPlugins у обоих игроков. Скриптов не нужно.


Вопросы и обсуждение скриптов с UN:C / SN:E - Bes - 14.11.2010 02:48

Скажите,как можно получать в игре (окно героя,в частности) спец.текст по существу (т.е. его описание,что можно менять через UN:G1/#/2/$)??? Sorry

требуется для DL-шаблона


Вопросы и обсуждение скриптов с UN:C / SN:E - GhostManSD - 14.11.2010 03:43

Bes, не пробовали работать через UN:C?
1. Найти в ArtMoney описания копейщика, алебардщика, арбалетчика.
2. Найти указатель на описание каждого.
3. Адрес будет таков: [адрес описания копейщика]+4*[номер существа].
4. Далее скрипт а-ля !!UN:C[полученный адрес]/4/?v1;

В v1 запишется адрес текста с описанием. Далее потребуется перенести содержимое этого адреса в z-переменную, но здесь я Вам не помощник: обращайтесь к отцам, потому как я в работе с памятью не силен.


RE: Ваши вопросы по ERM-скриптам - Berserker - 14.11.2010 14:47

$7D0CAC + НомерМонстра * 116
Там указатель на строку с описанием. Нужно лишь её (строку) скопировать.
kernel32.dll "lstrcpyA" (АдресПриёмника, АдресИсточника) STDCALL;

По Эре стандартно:
  • Загрузить dll kernel32.dll
  • Получить адрес функции lstrcpyA
  • Выполнить её с двумя параметрами, где второй параметр - адрес нужной z-переменной = $9273E8 + 512 * (Индекс - 1)



RE: Ваши вопросы по ERM-скриптам - Bes - 14.11.2010 23:05

я с ERA-командами ниразу не пользовался Sorry

Quote:
  • Загрузить dll kernel32.dll
  • Получить адрес функции lstrcpyA
  • Выполнить её с двумя параметрами, где второй параметр - адрес нужной z-переменной = $9273E8 + 512 * (Индекс - 1)
  • !!VRz1:S^kernel32.dll^; записать имя dll
    !!SN:Lz1/?v2; теперь v2 хранит номер dll
  • !!VRz2:S^lstrcpyA^; записать имя функции
    !!SN:Av2/z2/?v3; записать адрес функции в v3

А вот с третьим пунктом неразобрался.. какие значения мне написать в первом и втором параметре !!SN:Ev3/1/#1/#2; ???

например,если взть z3,то
$9273E8 + 512 * (3 - 1) = $9273E8 +1024 = $92840C [или 9602060]


RE: Ваши вопросы по ERM-скриптам - Berserker - 14.11.2010 23:35

(14.11.2010 23:05)Bes Wrote:  какие значения мне написать в первом и втором параметре !!SN:Ev3/1/#1/#2; ???

Code:
(CDECL_OR_STDCALL) = 1;
...
!!VR$Адрес z-переменной$:S(Индекс z-переменной)-1*512+9597928;
!!VR$адрес поля текста описания$:S(Номер монстра)*116+8195244;
!!UN:C$адрес поля текста описания$/4/?$адрес текста описания$;
!!SN:Ev3/(CDECL_OR_STDCALL)/$Адрес z-переменной$/$адрес текста описания$;



RE: Ваши вопросы по ERM-скриптам - Bes - 16.11.2010 14:31

Berserker,спасибо огромное!!! Sm
всё получилось..


RE: Ваши вопросы по ERM-скриптам - Berserker - 16.11.2010 15:16

Bes, да не за что Rolleyes


RE: New Era Of Heroes - SAG - 09.12.2010 14:42

(16.08.2010 14:41)MOP Wrote:  ; Врата Замка Инферно:
где были мои глаза?
однако этот ценный скрипт и патч под WT не работают...MOP дружище, посмотри почему глюкает. для активации Эры в WT нужно поставить патч http://www.heroes-iii.com/files/2.zip


RE: New Era Of Heroes - MOP - 11.12.2010 20:45

(09.12.2010 14:42)SAG Wrote:  
(16.08.2010 14:41)MOP Wrote:  ; Врата Замка Инферно:
где были мои глаза?
однако этот ценный скрипт и патч под WT не работают...MOP дружище, посмотри почему глюкает. для активации Эры в WT нужно поставить патч http://www.heroes-iii.com/files/2.zip
Извиняюсь, только заметил пост.
1. Это исходник к bin-файлу, то есть, его надо пропустить через BinGen.exe.
2. Патчился экзешник или память? Патч для exe. Для памяти нужно увеличить адреса на 400000h.
3. В чём глюк и по какому адресу, если имел место вылет?
4. Не думаю, что в обработку диалога Портала Инферно мог вкрасться другой код - если в WT, конечно, не делали/пробовали сделать то же самое.

Разбираться с WT и патчем к нему мне обойдётся дорого по деньгам.


RE: New Era Of Heroes - SAG - 26.12.2010 18:02

(11.12.2010 20:45)MOP Wrote:  Извиняюсь, только заметил пост.
2. Патчился экзешник или память? Патч для exe. Для памяти нужно увеличить адреса на 400000h.
3. В чём глюк и по какому адресу, если имел место вылет?
только счас заметил ответ. патчил память (просто скомпилировал и положил в EraPlugins).
глюк - кажется просто вылет в момент подгрузки Era на старте карты.


RE: New Era Of Heroes - Berserker - 26.12.2010 18:07

Quote:просто скомпилировал и положил в EraPlugins
Тогда патч трактуется как для памяти.
Quote:Для памяти нужно увеличить адреса на 400000h



RE: New Era Of Heroes - Bes - 20.01.2011 17:23

Делаю bin, где смещаю кнопки битвы, помещаю в папку ERAPlugins, запускаю ФМ (ERA,TE не важно), выбираю "новая" или "загрузить" и игра закрывается (тихо,без окошек вылета).
В чём трабла?

Если этот же патч непосредственно в exe встроить, то всё нормально Sorry


RE: New Era Of Heroes - Berserker - 20.01.2011 18:09

EraPlugins трактует патчи как для памяти. А ты смещения в файле используешь. В лучшем случае нужно увеличивать адреса на 400000h.


RE: New Era Of Heroes - feanor - 20.01.2011 18:16

sergroj Wrote:1. На самом деле, Славин файл - это exe.
Для WoG 3.58f:
400000 + А, если А < 29C000,
465000 + А, если А >= 29C000.



RE: New Era Of Heroes - Berserker - 20.01.2011 20:42

Смещения координат в содовской секции.


RE: New Era Of Heroes - Bes - 10.05.2011 18:00

Кто-нибудь, помогите..
Нужно поменять координаты кнопок: (окно героя)
HSBTNS6.DEF
HSBTNS7.DEF
HSBTNS8.DEF
HSBTNS9.DEF


Найдите, пожалуйста, адреса для смены координат, ширины кнопкиKap


RE: New Era Of Heroes - Berserker - 10.05.2011 20:02




RE: New Era Of Heroes - Berserker - 09.06.2011 23:09

MoP Wrote:Активация кнопки "Следующий герой", отключенной в ТЕ.

В виде скрипта:
!#UN:C4234473/4/1987433092 C4234477/1/139;

Для патчинга экзешника:
9CE9 84D275768B



RE: Замена города Сопряжение - feanor - 01.08.2011 16:45

(31.07.2011 22:46)M.A.K.C. Wrote:  (Буду благодарен, если кто сообщит адреса для каста заклинания монстром).

Универсальные адреса (для 358, Эры и Эры с добавлением существ)
[0x44825F] - таблица раз, номер первого монстра в ней лежит в [0x44824A]
[0x447475] - таблица два, номер первого монстра - [0x447467]
[0x421479] - три, номер первого монстра - [0x42146F]
[адрес] означает взятие 4 байт по заданному адресу.

Code:
    //spells
      memset(spell_1_table,0x09,MONSTERS_AMOUNT);
      memcpy(spell_1_table+0x0D,(void*)(*(int*)0x44825F),197-0x0D);
    
      *(char*)0x44824A = 0;
       *(int*)0x44825F = (int)spell_1_table;
      
      memset(spell_2_table,0x08,MONSTERS_AMOUNT);
      memcpy(spell_2_table+0x0D,(void*)(*(int*)0x447475),197-0x0D);
    
      *(char*)0x447467 = 0;
       *(int*)0x447475 = (int)spell_2_table;

      
      memset(spell_3_table,0x03,MONSTERS_AMOUNT);
      memcpy(spell_3_table+0x0D,(void*)(*(int*)0x421479),197-0x0D);
    
      *(char*)0x42146F = 0;
       *(int*)0x421479 = (int)spell_3_table;



RE: Замена города Сопряжение - M.A.K.C. - 01.08.2011 23:43

!#UN:C4489823(+номер монстра)/1/03;
!#UN:C4486261(+номер монстра)5/1/02;
!#UN:C4330617/1/03;
!#MA:B(номер монстра)/3;
так?
Спасибо за пояснения


RE: Замена города Сопряжение - feanor - 02.08.2011 15:30

Нет, не так.

!!UN:C4489823/4/?y1;
!!UN:C4489802/1/?y2;
!!VRy3&y2=0: Sy1 +<номер монстра>;
!!VRy3&y2<>0: Sy1 +<номер монстра> -13;
!!UN:Cy3/1/<значение>;

А еще лучше поставить amethyst.dll, там эти значения для можно задавать в конфиге монстра.


RE: Исследование героев - totkotoriy - 24.03.2012 13:07

У меня ещё пару вопросов к знатокам Ab если позволите:
Как нормально задать цветовую гамму портретам чтобы некоторые пиксели не были прозрачными? Или может есть список цветов, которые нельзя использовать? Делаю индексированные цвета, но всё равно некоторые пиксели приходиться перерисовывать. Может уже есть какой-то нормальный метод или программа?

И не знаете случайно как расшифровать в файлах objcts.txt параметры объекта? Что они означают? 111111111 000000001 5 10 4 0
перевые 2 параметра по 8 я как понимаю разрешение на размещение на каких либо почвах, но что где? и почему 2 настройки?...
потом номер, подтип объекта... а дальше две цифры что означают? Вроде это как-то связано с тенью, но я не уверен.


RE: Исследование героев - ILYA1980 - 28.03.2012 22:24

Может быть подскажет кто-нибудь, как убрать у грааля в башне открытие всей карты?


RE: Исследование героев - totkotoriy - 16.04.2012 01:14

Может ещё кто знает адреса вкл/выкл кнопок в меню кампаний?
Что то подобное ведь должно быть?


Вопросы по моддингу - Sandris - 31.05.2012 00:11

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


RE: FAQ по моддингу - Sav - 31.05.2012 15:34

Координаты зданий прописаны в exe.


RE: FAQ по моддингу - Sandris - 01.06.2012 21:03

(31.05.2012 15:34)Sav Wrote:  Координаты зданий прописаны в exe.

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


RE: FAQ по моддингу - Sav - 01.06.2012 21:19

Если ты не имеешь возможности модифицировать exe, то да. Эра даёт эту возможность, но надо иметь (или быть готовым самостоятельно изучить) базовые знания о хранении данных в памяти.


RE: Исследование героев - totkotoriy - 04.07.2012 21:52

Может кто знает как можно убрать врожденную воговскую абилку-заклинание существа?
Например "Защита от ...."
Очень надо Bad


RE: Исследование героев - Berserker - 04.07.2012 22:55

(04.07.2012 21:52)totkotoriy Wrote:  Может кто знает как можно убрать врожденную воговскую абилку-заклинание существа?

У кого именно? Где-то на hc феанор писал код для смены заклинания монстрам.


RE: Исследование героев - totkotoriy - 04.07.2012 23:34

(04.07.2012 22:55)Berserker Wrote:  У кого именно? Где-то на hc феанор писал код для смены заклинания монстрам.

У посланников всех


RE: Исследование героев - totkotoriy - 05.07.2012 22:15

(04.07.2012 22:55)Berserker Wrote:  У кого именно? Где-то на hc феанор писал код для смены заклинания монстрам.
А подскажи пожалуйста: как там тема то называется?
ERM discussion? И какой у него там ник?


RE: Исследование героев - Berserker - 05.07.2012 22:45

0xFEA, тема скорее всего ERM Help and Discussion.


RE: Исследование героев - totkotoriy - 28.09.2012 01:40

Подскажите пожалуйста как можно отловить ошибку в моде если вылетает там где не должно вылетать... на проверке включена опция игры или нет. Может какие то текстовики корявые сделал?


RE: Исследование героев - GrayFace - 01.10.2012 16:07

(28.09.2012 01:40)totkotoriy Wrote:  Подскажите пожалуйста как можно отловить ошибку в моде если вылетает там где не должно вылетать... на проверке включена опция игры или нет. Может какие то текстовики корявые сделал?

На UN:P чтоли?


RE: Исследование героев - totkotoriy - 01.10.2012 16:44

(01.10.2012 16:07)GrayFace Wrote:  На UN:P чтоли?
Да.... я вот замечал что если какие то текстовики корявые то часто вылетает на проверке опций... а вот как узнать даже в каком месте что-то в них не так... редактора нормального для них нету... только HEX едитором приходиться редактировать.

Еще хотел тоже спросить:
Можно ли поменять родную почву для замков? Это в RMG шаблонах можно сделать?

И как убрать окошки благословений и проклятий от ZVS в окне героя? Я как думаю это сделано в ZVSlib.dll
Поместить поверх кнопку от ЭРЫ не получается, все равно первое окно вылазиет наверх.


RE: Исследование героев - GrayFace - 01.10.2012 17:23

totkotoriy, На UN:P, по идее, не может вылетать. Он ни от каких текстовиков не зависит.
Все текстовики ВоГа редактируются ERM Scripter'ом. Txt таблицы - моим TxtEdit http://sites.google.com/site/sergroj/wog/
Родная почва, используемая при генерации - 0x6408D8. Используемая в игре - 0x6436A8. В RMG.txt можно задать только конкретную почву, не зависящую от замка.


RE: Исследование героев - totkotoriy - 01.10.2012 19:17

(01.10.2012 17:23)GrayFace Wrote:  На UN:P, по идее, не может вылетать. Он ни от каких текстовиков не зависит.
Все текстовики ВоГа редактируются ERM Scripter'ом. Txt таблицы - моим TxtEdit http://sites.google.com/site/sergroj/wog/
Родная почва, используемая при генерации - 0x6408D8. Используемая в игре - 0x6436A8. В RMG.txt можно задать только конкретную почву, не зависящую от замка.
Это да, сам связи не пойму...
А можно например в ТхтEdit добавить строку куда нибудь в середину, а не только в конец?

А как понять используемая при генерации и используемая в игре? В чем разница?


RE: Исследование героев - Sav - 01.10.2012 19:42

totkotoriy Wrote:А как понять используемая при генерации и используемая в игре? В чем разница?
В игре - это родная почва города. При генерации - это почва, которая сгенерируется под городом, если в rmg будет стоять match to town. Она соответствует родной у всех, кроме темницы, у которой грязь. Ну и если город оказался в подземке (а для городов игрока это может случиться только с инферно, некрополисом и темницей), то любая почва, кроме лавы, заменется на подземелье.


RE: Исследование героев - gamecreator - 01.10.2012 20:16

(01.10.2012 19:17)totkotoriy Wrote:  А можно например в ТхтEdit добавить строку куда нибудь в середину, а не только в конец?

еще текстовики можно экселем редактировать


RE: Исследование героев - GrayFace - 01.10.2012 20:34

(01.10.2012 19:17)totkotoriy Wrote:  А можно например в ТхтEdit добавить строку куда нибудь в середину, а не только в конец?
Ctrl+Enter


RE: Исследование героев - totkotoriy - 01.10.2012 20:48

(01.10.2012 19:42)Sav Wrote:  
totkotoriy Wrote:А как понять используемая при генерации и используемая в игре? В чем разница?
В игре - это родная почва города. При генерации - это почва, которая сгенерируется под городом, если в rmg будет стоять match to town. Она соответствует родной у всех, кроме темницы, у которой грязь. Ну и если город оказался в подземке (а для городов игрока это может случиться только с инферно, некрополисом и темницей), то любая почва, кроме лавы, заменется на подземелье.
Опять ничего не понял... Что такое родная почва города в игре? И где это учитывается, на что влияет?

(01.10.2012 20:34)GrayFace Wrote:  
(01.10.2012 19:17)totkotoriy Wrote:  А можно например в ТхтEdit добавить строку куда нибудь в середину, а не только в конец?
Ctrl+Enter
Это если нажать редактирование строки так можно сделать... а вот чтоб просто можно было вставить строку, например ниже выделенной
Image: string.jpg


RE: Исследование героев - Berserker - 01.10.2012 21:03

(01.10.2012 19:17)totkotoriy Wrote:  А можно например в ТхтEdit добавить строку куда нибудь в середину, а не только в конец?

Файл -> открыть как таблицу.


RE: Исследование героев - totkotoriy - 01.10.2012 21:40

(01.10.2012 21:03)Berserker Wrote:  Файл -> открыть как таблицу.
Спасибо! Даже не знал, а корректно со строками работает? А то может там другой какой-нибудь формат, не как у героев. Какой-нибудь там символ неправильно в конце строки поставит и кранты.

Надо бы конечно вообще всеобъемлющий FAQ по модингу сделать, а то столько мучился, даже не знал про ТХТ в ErmScriptor'e...


RE: Исследование героев - Berserker - 01.10.2012 22:07

(01.10.2012 21:40)totkotoriy Wrote:  Надо бы конечно вообще всеобъемлющий FAQ по модингу сделать, а то столько мучился, даже не знал про ТХТ в ErmScriptor'e...

Да мы уже давно говорили, что TextEdit и ErmEditor нормально работают с геройскими текстовиками. Формат там простой.


RE: Исследование героев - Sav - 01.10.2012 22:24

totkotoriy Wrote:Опять ничего не понял... Что такое родная почва города в игре? И где это учитывается, на что влияет?
У каждого города есть родная почва (существа без городов соответственно родной почвы не имеют). Замок, Оплот, Сопряжение - трава; Башня - снег; Инферно - лава; Некрополис - грязь; Темница - подземелье; Цитадель - камни; Крепость - болото. Если у какого-то героя все существа принадлежат только тем городам, для которых некая почва - родная, то он ходит по этой земле без штрафа, как с экспертным поиском пути. В бою на родной земле все существа получают +1 к атаке, защите и скорости, видят и игнорируют мины. Почва при осаде всегда соответствует родной почве осаждаемого города.


RE: Исследование героев - totkotoriy - 01.10.2012 22:24

(01.10.2012 22:24)Sav Wrote:  У каждого города есть родная почва (существа без городов соответственно родной почвы не имеют). Замок, Оплот, Сопряжение - трава; Башня - снег; Инферно - лава; Некрополис - грязь; Темница - подземелье; Цитадель - камни; Крепость - болото. Если у какого-то героя все существа принадлежат только тем городам, для которых некая почва - родная, то он ходит по этой земле без штрафа, как с экспертным поиском пути. В бою на родной земле все существа получают +1 к атаке, защите и скорости, видят и игнорируют мины. Почва при осаде всегда соответствует родной почве осаждаемого города.
Точно, спасибо. Как я сам не додумался?....

(01.10.2012 22:07)Berserker Wrote:  Да мы уже давно говорили, что TextEdit и ErmEditor нормально работают с геройскими текстовиками. Формат там простой.
Ладно, будем надеяться..... просто помню, что какой-то редактор некорректно строки вставлял, а какой не помню (т.к. посмотрел в HEX редакторе, а там другие символы в конце строки были)...

А можете мне сказать адреса почв у замка и у сопряжения для генератора карт и родные в игре.
А то я так с этим всем и не разобрался Sorry и уже навряд ли разберусь...


RE: Исследование героев - Sav - 01.10.2012 22:25

totkotoriy, Было на прошлой странице.


RE: Исследование героев - totkotoriy - 01.10.2012 22:40

(01.10.2012 22:25)Sav Wrote:  Было на прошлой странице.
Это те адреса, которые GrayFace написал?
А как от них отсчитать нужный замок?


RE: Исследование героев - Sav - 01.10.2012 22:46

totkotoriy
Ну, +x или +x*4, посмотри сам, что там в памяти лежит.


RE: Исследование героев - gamecreator - 02.10.2012 00:45

(01.10.2012 22:24)Sav Wrote:  У каждого города есть родная почва (существа без городов соответственно родной почвы не имеют). Замок, Оплот, Сопряжение - трава; Башня - снег; Инферно - лава; Некрополис - грязь; Темница - подземелье; Цитадель - камни; Крепость - болото. Если у какого-то героя все существа принадлежат только тем городам, для которых некая почва - родная, то он ходит по этой земле без штрафа, как с экспертным поиском пути. В бою на родной земле все существа получают +1 к атаке, защите и скорости, видят и игнорируют мины. Почва при осаде всегда соответствует родной почве осаждаемого города.
разве почвы существ не отдельно для каждого существа заданы?


RE: Исследование героев - totkotoriy - 02.10.2012 01:14

GreyFace, Sav спасибо! Всё получилось...

(02.10.2012 00:45)gamecreator Wrote:  разве почвы существ не отдельно для каждого существа заданы?
Я так понимаю у существ принадлежность к замку, а замок уже к почве.


RE: Исследование героев - GrayFace - 02.10.2012 05:53

(01.10.2012 20:48)totkotoriy Wrote:  Это если нажать редактирование строки так можно сделать... а вот чтоб просто можно было вставить строку, например ниже выделенной
Это не TxtEdit.


RE: Исследование героев - Sav - 02.10.2012 09:55

gamecreator Wrote:разве почвы существ не отдельно для каждого существа заданы?
Нет, только для городов.


RE: Исследование героев - totkotoriy - 02.10.2012 12:29

(02.10.2012 05:53)GrayFace Wrote:  Это не TxtEdit.
Аааааа... вот оно что...
Sm просто названия сильно похожи

Хотя даже в последней ЭРЕ каталог называется TextEdit, а программа лежит TxtEdit.


RE: Исследование героев - totkotoriy - 12.10.2012 11:07

(02.10.2012 05:53)GrayFace Wrote:  Это не TxtEdit.
Очень жаль что нет поиска, очень неудобно. Или все таки есть?


RE: Исследование героев - gamecreator - 12.10.2012 13:09

(12.10.2012 11:07)totkotoriy Wrote:  
(02.10.2012 05:53)GrayFace Wrote:  Это не TxtEdit.
Очень жаль что нет поиска, очень неудобно. Или все таки есть?

все не пойму чем тебя не устроил эксель. и поиск есть, и строки можно вставлять куда угодно.


RE: Исследование героев - GrayFace - 12.10.2012 13:28

(12.10.2012 11:07)totkotoriy Wrote:  Очень жаль что нет поиска, очень неудобно. Или все таки есть?

Да, поиска нету.


RE: Исследование героев - Berserker - 12.10.2012 14:22

(12.10.2012 11:07)totkotoriy Wrote:  Очень жаль что нет поиска, очень неудобно. Или все таки есть?

Erm editor поддерживает поиск.


RE: Исследование героев - totkotoriy - 12.10.2012 21:59

(12.10.2012 14:22)Berserker Wrote:  Erm editor поддерживает поиск.
Но почему то, когда делаю открыть какой-нибудь *objects.txt как таблицу, показывается только первая строчка и всё....


RE: Исследование героев - Berserker - 13.10.2012 01:52

(12.10.2012 21:59)totkotoriy Wrote:  Но почему то, когда делаю открыть какой-нибудь *objects.txt как таблицу, показывается только первая строчка и всё....

Значит остальные скрыты. Поэкспериментируйте с кнопками, там можно открыть.


RE: ERA II - totkotoriy - 20.10.2012 20:15

По ЭРЕ:
Нашёл глючек один маленький в скриптах: в 65м и 37м (воговская нумерация) для определения включения опций используется одна и та же переменная v1400 - а то я не мог понять почему платные монолиты были в то время когда они выключены в опциях...

И ещё касательно снежных объектов, они практически все отсутствуют в zaobjects.txt, но их туда можно и нужно прописать. Я думал раз нет в za то наверное есть в скриптах, в скриптах тоже не нашёл...
Некоторые нужно будет добавить с помощью воговской замены - это для объектов, которые можно отключить в опциях, например хижина ведьмы.
Кстати почему то есть в za...txt снежный форт на холме, рынок, фонтан удачи, может еще что... почему так сделано не понятно.
Я вроде помню что видел когда раньше на простом ВОГе играл еще снежную библиотеку, снежный камень знаний и идола... может показалось? т.к. теперь нигде найти не могу...
Короче надо серьезно разобраться...
Еще одно вспомнил - если записывать в za снежный вход в подземелье и назначать нужные биты для размещения на снегу, то он один хрен появляется везде, а если сделать замену скриптом то теряется связь с нижней частью и при посещении он закидывает непонятно куда...

И еще не знаете по какому принципу разделяются объекты в редакторе? Ну на объекты на снегу или общие.. в ехе?


RE: ERA II - Sav - 20.10.2012 20:54

С вратами подземного мира надо работать очень осторожно. Структура всех их шаблонов (т. е. записей в ..objects.txt) (размер, положение и количество непроходимых и триггерных клеток) должна быть одинаковой, иначе будут вылеты. Ну и выбираются они всегда случайно, вне зависимости от территорий. Для верфи, кстати, тоже случайно, а для монолитов вводить новые шаблоны вообще чревато нарушением структуры карты.


RE: ERA II - totkotoriy - 20.10.2012 22:16

(20.10.2012 20:54)Sav Wrote:  ...
Вот поэтому я ничего из этого и не трогал)

Вощим вроде разобрался со снежными объектами.
Кстати снежных камней знаний вообще в паке 3 у вас... ыыыыыыы
Мельница - есть в ZA
AVMwndd0.def
AVMwmsn0.def

Камень знаний - нужно добавить в ZA
AVSgzbo0.def
z358o1.def

Колодец - есть в ZA
AVXwelg0.def
AVXwelg0.def
AVXwlsn0.def

Идол удачи - нужно добавить в ZA
avsidol0.def
z358o2.def

Библиотека - нужно добавить в ZA
z358o3.def
avslibr0.def

Хиж ведьм- нужно добавить в скрипт ВОГ для замены
z358o4.def
avswtcs0.def

Дер знаний - нужно добавить в ZA
z358o6.def
avxtrek0.def

Таверна - нужно добавить в ZA
avxtvrn0.def
z358o7.def

Рынок - есть в ZA
avxpost0.def
avxpssn.def

Фонтан удачи - есть в ZA
zfntng01.def

Форт на холме - есть в ZA
zfohill0.def

ZA - это zaobjects.txt


RE: ERA II - Valery - 20.10.2012 22:17

Sav,

What should I do to have instant spells/abilities display in battle, they take too long. All things as bless, curse, block ability, I would like to have them instant. Is there something similar to cranim, but for spells?


RE: ERA II - Sav - 20.10.2012 22:32

Lengths of spells/abilities animations are hardcoded. You may use
PHP Code:
((float*)0x63CF7C)[0] = 0.5;
((
float*)0x63CF7C)[1] = 1.0/3.0;
((
float*)0x63CF7C)[2] = 0.2
to double speed of all the animations (including stacks moving). Smaller values - faster animations. Default values are
PHP Code:
((float*)0x63CF7C)[0] = 1.0;
((
float*)0x63CF7C)[1] = 2.0/3.0;
((
float*)0x63CF7C)[2] = 0.4
The first value is speed when battle speed is setted as slow; second - middle; third - fast.

If you want only to speed up animations of spells and abilities, I can give you adresses, but there are many of them.

Anyway, don`t forget to turn on "AsyncSounds" in HD, without it any speed up is useless.


RE: ERA II - Valery - 20.10.2012 22:41

Creatures animations are ok if I can modify cranim. Is spells and abilities as block, double damage which are a waste of time, specially when playing with enchanted monsters on. For instance, is a hell to battle vs gremlins, each stack will cast land mines, and every turn.

If it does not bother you to give me addresses, I would need to speed up:

Block (commanders)
Death strike (crusaders, death knights)
Curse
Land mines (ouch)
Disease

Those are the ones which take most of battle time. I don't play yet with HD mod, is a problem? Thanks Ab


RE: ERA II - Sav - 20.10.2012 23:23

Valery Wrote:Creatures animations are ok if I can modify cranim.
With the patch above use can speed up all the battle proportionally without changing creatures individual properties.

Valery Wrote:Block (commanders)
I didn`t analyze this in WoG, I can only give SoD adresses. But the patch above should influence to WoG animation too.

Valery Wrote:Land mines (ouch)
Ok, but sound of this isn`t asyncronized even in HD, any speed up is useless.

Valery Wrote:Death strike (crusaders, death knights)
Curse
Disease
Ok, hope that SoD adresses are the same as WoG.

For a start, try this, the patch above, maybe it won`t be necessary to remember adresses Sm (you should disable new cranim an set battle speed in settings to maximum): https://www.dropbox.com/s/1ct9fov3ydsxx14/speed_up_battle.bin

Valery Wrote:I don't play yet with HD mod, is a problem?
The main reason that makes animations such slow is too long sounds, game will wait until sound ends even when animation itself has aleady ended. In HD most of sounds are played parallel with game (except landmines, however) and this is not a problem.
Another way to solve this problem (including landmines) is to replace their sounds with short or null-length sound files.


RE: ERA II - Valery - 20.10.2012 23:59

Sav

Thanks a lot, it works great. Would be possible to have half speed of what is now, just to test?
I recall land mines have no sound when cast by monsters. Also the only problem so far are the sounds, they are too long, I will try to get shorter variants.

Thanks again.20


RE: ERA II - Sav - 21.10.2012 00:32

Replaced previous link with 2 times slower variant.


RE: ERA II - Valery - 21.10.2012 01:01

Thanks, I prefer the first, just wanted to test: now they move too slow for my taste. Great work Sav!


RE: ERA II - Sav - 21.10.2012 01:16

Ok, just in case, restored first plugin in link.


RE: ERA II - Valery - 21.10.2012 01:24

I kept it anyway. What you advice, what percentage should have wavs now, 100% increase speed or more, to match with your plugin?
HERE is an example 100% speed increase for bloodlust.


RE: ERA II - Sav - 21.10.2012 01:46

Original sounds are synchronized with slow animation speed. Compared with it new speed is about 10 times faster.
Is that normal that wav is only 11 kb? I can't open it.


RE: ERA II - Valery - 21.10.2012 02:43

Turbo Battles

I increased speed of ~100 longest wavs by 150%. Battles are ugly but really fast, I like this way. Waiting feedback about sounds, let them at 150% or back to 100% only. Yet I am sure I will leave regeneration, land mines, haflings and elementals shooting at 150, really too long. Probably most people will not be interested by such monster, but I needed it.


RE: ERA II - totkotoriy - 21.10.2012 13:54

(20.10.2012 22:16)totkotoriy Wrote:  Хиж ведьм- нужно добавить в скрипт ВОГ для замены
z358o4.def
avswtcs0.def
avswtch0.def
Упс... хижина ведьмы не ВОГовская, тоже нужно добавить снежную в zaobjects.txt


RE: Исследование героев - totkotoriy - 21.10.2012 17:29

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

По сему ухожу в глубокую депрессию...
Может есть какие-нибудь мысли по этому поводу?


RE: ERA II - totkotoriy - 21.10.2012 17:45

(21.10.2012 17:15)totkotoriy Wrote:  Как будет время сделаю, но боюсь вам напартачить чего-нибудь
И еще один очень интересный момент: в ВОГе как и в ЭРЕ в файле для объектов случайных карт zaobject.txt в последней строчке стоит объект AHplace.def - по мануалу лагерь героя (ХЗ че это)... но он не учитывается, так как прописано в самой первой строке ТХТ 1415 объектов, а он как раз получается под номером 1416. А в оригинальном СОДовском objects.txt он учитывается...

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

Вот прежде чем редактировать ТХТ надо бы это всё уточнить.


RE: ERA II - Sav - 21.10.2012 17:50

Лагерь героя - это для кампаний. обеспечивает переход между сценариями.


RE: Исследование героев - Sav - 21.10.2012 17:53

(21.10.2012 17:29)totkotoriy Wrote:  Про злосчастные кнопки:
Всё пытаюсь сделать кнопки выбора битвы на экране приключений - думал что получится сделать подменой кадра def файла кнопки на другой (чтоб оставался вид нажатой кнопки например), но поковырявшись в артмани понял что во-первых подмена имени кадра ничего не дает - нужно подменять именно сам кадр побайтно, во вторых место загрузки этих кадров постоянно меняется в памяти.

По сему ухожу в глубокую депрессию...
Может есть какие-нибудь мысли по этому поводу?

Менять надо не имя, а номер кадра. Имя - это касается загруженного ресурса, а не кнопки, его трогать нельзя, т. к. там двоичное дерево, поиск по которому основывается на том, что они должны быть в определённом порядке.


RE: ERA II - totkotoriy - 21.10.2012 17:53

(21.10.2012 17:50)Sav Wrote:  Лагерь героя - это для кампаний. обеспечивает переход между сценариями.
То есть для zaobject его не надо учитывать?

И как интересно опередить какие объекты из содовского object.txt участвуют в генерации карт?


RE: ERA II - Sav - 21.10.2012 17:57

Насколько я помню, число должно включать в себя все строчки с объектами, при этом всего строчек должно быть на 2 больше: первая строчка для числа и последняя строчка - пустая; в середине пустых строк не должно быть. Тогда будет стабильно. Из текстовика для рандома в принципе многое можно тупо удалить.


RE: Исследование героев - totkotoriy - 21.10.2012 17:57

(21.10.2012 17:53)Sav Wrote:  Менять надо не имя, а номер кадра. Имя - это касается загруженного ресурса, а не кнопки, его трогать нельзя, т. к. там двоичное дерево, поиск по которому основывается на том, что они должны быть в определённом порядке.
Спасибо! А не знаешь как находить номер кадра если это все постоянно в разные места загружается при запуске игры


RE: ERA II - totkotoriy - 21.10.2012 17:59

(21.10.2012 17:57)Sav Wrote:  Насколько я помню, число должно включать в себя все строчки с объектами, при этом всего строчек должно быть на 2 больше: первая строчка для числа и последняя строчка - пустая; в середине пустых строк не должно быть. Тогда будет стабильно. Из текстовика для рандома в принципе многое можно тупо удалить.
Вот я тоже так думаю, но влияет ли то что один объект недосчитан в zaobject или нет даже не знаю...


RE: ERA II - Bes - 21.10.2012 18:00

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

что касается "где? и когда?" была допущена были допущены огрехи в таблицах объектов, то тут нужно реально посмотреть начиная с 3,58f (hfyybt dthcbb e;t yt ,eltv ukzltnm) .
ой, влом перенабирать
тогда и станет ясно насчёт всех этих смежных вставок... ибо как мне показалось, действительно есть дублирование

называется "отошёл блин блинчик перевернуть"... уже 3 поста перед моим нарисовали 132


RE: Исследование героев - Berserker - 21.10.2012 18:08

totkotoriy, В в чём проблема описать кнопку в txt как в Secondary Skills Scrolling?


RE: Исследование героев - totkotoriy - 21.10.2012 18:22

(21.10.2012 18:08)Berserker Wrote:  В в чём проблема описать кнопку в txt как в Secondary Skills Scrolling?
Не пойму... а при чем тут эти кнопки?
Мне нужно чтоб при определенных условия кнопка оставалась нажатой (хотя бы чтоб вид такой был)


RE: Исследование героев - Sav - 21.10.2012 18:30

(21.10.2012 17:57)totkotoriy Wrote:  А не знаешь как находить номер кадра если это все постоянно в разные места загружается при запуске игры

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


RE: Исследование героев - Berserker - 21.10.2012 19:12

(21.10.2012 18:22)totkotoriy Wrote:  
(21.10.2012 18:08)Berserker Wrote:  В в чём проблема описать кнопку в txt как в Secondary Skills Scrolling?
Не пойму... а при чем тут эти кнопки?
Мне нужно чтоб при определенных условия кнопка оставалась нажатой (хотя бы чтоб вид такой был)
см. там:
http://wforum.heroes35.net/showthread.php?tid=862&pid=70391#pid70391


RE: Исследование героев - totkotoriy - 21.10.2012 20:10

(21.10.2012 19:12)Berserker Wrote:  http://wforum.heroes35.net/showthread.php?tid=862&pid=70391#pid70391
Спасибо!
А как заменить кадр в нужном мне дефе?
Тут всё без коментов:
    1. !?CM0;
    2. !!CM:R0;
    3. !!UN:C10916496/4/?y1;
    4. !!VRz1:S^TBCSDW_4.def^;
    5. !!SN:E6288384/2/y1/512/9/6/z1;
    6. !!SN:E6288384/2/y1/512/2/6/0;
    7. !!SN:E6288528/2/y1/6/16384;
    8. !!SN:E6288816/2/y1/6;
    9. !!UN:R1;
Ничего не понятно Bad


RE: Исследование героев - Berserker - 21.10.2012 20:37

(21.10.2012 20:10)totkotoriy Wrote:  А как заменить кадр в нужном мне дефе?
Тут всё без коментов...

А я, думаешь, помню? )

!!SN:E6288384/2/y1/512/9/6/z1;
Это вызов DL:A с подтипом 9 - установить имя файла (текстовая переменная)
4 - установить кадр, тогда последний аргумент не z1, а новый номер кадра. Надеюсь, не напутал.


RE: Исследование героев - totkotoriy - 21.10.2012 21:35

(21.10.2012 20:37)Berserker Wrote:  А я, думаешь, помню? )

!!SN:E6288384/2/y1/512/9/6/z1;
Это вызов DL:A с подтипом 9 - установить имя файла (текстовая переменная)
4 - установить кадр, тогда последний аргумент не z1, а новый номер кадра. Надеюсь, не напутал.
Блиииииин, так а имя файла который заменяется хоть примерно где?)
Или используется какой то ID?

Аааааа.... 6 - это ID кнопки.... а можно ли так изменить кнопку от плагина buttons?

Можно!!!! Берсеркер, огромное скпасибо! Теперь у меня будут очень удобные кнопки выбора битвы.


RE: Исследование героев - Berserker - 21.10.2012 22:51

(21.10.2012 21:35)totkotoriy Wrote:  Аааааа.... 6 - это ID кнопки.... а можно ли так изменить кнопку от плагина buttons?

Можно!!!! Берсеркер, огромное скпасибо! Теперь у меня будут очень удобные кнопки выбора битвы.

ID, CM:I в помощь:
6 - Кнопка «Усыпить героя»
Цифру 6 в коде определить не сложно )


RE: ERA II - Sav - 22.10.2012 01:36

Valery Wrote:Waiting feedback about sounds, let them at 150% or back to 100% only.
150% is normal. Quicksands and IceRayEx are still too long.
Some sounds, like good morale, have a time without sound at the end of their length, you may cut it.


RE: ERA II - Valery - 22.10.2012 12:28

Ok, thanks. I modified those you say and I added also various sounds from adventure map (pick chest, recruit hero, build in town etc). I don't think all sounds must be shortened or it will sound really weird, but just those slowing the action. Land mines is a bit controversial, if too fast we can't see where they are placed, and then we walk in.

I will test it a bit more and when I am done I will upload again.


RE: Исследование героев - totkotoriy - 22.10.2012 17:38

Может еще кто знает как запретить использование ВОГ карт в моде?
Вроде МОР как-то сделал...


RE: ERA II - MOP - 23.10.2012 09:36

(20.10.2012 20:15)totkotoriy Wrote:  если сделать замену скриптом то теряется связь с нижней частью и при посещении он закидывает непонятно куда...
1. Запомнить контрольное число (OB:C?)
2. Удалить объект (UN:O)
3. Разместить новый (UN:I)
4. Установить записанное ранее число (OB:C)
5. ...
6. PROFIT!!!


RE: Исследование героев - MOP - 23.10.2012 09:45

(22.10.2012 17:38)totkotoriy Wrote:  Может еще кто знает как запретить использование ВОГ карт в моде?
Вроде МОР как-то сделал...

Куча правок.


RE: ERA II - Algor - 23.10.2012 10:26

0. Делать не в !?PI; а после загрузки карты!
(23.10.2012 09:36)MOP Wrote:  1. Запомнить контрольное число (OB:C?)
2. Удалить объект (UN:O)
3. Разместить новый (UN:I)
4. Установить записанное ранее число (OB:C)
5. ...
6. PROFIT!!!
И, если не изменяет, еще !!UN:R1; надо сделать после всего этого.


RE: ERA II - totkotoriy - 23.10.2012 11:20

(23.10.2012 10:26)Algor Wrote:  0. Делать не в !?PI; а после загрузки карты!
Это понятно, в PI еще объекты на карте не расставлены.

(23.10.2012 09:36)MOP Wrote:  1. Запомнить контрольное число (OB:C?)
2. Удалить объект (UN:O)
3. Разместить новый (UN:I)
4. Установить записанное ранее число (OB:C)
5. ...
6. PROFIT!!!
О! Спасибо, не знал. Теперь сделаю замену при загрузке карты, красиво будет. А то воговцы сам снежный вход в подземелье сделали, а автоматическое размещение нет.


RE: ERA II - MOP - 23.10.2012 17:08

У меня это происходит перед показом карты, но не в !?PI.
> И, если не изменяет, еще !!UN:R1; надо сделать после всего этого.
Не надо. И еще - функции обновления очень тормозные, не стоит их применять много раз подряд в одном триггере.


RE: ERA II - Valery - 25.10.2012 14:37

Sav, here is it.

Turbo WoG
(1 mb)

Added various sounds, mostly shooting, also added many sounds for adventure map (build in town, recruit hero, visit structures on map). Except obelisks it goes very fast now. At obelisks there is not about sound, but game hangs a bit when visit, probably preparing puzzle, no idea how to speed that.

Some sounds for adventure map are empty now.


RE: Исследование героев - totkotoriy - 30.10.2012 18:39

Подскажите, мож кто занимался этим, как в опциях ВОГа скрыть или заморозить текущий выбор для настроек вогификации карт? Там в самом начале где квадратные ratio buttons. Когда удаляю строки в ехешнике, все эти кнопки перемещаются на другие опции. Мне надо что вогификация была постоянно включена для всех карт.


RE: Исследование героев - Bes - 30.10.2012 18:44

totkotoriy, да ну, вот с эрой к примеру идёт постоянная WoGификация (по умолчанию) и это вполне себе решение. Не многие люди будут лезть и скать как же неWoGифицироваться в LORD'е если им про это не говорить.


RE: Исследование героев - totkotoriy - 30.10.2012 18:53

(30.10.2012 18:44)Bes Wrote:  да ну, вот с эрой к примеру идёт постоянная WoGификация (по умолчанию) и это вполне себе решение. Не многие люди будут лезть и скать как же неWoGифицироваться в LORD'е если им про это не говорить.
Я вот тоже так думал Sm Но как видишь нашлись такие люди, и теперь они спрашивают почему мод не работает без вогификации Sm


RE: Исследование героев - Bes - 30.10.2012 21:31

(30.10.2012 18:53)totkotoriy Wrote:  как видишь нашлись такие люди, и теперь они спрашивают почему мод не работает без вогификации Sm

что значит ПОЧЕМУ?
ну хотя бы потому что это МОД на базе WoG. А WoG без wog'ификации становится просто напросто "почти SoD"

так и отвечай.


RE: Исследование героев - totkotoriy - 30.10.2012 21:39

(30.10.2012 21:31)Bes Wrote:  что значит ПОЧЕМУ?
ну хотя бы потому что это МОД на базе WoG. А WoG без wog'ификации становится просто напросто "почти SoD"

так и отвечай.
Да это все понятно, но лучше сразу принудительно включить, чтоб не было таких вопросов.


RE: Исследование героев - Berserker - 30.10.2012 23:22

(30.10.2012 18:39)totkotoriy Wrote:  Подскажите, как в опциях ВОГа скрыть или заморозить текущий выбор для настроек вогификации карт? Там в самом начале где квадратные ratio buttons. Когда удаляю строки в ехешнике, все эти кнопки перемещаются на другие опции. Мне надо что вогификация была постоянно включена для всех карт.

Без машинного модуля никак.


RE: Исследование героев - totkotoriy - 03.11.2012 03:17

(21.10.2012 20:37)Berserker Wrote:  А я, думаешь, помню? )

!!SN:E6288384/2/y1/512/9/6/z1;
Это вызов DL:A с подтипом 9 - установить имя файла (текстовая переменная)
4 - установить кадр, тогда последний аргумент не z1, а новый номер кадра. Надеюсь, не напутал.
А этот код работает только в триггере СМ??? Bad

А я то тут уже размечтался...

Может есть что-то подобное, что можно использовать в любом триггере?


RE: ERA II - totkotoriy - 03.11.2012 14:40

Ковырялся тут с зимним входом в подземелье.
Выяснил некоторую интересную вещь - чтоб скриптом поставить на карту объект с другим подтипом нужно естественно поставить объекту в zobjects.txt другой подтип, и НЕОБХОДИМО поставить точ такие же биты для размещения на почвах. Если будут биты отличаться - будут глюки. Почему так не знаю.

Примерный скрипт для замены зимнего входа в подземелье:
!?какой_нибудь_таймер_в_начале_игры;
!!UN:U103/-1/?y1;
!!DO906/1/y1/1:P103;

!?FU906;
!!UN:Ux1/-1/x16/2002;
!!TRv2002/v2003/v2004:T?y3/d/d/d/d/d/d/d;
   !!if&y3=3/v2002<v9554/v2003<v9554:; [v9554 - размер карты]
    !!OB2002:C?y99;
    !!VRv2002:+1;
    !!UN:Ov2002/v2003/v2004;
    !!UN:Iv2002/v2003/v2004/103/1/1;
    !!VRv2002:-1;
    !!OB2002:Cy99;
   !!en:;

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


RE: Исследование героев - Berserker - 03.11.2012 15:18

(03.11.2012 03:17)totkotoriy Wrote:  
(21.10.2012 20:37)Berserker Wrote:  !!SN:E6288384/2/y1/512/9/6/z1;
А этот код работает только в триггере СМ??? Bad

А я то тут уже размечтался...

Может есть что-то подобное, что можно использовать в любом триггере?

В событиях окна приключений работает.


RE: ERA II - Sav - 03.11.2012 15:26

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


RE: ERA II - totkotoriy - 03.11.2012 18:37

(03.11.2012 15:26)Sav Wrote:  Не стоит зазря менять объекту подтип. Лучше, если у них будет один подтип, просто разные дефы.
А генератор просто выбирает случайный шаблон. Но у всех шаблонов должна быть совершенно одинаковая настройка проходимостей.
Я ж говорил раньше что с вратами подземного мира это не пройдет, хоть биты будут стоять только на снегу генерироваться они будут везде.


RE: ERA II - Sav - 03.11.2012 23:06

Что не пройдёт? Я же сказал - выбирается случайный шаблон.


RE: ERA II - totkotoriy - 04.11.2012 00:05

(03.11.2012 23:06)Sav Wrote:  Что не пройдёт? Я же сказал - выбирается случайный шаблон.
Я говорю что генератору карт именно на биты врат подземного мира всё равно, он их размещает вне зависимости на любых почвах. Как еще объяснить?

А что значит одинаковая настройка проходимости? Если это про биты размещения на почвах то абсолютно несогласен, так как они для этого и придуманы. Единственное исключение эти врата (ну может еще порталы, но их не проверял).


RE: ERA II - Sav - 04.11.2012 00:52

Твой пост не противоречит моему. Шаблон врат выбирается случайно, это как раз и значит, что не по почве.

Проходимость - это красные и жёлтые клетки. Если у врат они будут разными, вылеты при генерации очень вероятны, так что если шаблон с другими проходимостями в текстовике для генерации - его действительно надо удалить или исправить.
Кажется понял, "биты размещения" - это не проходимость, а почвы? Но тем не менее, сказанное мной верно. Sm


RE: ERA II - totkotoriy - 04.11.2012 10:38

(28.10.2012 01:43)Berserker Wrote:  Bes, что значит обновляться? При попытке загрузки zeobjts.txt Эра грузит оригинальный файл, затем последовательно проходится по текстовикам из модов и добавляет/заменяет объекты. На выходе имеем сгенерированный в памяти zeobjts со всеми плюшками.
А с остальными (za и zobjects.txt) так же дело обстоит?


(04.11.2012 00:52)Sav Wrote:  Проходимость - это красные и жёлтые клетки. Если у врат они будут разными, вылеты при генерации очень вероятны, так что если шаблон с другими проходимостями в текстовике для генерации - его действительно надо удалить или исправить.
Кажется понял, "биты размещения" - это не проходимость, а почвы? Но тем не менее, сказанное мной верно. Sm
Вот я так и понял, что мы про разные вещи говорим) Биты проходимости естественно не трогал)
Добавил в том сообщении что это про почвы, а то мож действительно не понятно было...


RE: ERA II - Berserker - 04.11.2012 17:50

totkotoriy, нет, только ze. Если нужны ещё какие, нужен список.


RE: ERA II - Algor - 25.01.2013 00:36

Было в 3.58 и перетекло в эру:

Image: trash8.jpg

Кто-нить знает, как отключить это отладочное сообщение?


RE: ERA II - Sav - 25.01.2013 00:43

Это из Сода вроде, когда у ИИ реально становится отрицательное количество денег.


RE: ERA II - feanor - 25.01.2013 18:26

Quote:Кто-нить знает, как отключить это отладочное сообщение?

!!UN:C4362287/1/235;

или

42902F: EB


RE: ERA II - Algor - 25.01.2013 21:14

Sav Wrote:Это из Сода вроде, когда у ИИ реально становится отрицательное количество денег.
Эмм... точно из сода? Я думал всегда, что какие-то воговские опции загоняют ИИ в минус, и что отладка тоже в воге вшита...

feanor Wrote:!!UN:C4362287/1/235;
Спасибо. Жаль что я запорол сохранку, где это выпадало, не могу проверить сразу. В след раз попробую.


RE: ERA II - Berserker - 25.01.2013 21:23

SoD это. А в минус скрипты загоняют.


RE: ERA II - Sav - 26.01.2013 13:28

Я один раз в Хоте тестировал месяцы существ, и спустя много пропусков ходов у ИИ ушло золото в минус с соответствующими сообщениями.


Ошибки, баги и недочёты ERA II - Wiz12 - 05.02.2013 12:57

Ищу способ изменения заклинаний через ERM, к сожалению, пока не могу придумать, как это сделать корректно. Так как работаю в версии 3.58f, !!SS использовать не могу. Для !!UN:C не могу найти адреса параметров хоть какого-то заклинания, пытался найти изменение цены заклинания (сначала искал текущую цену, потом давал герою навык в соответствующей школе магии), но artmoney ничего не нашел. Может быть есть еще пути решения? Про название и описание заклинаний пока молчуAb Для начала хотя бы изменить цену и урон. Заранее благодарен за ответы.


RE: Изменение заклинаний для WOG 3.58f - Algor - 05.02.2013 14:21

(05.02.2013 12:57)Wiz12 Wrote:  Может быть есть еще пути решения?

1. Зачем WoG3.58f? Хоть одну причину назовите (лень качать Эру, не считаем).
2. Если параметры не надо менять динамически во время игры, то большинство можно поправить в /DATA/SPTRAITS.txt
3. Если все-таки динамически и под 3.58, то Вы, батенька, редкостный садомазохист.


Максимум первичных параметров героев - Sam - 18.03.2013 16:14

Меня просто это заинтересовало потому что например в четвертых героях опыт на 80м уровне останавливается . А скилы все таки лучше поставить на +-300 , мало ли что .


RE: ERA scripts Rus - Algor - 18.03.2013 17:07

(18.03.2013 00:05)Berserker Wrote:  Первичные навыки хранятся в однобайтовой ячейке...



RE: ERA scripts Rus - Hommit - 18.03.2013 23:11

(18.03.2013 17:07)Algor Wrote:  
(18.03.2013 00:05)Berserker Wrote:  Первичные навыки хранятся в однобайтовой ячейке...

тогда 250? или на unsigned поменять сложно?


RE: ERA scripts Rus - Berserker - 19.03.2013 22:40

Беззнаковым сделать можно, но артефакты, отнимающие навык (Гладиус, например), будут приводить к переполнению с обратного конца (+255 и ниже), поскольку отрицательные числа требуют знака.


RE: ERA scripts Rus - Hommit - 21.03.2013 00:57

э, мда. забыл. конечно можно поизвращаться, но кому это надо?


RE: Исследование героев - Bes - 28.05.2013 14:43

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


RE: ERA II - Ivor - 07.03.2014 04:09

Quote:Пользовательские наборы объектов для редактора карт не имеет смысла распространять с zeobjts.txt. Вместо это создайте Mods\[имя мода]\Objects\[уникальное имя].txt файл такого же формата, только с новыми объектами. Тогда Ваш набор объектов будет добавлен к наборам из других модов и базовому содержимому редактора.
Не работает.
В папке мода http://yadi.sk/d/Ui9paRu5K6HjB лежит data/Objects/h3ivarts.txt, в котором
Code:
ava0201.def 011111111111111111111111111111111111111111111111 100000000000000000000000000000000000000000000000 111111111 011111111 5 200 4 0
ava0202.def 011111111111111111111111111111111111111111111111 100000000000000000000000000000000000000000000000 111111111 011111111 5 201 4 0
ava0207.def 011111111111111111111111111111111111111111111111 100000000000000000000000000000000000000000000000 111111111 011111111 5 206 4 0
ava0208.def 011111111111111111111111111111111111111111111111 100000000000000000000000000000000000000000000000 111111111 011111111 5 207 4 0
ava0209.def 011111111111111111111111111111111111111111111111 100000000000000000000000000000000000000000000000 111111111 011111111 5 208 4 0
В data/h3ivarts.pac эти артефакты есть
При запуске редактора
Image: objects.jpg


RE: ERA II - Valery - 07.03.2014 05:01

Your text file:

Wrong
Image: ki11.jpg

Good
Image: t2hj.jpg

Don't ask me why, but that's it. Karma.


RE: ERA II - Ivor - 07.03.2014 12:12

(07.03.2014 05:01)Valery Wrote:  Good
Image: t2hj.jpg
Thanks. I'll try it


RE: ERA II - Ivor - 08.03.2014 12:01

(07.03.2014 05:01)Valery Wrote:  Image: t2hj.jpg
It's work , thanks.

Но теперь новый баг. По клику на артефакт - вылезает окно:
Image: h3wmaped.png
Экзешник - стандартный, из дистриба Эры 2.4
https://dl.dropboxusercontent.com/u/58527032/Artifacts/h3wmaped.exe
Читаемый адрес меняется от клика к клику.

При выходе из редактора - ошибка
Image: h3wmaped2.png

Что интересно - отдельный редактор от BlackPhantom'a такого себе не позволяет, но он не умеет работать с модами

На всякий случай: мод, с которым случаются эти чудеса - http://yadi.sk/d/Ui9paRu5K6HjB


RE: Вопросы по моддингу - Arseniy - 13.03.2014 18:37

Подскажите пожалуйста, где в памяти лежат значения, отвечающие за шанс раздачи стартовых армий героям.
Моя задача - сделать шанс появления второго и третьего стека равным нулю, потому что если зануляется число существ в этих стеках, то герои так и появляются с "0" существ.


RE: Вопросы по моддингу - Ivor - 13.03.2014 19:50

100% шанс появления 2ого и 3го стеков
4C948F 9090909090
4C9497 90909090909090909090
4C950F 9090909090909090909090909090909090909090

Для 0-го, наверное, надо нулями забить.


RE: Вопросы по моддингу - Bes - 13.03.2014 19:57

Ivor, если я правильно помню, забить "нулями" в вопросе работы с памятью - это не "00", а другое значение...


RE: Вопросы по моддингу - igrik - 13.03.2014 20:18

скорее всего эфками FF


RE: Вопросы по моддингу - Algor - 13.03.2014 21:32

(13.03.2014 18:37)Arseniy Wrote:  потому что если зануляется число существ в этих стеках, то герои так и появляются с "0" существ.

Как вариант:



RE: Вопросы по моддингу - Berserker - 14.03.2014 05:28

Тип нужен -1, верно сказали (FF).


RE: Вопросы по моддингу - Arseniy - 14.03.2014 13:10

Спасибо.
Мне нужны адреса в памяти, скриптами я пользоваться не смогу.
Quote:100% шанс появления 2ого и 3го стеков
4C948F 9090909090
4C9497 90909090909090909090
4C950F 9090909090909090909090909090909090909090
Quote:Тип нужен -1, верно сказали (FF).
Не очень понятно. В каком типе лежат значения (char, short, int) ? Судя по тому, что FF, то short. Но сколько значений менять? Почему для каждого последующего стека нужно больше чисел задавать?
Можно ли менять тип юнитов? Проблема в том, что если занулить шансы второго и третьего стека, то палатки с баллистами тоже не будет раздаваться. Но у кого во втором стеке не баллиста, а существа, их тип не устраивает.
Еще появился вопрос, где задаются стартовые скиллы героев, специализации, стартовые заклинания? Короче, гора вопросов. Rolleyes


RE: Вопросы по моддингу - igrik - 14.03.2014 14:14

Quote:Еще появился вопрос, где задаются стартовые скиллы героев, специализации, стартовые заклинания? Короче, гора вопросов
Arseniy, если без ERM'a то ставьте IDA, качайте эту базу исходников и исследуйте


RE: Вопросы по моддингу - gamecreator - 14.03.2014 15:45

Не надо даже IDA. По тому, что там забито 90, понятно, что затёрты какие-то команды. Надо просто открыть дизасм и посмотреть что эти команды делали. А потом и исправить их на нужные.


RE: Вопросы по моддингу - Berserker - 15.03.2014 04:25

Arseniy, FF - байт, FFFF - word, FFFFFFFF - dword.


RE: Вопросы по моддингу - Arseniy - 15.03.2014 06:51

Quote:FF - байт, FFFF - word, FFFFFFFF - dword.
Да, мне это очевидно.
Вопрос был, сколько байт писать по адресам:
4C948F
4C9497
4C950F
и почему.
Quote: ; стартовый адрес этой функции : 4C948F
; char __thiscall GenerateTavernHero(_MainStruct_ *this, int heroNum, int a3, char NoArmy)
GenerateTavernHero proc near

ArtNum= byte ptr -8
var_4= dword ptr -4
heroNum= dword ptr 8
a3= dword ptr 0Ch
NoArmy= dword ptr 10h

push ebp
mov ebp, esp
sub esp, 8 ; Integer Subtraction
mov edx, [ebp+heroNum] ; High
push ebx
mov eax, edx
push esi
shl eax, 6 ; Shift Logical Left
add eax, edx ; Add
lea esi, [edx+edx*2] ; Load Effective Address
shl esi, 3 ; Shift Logical Left
lea eax, [eax+eax*8] ; Load Effective Address
sub esi, edx ; Integer Subtraction
cmp CampaignGame, 0 ; Compare Two Operands
push edi
lea ebx, [ecx+eax*2] ; Load Effective Address
mov eax, HeroInfoTablePo
lea edi, [ebx+216B1h] ; Load Effective Address
lea esi, [eax+esi*4] ; Load Effective Address
jz short loc_004C9446 ; Jump if Zero (ZF=1)
Вот код функции, в которую это пишется. Но я совсем не силен в ассемблере.


RE: Вопросы по моддингу - Ivor - 15.03.2014 12:46

(14.03.2014 13:10)Arseniy Wrote:  Можно ли менять тип юнитов?
Да, можно. Для себя сделал так
67C7AC 67;Алкин 1-2-5
67C6EC 62;Вистан 1-2-2
67C698 68;Дракон 1-1-3
67C638 64;Брон 1-2-4
67C63C 6B;Брон 1-2-4
67C190 5D;Шива 1-2-5
67C1EC 58;Гретчин 1-1-3
67C248 5B;Креллион 1-2-4
67C2F8 54;Тираксор 1-2-2
67BF0C 4D;Geon 1-2-4
67BD40 4A;Shakti 1-1-3
67BB74 4F;Dace 1-2-5
67BAB4 46;Loreley 1-2-2
67B780 3C;Galtran 1-1-3
67B5B4 41;Moandor 1-2-5
67B558 3F;Vokial 1-2-4
67B4F4 38;Straker 1-2-2
67B1C0 33;Nimus 1-2-5
67B100 2A;Calh 1-2-2
67B050 2E;Ignaty 1-1-3
67AFF4 30;Marius 1-2-4
67ADCC 23;Teodor Golem > Mage
67AAEC 20;Torosar > Golem
67AAE8 1C;Torosar Gargoile > Gremlin
67A9D8 25;Thane Golem > Genie
67A974 1C;Пикедрам Gargoyle -> Gremlins
67A920 15;Aeris Elf > Pegasi
67A4D0 17;Ryland Elf > Dendr
67A410 0E;Ufretin Dwarf > Centaur
67A528 0E;Torgrim Dwarf > Centaur
67A24C 09;Inkham Griffon > Monk
679FC8 07;Sorsha: Griffon > Swordsman
679F68 00;Lord Haart: Archers->Pikemen
679E50 00;Valeska: 1-2-2

Quote:где задаются стартовые скиллы героев, специализации, стартовые заклинания?
Где-то рядом с этими значениями. Здесь, на DF2 или НС feanor или MOP выкладывали информацию об всех адресах стартовых героев


RE: Вопросы по моддингу - Ivor - 15.03.2014 12:55

As Master of Puppets said:
   "679DD0h (279DD0h in exe, similar for SoD and all WoGs, but may not for HotA) - hero initial parameters. Array of dwords:
   1. Sex
   2. ?
   3. Class
   4. 1st skill
   5. 1st skill level
   6. 2nd skill
   7. 2nd skill level
   8. Spell book flag
   9. Spell number
   10. Creature type in first slot
   11. Creature type in second slot
   12. Creature type in third slot
   13. Pointer to small portrait name
   14. Pointer to large portrait name
   15. ?
   16-23. Always null.


RE: Вопросы по моддингу - MOP - 15.03.2014 13:35

В always null, на самом деле, - ссылка на имя и ещё какая-то хрень, не помню уже. Просто WoG перенаправляет указатели и копирует содовскую структуру в свою (7C44C0h), делая еë рабочей для игры ещё до того, как в содовскую что-то запишется.


RE: ERA II - Ivor - 16.03.2014 14:38

(08.03.2014 12:01)Ivor Wrote:  Но теперь новый баг. По клику на артефакт - вылезает окно:
Image: h3wmaped.png
Экзешник - стандартный, из дистриба Эры 2.4
https://dl.dropboxusercontent.com/u/58527032/Artifacts/h3wmaped.exe
Читаемый адрес меняется от клика к клику.
Разобрался. Это из-за того, что в \Data\MapEdPatch\options.ini не увеличил количество артефактов


RE: Вопросы по моддингу - gamehuntera - 20.03.2014 08:59

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


RE: Вопросы по моддингу - gamecreator - 20.03.2014 12:32

(20.03.2014 08:59)gamehuntera Wrote:     Вопрос - можно ли задать туману войны свойство возвращаться через неделю после открытия? Всмысле, герой проходит через карту, и на том месте, где он был неделю назад, снова появляется туман войны.
Скриптами это всё можно сделать.
Очень просто сделать возвращение тумана войны в начале каждой недели. Но именно для открытия тумана ровно на неделю потребуется функционал Эры, в частности выделение памяти.


RE: Вопросы по моддингу - Ivor - 20.03.2014 17:02

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


RE: Вопросы по моддингу - Arseniy - 31.03.2014 13:26

Разобрался с форматом героев, работает.
Непонятен только формат специальности. На форуме heroesworld указано:
Quote:678420h (278420h in exe, similar for SoD and all WoGs, but may not for HotA) - heroes specialities. 28h byte for one hero.
Parameters are similar to HE:X."
В справке по erm написано про HE:X среди прочего
Quote:To make hero keeper of resources
    X2/$1/0/0/0/0/0 or X2/$1
    $1=resource type (see Format R )
Понятно, что если я хочу сделать героя специалистом по золоту, мне нужно прописать в память куда-то в эти 28 байт число 6.
Но какого оно должно быть формата (byte, word, dword), где именно лежать и что нужно помимо него прописывать, чтобы указать, что специальность по ресурсам, непонятно.
Кто-нибудь может с этим помочь?


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

Устанавливаешь специальности через ЕРМ, смотришь в память.


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

Все очевидно же. HE:X просит семь параметров, память просит 28 байт, то есть, семь dword.


RE: Вопросы по моддингу - Arseniy - 31.03.2014 19:41

Quote:Все очевидно же. HE:X просит семь параметров, память просит 28 байт, то есть, семь dword.
Спасибо, понял.

Оказалось, что там все же не 7, а 10 байт на героя.
Только иконки и описания не поменялись. Второе уже поправил. А вот где лежат иконки, не знаю.


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

UN**.def


RE: Вопросы по моддингу - MOP - 01.04.2014 03:34

Code:
struct Структура_специализации_героя
     Dword Тип_специальности
     Dword Подтип_специальности_1
     Dword Подтип_специальности_2
     Dword Подтип_специальности_3
     Dword Подтип_специальности_4
     Dword Подтип_специальности_5
     Dword Подтип_специальности_6
     Dword Название
     Dword Краткое_описание
     Dword Описание
ends



RE: Вопросы по моддингу - Arseniy - 01.04.2014 17:54

MOP, feanor, спасибо!
Теперь понятно, почему последние три поля поля пустые в ida.

У меня появилась новая интересная идея.
Можно ли добавить несколько новых почв в герои (так, чтобы у замка, оплота и сопряжения у каждого была своя трава, например)?
И можно ли менять почву на клетках карты уже во время игры?
И какой формат у клеток почвы? То есть, в редакторе карт сделать почву размером 1 на X сделать невозможно, минимальный размер по любому направлению 2. Если менять вручную, это будет также?
Я припоминаю, что в какой-то карте вога по-моему были квадраты почвы 1х1, расставленные в шахматном порядке.
И что на деле происходит в тех клетках, где рисунок почвы идет по диагонали? Внутри там одно значение или два?


RE: Вопросы по моддингу - gamecreator - 01.04.2014 20:21

Это всё легко и просто можно узнать из ЕРМ-справки. Форматы -> Типы и подтипы почв.


RE: Вопросы по моддингу - Arseniy - 02.04.2014 19:38

Quote:Это всё легко и просто можно узнать из ЕРМ-справки. Форматы -> Типы и подтипы почв.
Спасибо.)
Узнать можно многое, но совсем не все. Адресов памяти и организации в ней там нет.


RE: Вопросы по моддингу - Arseniy - 04.04.2014 21:20

1) Подскажите, как поправить Horde Growth. Оказалось, что этот параметр в CRTRAITS.TXT не влияет на игру. О_о
2) Как можно изменить параметры вторичных навыков?
3) Началась игра, загрузилась карта. Как получить ее адрес, адрес клетки на карте?


RE: Вопросы по моддингу - feanor - 09.04.2014 03:58

Quote:Можно ли добавить несколько новых почв в герои (так, чтобы у замка, оплота и сопряжения у каждого была своя трава, например)?
Предположим, нет.

Quote:И можно ли менять почву на клетках карты уже во время игры?
Да.

Quote:И какой формат у клеток почвы? То есть, в редакторе карт сделать почву размером 1 на X сделать невозможно, минимальный размер по любому направлению 2. Если менять вручную, это будет также?
Нет.

Quote:И что на деле происходит в тех клетках, где рисунок почвы идет по диагонали? Внутри там одно значение или два?
Нет. Одно, конечно, в дефы глянь.

//------------------------------------------------------
Quote:2) Как можно изменить параметры вторичных навыков?
Если без подробностей - вот здесь адреса http://forum.df2.ru/index.php?showtopic=6139

Quote:3) Началась игра, загрузилась карта. Как получить ее адрес, адрес клетки на карте?
У тебя чтоль чужих исходников нет?


RE: Вопросы по моддингу - Arseniy - 09.04.2014 22:02

Quote:У тебя чтоль чужих исходников нет?
Исходников? О_о
Каких?
У меня есть дизассемблированная база под IDA, но во-первых, что-либо найти в ней очень затруднительно, если не знаешь базового адреса, где искать (то есть подходит только, чтобы что-то уточнять), во-вторых, как я понимаю, карта создается в динамической памяти и в иде ее быть не может.
За ответы спасибо, ссылка
Quote:http://forum.df2.ru/index.php?showtopic=6139
очень годная.


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

Quote:Исходников? О_о
Каких?
WoG, сергроевская база, HD где-то был, декомпилят по сергрожевской базе.

Quote:У меня есть дизассемблированная база под IDA, но во-первых, что-либо найти в ней очень затруднительно, если не знаешь базового адреса, где искать (то есть подходит только, чтобы что-то уточнять
если это готовая - по названиям ищи

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




Энивей:

Quote:3) Началась игра, загрузилась карта. Как получить ее адрес, адрес клетки на карте?

Адвенчаменеджер
Code:
#define o_AdvMgr (*(_AdvMgr_**)0x6992B8)
В нем
Code:
..
_GameMap_* map; //+92 (десятичное)
..

Или

Игроменеджер
Code:
#define o_GameMgr (*(_GameMgr_**)0x699538)

В нем:
Code:
..
  _MapHeader_ map_header; // +1F86Ch
  _GameMap_ Map; // +1FB70h
..

Теперь:

Code:
NOALIGN struct _GameMap_ : public _Struct_
{
  // Список шаблонов объектов карты.
  _List_<_Template_> Templates; // +0
  // Список объектов на карте.
  _List_<_Object_> Objects; // +16
  
  _byte_ f20[128]; // +32
  
  // Список лагерей героя на карте.
  _List_<_PlaceHolder_> PlaceHolders; // +160
  
  _byte_ fB0[32]; // +176
  
  // Адрес 3-мерного массива [L][Y][X], хранящего свойства объекта каждой клетки карты.
  _MapItem_* items; // +208
  // Размер карты (по-горизонтали и по-вертикали).
  _int_ size; // +212
  // Есть ли у карты подземный уровень.
  _bool8_ has_underground; // +216
  
  _byte_ fD9[3715]; // +217
  
  
  //normal
  // Получение клетки по координатам (из массива items).
  inline _MapItem_* GetItem(_int_ x, _int_ y, _int_ z)
  {
     return CALL_4(_MapItem_*, __thiscall, 0x4086D0, this, x, y, z);
  }
};

Или, если надо чистую UN:C реализацию - вот исходник этой 0x4086D0

Code:
//----- (004086D0) --------------------------------------------------------
int __thiscall GetMapItemPoByXY(int this, int a2, int a3, int a4)
{
  return *(_DWORD *)(this + 208) + 38 * (a2 + *(_DWORD *)(this + 212) * (a3 + a4 * *(_DWORD *)(this + 212)));
}

Теперь сама _MapItem_


Code:
NOALIGN struct _MapItem_ : public _Struct_
{
_dword_  setup; //+0
_byte_  land; // +4
_byte_  land_type;//+5
_byte_  river;//+6
_byte_  river_type;//+7
_byte_  road;//+8
_byte_  road_type;//+9
_word_  field_0A;//+10
_byte_  mirror;//+12
_byte_  attrib;//+13
_word_  field_0E_bits;//+14
_word_  field_10;//+16
_dword_  draw;//+18
_dword_  draw_end;//+22
_dword_  draw_end_2;//+26

_dword_  object_type;//+30

_word_  os_type; //+34
_word_  draw_num;//+36
}


Quote:1) Подскажите, как поправить Horde Growth. Оказалось, что этот параметр в CRTRAITS.TXT не влияет на игру. О_о

Code:
// 642E30: using guessed type int HordeBuildings[4];
..
// 6887F0: using guessed type _HordeBuildingData_ TownHordeBuildings[18];
Code:
00000000 _HordeBuildingData_ struc ; (sizeof=0x10)
00000000 Monster             dd ?
00000004 Count               dw ?                                    ; base 10
00000006 Level               dw ?                                    ; base 10
00000008 UpgMonster          dd ?
0000000C UpgCount            dw ?                                    ; = Level + 7
0000000E UpgLevel            dw ?                                    ; base 10
00000010 _HordeBuildingData_ ends



RE: Вопросы по моддингу - Arseniy - 10.04.2014 11:51

Огромное спасибо!
Буду разбираться.

UPDATE: Hordes заработали. Правда для чего нужно
using guessed type int HordeBuildings[4],
я не понял. Работает без него.


RE: Вопросы по моддингу - Arseniy - 11.04.2014 12:54

#define o_GameMgr (*(_GameMgr_**)0x699538)
Я не понимаю, что делать с вот этим вот.
Вот мой код:
Quote:int ptr;
int result = ReadProcessMemory(_handle, LPCVOID(6919480), &ptr, 4, (SIZE_T*)&_readBytes);
int ptr2;
result = ReadProcessMemory(_handle, LPCVOID(ptr), &ptr2, 4, (SIZE_T*)&_readBytes);
int mapSize;
result = ReadProcessMemory(_handle, LPCVOID(ptr2 + 129904 + 212), &mapSize, 4, (SIZE_T*)&_readBytes);
Что я делаю не так?


RE: Вопросы по моддингу - feanor - 11.04.2014 13:59

Code:
int advManager;
int result = ReadProcessMemory(_handle, LPCVOID(0x699538), &advManager, 4, (SIZE_T*)&_readBytes);
int gameMap;
result = ReadProcessMemory(_handle, LPCVOID(ptr+0x1FB70), &gameMap, 4, (SIZE_T*)&_readBytes);
int mapSize;
result = ReadProcessMemory(_handle, LPCVOID(ptr2 + 212), &mapSize, 4, (SIZE_T*)&_readBytes);

При этом, если делать из-под процесса игры, лучше использовать

Code:
int advManager = *(int*)0x699538;
int gameMap= *(int*)(advManager+0x1FB70);
int mapSize= *(int*)(gameMap+212);
или говнокодом
Code:
int mapSize = *(int*)((*(int*)((*(int*)0x699538)+0x1FB70))+212);

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


RE: Вопросы по моддингу - Arseniy - 11.04.2014 17:41

Спасибо! Код игроменеджера у меня не заработал, заработал следующий через адвенчерменеджер:
Quote:int advManager;
ReadProcessMemory(_handle, LPCVOID(0x6992B8), &advManager, 4, (SIZE_T*)&_readBytes);
int gameMap;
ReadProcessMemory(_handle, LPCVOID(advManager + 92), &gameMap, 4, (SIZE_T*)&_readBytes);
int mapSize;
ReadProcessMemory(_handle, LPCVOID(gameMap + 212), &mapSize, 4, (SIZE_T*)&_readBytes);
Из процесса игры было бы делать проще, но я пока не разобрался с патчером, поэтому прописываю мод при запущенной игре из своего ехе.


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

Quote:Из процесса игры было бы делать проще, но я пока не разобрался с патчером
зачем патчер?


RE: Вопросы по моддингу - Arseniy - 12.04.2014 06:37

Ну я использую конфигурацию Heroes 3 Complete Edition + HD Mod, как я понимаю, чтобы модифицировать ехе в данном случае, нужно api патчера использовать, чтобы потом все срослось.
Или в винде можно запустить мой код в процессе игры просто через виндовозное api?

У меня тут еще вопрос появился. Я пока не разобрался, как организовано хранение объектов (героев, замков, существ) и их привязка к карте.
В _MapItem_ есть следующие поля, которые могут иметь к этому отношения:
Dword SetUp; // +0
...
int OType; // +1E
Word OSType; // +22
Как я понял, в первое кидается указатель на нейтральных монстров, если они есть, иначе 0, правильно?
Про последние два в документации ничего толкового не написано и я не нашел какого-то обобщенного типа вроде Object, в котором может содержаться указатель на любой объект (героя, шахту и т.д.)
Есть тип _Types_ для карты, но как я понял, он для препятствий.
В общем, мне нужно из клетки на карте вытащить, стоит ли там монстр, герой, есть ли в ней вход в замок, шахту и получить указатель на этот объект. Для героя, как я понимаю, он потом должен быть приведен к _THero_/_Hero_, для замка к _CastleSetup_.
Или из карты это вытащить нельзя и надо отдельно просматривать список городов и героев?

По структуре _CMonster_
Quote:struct _CMonster_{
unsigned Number :12; // +00 число
unsigned Agression : 5; // +0C 1C-присоединяется, 0A-кровожадное
unsigned NoRun : 1; // +12 не убегает 3.58 fix
unsigned NoMore : 1; // +11 не растет
unsigned SetUpInd : 8; // +13 номер в настройке объектов (P1+44)
unsigned _u1 : 4; // +1B
unsigned HasSetUp : 1; // +1F имеет настройку структуры монстра
};
Непонятны смыслы полей SetUpInd, _u1, HasSetUp. Как из нее получить номер монстра, тот же, что используется CRTRAITS.TXT, а из него параметры монстра?


RE: Вопросы по моддингу - feanor - 12.04.2014 16:11

Quote:Про последние два в документации ничего толкового не написано и я не нашел какого-то обобщенного типа вроде Object, в котором может содержаться указатель на любой объект (героя, шахту и т.д.)
Это тип и подтип объекта.

Quote:Ну я использую конфигурацию Heroes 3 Complete Edition + HD Mod, как я понимаю, чтобы модифицировать ехе в данном случае, нужно api патчера использовать, чтобы потом все срослось.
Совершенно не обязательно. Патчер, в общем-то, нужен только ради удобства написания хуков.
Дллки HD-мод может подгружать и так.


RE: Вопросы по моддингу - Arseniy - 12.04.2014 19:28

Я понял, что Dword SetUp; // +0 относится только к тому, получают ли игроки за убийство монстра, если на этой клетке монстр, ресурсы.
Самый главный вопрос остается открытым : как получить указатель на тот объект, который лежит в конкретной клетке карты, если в _MapItem_ этого указателя нет?
Допустим, по _MapItem_ стало ясно, что в этой клетке лежит город сопряжение. Как получить указатель на именно то актуальное сопряжение, которое там находится?


RE: Вопросы по моддингу - feanor - 12.04.2014 23:56

Quote:Допустим, по _MapItem_ стало ясно, что в этой клетке лежит город сопряжение. Как получить указатель на именно то актуальное сопряжение, которое там находится?

Code:
inline _int_  FindTownIdByXYZ(_int_ x, _int_ y, _int_ z) {return CALL_4(_int_, __thiscall, 0x4BB530,this, x, y, z);} //номер города по координатам, от gameMgr. И таки да, в оригинале это делается перебором

inline _Town_*  GetTown(_int_ town_id) {return ((_Town_*)(*(_ptr_*)(((_ptr_)this) + 0x21614) + 360 * town_id));} //указатель по номеру
004BB5C0 - номер двеллинга по координатам


RE: Вопросы по моддингу - Arseniy - 13.04.2014 07:43

Можешь мне скинуть именно те исходники, что у тебя?
У меня опенсорсные Сергея Роженко с ГитХаба : https://github.com/GrayFace/wog
В них нет никакой обобщающей структуры ни геймменеджера, ни адвенчерменеджера (есть только их упоминания), нет тех функций, которые ты скинул.
По тем ссылкам, которые ты приводил ранее, ссылки на исходники битые.


RE: Вопросы по моддингу - axignom99 - 11.06.2014 20:04

Доброго времени суток,направьте плз.Хочу заменить в башне големов на модели скаченных гномов,подскажите как это сделать не удаляя из игры големов,и где лежат файлы со статами и названиями существ и зданий.Спасибо .


RE: Вопросы по моддингу - Bes - 11.06.2014 20:33

(11.06.2014 20:04)axignom99 Wrote:  где лежат файлы со статами и названиями существ и зданий.Спасибо .
советую глянуть http://forum.df2.ru/index.php?showtopic=16223

что до замены без удаления...
ставите ERA
и кидаете ссылку на ваших новых гномов...
сделаем вам мини-мод для удобной замены моделей големов (уточните потом каких именно заменять)


RE: Вопросы по моддингу - axignom99 - 12.06.2014 01:16

bes спасибо за отзывчивость,не могли бы вы дать свой скайп или еще какой нибудь контакт ,будет проще объяснить .http://makshuvalov.narod.ru/index/sushhestva_gumanoidy/0-35 Дворфы отсюда ,а заменить Големов все четыре грейда в башне(Каменные,Стальные,Золотые,и Алмазные).


RE: Вопросы по моддингу - Bes - 12.06.2014 11:44

Image: dwarf1.gif Image: dwarf2.gif Image: dw1.gif Image: dw2.gif

Эти?


RE: Вопросы по моддингу - axignom99 - 12.06.2014 18:18

Почти
3 грейд идет стрелок,будет выбор либо более слабый но стрелок,либо более сильный но ближник.Необходимо переименовать фабрику големов в стальгорн.И если возможно связаться через ТС или скайп,то дайте пожалуйста данные.Есть несколько вопросов которые неплохо было бы обсудить .


RE: Вопросы по моддингу - gamecreator - 12.06.2014 19:04

Так обсуди в ЛС (личных сообщениях), в чём проблема?


RE: Вопросы по моддингу - axignom99 - 12.06.2014 20:18

(12.06.2014 19:04)gamecreator Wrote:  Так обсуди в ЛС (личных сообщениях), в чём проблема?
А что так тоже можно ?:D Ок.


RE: Вопросы по моддингу - Bes - 13.06.2014 19:37

Image: 08wS9Vgp_mg.jpg
мод для ERA
link: https://app.box.com/s/1vgc36xyosn1elq4p9ay

Описание:
- големы в игре заменяться на этих дварфов
- имена и статистика существ не изменена. Открыть файл Zcrtrait.txt в папке игра\Mods\Dwarf\Data\ и самостоятельно руками изменить нужные места
- имя двеллинга Башни я изменил, но в описании его будут фигурировать некие "гномы".. если что, изменить потом легко сможете, достав тектовик из Dwarf.pac
- моделек для карты для "экс" Золотых и Алмазных големов в моде нет (!), ибо в источнике моделек их не было, а самому их делать я не стал
- никаких скриптов там нет по третьему и 4-ому апгрейду дворфов, всё на усмотрение дальнейшего моддинга заказчиком

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


RE: Вопросы по моддингу - orzie - 20.06.2014 11:34

Image: dw1.gif

Этот гном даже почти трёшный на вид. Откуда он?


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

От Александра)


RE: Вопросы по моддингу - axignom99 - 25.06.2014 01:14

Что нужно для создания альтернативных веток в городах,т.е чтобы был выбор как в MoP моде.


RE: Вопросы по моддингу - feanor - 26.06.2014 03:40

много упорства, чтобы допилить это
http://forum.df2.ru/index.php?showtopic=28985


RE: Вопросы по моддингу - feanor - 14.07.2014 04:43

Камраден, кто-нибудь смотрел замену дефа у объекта в игре в рантайме?
Я пытался ковырять
//----- (004C9650)
int __thiscall UpdateMapItemLook(_MainStruct_ *this, _MapItem_ *mip)
но оно у меня принялось крашить игру.


RE: Вопросы по моддингу - gamecreator - 14.07.2014 05:10

Мне кажется, что это как-то относится к делу.


RE: Вопросы по моддингу - feanor - 14.07.2014 15:15

Нет.


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

Кажется, разобрался ^________^


RE: Вопросы по моддингу - Berserker - 16.07.2014 01:46

Поделись )


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

Как-то так - изменить деф двуклеточного объекта в координатах 13/13/0 (правая клетка) на болотную нору.
С активными одноклеточными и двуклеточными работает нормально, с трехклеточным гарнизоном приемлемо (у неактивных клеток отваливается табличка с населенностью гарнизона), а у неактивных и многоклеточных потом на дополнительных клетках повисает ПКМ-подсказка "Артефакт".


RE: Вопросы по моддингу - orzie - 17.07.2014 15:47

То есть, можно для тех же консерв запилить разрушенные версии, например?


RE: Вопросы по моддингу - Bes - 17.07.2014 18:35

(17.07.2014 15:47)orzie Wrote:  То есть, можно для тех же консерв запилить разрушенные версии, например?
идея с консервами пустыми мне нравится.. беру 20 поддерживаю двумя руками


RE: Вопросы по моддингу - orzie - 17.07.2014 20:32

Дак дисайплы, чо.


RE: Вопросы по моддингу - Bes - 18.07.2014 06:18

(17.07.2014 20:32)orzie Wrote:  Дак дисайплы, чо.
я не играл в их мрачный мир


RE: Вопросы по моддингу - 9in - 03.09.2014 18:49

Вопрос: как принудительно сделать, чтобы стартовый герой всегда был с 1 уровня?

Причина: Сочетание мода XXL и усиленного шаблона 8XM8 для генератора карт с AI Value до 79000 при генерации карты самого большого размера 252*252 приводит:
1) либо к вылету при созданию карты;
2) либо созданию карты с включённой опцией "Легендарные герои" и выбором самому себе случайного героя - он будет 1го уровня, как и у всех компов, тоже легендарный!
3) либо созданию карты с включённой опцией "Легендарные герои" и выбору самому себе нужного героя - он будет 20-30го уровня, у компов легендарные 1го уровня.

Подскажите как же это победить - зависимость начинки/сложности карты и стартового уровня героя?
Баг происходит только при XXL моде. Без него можно играть с усиленным шаблоном 8XM8 для генератора карт с AI Value до 79000 и выбирать любого героя - он будет 1 уровня.
Использование встроенного в XXL мод шаблона в зависимости от его максимального AI Value монстров может выдавать героев 1го уровня, но не всегда, да и толку от огромной карты, когда на ней максимум 10-19 существ 6 уровня на сложности 200% с "сильными" монстрами.

Версия: SoD + Era 2.4.6.1 + Era 2.46 Rus + ERA scripts Rus 1.11 + HD 4.7.16. (с двумя их фиксами) + XXL

Начинаю догадываться, что проблема в огромном количестве тюрем на карте, и при просмотре в редакторе в них уже заданы герои. Наверняка есть все. Также известно, что в HotA этот баг с возможным размещением героя в тюрьме исправили ("Исправлен баг генератора случайных карт с выбором в качестве героя для тюрьмы одного из выбранных стартовых героев игроков.")
Как это исправление включить в ERA?

Или хотя бы узнать AI Value у тюрьмы, чтобы исключить её с карты (из диапазона в rmg.txt) - может поможет, хотя и вряд ли, ведь в тюрьмах герои разных уровней.


RE: Вопросы по моддингу - gamecreator - 04.09.2014 13:12

Повторять один и тот же вопрос в нескольких темах - признак дурного тона. Ну и по поводу ценности тюрем (которая никакая не AI).


RE: ERA II - Hawaiing - 12.09.2014 06:31

Berserker

Soul eater's "Animate Dead" spell just for 1-5Lvl undead.
How to get rid of the restriction so it could animate 6-7Lvl undead?


RE: ERA II - Berserker - 13.09.2014 00:13

(12.09.2014 06:31)Hawaiing Wrote:  Soul eater's "Animate Dead" spell just for 1-5Lvl undead.
How to get rid of the restriction so it could animate 6-7Lvl undead?

Code:
int NPC::CalcSkill(int ind)
{
  #include "templ.h"
  int i,fl,val,spec=0;
  val=Primary[ind];
  if(Skills[ind]>0){
//    if((ind==0)&&(Type==4)) spec=1; // AT & Necro
//    if((ind==1)&&(Type==8)) spec=1; // DF & Conflux
//    if((ind==3)&&(Type==5)) spec=1; // DM & Dungeon
//    if((ind==5)&&(Type==6)) spec=1; // SP & Stronhold
    if((ind==2)||(ind==3)){
      if(spec){
        [b]val+=val*SpecBonus[ind][Skills[ind]-1]/100;[/b]
      }else{
        val+=val*Bonus[ind][Skills[ind]-1]/100;
      }
    }else{
      if(spec){
        val+=SpecBonus[ind][Skills[ind]-1];
      }else{
        val+=Bonus[ind][Skills[ind]-1];
      }
    }
  }
  for(i=fl=0;i<10;i++){
    if(Arts[i][ARTNUMINDEX]==(NPCARTBASE+9)){ // суперкольцо
      if(fl==1) continue;
      if(Skills[ind]<=2){
        if((ind==2)||(ind==3)) val+=val*Bonus[ind][1]/100;
        else  val+=Bonus[ind][1];
      }
      fl=1;
      continue;
    }
    if((ind==2)||(ind==3)){
      val+=val*ArtCalcSkill(i,ind)/100;
    }else{
      val+=ArtCalcSkill(i,ind);
    }
  }
  RETURN(val)
}
Perhaps this one or someone below in npc.cpp. Sorry, I have little time for disassemling currently.


RE: ERA II - Hawaiing - 13.09.2014 09:45

(13.09.2014 00:13)Berserker Wrote:  ...
Perhaps this one or someone below in npc.cpp. Sorry, I have little time for disassemling currently.

Thank you Berserker.
I think i was misled by the command's skill description.
I found that the culture' level had no relation to it.but the HP did (MAX=50hp)
But it seems hard to modify.
----------------------------------------------------------------------------
005A87AD - e8 ab eb 1b 00 - call 0076735d #IsAngel? 150
005A87B2 - 90 - nop
005A87B3 - 83 f8 0d - cmp eax,0d #13=Angel
005A87B6 - 8d 34 b6 - lea esi,[esi+esi*4] #
005A87B9 - 8d 34 b6 - lea esi,[esi+esi*4] # 5*5=25
005A87BC - 75 05 - jne 005a87c3
005A87BE - c1 e6 02 - shl esi,02 #angel 25*4=100HP
005A87C1 - eb 4f - jmp 005a8812
005A87C3 - d1 e6 - shl esi,1 #not angel 25*2=50HP --->comes here
005A87C5 - eb 4b - jmp 005a8812


RE: Вопросы по моддингу - Russia Punk - 13.09.2014 10:54

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


RE: Вопросы по моддингу - Bes - 13.09.2014 11:07

Russia Punk, почитайте вот такой мануал по моддингу...


RE: ERA II - Berserker - 13.09.2014 23:17

Hawaiing, sorry, what exactly do you want to change? You mean that necro commander resurrects only 50 hp as regular angel? The code is the same for both? Here we have to write a plugin. Currently Era has no support for hooks with ERM handlers, but the idea was already thought and planned.


RE: Вопросы по моддингу - Russia Punk - 14.09.2014 11:50

Bes, Как бы я прочитал мануал . А текстовиков нету . Там тока файл . Формата pac .


RE: Вопросы по моддингу - Bes - 14.09.2014 12:12

Russia Punk, плохо прочли...
pac - это и есть архив с ресурсами, который можно открыть прогой MMArchive, например... ссылка на неё в мануале есть


RE: ERA II - Hawaiing - 15.09.2014 07:26

Berserker,
necro commander can't resurrect creatures which have more than 50 hit Points.(Black Knight ect.)
Not because of the commander's power.
Putting mouse on undead creature (HP>50),the animated spellbook doesn't appear,and commander can't cast the spell too.
If cast spell works (HP<=50),the game change the commander's spell power soon.
Sorry for my broken english.


RE: Вопросы по моддингу - Russia Punk - 15.09.2014 22:23

   Это я открыл а текстовики найти не могу


RE: ERA II - Berserker - 15.09.2014 23:08

(15.09.2014 07:26)Hawaiing Wrote:  Berserker, necro commander can't resurrect creatures which have more than 50 hit Points.(Black Knight ect.)
Not because of the commander's power.
Putting mouse on undead creature (HP>50),the animated spellbook doesn't appear,and commander can't cast the spell too.
If cast spell works (HP<=50),the game change the commander's spell power soon.

Hawaiing, why don't you create a simple bin patch like:

/*5A87BC*/ MOV ESI,[DWORD EAX*4+887668]
/*5A87C3*/ NOP
/*5A87C4*/ NOP

where 0x887668 is v1 address. You can reserve some v-vars range, say, v5000-v5144 and with simple patch set ESI to EAX (monster ID) * 4 + @v5000.
I can do it if you wish. Otherwise someone has to write a simple plugin ) If you insist on plugin creation, I will try to do it before this weekend.


RE: Вопросы по моддингу - Bes - 16.09.2014 11:38

Russia Punk, если вы открыли нужный pac (обычно он один в модах), и если в нём действительно есть тектовики английские - то должны были их увидеть в MMArchive
скиньте название мода, и скрин окна MMArchive при просмотре того PAC'а


RE: Вопросы по моддингу - gamehuntera - 16.09.2014 20:22

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


RE: Вопросы по моддингу - gamecreator - 16.09.2014 22:45

(16.09.2014 20:22)gamehuntera Wrote:  Пришла в голову такая мысль... А можно ли сделать так, чтобы при активации тюрьмы герой присоединялся не к игроку, а, скажем, к его союзнику?
Почему бы и нет? В пост-триггере его и переназначить.


RE: Вопросы по моддингу - Macron1 - 06.10.2014 12:43

Хочу в VCMI добавить картинок для экрана загрузки Heroes 3.
Для этого мне нужно лого "Heroes of Might & Magic 3" для этого экрана.
У кого-нибудь есть?
Либо шрифт для лого, либо векторное лого с градиентом и золотым цветом (в интернете попадается только серое лого самодельное), либо просто BMP/PNG, полученное методом удаления фона....


RE: Вопросы по моддингу - orzie - 06.10.2014 14:48

Так удали, это ж недолго)

Ну и да - гугол никто не отменял.


RE: Вопросы по моддингу - orzie - 17.10.2014 20:37

Вопрос от чилийца Mister Kalu, обитающего на Heroes Community:

Quote:While I am in the town screen I can move the mouse over the buildings with cm1 trigger,
but the CM:Ax/y receiver doesn't work at all and how can I click on, for example the tavern,
cancel the default reaction and open the dwelling 2 instead of the original for example?



RE: Вопросы по моддингу - Berserker - 17.10.2014 21:42

If CM:I returns dwelling, you can try settings CM:I of another dwelling and not to use CM:R0 at all.


RE: Вопросы по моддингу - Valery - 17.10.2014 21:50

btw, he registered here (no idea what nick) but says not yet authorized to post.


RE: Вопросы по моддингу - Berserker - 17.10.2014 22:59

*kivo* not found, what is his account? Everybody is activated.


RE: Вопросы по моддингу - orzie - 18.10.2014 09:55

Он не Киво, он Мистер Калу. На дф2 он зареган как Holy K.


RE: Era II Mod Manager - kozelrus - 16.11.2014 16:15

Если поставить, к примеру, Снежный и Людской замок, будут они сочитатся вместе? И к примеру, еще Рощу с Румынским замком добавить, и Инферно, то что с балансом, подмазать, как сделать что бы всё на ура было?


RE: Era II Mod Manager - Bes - 16.11.2014 16:36

kozelrus, если вы сами руками не сделаете общий мод с ресурсами, где будут объединяться картинки в дефах, и не скорректируете определённые таблицы существ и описаний зданий - то вполне можно
(про скрипты я уже молчу)


RE: Вопросы по моддингу - orzie - 18.11.2014 14:58

Hey Valery, I have been told that you are proficient in map hex-editing. What I wanted to ask is the forced change of the map version from WoG to RoE, AB and/or SoD. Is there a tool or at least a guideline how to do that, either by hex editing or other way?

This will help me a real lot to rearrange the map list using the difference in the map versions - say, "former RoE", "former AB", etc.


Ну и на русском:
Никто не в курсе, есть ли инструмент для оперативной принудительной смены версии карты с WoG на, например, Клинок Армагеддона? Или хотя бы руководство, какие места искать хекс-редактором.


RE: Вопросы по моддингу - Ivor - 18.11.2014 15:28

А за это не первый байт карты отвечает? А то смотрю - для Воговских карт там 33, а для обычных - 15


RE: Вопросы по моддингу - orzie - 18.11.2014 16:16

Мне бы рецепт для прямо конкретного разделения, то есть RoE, AB и SoD отдельно. Ну и вог, тоже отдельно. Пусть и не полноправным четвёртым форматом, как хотовский, но всё равно.

Дело в том, что мы понаделали карт в формате вога, а разделить их лучше, чем версиями карт, не получается. А из вога в классику конвертироваться уже не хочет.

Image: 6XrGgL1.png


RE: Вопросы по моддингу - Russia Punk - 22.11.2014 23:50

   Не в какой программе легче делать юнитов


RE: Вопросы по моддингу - orzie - 23.11.2014 00:06

Paint. Почти не шучу) анубита еще там делал


RE: Вопросы по моддингу - Macron1 - 23.11.2014 00:54

(22.11.2014 23:50)Russia Punk Wrote:     Не в какой программе легче делать юнитов

Юнитов лучше делать в 3d. В редакторе руками получается уныло.
Для графики я использую Paint.NET. Там есть слои и куча инструментов, которых мне хватает почти для всего. И плюс он бесплатен.


RE: Вопросы по моддингу - Russia Punk - 23.11.2014 13:47

   Спасибо но вроде он на 7 только.


RE: Вопросы по моддингу - gamecreator - 23.11.2014 15:37

Это наглая ложь. У меня на ХР работает без проблем.


RE: Вопросы по моддингу - Russia Punk - 23.11.2014 17:08

   Да Спасибо ! Dance3


RE: Исследование героев - Macron1 - 06.02.2015 10:54

У меня вот такой вопрос.
Чтобы делать obstacles на поле сражений, нужно указывать им гексы, на которых они расположены. Если для маленьких рэндомных препятствий это легко, для больших нужно знать разлиновку поля с номерами гексов (в том числе недоступных для всех кроме war machines.
Нет ли у кого картинки с пронумерованными гексами для справки?


RE: Исследование героев - Algor - 06.02.2015 12:28

(06.02.2015 10:54)Macron1 Wrote:  Нет ли у кого картинки с пронумерованными гексами для справки?
В ERM-helpe есть:
Image: bf.jpg


RE: Вопросы по моддингу - StasPV - 17.02.2015 17:56

Кто-нибудь знает по какому адресу находится таблица мировоззрений фракций (добро, нейтрал, зло)? В ERM-helpе ничего по этому поводу не нашел. Или мировоззрение - это характеристика конкретного монстра?

Извиняюсь, если вопрос глупый


RE: Вопросы по моддингу - gamecreator - 17.02.2015 18:55

Что за мировоззрения, можно подробней?


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

   Не один раз встречал информацию что фракции делятся на три мировоззрения: Добро(или как то так)( Замок, Оплот, Башня), Зло ( Инферно, Некрополис, Темница) и Нейтралы ( Крепость, Цитадель и Сопряжение).
   
Вот информация про сборный артефакт Альянс Ангелов:
Quote:Альянс Ангелов — прибавляет ко всем основным характеристикам героя по 21 баллу, даёт возможность собирать вместе войска из городов положительного и нейтрального мировоззрения без потери Боевого Духа, в бою этот меч, перед ходом самого быстрого отряда вашего героя, сотворяет заклинание "Молитва" уровня Expert на все союзные отряды.

То есть распределение походу не условное, а где то указано в коде, и мне бы хотелось узнать где. Не попадалось находить такое?


RE: Вопросы по моддингу - gamecreator - 17.02.2015 22:09

Это чисто условное разделение. Вот что написано в ФизМиГе:
Quote:Позволяет смешивать в армии существ Замка, Оплота, Башни, Крепости и Цитадели без штрафа в боевом духе.
Где это в коде - не знаю.


RE: Вопросы по моддингу - Algor - 17.02.2015 22:34

gamecreator Wrote:Это чисто условное разделение.
Разделение по функционированию алтаря жертвоприношения. Еще лодки разных типов и вроде еще что-то было...

Можно попробовать установить класс героя и проверить (тем же алтарем):
ERM Help Wrote:HE:B2/$
Установить/получить класс героя
    $ – класс (0…17)
Разделите полученное значение на 2 и вы получите тип города героя.

Для монстров скорее всего поможет привязка к замку:
ERM Help Wrote:MA:O#/$
Монстр # принадлежит замку $
но тогда и фон монстра изменится, не только "мировоззрение".


RE: Вопросы по моддингу - gamecreator - 17.02.2015 23:11

(17.02.2015 22:34)Algor Wrote:  Разделение по функционированию алтаря жертвоприношения. Еще лодки разных типов и вроде еще что-то было...
Ну у алтаря разделение совершенно другое, чем у Альянса Ангелов. Лодки разных типов только у Некрополиса и Крепости, если не ошибаюсь.


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

Спасибо за ответы. Наверное мировоззрение не глобальное а прописано для объекта\артефакта, но мне тут только гадать. Вспомнил еще, что битвы на клеверном поле, дьявольском тумане и святой земле дают бонусы в зависимости от мировоззрения.


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

Мировоззрения да, прописаны в каждом конкретном случае отдельно.


RE: Вопросы по моддингу - StasPV - 18.02.2015 00:34

feanor, в теме про инженерный анализ ты выложил информацию по отстройке городов. С помощью нее можно не добавить а наоборот заблокировать окно в холле, например верфи, так чтоб ее невозможно было построить? И как следствие если можно, то можно это сделать бинарной заплаткой без кодинга?


RE: Вопросы по моддингу - Дьякон - 18.02.2015 12:26

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


RE: Вопросы по моддингу - StasPV - 18.02.2015 13:52

В теме по инженерному анализу такого не нашел. Можете дать адрес на структуру, и в вкратце сказать что представляет из себя этот массив?

Edit:
Капитолий можно убрать из построек, а можно ли убрать сельскую управу? Тоесть вырезать всю ветку, а не уровень?


RE: Вопросы по моддингу - Дьякон - 18.02.2015 16:49

С адресом проблемка. Писал я код давно, а привычку коментить так и не выработал. Спустя 2-3 года трудно чет вспомнить. Поэтому кину все че есть:
Стоит посмотреть SpecBuild (специальные строения вроде для замков)
AllBuld - тут побитовая маска вроде для зданий, номер бита - номер здания
HallStruc - тут какая-то структура хола, может то че говорил.
MapBuild - тоже вроде со структурой построек связан
В общем если интересно - покопайтесь, если лень то может кто подкинет чего более дельное.

Но мне данных структур хватило чтоб добавить замок, может конечно и с багами так как не тестили, но хватило. А вобще вроде в хоте ж добавили замки, может стоит у них поспрашивать.

И да в коде адреса - это ссылки на структуру а не адрес самой структуры.


RE: Вопросы по моддингу - feanor - 21.02.2015 02:43

Quote:С помощью нее можно не добавить а наоборот заблокировать окно в холле, например верфи, так чтоб ее невозможно было построить?
Дак CA:B4, в общем-то.
а чтоб убрать из таунхолла - это отдельный вопрос


RE: Вопросы по моддингу - StasPV - 24.02.2015 17:32

(21.02.2015 02:43)feanor Wrote:  Дак CA:B4, в общем-то.
а чтоб убрать из таунхолла - это отдельный вопрос

Интересовала возможность убрать из таунхолаAb


RE: Вопросы по моддингу - feanor - 25.02.2015 00:20

Через UN:C вопрос решить сложно.


RE: Вопросы по моддингу - Alexander_Cw - 29.03.2015 19:02

Вопрос такой.
Существует ли возможность добавить новый, скажем, город/существо/объект, ничего не заменяя старого? Где проводить эти связи к новому?


RE: Вопросы по моддингу - Bes - 29.03.2015 20:01

Alexander_Cw, конечно существует.
но давай я скажу один факт в этой сфере... выводы сделаешь сам.
с 2008г. лишь Причал появился как новый город в игре.
Идей, желания и намерений сделать свой новый город у остальных людей/команд - пол сотни, на вскидку.

Ты станешь вторым кто сделает новый город в игре?!
[/зануда off]


RE: Вопросы по моддингу - gamecreator - 29.03.2015 20:03

Alexander_Cw,
Объекты добавляются очень просто в текстовике.
Для существ есть плагин (кажется, emerald.dll).
Чтобы добавить новый город - учишь основы ассемблера, учишься обратному инженерному анализу, открываешь h3wog.exe и находишь там весь код, отвечающий за города. Потом пишешь плагин, который в весь этот код впиливает твой город. Дальше долго тестируешь, находишь кучу багов, исправляешь, снова тестируешь и т.д. Как баги закончатся, выкладываешь в публичный доступ. Люди твой плагин тестируют, находят кучу багов, исправляешь их, люди снова тестируют и находят больше багов. В конце концов получишь работающий плагин. Если ещё и добавишь поддержку произвольного количества городов, то цены твоему плагину не будет. Да, и в любой момент может понадобиться переделать всё с нуля, потому что текущая логика не подходит. Если начнёшь прямо сейчас, то за пару лет справишься.


RE: Вопросы по моддингу - Bes - 29.03.2015 20:04

gamecreator, а ты злой ))) иногда полная правда не оправдана...



RE: Вопросы по моддингу - gamecreator - 29.03.2015 20:09

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


RE: Вопросы по моддингу - Bes - 29.03.2015 20:16

gamecreator, иногда решимость приводит людей в тупик, депрессию и к VCMI (это юмор)
Потому, если здравый человек это знает, почему бы немного слукавить новичку с телегой идей и решимости и сказать ему: "чувак, расслабься, всё это фантастика и не реально в жизни"



RE: Вопросы по моддингу - Macron1 - 29.03.2015 20:28

(29.03.2015 19:02)Alexander_Cw Wrote:  Вопрос такой.
Существует ли возможность добавить новый, скажем, город/существо/объект, ничего не заменяя старого? Где проводить эти связи к новому?

Берешь VCMI, смотришь вики по моддингу, и добавляешь одновременно over 100500 новых городов (можно даже с 32-бит таунскринами).


RE: Вопросы по моддингу - gamecreator - 29.03.2015 20:55

(29.03.2015 20:16)Bes Wrote:  gamecreator, иногда решимость приводит людей в тупик, депрессию
Не, ты тут чего-то напутал. Нерешительность приводит людей в тупик, депрессию и т.д. Решимость - немыслимо.



RE: Вопросы по моддингу - Alexander_Cw - 29.03.2015 20:59

gamecreator, вот это я и хотел услышать! Спасибо большое!

(29.03.2015 20:03)gamecreator Wrote:  Если начнёшь прямо сейчас, то за пару лет справишься.

Пару лет учить ассемблер и переписывать exeшник? Как-то подозрительно много...


RE: Вопросы по моддингу - Alexander_Cw - 29.03.2015 21:26

(29.03.2015 20:16)Bes Wrote:  
gamecreator, иногда решимость приводит людей в тупик, депрессию и к VCMI (это юмор)
Потому, если здравый человек это знает, почему бы немного слукавить новичку с телегой идей и решимости и сказать ему: "чувак, расслабься, всё это фантастика и не реально в жизни"
Bes, в святой лжи нет ничего святого. Решимость, конечно, может привести людей к депрессии, но это же иногда...



RE: Вопросы по моддингу - Bes - 29.03.2015 21:34

Alexander_Cw, конечно же, смотря с какой стороны это оценивать.



RE: Вопросы по моддингу - gamecreator - 29.03.2015 21:56

(29.03.2015 20:59)Alexander_Cw Wrote:  Пару лет учить ассемблер и переписывать exeшник? Как-то подозрительно много...
Ассемблер учится быстро (он нужен только для понимания дизасма), тем более у тебя уже есть опыт в ЕРМ. Вот всё остальное намного сложнее.


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

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


RE: Вопросы по моддингу - Alexander_Cw - 30.03.2015 07:50

(29.03.2015 20:03)gamecreator Wrote:  ...учишься обратному инженерному анализу,..
Обратное программирование, что ли?
А объекты и существа просто в текстовике?

То есть вся проблема заключается в поиске нужного куска и написании по найденному образцу своего куска?!
Всего-то?


RE: Вопросы по моддингу - feanor - 30.03.2015 14:10

Ну да, всего-то.
А все просто ленятся.

Это заговор, но ты можешь его сломать!


RE: Вопросы по моддингу - Algor - 30.03.2015 14:41

Quote:Программирование - это просто. Нужно всего лишь расставить по местам нули и единицы.



RE: Вопросы по моддингу - Berserker - 30.03.2015 15:01

Lifehack. Расставляет только единицы, нули дописываем в свободное место.


RE: Вопросы по моддингу - Barin - 30.03.2015 15:18

(29.03.2015 19:02)Alexander_Cw Wrote:  Вопрос такой.
Существует ли возможность добавить новый, скажем, город/существо/объект, ничего не заменяя старого? Где проводить эти связи к новому?
Предположу что ты не в курсе, но объекты можно добавлять на карту не заменяя оригинальных. Я сейчас такую кампанию делаю.
Просто добавляешь новые дефы объектов в h3sprite.lod через MMArhive например. Визуально на карте у тебя будут новые объекты. Но потом для выкладывания такой карты в геройское сообщество, нужно будет создать файл.wog в котором будет твоя карта и объекты. Игрок помещает этот файл.wog в папку игры UPDATE и устанавливает = играет.

У знающих хочу спросить, а новых монстров можно так использовать по типу объектов? Допустим помещаем в лод кучу монстров, а в битве их подгружаем. Я когда-то мельком видел Эфрит про это писал, на df2 тоже тему видел, но там всё неопределённо, толи я не понял. Хочется четкого ответа и код подгрузки в битве новых монстров.


RE: Вопросы по моддингу - Alexander_Cw - 30.03.2015 15:20

gamecreator, а где лежит этот emerald.dll? Он уже есть или его нужно откуда-то брать?


RE: Вопросы по моддингу - gamecreator - 30.03.2015 15:24

Где-нибудь в интернете. На DF2 точно есть.


RE: Вопросы по моддингу - Alexander_Cw - 30.03.2015 15:42

gamecreator, может быть, amethyst.dll?


RE: Вопросы по моддингу - feanor - 30.03.2015 16:31

Quote:У знающих хочу спросить, а новых монстров можно так использовать по типу объектов? Допустим помещаем в лод кучу монстров, а в битве их подгружаем. Я когда-то мельком видел Эфрит про это писал, на df2 тоже тему видел, но там всё неопределённо, толи я не понял. Хочется четкого ответа и код подгрузки в битве новых монстров.
Теоретически, да, можно сделать неметафорические 100500 типов нейтралов.
Я делал когда-то мод на стражей пирамид, заменяя стекам золотых и алмазных големов дефы на стражей варна и дроидов.


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

(30.03.2015 15:42)Alexander_Cw Wrote:  gamecreator, может быть, amethyst.dll?
Может быть. Я не помню что там для добавления существ, а что для артефактов. Видишь feanorа в теме? У него спрашивай, он же эти библиотеки и писал.


RE: Вопросы по моддингу - Alexander_Cw - 30.03.2015 18:52

gamecreator, а Причал вставляли аналогичным описанному вами способом?
Просто думаю дизассемблировать exeшник HoTы и какого-нибудь Complete Edition и сравнить их, таким образом, понять, где новый город пихают в HoTA. Пройдёт ли такой способ?


RE: Вопросы по моддингу - Macron1 - 30.03.2015 18:53

(30.03.2015 18:52)Alexander_Cw Wrote:  gamecreator, а Причал вставляли аналогичным описанному вами способом?
Просто думаю дизассемблировать exeшник HoTы и какого-нибудь Complete Edition и сравнить их, таким образом, понять, где новый город пихают в HoTA. Пройдёт ли такой способ?
HOTA засудит108

Если выйдет так, то ты и скажешь нам.


RE: Вопросы по моддингу - Alexander_Cw - 30.03.2015 18:59

(30.03.2015 18:53)Macron1 Wrote:  Если выйдет так, то ты и скажешь нам.
"Если выйдет так..." - имеется в виду, что если меня будет судить HoTA, или если пройдёт такой способ быстрого поиска куска кода?

А, и, кстати, HoTA имеет право судить? Что-то у меня кое-какие сомнения...



RE: Вопросы по моддингу - gamecreator - 30.03.2015 19:12

(30.03.2015 18:52)Alexander_Cw Wrote:  gamecreator, а Причал вставляли аналогичным описанному вами способом?
Просто думаю дизассемблировать exeшник HoTы и какого-нибудь Complete Edition и сравнить их, таким образом, понять, где новый город пихают в HoTA. Пройдёт ли такой способ?
Может и пройдёт, но я бы так делать не стал.


RE: Вопросы по моддингу - Alexander_Cw - 30.03.2015 19:15

gamecreator, а что так? Неужели лучше просто прошерстить exeшник WoGа?


RE: Вопросы по моддингу - gamecreator - 30.03.2015 19:25

А вот так вот. Личное предпочтение.


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

Quote:Просто думаю дизассемблировать exeшник HoTы и какого-нибудь Complete Edition и сравнить их, таким образом, понять, где новый город пихают в HoTA. Пройдёт ли такой способ?
Нет, ну ради бога
только все равно один хрен


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

Alexander_Cw, а тебе нужен именно новый город? Более простым ты заниматься не хочешь?


RE: Вопросы по моддингу - Alexander_Cw - 31.03.2015 09:46

Ivor, ну, во-первых, что вы понимаете под "простым"? А во-вторых, какая разница, с чего начинать?

Тем более, что я уже начал рыть ассемблер. Поздно!


RE: Вопросы по моддингу - igrik - 31.03.2015 10:47

Quote:что вы понимаете под "простым"?
то, что внедрить новый город в игру - это высшый пилотаж! А на ассамблере это вообще ужасс. Но на вкус и цвет как говорят...
В общем желаю удачи в этом нелегком деле


RE: Вопросы по моддингу - Alexander_Cw - 31.03.2015 11:07

igrik, ну, что делать... Я не слышал про другие надёжные методы раскомпиляции. Сам не люблю ассемблер, но...
Спасибо за пожелание удачи!


RE: Вопросы по моддингу - Ivor - 31.03.2015 12:01

(31.03.2015 09:46)Alexander_Cw Wrote:  Ivor, ну, во-первых, что вы понимаете под "простым"? А во-вторых, какая разница, с чего начинать?

Тем более, что я уже начал рыть ассемблер. Поздно!
Просто для того, чтобы встроить новый город, надо:
- Отрендерить в 3D здания в городе и жилища на карте, а также модели новых существ, в бою и на карте
- Придумать и реализовать новые свойства для юнитов
- Нарисовать новые фигурки героев, в бою и на карте
- Написать или подобрать новую музыку для города
- Нарисовать новую карту-загадку
- Сбалансировать новый город (параметры существ, героев, шансы выпадения заклинаний и т.д.)
..
- встроить это всё в игру, при этом новые объекты и новые существа добавить можно уже сейчас



Впрочем, если результатом твоих усилий будет новый плагин, позволяющий добавить новый город, оставляющий всё перечисленное для других мододелов, я первый буду аплодировать


RE: Вопросы по моддингу - Macron1 - 31.03.2015 12:37

(31.03.2015 12:01)Ivor Wrote:  - Отрендерить в 3D здания в городе и жилища на карте, а также модели новых существ, в бою и на карте
Чушь.85


RE: Вопросы по моддингу - gamecreator - 31.03.2015 12:45

Ivor говорит о создании города с нуля.


RE: Вопросы по моддингу - feanor - 31.03.2015 15:11

Замечу, что новые города - это не самый геморрой.
Самый геморрой - новые герои.


RE: Вопросы по моддингу - gamecreator - 31.03.2015 15:57

А что с ними не так?


RE: Вопросы по моддингу - Alexander_Cw - 31.03.2015 16:08

Ivor, а почему лучше отрендерить, чем нарисовать?


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

Потому что все оригинальные города были именно отрендерены. И среди замен городов я ещё не видел нарисованных на таком же уровне, что и оригинальные.

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


RE: Вопросы по моддингу - Macron1 - 31.03.2015 18:33

(31.03.2015 16:17)Ivor Wrote:  И среди замен городов я ещё не видел нарисованных на таком же уровне, что и оригинальные.
Это не значит, что все города должны быть как оригинальные и отрендерены.
Это значит только предпочтение формы над содержанием.
Для отыгрывания фракции "супер-пупер графика" не нужна.


RE: Вопросы по моддингу - Ivor - 31.03.2015 19:55

Что есть "отыгрывание фракции"? Sm


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

Quote:А что с ними не так?
много динамических таблиц
и довольно неочевидные ссылки


RE: Вопросы по моддингу - Berserker - 31.03.2015 23:58

Отыгрыш — термин из РПГ. Фактически, чтобы получать эмоции и удовольствие многим игрокам не нужна графика премиум-класса.


RE: Вопросы по моддингу - Ivor - 01.04.2015 11:54

Что такое отыгрыш роли - я вполне понимаю. Как это дело привязать к новой фракции - нет.

"чтобы получать эмоции и удовольствие многим игрокам" новый город тоже необязателен Rolleyes


RE: Вопросы по моддингу - Berserker - 01.04.2015 20:25

Многим обязателен, многим — нет. Одно другого не исключает )


RE: Вопросы по моддингу - Ivor - 06.04.2015 13:10

Вопрос у меня появился: а можно ли как-нибудь вообще убрать выбор действий баннера? Чтобы действовал всегда одинаково, например:
- +1 к морали стека и +1 к его скорости (нежити и големам и одной скорости хватит)
или
- +1 ответка и +1 к скорости


RE: Вопросы по моддингу - Berserker - 06.04.2015 14:12

Так ставится же через ЕРМ команду номер опции (EA:R?). Нужно просто перед битвой в !?BA0 или его сетевом аналоге пройтись по всем слотам обоих героев и поставить опции в нужную. Я правильно понял?


RE: Вопросы по моддингу - Alexander_Cw - 07.04.2015 16:00

Каковы требования к картинкам заднего фона города? существ?


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

Размер.
Для заднего фона вроде битность не важна, для фона существ - восьмибитные.


RE: Вопросы по моддингу - Jimibog - 07.04.2015 23:35

Доброго времени суток. Нужна помощь профессионалов в создании небольшой модификации на ВОГ. По сути даже не в модификации, а в создании нового юнита с некоторыми особенностями. Речь пойдет об "Отце драконов", персонаже не раз упоминающимся в оригинальной компании Героев 3 "клинок Армагеддона", но так и не воплощенном разработчиками. Очень давно у меня сидит в голове эта идея, но вот в моддинге, как и в общем в программирование, я не шибко то разбираюсь. Да вообще не разбираюсьSm По-этому ищу помощи у профессиональных модостроителей, если кто заинтересуется идеей, или хотя бы консультацию как осуществить задумку.
Естественно, если кто-то сам возьмется за разработку программной части, работа будет не бесплатнойSm

Ниже в спойлере расписаны основные особенности задумки. Много букв и ненужных размышленийSm Кому интересно прошу ознакомиться и поделиться мнением возможно ли вообще сделать задуманное.




RE: Вопросы по моддингу - gamecreator - 07.04.2015 23:55

(07.04.2015 23:35)Jimibog Wrote:  3. Пузырек с кровью дракона(Появляется только в компании, так что либо вытаскивать от туда, либо создать аналогию).
Да обычный артефакт это. Просто на картах он по умолчанию запрещён, потому и не появляется. Разрешить не проблема.
(07.04.2015 23:35)Jimibog Wrote:  Теперь подробнее о самом монстре. Одна из основных особенностей в том, что юнит должен быть еденичным.
А вдруг у обоих героев есть полный набор? Они отменяют друг друга, призывает нападающий или тот, кто первый ходит? Или дать возможность призывать вручную (хотя это в общем аналогично очерёдности хода)?
В принципе всё просто, только с графикой не помогу. Завтра набросаю альфа-версию.


RE: Вопросы по моддингу - Jimibog - 08.04.2015 00:15

(07.04.2015 23:55)gamecreator Wrote:  А вдруг у обоих героев есть полный набор? Они отменяют друг друга, призывает нападающий или тот, кто первый ходит? Или дать возможность призывать вручную (хотя это в общем аналогично очерёдности хода)?

Совсем забылSm Возможность призыва должна быть только у одного героя, который первый соберет сет(кто успел, тот и съел), если это опять же возможно сделать. Ну на крайняк придется отключать дублирование артефактов.


RE: Вопросы по моддингу - gamecreator - 08.04.2015 00:23

Я так понимаю, эта привилегия пропадает если в какой-то момент у героя не окажутся одетыми все перечисленные артефакты? Кто тогда должен получить право?


RE: Вопросы по моддингу - Jimibog - 08.04.2015 00:25

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


RE: Вопросы по моддингу - gamecreator - 08.04.2015 00:29

Хм, но эти два героя с артефактами одинаково могут призывать Отца драконов если они не сражаются между собой?


RE: Вопросы по моддингу - Jimibog - 08.04.2015 00:34

Т.е. как только игрок собрал все нужные арты, остальные лишаются этой возможности. Любым доступным способомSm Я просто не знаю всех возможностей, при создании мода

(08.04.2015 00:29)gamecreator Wrote:  Хм, но эти два героя с артефактами одинаково могут призывать Отца драконов если они не сражаются между собой?

Нет, в этом и дело. Только один игрок должен иметь право на призыв, кто первый успеет собрать все артефакты. Ну это в идеалеSm


RE: Вопросы по моддингу - gamecreator - 08.04.2015 00:41

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


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

Да, если не считать графику (которую, как сказано, можно спереть позаимствовать), идея довольно просто реализуется.
Ток вот не пойму, какой смысл вводить искусственное ограничение на использование только одним игроком? Т.к. сила(параметры) дракопапы будет зависеть от армии и параметров/навыков(?) героя, то на поле боя два "отца" равными не будут. Или идея исключительно для карты/кампании где надо сюжетно ограничиться одним "отцом"? Но в последнем случае с запретом артефактов на рандоме проблем не должно быть, т.к. не рандом...

А так, Jimibog, советую подробно расписать расчет параметров дракона, т.к. больше ни во что реализация упереться не должна.

Вообще, зацепила идея привязки параметров и навыков призывного бонус-юнита к праметрам и, главное, втор. навыкам героя:
"Нападение" = двойной удар
"Некромантия" = флаг "нежить"
"Защита" = шанс блока
"Сопротивление" = голем-лайк резист
"Первая помощь" = регенерация
"Логистика" = бонус скорости
"Стрельба" = стрельба
и т.д.


RE: Вопросы по моддингу - Alexander_Cw - 08.04.2015 06:30

feanor, а какой размер конкретно?


RE: Вопросы по моддингу - feanor - 08.04.2015 14:24

А посмотреть по образцу никак?


RE: Вопросы по моддингу - Alexander_Cw - 08.04.2015 14:36

feanor, в таком случае, где лежат экраны (задний план) городов?


RE: Вопросы по моддингу - k : / - 08.04.2015 16:37

Обращались не ко мне, но впрочем ладно. Задники городов в битмапе. Называются примерно так:
TBcsback.pcx — [Замок]
tbdnback.pcx — [Подземелье]
TBELBack.pcx — [Сопряжение]
tbfrback.pcx — [Крепость]
tbinback.pcx — [Инферно]
tbncback.pcx — [Некрополис]
tbrmback.pcx — [Оплот]
tbstback.pcx — [Цитадель]
tbtwback.pcx — [Башня]

А размер их 800×374.


RE: Вопросы по моддингу - Jimibog - 08.04.2015 19:48

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


RE: Вопросы по моддингу - Jimibog - 08.04.2015 19:59

(08.04.2015 01:20)Algor Wrote:  Да, если не считать графику (которую, как сказано, можно спереть позаимствовать), идея довольно просто реализуется.
Ток вот не пойму, какой смысл вводить искусственное ограничение на использование только одним игроком? Т.к. сила(параметры) дракопапы будет зависеть от армии и параметров/навыков(?) героя, то на поле боя два "отца" равными не будут. Или идея исключительно для карты/кампании где надо сюжетно ограничиться одним "отцом"? Но в последнем случае с запретом артефактов на рандоме проблем не должно быть, т.к. не рандом...

А так, Jimibog, советую подробно расписать расчет параметров дракона, т.к. больше ни во что реализация упереться не должна.

Вообще, зацепила идея привязки параметров и навыков призывного бонус-юнита к праметрам и, главное, втор. навыкам героя:
"Нападение" = двойной удар
"Некромантия" = флаг "нежить"
"Защита" = шанс блока
"Сопротивление" = голем-лайк резист
"Первая помощь" = регенерация
"Логистика" = бонус скорости
"Стрельба" = стрельба
и т.д.

По поводу ограничение на использование, на самом деле, тут просто принцип в дань уважения истории вселенной героев Sm)

На счет параметров, основа - умножения этих самых параметров нашего монстра на количество драконов на поле боя. что касается бонуса от героя, пока думаюSm

Кстати годная идея со втор.навыками


RE: Вопросы по моддингу - Jimibog - 08.04.2015 20:08

Тварь у нас магическая, поэтому как вариант можно что бы сила магии героя влияла на урон монстра. Стандартный бонус к нападению и защите, конечно, тоже должен бытьSm


RE: Вопросы по моддингу - Jimibog - 08.04.2015 21:05

Пример базовых характеристик "Папаши"(отталкиваемся от сильнейшего дракона в игре-лазурного):

Атака - 60
Защита - 60
Урон - 50-100
Здоровье - 1300
Скорость - 12

Характеристики умножаются на количество драконов на поле боя. + От героя дракону достается стандартный бонус к атаке-защите, удачи-морали, как и всем юнитам в армии, так же показатель силы магии героя плюсуется к базовому урону существа.

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


RE: Вопросы по моддингу - gamecreator - 08.04.2015 21:50

(08.04.2015 19:48)Jimibog Wrote:  Подумал тут еще над правом вызова. Наверное самый простой способ, сделать один из необходимых артефактов не дублируемым. Т.е. только в единственном экземпляре на карте. Тот самый пузырек с кровью дракона самый подходящий вариант, кстати. В таком случае, кто соберет все необходимые вещи - будет обладать правом вызова Отца драконов. Ну а другим игрокам для этого права нужно будет убить владельца артефактов и забрать их, всего лишьSm Это как вариант.
Я бы не сказал что это проще. Примерно одинаковой сложности, но опять таки делается совершенно по-разному.

(08.04.2015 19:59)Jimibog Wrote:  По поводу ограничение на использование, на самом деле, тут просто принцип в дань уважения истории вселенной героев Sm)
А что там за история? Я ни одной кампании не прошёл.


RE: Вопросы по моддингу - Alexander_Cw - 09.04.2015 11:13

За что отвечают файлы TO/TZ"тип замка-строение".pcx из того же битмапа?


RE: Вопросы по моддингу - k : / - 09.04.2015 13:03

Alexander_Cw, обводка зданий.


RE: Вопросы по моддингу - Jimibog - 10.04.2015 15:25

(08.04.2015 21:50)gamecreator Wrote:  А что там за история? Я ни одной кампании не прошёл.

Ну дык это проходить надо)

В общем итог.

Отец драконов призывается комбинацией артефактов: "Мощь Отца драконов", "Сердце дракона", "Пузырек с кровью дракона". Из которых последний должен быть только в единственном экземпляре на карте.

Базовые характеристики призванного "Папы":
Атака:60
Защита:60
Урон:50-100
Здоровье:1500
Скорость:12

Навыки: дыхание дракона, иммунитет к магии, огненный щит, огненная стена(после атаки оставляет стену огня), боевой дух существа всегда положительный.

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

Так же некоторые вторичные навыки героя позволят Отцу драконов использовать особые способности.

Нападение - ответ на все атаки (базовое + 1ответ, продвинутое+2, экспертное-ответ на все атаки)
Лидерство - "нашествие драконов"(идея такая - раз за бой отец драконов может приказать всем драконам в армии атаковать вне зависимости от их хода. Появляется только при экспертном лидерстве.)
Мудрость - восприимчивость к дружественным заклинаниям.
Чародейство - "страх"(вероятность наложения 10%-15%-20% соответственно развитию навыка)

Остальные втор.навыки героя на способности Отца драконов не влияют.

Вот и всё, думаю.


RE: Вопросы по моддингу - gamecreator - 10.04.2015 15:58

(10.04.2015 15:25)Jimibog Wrote:  идея такая - раз за бой отец драконов может приказать всем драконам в армии атаковать вне зависимости от их хода.
Подробнее, что это такое? Не очень понятно какой должен быть эффект. Действует это на всех драконов или только на дружественных?
И ещё, во время призыва Отца драконов в множитель статов идут только дружественные драконы или все? Должны ли его статы уменьшаться с уменьшением количества драконов?


RE: Вопросы по моддингу - Jimibog - 10.04.2015 16:10

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

А в множитель статусов идут все драконы на поле боя. Как в своей армии, так и в армии противника. И с уменьшением драконов во время боя характеристики "Отца" НЕ уменьшаются.


RE: Вопросы по моддингу - Alexander_Cw - 10.04.2015 17:05

Заменил задний фон Замка на свою картинку. На входе в город игра летит. Почему бы это?
Вот сама картинка:
https://app.box.com/s/f344rwtpfmhcycxnyn0g8726vyrdaura


RE: Вопросы по моддингу - Ivor - 10.04.2015 17:24

Игра понимает далеко не все PCX, которые кидаешь в DATA. Надежней сохранить картинку как BMP и закинуть её в lod / pac.


RE: Вопросы по моддингу - Alexander_Cw - 10.04.2015 17:33

Ivor, я закинул эту картинку в h3bitmap.lod посредством MMArchive.


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

(10.04.2015 16:10)Jimibog Wrote:  Это должен быть активный навык переключающий ход Отца драконов на ход других драконов в армии(Только дружественных иначе уж совсем читерство), при этом в зачет этот ход не идет. То есть сходившие драконы не передвигаются по шкале инициативы и дальше ходят каждый в свою очередь.
Т.е. просто дополнительный ход вне очереди? А Отец драконов тратит свой ход чтобы применить эту способность?
(10.04.2015 16:10)Jimibog Wrote:  Только дружественных иначе уж совсем читерство
Ну я же не говорил что можно будет управлять вражескими драконами. Spiteful

Alexander_Cw, тогда надо было её в BMP сохранить, MMArchive сконвертирует как надо.


RE: Вопросы по моддингу - Alexander_Cw - 10.04.2015 17:41

gamecreator, я уже и в bmp сохранял. Всё равно.
Хотя картинка вроде бы соответствует.


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

Jimibog Wrote:Это должен быть активный навык переключающий ход Отца драконов на ход других драконов в армии(Только дружественных иначе уж совсем читерство), при этом в зачет этот ход не идет. То есть сходившие драконы не передвигаются по шкале инициативы и дальше ходят каждый в свою очередь.

А в множитель статусов идут все драконы на поле боя. Как в своей армии, так и в армии противника. И с уменьшением драконов во время боя характеристики "Отца" НЕ уменьшаются.
Идея все больше и больше начинает напоминать курево.
Jimibog, Вы увлекаетесь и забываете, что любое нововведение должно быть играбильным, а в это понятие входит еще и простота расчета и прогнозирования действий того или иного аспекта. А тут уже целая куча сущностей смешивается: и один экземпляр артефакта, и переменные параметры, и зависимость от некоторых втор. навыков героя, и влияние на очередность в бою, и еще небольшая кучка нестандартных "мелочей". По отдельности или небольшими группами эти фишки будут интересными, однако стянутыми в одну невнятную убер-кучу - вряд ли.


Кстати, как вариант воздействия на вражеских драконов для "отца" - наложение гипноза перед боем.
И да, идея зависимости силы существа от количества других существ - не очень. Опять же из-за трудной прогнозируемости и балансируемости.


RE: Вопросы по моддингу - Alexander_Cw - 11.04.2015 05:41

Подскажите, пожалуйста, запаковщик в lodы. Ссылки битые, а Google ничего путнего не даёт.


RE: Вопросы по моддингу - Macron1 - 11.04.2015 11:39

(11.04.2015 05:41)Alexander_Cw Wrote:  Подскажите, пожалуйста, запаковщик в lodы. Ссылки битые, а Google ничего путнего не даёт.

Не надо запаковывать ЭТО в lodы.


RE: Вопросы по моддингу - Alexander_Cw - 11.04.2015 13:53

Macron1, тогда, по-вашему, куда?


RE: Вопросы по моддингу - Macron1 - 11.04.2015 14:08

(11.04.2015 13:53)Alexander_Cw Wrote:  Macron1, тогда, по-вашему, куда?

На "Рабочем Столе" поместить файл в "Корзину" и выполнить "Очистить Корзину".


RE: Вопросы по моддингу - Alexander_Cw - 11.04.2015 15:49

Macron1, для начала я хотел бы просто посмотреть, как это работает. Так не знаете программу-запаковщик?


RE: Вопросы по моддингу - Macron1 - 11.04.2015 16:19

(11.04.2015 15:49)Alexander_Cw Wrote:  Macron1, для начала я хотел бы просто посмотреть, как это работает. Так не знаете программу-запаковщик?

http://wforum.heroes35.net/showthread.php?tid=644&pid=35316#pid35316


RE: Вопросы по моддингу - Jimibog - 11.04.2015 19:09

(10.04.2015 20:44)Algor Wrote:  Идея все больше и больше начинает напоминать курево. Вы увлекаетесь и забываете, что любое нововведение должно быть играбильным, а в это понятие входит еще и простота расчета и прогнозирования действий того или иного аспекта. А тут уже целая куча сущностей смешивается: и один экземпляр артефакта, и переменные параметры, и зависимость от некоторых втор. навыков героя, и влияние на очередность в бою, и еще небольшая кучка нестандартных "мелочей". По отдельности или небольшими группами эти фишки будут интересными, однако стянутыми в одну невнятную убер-кучу - вряд ли.

Возможно, тем не менее идея такова.) Ну и как бы вариант то пробный, я ведь уже говорил, что модостроением не занимался, а тут как раз возможность все эти "фишки" и опробовать. Далее что-то уберется, что-то переделается.

(10.04.2015 20:44)Algor Wrote:  Кстати, как вариант воздействия на вражеских драконов для "отца" - наложение гипноза перед боем.
И да, идея зависимости силы существа от количества других существ - не очень. Опять же из-за трудной прогнозируемости и балансируемости.

Не вижу проблему прогнозирования, если учесть что это бонус-юнит. Или речь идет о создании мода?

(10.04.2015 17:37)gamecreator Wrote:  Т.е. просто дополнительный ход вне очереди? А Отец драконов тратит свой ход чтобы применить эту способность?

Да, просто ход вне очереди и да, тратит.


RE: Вопросы по моддингу - Alexander_Cw - 11.04.2015 20:57

Macron1, а другое есть?


RE: Вопросы по моддингу - Macron1 - 11.04.2015 21:15

(11.04.2015 20:57)Alexander_Cw Wrote:  Macron1, а другое есть?

А это чем плохо?

Еще есть консольные программы lodexport.exe, lodimport.exe, lodmerge.exe, но в век, когда космические корабли бороздят просторы Энрота, не дело пользоваться консолью.


RE: Вопросы по моддингу - Berserker - 11.04.2015 22:25

В составе Эры в Tools есть утилита resman.exe, основанная на библиотеках Сергея Роженко.


RE: Вопросы по моддингу - Alexander_Cw - 12.04.2015 08:33

Macron1, что-то MMA не пакует...


RE: Вопросы по моддингу - Jimibog - 13.04.2015 15:09

Ну так собственно какая судьба ожидает "Отца драконов"?Sm)


RE: Вопросы по моддингу - gamecreator - 13.04.2015 15:38

Я закодил призыв и большинство способностей, осталось сделать Марш драконов и добавление одного Пузырька с драконьей кровью.


RE: Вопросы по моддингу - Jimibog - 13.04.2015 15:51

Хо. Оперативно.) Я сегодня уезжаю на 3 дня, приеду в пятницу. Так что особо торопиться не надо))


RE: Вопросы по моддингу - gamecreator - 17.04.2015 00:08

Вот собственно. Альфа-версия. Новое существо не добавлял, у меня нет графики того самого дракона из LotR. Пока что вместо него работает кристальный дракон. Мод будет несовместим с любым другим модом, который добавляет существ.


RE: Свободная тема - gamecreator - 18.04.2015 01:34

Я возмущён до глубины души. Не могу одновременно отлаживать Эру в OllyDbg и плагин в Visual Studio. Приходится по очереди. Bad


RE: Свободная тема - Berserker - 18.04.2015 03:47

А как это, одновременно? Я в лучшем случае компилировал в Делфи с map файлом, подгружал map-файл через плагин в Olly, чтобы идентификаторы и адреса были читаемые. И отлаживал уже в Оле.


RE: Вопросы по моддингу - Alexander_Cw - 18.04.2015 05:51

(11.04.2015 22:25)Berserker Wrote:  В составе Эры в Tools есть утилита resman.exe, основанная на библиотеках Сергея Роженко.
Berserker, а как, собственно, этой утилитой пользоваться? Пока лезет только скромная справка, видимо, по синтаксису.


RE: Вопросы по моддингу - SyDr - 18.04.2015 09:47

Что за формат у файлов *.ers? Как определяется, где заканчивается описание опции? И где находится описание стандартных опций?


RE: Свободная тема - gamecreator - 18.04.2015 11:17

(18.04.2015 03:47)Berserker Wrote:  А как это, одновременно? Я в лучшем случае компилировал в Делфи с map файлом, подгружал map-файл через плагин в Olly, чтобы идентификаторы и адреса были читаемые. И отлаживал уже в Оле.
Просто VS наотрез отказывается подключаться к процессу который уже отлаживается. Sm


RE: Вопросы по моддингу - Berserker - 18.04.2015 20:09

Alexander_Cw, ошибся, это для snd/vid. Там же есть lodimport.exe и lodexport.exe.
lodimport.exe "путь к lod-файлу" "путь к файлу-ресурсу"
Запускать из командной строки. Могу кинуть docx обучающий, как работать с приложениями командной строки.

SyDr, открой через erm editor, наведи на ячейку, увидишь описание.
Базовые опции в zsetup00.txt, zsetup01.txt

   gamecreator, не знал, что можно к чужому процессу подключиться и отлаживать свою dll, неплохо. А два отладчика активных вряд ли возможно.


RE: Вопросы по моддингу - Alexander_Cw - 19.04.2015 08:16

Berserker, я себе, конечно, представляю это... Но можно и кинуть справку. Желательно в формате doc.


RE: Вопросы по моддингу - SyDr - 19.04.2015 08:47

Berserker, а можно быстро определить, есть ли в lod файл с определённым именем? Как быстро (с какой скоростью) из них достаются файлы?


RE: Вопросы по моддингу - Ivor - 19.04.2015 13:31

Самому проверить, думаю, гораздо быстрее, чем дождаться ответа на форуме Sm
У меня извлечение через ММА - дело пары секунд

Если не помнишь, какой файл лежит, делай как я: я сделал папку с именем лода, и всё содержимое туда выложил. Потом поиском по файлам легко определяется, в какой папке (в каком лоде) лежит нужный файл

Когда добавлял/менял отдельные кадры в дефах, в подпапки с названиями дефов распаковывал все кадры дефа. Т.о., получается примерно следующая структура:
H3Bitmap
H3sprite
    SpellBon
    SpellInt
SPELLS


RE: Вопросы по моддингу - gamecreator - 19.04.2015 13:40

Ivor, думаю ему для менеджера модов нужно (или для какого-нибудь другого приложения). Тогда твой способ не подойдёт.


RE: Вопросы по моддингу - SyDr - 19.04.2015 15:44

Угу. Пару секунд это очень долго.


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

Quote: а можно быстро определить, есть ли в lod файл с определённым именем?
а в заголовке имя файла посмотреть?


RE: Вопросы по моддингу - SyDr - 19.04.2015 17:29

Хм... Может быть. В том же Воге их всего 2 с половиной тыщи, а во всех остальных модах должно быть на порядок меньше...


RE: Вопросы по моддингу - Berserker - 19.04.2015 19:00

SyDr, есть у тебя формат Лода и его заголовков? Если нет, можно сделать внешней DLL с функцией FileExists.
Александр, держите по командной строке: http://rghost.ru/6lTJ6LVGj


RE: Вопросы по моддингу - SyDr - 19.04.2015 19:21

Berserker, да вроде где-то в инете почитал. Что-то мне кажется, что овчинка выделки не стоит. Проще вынести из lod'ов нужные файлы.


RE: Вопросы по моддингу - Alexander_Cw - 19.04.2015 19:28

Я пробую запаковать изображение в lod. На входе в город, картинку которого я заменяю, игра летит. Пакую разными редакторами ресурсов (MMA, lodimport) в h3bitmap.lod WoGa, Complete Edition, Hotы – всё одно. Картинка соответствует требованиям. К чему бы игра в таком случае летит?


RE: Вопросы по моддингу - Berserker - 19.04.2015 19:42

SyDr, а ты опиши задачу, пока что не ясна цель Ab
Паковать нужно *.bmp, если я верно помню, он автоматически преобразуется в pcx. И через MMArchive.


RE: Вопросы по моддингу - SyDr - 19.04.2015 19:56

По .dat файлу показать полный список опций с возможностью настройки, как из игры Sm


RE: Вопросы по моддингу - Berserker - 19.04.2015 21:16

Идея крута, конечно. Но довольна обширна. С учётом приоритетов модов подгрузить ers-ки, подгрузить и распарсить zsetup-s, ух ))


RE: Вопросы по моддингу - SyDr - 20.04.2015 17:52

Что насчёт опций, которые зависят от других опций (типа "Командры должны быть наняты")? Это просто захардкожено или где-то хранится?


RE: Вопросы по моддингу - Berserker - 20.04.2015 18:50

Прописано в коде по принципу: if (p[994]) { p[3] = 1 }


RE: Общая тема по ФЕНИКС-МОДу - gamecreator - 20.04.2015 21:27

(20.04.2015 19:44)Berserker Wrote:  Так ЕРМ же никто не отменяет. Просто его развитие бессмысленно. Слишком много костылей.
Так надо удалять костыли вместо прикручивания новых, но уровнем выше.


RE: Общая тема по ФЕНИКС-МОДу - Berserker - 20.04.2015 22:02

Дефекты заложены изначально и не подлежат исправлению. Я думал писать компилятор на PHP, много уже наработок было, часть ТЗ, ранние попытки. Но динамическое распределение индексов переменных и функций не дружит с загрузкой обновлённых скриптов (где $Hero$ после перекомпиляции уже давно не v189, а v5005). Совместимость между двумя модами обеспечивается только компиляцией обоих с одним начальным файлом свободных индексов и т.д. В общем, сплошные незатыкаемые дыры. Скрипты Lua дали бы требуемый минимум: циклы, условия, хэши, массивы, читаемые имена, совместимость скриптов. Большего не требуется. Но костыли в ряде мест остаются. Там, где ЕРМ команды привязаны к ЕРМ строкам z+.


RE: Общая тема по ФЕНИКС-МОДу - gamecreator - 20.04.2015 22:11

Слишком узко мыслишь. Всё в тех же рамках ЕРМ-костылей. Проблема с совместимостью индексов? Убрать индексы. Заодно приделать читаемые имена. Не хватает циклов/условий/массивов? Добавить, и не костылём как условия сейчас. Команды привязаны к z#-строкам? Отвязать. Эти и другие решения очевидны если скриптуешь на ЕРМ и читаешь исходники Вог. Причём всё делается в рамках существующего синтаксиса.


RE: Общая тема по ФЕНИКС-МОДу - Berserker - 20.04.2015 22:21

Для меня не легко и не очевидно, уж извини.


RE: Общая тема по ФЕНИКС-МОДу - gamecreator - 20.04.2015 22:34

В том предложении неспроста "если", нечего обижаться почём зря.


RE: Общая тема по ФЕНИКС-МОДу - gamecreator - 20.04.2015 22:57

Berserker Wrote:Я не обижаюсь. Говорю, как есть. Исходя из опыта трудозатрат, работы над 2.55, многих часов обдумываний и отладки, считаю идею абсолютно нежизнеспособной. Но то, что для меня очень сложно, для тебя может быть вполне по силам. Фразы с обидами почти не употребляю )
Я и не говорил, что это делается легко. Придётся переписать ЕРМ, но я считаю что оно того стоит.


RE: Вопросы по моддингу - SyDr - 21.04.2015 19:30

Image: 0_f9edc_9cb503_orig




RE: Вопросы по моддингу - Berserker - 21.04.2015 19:36

О майн год! Сидр, я говорил тебе, что ты волшебник? Нет, ты архимаг! Dance3


RE: Вопросы по моддингу - Bes - 21.04.2015 20:21

SyDr, реально круто!
вопрос - опции будут английскими при активной руссификации?


RE: Вопросы по моддингу - SyDr - 21.04.2015 20:35

Опции будут представлены точно в таком же виде, как в игре.
(Только там есть три типа данных: Text, Hint и Popup - думаю, на hint забью)

Berserker, правильные приоритеты (от низшего к высшему):
1) zsetup01.txt в архиве .pac (ММ берёт из первого по алфавиту, если их будет несколько)
2) Там же вне архива
3) *.ers файлы по алфавиту


RE: Вопросы по моддингу - Berserker - 21.04.2015 21:22

Я бы за такую работу не брался, а ты взял и сделал уже ))


RE: Вопросы по моддингу - Algor - 21.04.2015 23:15

SyDr, круто 132

А теперь вопрос: может пора заменить меню WoG-options? Сделать нормальные группировки с возможностью неограниченно добавлять владки-моды, разделы, полосы прокрутки...


RE: Вопросы по моддингу - gamecreator - 21.04.2015 23:32

Algor, мы с Berserkerом уже это обсуждали когда-то. Не помню к чему пришли.


RE: Вопросы по моддингу - Algor - 21.04.2015 23:51

Подозреваю, SyDr уже пришел ближе.


RE: Вопросы по моддингу - SyDr - 22.04.2015 11:08

Algor, а подробнее можно? Чего в текущей реализации не хватает (я в 3.59 смотрел, но там, наверное, суть одна и та же)? Как должна выглядеть красивая страница настройки?


RE: Вопросы по моддингу - Algor - 22.04.2015 22:43

Примерно так:
Image: menu.jpg

1й столбец - папка мода, в которой лежат ers'ки
2й столбец - название раздела
3й столбец - опции раздела

Если в каком либо столбце много элементов - добавлять скролл.
И я, кстати, не заметил кнопой управления наборами опций (загрузить/сохранить/выбрать все/снять все). Планируется?


RE: Вопросы по моддингу - gamecreator - 22.04.2015 23:14

Наборы опций наверное привязаны к пресетам. Что-то типа опций по-умолчанию.


RE: Вопросы по моддингу - SyDr - 22.04.2015 23:15

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


RE: Вопросы по моддингу - Algor - 22.04.2015 23:19

(22.04.2015 23:15)SyDr Wrote:  Понял: не хватает группировки по модам.
И (пере)группировки по названиям разделов. В текущей структуре некоторые разделы разорваны на несколько частей во вкладке, что не есть хорошо.


RE: Вопросы по моддингу - fireman - 24.04.2015 00:27

SyDr, и сделай умную строку поиска. Чтобы можно было вводить слово и в списке оставалось только то, что отвечает запросу.


RE: Вопросы по моддингу - Jimibog - 24.04.2015 22:03

Вернулся)
(17.04.2015 00:08)gamecreator Wrote:  Вот собственно. Альфа-версия. Новое существо не добавлял, у меня нет графики того самого дракона из LotR. Пока что вместо него работает кристальный дракон. Мод будет несовместим с любым другим модом, который добавляет существ.

Отлично! Теперь что касается анимации. Кадры наштамповать я и сам в фотожабе могу, где только исходники брать? От куда кадры с анимацией вытаскивать?


RE: Вопросы по моддингу - k : / - 24.04.2015 22:19

Этот?
Image: 86a9c1ae6af6.png
Находится в Mods/Lord/Data/hmm35wog.pac
Зовется zm195z.def


RE: Вопросы по моддингу - Jimibog - 24.04.2015 22:24

Этот) Спасибо) Приступлю к дизайну на днях


RE: Вопросы по моддингу - Berserker - 24.04.2015 22:49

Красавец )


RE: Вопросы по моддингу - gamecreator - 24.04.2015 23:40

Jimibog, заодно и фотографию его вытащи из twcrport.def (в том же архиве).


RE: Вопросы по моддингу - StasPV - 10.05.2015 10:56

Уже неделю голову ломаю по поводу замены графики строений в экране городов. Для примера взял AbyssTown для VCMI. При замене дефов зданий Темницы на другие рано или поздно происходит вылет, может вылететь при заходе в город либо при постройке здания.

Первым делом проверил тип дефов. У некоторых был тип "монстр", я пересобрал их в тип "интерфейс", думал проблема решится, но вылеты остались. Тогда я распаковал часть дефов, пересохранил каждый кадр в bmp с глубиной цвета 24, поменял имя на более короткое, собрал в деф, и снова игра рано или поздно вылетает( Была мысль что это из-за того что в экзешнике количество кадров для здания нужно поменять, но тоже не помогло, кстате такая же фигня была и с польским форджем.

Пробовал и в Эре модом и паком в ХД, вылетает и там и там.
Вот ссылка на пак для ХД мода Может кто-то проверить у себя, будет ли вылет при отстройке Темницы?

Кто-то с таким сталкивался?


RE: Вопросы по моддингу - Bes - 10.05.2015 12:17

StasPV, а вы как отстраивали? руками в игре? или кодом "постоить всё?"
просто интересно на каком отстроенном здании появлялся вылет?


RE: Вопросы по моддингу - StasPV - 10.05.2015 12:40

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

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

Не знаете, может есть какие то требования в настройках изображения в фотошопе, например кадры должны быть только RGB 8 бит, и при сохранении выставить такие то настройки?


RE: Вопросы по моддингу - Bes - 10.05.2015 12:48

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

P.S. а размеры кадров взяты из расчёта "чтобы влезло?" или такие же как и в родных кадрах Подземки?
меня смутили размеры 255х258pcx к примеру
P.P.S. мне почему-то кажется, глядя на другие оригинальные кадры, что размеры должны быть все чётные


RE: Вопросы по моддингу - StasPV - 10.05.2015 13:30

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


RE: Вопросы по моддингу - StasPV - 16.05.2015 17:40

Вообщем размер кадров может быть и четным и нечетным, вылеты пропали после того как распаковал все дефы и заново их создал с нуля (без импорта hdl-файла).

Теперь такой вопрос, как в ЭРЕ сделать нестреляющего юнита стреляющим и наоборот? По какому адресу нужно что записать? Например для копейщика? Вроде как находил что одним ЕРМ не обойтись


RE: Вопросы по моддингу - k : / - 16.05.2015 17:49

Нужно еще добавить кадры стрельбы, если у существа их нет.


RE: Вопросы по моддингу - Berserker - 16.05.2015 18:28

Вот чес-слово, есть функция на дф2 в теме «Тонкости UN:C» или «Инженерный анализ» и ещё есть в моде «Роща», если я верно помню.


RE: Вопросы по моддингу - Valery - 16.05.2015 18:40

Or HERE


RE: Вопросы по моддингу - Berserker - 16.05.2015 21:03

Right, thank you, Val ))


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

обсуждая армагеддон в игре, вдруг стало интересно, кто знает как достать "анимацию" от Землетрясения (дрож экрана), чтобы этот эффект скажем добавить к действию самого Армегеддона, создав тем самым бОльший эффект от происходящего...
хм?


RE: Вопросы по моддингу - Valery - 17.05.2015 16:54


This?


RE: Вопросы по моддингу - Bes - 17.05.2015 17:15

maybe Ab
я почему-то не уверен что Землетрясение сработает вне режима "Осада"
i'm not sure that Earthquake will work when battle without "walls-mode"


RE: Вопросы по моддингу - Berserker - 17.05.2015 17:18

Bes, пробовал, работает. Просто время от времени вылетает.


RE: Вопросы по моддингу - Valery - 17.05.2015 17:26

For some reasons, BH forces spells that couldn't be cast normally if no valid condition, as dispel, kill undead, earthquake and so on. They will work.


RE: Вопросы по моддингу - Algor - 17.05.2015 21:10

Bes Wrote:достать "анимацию" от Землетрясения (дрожЬ экрана), чтобы этот эффект скажем добавить к действию самого Армегеддона, создав тем самым бОльший эффект от происходящего...

А как запустить параллельно две анимации ты уже знаешь? Если да - поделись, если нет - последовательность "дрожь", "огненный ливень" (или наоборот) будет смотреться криво.


RE: Вопросы по моддингу - Bes - 17.05.2015 21:40

Algor, так потому мой вопрос и здесь, а не в теме скриптов...
я намекал на некую волшебную SN-команду для ERA с внедрением в память/ф-цию... чтобы армагеддон был с анимацией и тряской одновременно


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

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


RE: Вопросы по моддингу - Bes - 17.05.2015 23:42

Algor, давай скинемся и объявим некий гонорар за сею приблуду ;-)


RE: Вопросы по моддингу - Algor - 17.05.2015 23:58

Не, мне не настолько нужно Ab



RE: Вопросы по моддингу - gamecreator - 18.05.2015 01:09

Bes, лично я не против если ты профинансируешь моё страдание фигнёй (в виде раскопок геройского экзешника). 118


RE: Вопросы по моддингу - Bes - 18.05.2015 02:26

цена вопроса?


RE: Вопросы по моддингу - feanor - 18.05.2015 03:39

Там гемор-ро-ой, если честно.
кажется, не так сложно, но геморрой


RE: Вопросы по моддингу - orzie - 18.05.2015 09:12

(17.05.2015 21:40)Bes Wrote:  Algor, так потому мой вопрос и здесь, а не в теме скриптов...
я намекал на некую волшебную SN-команду для ERA с внедрением в память/ф-цию... чтобы армагеддон был с анимацией и тряской одновременно

Раз пошла такая пьянка, то и я могу вкинуться, т.к. для h3sw это мастхэв.


RE: Вопросы по моддингу - gamecreator - 18.05.2015 10:43

(18.05.2015 02:26)Bes Wrote:  цена вопроса?
Сколько не жалко. Я всё равно так или иначе полезу в этом разбираться, из чистого любопытства.


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

gamecreator Wrote:Сколько не жалко. Я всё равно так или иначе полезу в этом разбираться, из чистого любопытства.
Хмм... тогда предлагаю ввести единицу измерения "Пиво" равную 200 руб. (не знаю, как у вас, а у нас кружка нормального живого пива около 150-200 стоит).

Итак: с меня 1 (одно) Пиво тому, кто первый найдет способ одновременно воспроизвести на поле боя (отряде/позиции) несколько анимаций.

Кто еще готов скинуться по Пиву, пишите.
Мой способ передачи Пива - на телефон (я всякими инет-кошельками не пользуюсь, P2P в моем случае дороговато - 75 руб за перевод 200 руб).


RE: Вопросы по моддингу - gamecreator - 18.05.2015 11:56

К слову, я ещё исследовал возможность ставить произвольные стены огня на отдельные гексы. Тоже муторная вещь, но если кому интересно - могу попытаться сделать.


RE: Вопросы по моддингу - Algor - 18.05.2015 12:08

Так стена через BH:C нормально ставится.
А вот за управление длительностью Стены огня, Силового поля и Берсерка я предлагаю еще 1 (одно) Пиво 118.


RE: Вопросы по моддингу - gamecreator - 18.05.2015 13:29

(18.05.2015 12:08)Algor Wrote:  Так стена через BH:C нормально ставится.
Разве? Это же просто колдовать заклинание. А одноклеточных стен огня не бывает.


RE: Вопросы по моддингу - orzie - 18.05.2015 14:48

(18.05.2015 11:20)Algor Wrote:  
gamecreator Wrote:Сколько не жалко. Я всё равно так или иначе полезу в этом разбираться, из чистого любопытства.
Хмм... тогда предлагаю ввести единицу измерения "Пиво" равную 200 руб. (не знаю, как у вас, а у нас кружка нормального живого пива около 150-200 стоит).

Итак: с меня 1 (одно) Пиво тому, кто первый найдет способ одновременно воспроизвести на поле боя (отряде/позиции) несколько анимаций.

Кто еще готов скинуться по Пиву, пишите.
Мой способ передачи Пива - на телефон (я всякими инет-кошельками не пользуюсь, P2P в моем случае дороговато - 75 руб за перевод 200 руб).
В моём случае Пиво поставляется на телефон и пэйпал, в самом крайнем случае на сбербанк.


RE: Вопросы по моддингу - Algor - 18.05.2015 14:57

(18.05.2015 13:29)gamecreator Wrote:  А одноклеточных стен огня не бывает.
не уверен (Click to View)



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

Это если в самой верхней клетке наколдовать? Ты по центру поля так сделай, тогда поверю.


RE: Вопросы по моддингу - Algor - 18.05.2015 18:24

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


RE: Вопросы по моддингу - Bes - 18.05.2015 20:00

(18.05.2015 11:20)Algor Wrote:  Итак: с меня 1 (одно) Пиво тому, кто первый найдет способ одновременно воспроизвести на поле боя (отряде/позиции) несколько анимаций.

Кто еще готов скинуться по Пиву, пишите.
Я в доле.
Но при условии, что в первую очередь именно анимация землетрясения будет легко добавляться к другому заклу... вдруг эти методы не совсем универсальны и не все такие анимации можно будет реализовывать, как того желаешь ты

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


RE: Вопросы по моддингу - gamecreator - 18.05.2015 20:26

(18.05.2015 18:24)Algor Wrote:  Ну я как-бы и не говорил, что можно сделать штатно (штатно и в верхнем ряду нельзя кстати). Но тем не менее при определенных условиях может быть одногексовый файервол, поэтому я и усомнился в твоем категоричном утверждении - ведь если может быть при определенный условиях, можно (теоретически) и для любых условий заточить.
А что это за условия такие? Устранение препятствий?


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

gamecreator Wrote:А что это за условия такие? Устранение препятствий?
Это я про край поля.


RE: Вопросы по моддингу - feanor - 20.05.2015 21:50

Хм, а еще кому что за Пиво сделать мб? :D
а то я в Питере на звонках поиздержался


RE: Вопросы по моддингу - Bes - 20.05.2015 23:19

feanor, сделай выше обозначенное... Не важно кто это найдёт первым ;-)


RE: Вопросы по моддингу - Algor - 20.05.2015 23:34

(20.05.2015 23:19)Bes Wrote:  Не важно кто это найдёт первым ;-)
Что значит не важно? Пиво (по крайней мере с меня) только первому, я сразу обозначил.


RE: Вопросы по моддингу - gamecreator - 21.05.2015 01:15

Ну я пока не брался, так что если Феанор хочет - пожалуйста.


RE: Вопросы по моддингу - orzie - 21.05.2015 12:11

(20.05.2015 21:50)feanor Wrote:  Хм, а еще кому что за Пиво сделать мб? :D
а то я в Питере на звонках поиздержался

У тебя и так на ящик Пива работы :D


RE: Ваши вопросы по ERM-скриптам - igrik - 27.05.2015 12:53

никто не вкурсе как установить заблокированный слот в определенной позиции на теле героя (замОк как в сборниках)? Проклятья не предлагать))


RE: Ваши вопросы по ERM-скриптам - gamecreator - 27.05.2015 13:14

char LockedSlot[14]; //+1C6
в структуре героя


RE: Ваши вопросы по ERM-скриптам - igrik - 27.05.2015 13:26

мэрси


RE: Вопросы по моддингу - Alexander_Cw - 29.05.2015 15:12

Добрый день вновь,
Каковы требования к рендеру здания для города? У меня есть рендер, что с ним сделать, чтобы он подходил?

Ссылка на рендер:
https://app.box.com/s/m7kpq1vs6rsk3idg2xy34q4e6unuybhf


RE: Вопросы по моддингу - Macron1 - 29.05.2015 16:37

(29.05.2015 15:12)Alexander_Cw Wrote:  У меня есть рендер, что с ним сделать, чтобы он подходил?
Полностью переделатьAb

Делаешь в редакторе со слоями 800X374 фон города, и в слои пихаешь кадры с рендера. И делаешь так, чтобы тебе понравилось.


RE: Вопросы по моддингу - Alexander_Cw - 29.05.2015 18:38

Ну, допустим, сделал.
https://app.box.com/s/hlo2xk3iqx411p2tpff19e90dhnm60zb
И что с этим делать дальше? В каком виде пихать в игру?


RE: Вопросы по моддингу - gamecreator - 29.05.2015 19:39

Сделать деф здания и координаты поменять на соответствующие.


RE: Вопросы по моддингу - Alexander_Cw - 29.05.2015 21:39

gamecreator, а где записаны координаты?


RE: Вопросы по моддингу - gamecreator - 29.05.2015 22:19

В исполняемом файле игры. Есть программа для их изменения, поищи.


RE: Вопросы по моддингу - Alexander_Cw - 30.05.2015 10:04

До меня дошло, что Дьякон ещё в 2009 году разработал dll для внедрения нового города. Правду бают али лгут?


RE: Вопросы по моддингу - StasPV - 30.05.2015 21:30

Пытаюсь познать ЕРМ... Ресейвер МА может задать количество кастов существу и флаги.
А как можно задать каст существу? Например чтобы копейщик кастовал благословение? И можно ли сделать чтоб существо имело книгу магии как например сказочный дракон? Кто-нибудь пытался такое сделать?

И по флагам, как обнулить все флаги у существа? Я заменил деф существа, и теперь оно из двухклеточного стало одноклеточным. Флаг двухклеточности я нашел в справке, а вот как сделать существо одноклеточным-не знаю.


Alexander_Cw, в екселе для себя когда-то делал документ. Если в фотошопе все готово, то нужно посмотреть координату верхнего левого угла здания, и вписать ее в нужную колонку документа+поменять номер города внизу (0-Замок, это в ЭРМ хелпе можно посмотреть), а потом НЕХ эдитором вписать по выданному адресу выданные значения координат
exel файл


RE: Вопросы по моддингу - Berserker - 30.05.2015 22:22

Легко через ЕРМ без хаков не заставить существо колдовать.
Флаги:
!!MA:X[номер]/0;


RE: Вопросы по моддингу - Algor - 30.05.2015 23:27

(30.05.2015 22:22)Berserker Wrote:  Легко через ЕРМ без хаков не заставить существо колдовать.
Да ладно, в последнем BH командиры колдуют налево и направо безо всяких хаков. Сложные заклинания типа жертвы или телепорта сделать вряд ли получится, но с большинством проблем нет:
ERM Help Wrote:Пример, как можно заставить монстра, имеющего заклинание, наколдовать его:
!!BG:A10 S-1 Dx1;
(На позиции x1 должен располагаться объект, на который кастуется магия)
Только перед этим нужно через BM:U4 и BM:E установить отряду нужное заклинание и кол-во оставшихся кастов. Ну и обвязка нужна будет конечно, в т.ч. и алгоритм выбора цели и вообще решение о касте для ИИ. Но все это вполне себе делается чистым ERM.

UPD: да, и книжку магии существу сделать тоже можно. И не так сложно, как может казаться пока не возьмешься 118

UPD2: сделать существо одноклеточным



RE: Вопросы по моддингу - StasPV - 31.05.2015 01:38

Спасибо, буду разбиратьсяAb

Вроде за книгу магии кто-то уже писал когда-то, но вот кто и где не помню, увы


RE: Вопросы по моддингу - Berserker - 01.06.2015 02:36

Algor, так существо изначально должно быть кастером в приведённом тобой коде.


RE: Вопросы по моддингу - Algor - 01.06.2015 13:44

Не обязательно изначально.
Вот сырой, но рабочий набросок:



RE: Вопросы по моддингу - Berserker - 01.06.2015 19:23

Не проверял. Но у некастеров же нет анимации колдовства, должно вылетать.


RE: Вопросы по моддингу - StasPV - 01.06.2015 21:41

А что делает !!SN:W ? Ничего не нашел про нее в ЕРМ хелпе.

Еще вопрос по поводу флагов. Увидел что не все абилки ими задаются, например сопротивление магии гномов, возврат гарпий, иммунитет слепоте троглодитов, куча абилок элементалей. Каким образом можно отключить такую абилку?

Уф, тяжеловато мне поддается ЕРМAb


RE: Вопросы по моддингу - gamecreator - 01.06.2015 21:53

(01.06.2015 21:41)StasPV Wrote:  А что делает !!SN:W ? Ничего не нашел про нее в ЕРМ хелпе.
Есть там. Но только в том, что с Эрой идёт. В папке Help.


RE: Вопросы по моддингу - Algor - 01.06.2015 23:26

Berserker Wrote:Не проверял. Но у некастеров же нет анимации колдовства, должно вылетать.
Не вылетает. Анимация атаки используется.

StasPV Wrote:Увидел что не все абилки ими задаются, например сопротивление магии гномов, возврат гарпий, иммунитет слепоте троглодитов, куча абилок элементалей. Каким образом можно отключить такую абилку?
Подобные абилки захардкодены. Отключать либо через UN:C, либо в общем случае долго, нудно и криво обходить.

StasPV Wrote:А что делает !!SN:W ?
Позволяет сохранять/получать произвольные значения под произвольными именами. Сохраняется в т.ч. и в сэйвах. То же самое можно делать используя v/z переменные, но данный вариант предпочтительнее с т.з. совместимости.


RE: Вопросы по моддингу - botka4aet - 02.06.2015 23:46

Доброго всем дня.
Есть 2 мода, которые запускаются через Era мм.
Каждый из модов затрагивает acredits
Так вот - игра берет графику из мода, которого приоритет выше, а координаты - уже из второго.
Это как-то лечится?


RE: Вопросы по моддингу - gamecreator - 03.06.2015 00:36

Поставить второй мод выше первого. Тогда игра будет брать и графику, и координаты из второго мода.


RE: Вопросы по моддингу - Alexander_Cw - 05.06.2015 17:34

Добрый день, есть ли живая ссылка на amethyst.dll?


RE: Вопросы по моддингу - Berserker - 05.06.2015 18:13

Кажется, плагин Феанора (Feanor). Надо бы ему написать в личку.


RE: Вопросы по моддингу - gamecreator - 05.06.2015 18:25

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


RE: Вопросы по моддингу - Bes - 05.06.2015 18:40

у Ivor'а точно есть.4


RE: Вопросы по моддингу - Berserker - 06.06.2015 23:52

Из города Ковенантов?


RE: Вопросы по моддингу - gamecreator - 07.06.2015 00:57

Например, да.


RE: Вопросы по моддингу - hippocamus - 07.06.2015 14:58

А emerald.dll? Что он вообще делает, и есть ли у кого-нибудь работающий TPM_emerald.dll?


RE: Вопросы по моддингу - Berserker - 07.06.2015 17:00

Рабочего не нашёл. Арты добавляет, если верно помню.


RE: Вопросы по моддингу - hippocamus - 08.06.2015 21:13

А почему они "сломались"? Если были выпущены - значит работали, видно? С новой версией Эры несовместимы?


RE: Вопросы по моддингу - gamecreator - 08.06.2015 21:18

Они не сломались. feanor просто прекратил всякую поддержку и разработку.


RE: Вопросы по моддингу - Alexander_Cw - 17.06.2015 13:07

Пользуюсь amethyst.dll.
Есть строка в crtraits.txt, crtrait0.txt и zcrtrait.txt:
Огненный лучник Огненные лучники 0 0 0 0 0 0 270 380 375 8 3 30 6 10 2 4 8 18 21 4 8 Огненный шар. SHOOTING_ARMY
В конфигурации существа 198 прописано - флаги=20.
Игра не выводит название существа, отказывается признавать, что это стрелок. Почему бы это?


RE: Вопросы по моддингу - gamecreator - 17.06.2015 14:05

Колонки разделяются символом табуляции.


RE: Вопросы по моддингу - gamecreator - 19.06.2015 19:37

(18.05.2015 12:08)Algor Wrote:  управление длительностью Берсерка
0x444635 - сила/длительность Разрушающего луча, Берсерка, Корней. 4 байта, по умолчанию 255.

0x4450D8 - способ расчёта силы для заклинаний номерами от 47 до 72, 1 байт на заклинание.
Возможные значения:
0 - константа по адресу выше (по умолчанию у Разрушающего луча, Берсерка, Корней)
1 - 1 если целевой отряд сейчас ходит, иначе 2 (по умолчанию у Бешенства)
2 - использовать обычную силу заклинания (все остальные)




RE: Вопросы по моддингу - gamecreator - 19.06.2015 21:37

(18.05.2015 12:08)Algor Wrote:  управление длительностью Стены огня, Силового поля
0x5A0ADE - силовое поле
0x5A0C19 - стена огня
Длительность в раундах (0 - бесконечно). 4 байта, по умолчанию 2. Работает только для новых полей и стен, как и сила заклинаний сообщением выше.




RE: Вопросы по моддингу - Algor - 19.06.2015 22:39

Номер телефона для заливки Пива в ЛС кинь.


RE: Вопросы по моддингу - Bes - 20.06.2015 22:40

Algor, есть инфа, что из РФ перевода на телефоны абонентов Украины не доходят.



RE: Вопросы по моддингу - hippocamus - 20.06.2015 22:45

Так у него вроде Яндекс-кошелёк, нет?


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

(20.06.2015 22:40)Bes Wrote:  
Algor, есть инфа, что из РФ перевода на телефоны абонентов Украины не доходят.
Через QIWI-кошелек пополнить можно. А напрямую с карты - никак.


RE: Вопросы по моддингу - hippocamus - 22.06.2015 22:53

(19.06.2015 19:37)gamecreator Wrote:  0x444635 - сила/длительность Разрушающего луча, Берсерка, Корней. 4 байта, по умолчанию 255.
Интересно, значит, в случае боя 1 Зомби против 1 Ул.Гаргулии, последняя безнадёжно испорчена снижением её защиты до 0 через применение Разрушающего луча - у гаргулии будут шансы, если она 255 раз будет летать из угла в угол??? (мана у героя, понятное дело, кончилась, и ничего более эффективного, чем Луч - не было). В ФизМиг надо!


RE: Вопросы по моддингу - gamecreator - 23.06.2015 00:49

Учитывая, что снижение защиты (согласно ФизМиГу) ничем не снять, то вряд ли. Поставь длительность в несколько раундов и проверь, вернётся ли защита (особенно после многократного наложения). Я не проверял.


RE: Вопросы по моддингу - hippocamus - 23.06.2015 01:31

Если так, то зачем РЛ длительность? Нет же длительности у Молнии (снимающей определённые HP)? И, допустим, у гипотетической Руки смерти (уменьшающей численность на фиксированное значение SP)?
Здесь скорее можно сравнить с Ядом или Кислотой. Но там параметры восстанавливаются после окончания действия "заклинания", хоть оно таким по факту не является. Старость тоже излечима, хотя она и независима от SP.


RE: Вопросы по моддингу - gamecreator - 23.06.2015 02:02

Наверное чтобы показать, что на существе висит дебафф. Только не спрашивай меня зачем это делать, если он всё равно не снимается.


RE: Вопросы по моддингу - feanor - 23.06.2015 14:12

Quote:Только не спрашивай меня зачем это делать
чтобы показывать в окне юнита же.


RE: Вопросы по моддингу - gamecreator - 23.06.2015 14:42

Я это и сказал.


RE: Вопросы по моддингу - hippocamus - 24.06.2015 02:35

gamecreator, я отлично понимаю, почему ты это сказал - но ты же сам понимаешь, что это глупо! Если с отряда это снято - то это снято! Раз и навсегда! Такова суть закла! Не налагается же на отряд как отдельное заклинание действие пробирки с хитпойнтами! И как закл - скорость из-за плаща или сапог!
Этот параметр просто изменился! Да, для определенного отряда. Да, до конца боя, потом - восстановится.


RE: Вопросы по моддингу - gamecreator - 24.06.2015 10:48

Так какие ко мне претезнии? Не я это придумывал, не я это кодил.


RE: Вопросы по моддингу - Alexander_Cw - 01.07.2015 21:30

Добрый день, подскажите, пожалуйста, где при помощи amethyst.dll можно заставить новое существо быть стрелком?


RE: Вопросы по моддингу - gamecreator - 01.07.2015 21:52

Установить ему флаг стрелка.


RE: Вопросы по моддингу - igrik - 02.07.2015 15:56

Как установить ему флаг стрелка


RE: Вопросы по моддингу - Alexander_Cw - 02.07.2015 19:16

Спасибо!
Новый вопрос. Я несколько разобрался с amethyst.dll, попытался вставить несколько существ. Теперь игра просто не запускается. И я не вижу этому причины.
Не мог бы кто-либо проверить этот мод, объяснить ошибку (ссылка: https://app.box.com/s/8kkcjm9dj7ja3d1rg09rtbv3xlcb1bpb )?
Заранее благодарю.


RE: Вопросы по моддингу - igrik - 03.07.2015 16:23

проблема в "amethyst.cfg" -> "Creatures=222"


RE: Ваши вопросы по ERM-скриптам - igrik - 16.07.2015 02:27

Ворос для углубленных: где капнуть, чтобы динамически менять координаты отображения диалога !?DL


RE: Ваши вопросы по ERM-скриптам - Bes - 16.07.2015 19:52

igrik, вроде где-то было обсуждение этого вопроса и там даже участвовал Мастер-кукловод... А DL-команда указания координат диалога перед отображением оного не работает раьве?


RE: Ваши вопросы по ERM-скриптам - igrik - 17.07.2015 10:25

bugyboy, найти бы это обсуждение. А менять координаты через DL меня не устраивает. Хочетя сделать нормальный инструмент для смены месторасположения окон DL. ПРостой и понятный, и не геморный


RE: Ваши вопросы по ERM-скриптам - gamecreator - 17.07.2015 16:11

Разве через DL можно менять координаты? Хотя через DL:A можно наверное, если знать опции.
Навскидку через адреса (hdlg - адрес воговского диалога):
[[hdlg]+0x18] = x
[[hdlg]+0x1C] = y
(к слову, следующие два числа - ширина и высота)
Получить адрес диалога можно по номеру диалога:
hdlg = cdecl 0х729AD3(int32 id)
Или получить последний (текущий?) отображаемый диалог:
hdlg = [0x887650]
Ну и не забыть перерисовать диалог:
hdlg->0x7299FD(-1)


RE: Ваши вопросы по ERM-скриптам - igrik - 17.07.2015 17:46

(17.07.2015 16:11)gamecreator Wrote:  Получить адрес диалога можно по номеру диалога:
hdlg = cdecl 0х729AD3(int32 id)
А можно тут чуть подробнее?


RE: Ваши вопросы по ERM-скриптам - gamecreator - 18.07.2015 01:24

Подробнее только ЕРМ:



RE: Вопросы по моддингу - Macron1 - 27.08.2015 12:40

Fred79 выпустил новую версию новых объектов для HMM3.
Я думаю, как более безболезненно (не вручную правкой json конфигов) добавить новые объекты в VCMI (объектов много и это надолго будет).
Первым делом я попробовал объединить стандартный Objects.txt с Fredobj.txt, чтобы подсунуть в VCMI новые объекты без правок вообще.
Но это дело не прокатило - при генерации произвольных карт генератор не может найти некоторые объекты (пишет, что нет объекта с id=54 subid 164, к примеру, или что нет монолита с номером 10).
То есть, как я понимаю, Fred79 добавил новые типы и подтипы объектов, а не просто подложил новые шаблоны (новые def) к существующим объектам с существующими id/subid.
Поэтому вопрос - какой формат у objects.txt и что там значат параметры объектов?


RE: Вопросы по моддингу - Bes - 27.08.2015 13:41

есть прога по редактированию этих таблиц объектов, где описано в справке что и как в этих чудо строках.
впрочем, эта инфа, если я правильно помню, была и в Справочнике ЕРМ от ДракоЛича


RE: Вопросы по моддингу - Ivor - 28.08.2015 01:56

(27.08.2015 12:40)Macron1 Wrote:  Поэтому вопрос - какой формат у objects.txt и что там значат параметры объектов?

Flower32.def 011111111111111111111111111111111111111111111111 000000000000000000000000000000000000000000000000 111111111 011111111 40 0 0 1
Название дефа | проходимые клетки объекта | посещаемые клетки объекта | ХЗ | ХЗ | Тип | Подтип | ХЗ | Будет ли тень у объекта

Четвертое или пятое поле - допустимые виды территории для генерации


RE: Вопросы по моддингу - Macron1 - 29.08.2015 12:03

(28.08.2015 01:56)Ivor Wrote:  
(27.08.2015 12:40)Macron1 Wrote:  Поэтому вопрос - какой формат у objects.txt и что там значат параметры объектов?

Flower32.def 011111111111111111111111111111111111111111111111 000000000000000000000000000000000000000000000000 111111111 011111111 40 0 0 1
Название дефа | проходимые клетки объекта | посещаемые клетки объекта | ХЗ | ХЗ | Тип | Подтип | ХЗ | Будет ли тень у объекта

Четвертое или пятое поле - допустимые виды территории для генерации

Спасибо за инфу!
На след. неделе попытаюсь что-нибудь сообразить.


RE: Ваши вопросы по ERM-скриптам - Valery - 09.09.2015 23:51

Btw I wanted to ask something: is it possible to have floating dialog in battle like VCMI/Heroes 5-7?

I could take care of the coding part, but the real problem is how to have the dialog not interactive. Any ideas?


RE: Ваши вопросы по ERM-скриптам - feanor - 10.09.2015 00:09

Impossible with ERM. Relatively hard without.


RE: Ваши вопросы по ERM-скриптам - gamecreator - 10.09.2015 00:15

Doesn't Phoenix mod have some extra buttons on battle screen?


RE: Ваши вопросы по ERM-скриптам - Valery - 10.09.2015 01:12

Not buttons, but a dialog (which looks like individual buttons). The problem is that when a DL is displayed, regular items are not interactive, so if you display this as DL, battle stops until you close it. This is why I was asking about "floating" DL, no idea how to name it.

I guess is hard, seeing that Baratorch himself didn't try.


RE: Ваши вопросы по ERM-скриптам - igrik - 10.09.2015 19:17

Valery, я тоже думаю, почему нельзя попробовать сделать через кнопки?


RE: Ваши вопросы по ERM-скриптам - Valery - 10.09.2015 19:21

Yes we can show units order by displaying a DL, but this is far more tedious. Wanted to know first about possibility to have it like VCMI. I will think about.


RE: Ваши вопросы по ERM-скриптам - feanor - 10.09.2015 20:18

А кнопки разве отображаются поверх поля боя?


RE: Ваши вопросы по ERM-скриптам - Valery - 10.09.2015 20:29

No, but you can display a dialog with a key press. MoP has a function displaying a dialog on mouse right button hold. Wonder if there is a way to modify it to key press. You press key, dialog shows, leave key, dialog closes.


RE: Ваши вопросы по ERM-скриптам - Barin - 12.09.2015 13:51

Нужно сделать так, чтобы после каждой битвы не появлялось окно: победитель\проигравший.
Берсеркер однажды помог мне отключить сообщение об ограничении опыта: !#UN:C5125902/4/34281 C5125907/1/144; Думаю по такому принципу можно решить задачу.

Поможет кто?


RE: Ваши вопросы по ERM-скриптам - Valery - 12.09.2015 17:58

I have a question: planning to make in the future a mod about unlimited levels; is about advancing in your secondary skills even after expert. So I need to know if there are UN:C about improving percentages/effects of:

necromancy
offense
armorer
first aid
leadership (this I am not sure what to do about)
luck (same)
archery
diplomacy (?)
artillery
intelligence
sorcery
resistance

Now about battle skills (or resistance) I can add to their damage directly in battle, but skills like necro, first aid etc I need else. Any UN:C I missed out about them, please?


RE: Ваши вопросы по ERM-скриптам - gamecreator - 12.09.2015 18:39

(12.09.2015 13:51)Barin Wrote:  Нужно сделать так, чтобы после каждой битвы не появлялось окно: победитель\проигравший.
Code:
4771EE EB6490909090
47729B EB
Первое для окна победы, второе - для поражения.

(12.09.2015 17:58)Valery Wrote:  Now about battle skills (or resistance) I can add to their damage directly in battle, but skills like necro, first aid etc I need else. Any UN:C I missed out about them, please?
There is a way to adjust skill percentages for none/basic/advanced/expert. You can manage with that. Here it is.


RE: Ваши вопросы по ERM-скриптам - Barin - 12.09.2015 19:03

gamecreator, этого недостаточно чтобы видеть результат) Как это оформить в виде скрипта?


RE: Ваши вопросы по ERM-скриптам - gamecreator - 12.09.2015 19:21

Это формат бинарного патча для BinMagic. Но, я так понимаю, ты хочешь чтобы всё было в одном файле. Тогда формат патча такой:
Code:
[16-й адрес] [16-е данные]
Разбиваешь данные на группы по 8, 4 и 2 символа (то есть 4, 2 и 1 байт), например:
Code:
4771EE EB649090 9090
47729B EB
Теперь вычисляешь для каждой группы адрес. Это адрес в строке плюс половина количества символов (то есть количество байт) данных перед группой. Например:
Code:
4771EE+0 EB649090
4771EE+4 9090
47729B+0 EB
Изменяешь порядок байт в числах-данных на обратный, чтобы потом легко перевести их в 10-ю систему, например:
Code:
4771EE+0 909064EB
4771EE+4 9090
47729B+0 EB
Переводишь на калькуляторе числа в 10-ю систему, например:
Code:
4682222 2425382123
4682226 37008
4682395 235
Всё! Подставляешь их в UN:C:
А количество байт известно из первого шага.


RE: Ваши вопросы по ERM-скриптам - Valery - 12.09.2015 20:02

Thanks, will probably ask for a few russian words to translate when I start digging in.


RE: Ваши вопросы по ERM-скриптам - Barin - 12.09.2015 20:19

Это тёмный лес для меня, непонятно. Напиши готовый вариант.


RE: Ваши вопросы по ERM-скриптам - gamecreator - 12.09.2015 20:23

Ты будешь у всех просить готовый вариант всегда? Задолбаешься. Спрашивай что конкретно неясно, попробую объяснить. Хотя по-моему я расписал достаточно подробно.


RE: Ваши вопросы по ERM-скриптам - Barin - 12.09.2015 20:35

(12.09.2015 20:23)gamecreator Wrote:  Ты будешь у всех просить готовый вариант всегда? Задолбаешься. Спрашивай что конкретно неясно, попробую объяснить. Хотя по-моему я расписал достаточно подробно.
Я Берсеркера попросил, он написал. Я задолбался постоянно с тобой спорить в этой теме, ты пытаешься меня научить некоторым вещам, которые мне не нужно знать изнутри. Мне нужно вставить готовое в карту и двигаться дальше, а не зависать: байты, 10-я система и т.д. Эта тема с UN:С сложная, даже в справочнике нераскрыта, можно и готовое написать.

Вот если бы я написал ерунду типа: "Как сделать, чтобы при посещении объекта вылазило моё сообщение?", как спрашивал тут один новичёк, тогда можно позлиться и сказать ему - читай, думай, в справочнике написано.


RE: Ваши вопросы по ERM-скриптам - Bes - 12.09.2015 20:45

(12.09.2015 18:39)gamecreator Wrote:  
(12.09.2015 13:51)Barin Wrote:  Нужно сделать так, чтобы после каждой битвы не появлялось окно: победитель\проигравший.
Code:
4771EE EB6490909090
47729B EB
Первое для окна победы, второе - для поражения.
Barin, мне кажется, вам таки проще в рамках ERA использовать именно патч бинарный, чем конвертировать вышеуказанные данные в ЕРМ
имхо


RE: Ваши вопросы по ERM-скриптам - Algor - 12.09.2015 21:01

Не согласен. Это может требоваться не для игры, а для конкретной карты. А поставлять вместе с картой отдельный патч и инструкцию, куда его положить (или оформлять все это в виде мода) неудобно.


RE: Ваши вопросы по ERM-скриптам - gamecreator - 12.09.2015 21:22

(12.09.2015 20:35)Barin Wrote:  Я Берсеркера попросил, он написал.
Так я не Берсеркер. Мне проще один раз и навсегда объяснить как это делается, чем каждый раз за тебя делать.
(12.09.2015 20:35)Barin Wrote:  ты пытаешься меня научить некоторым вещам, которые мне не нужно знать изнутри.
Почему не нужно?
(12.09.2015 20:35)Barin Wrote:  10-я система
Ну если ты с десятичной системой не ознакомился в первом классе, то попробую объяснить. Это же жизненно необходимая информация.
(12.09.2015 20:35)Barin Wrote:  Вот если бы я написал ерунду типа: "Как сделать, чтобы при посещении объекта вылазило моё сообщение?", как спрашивал тут один новичёк, тогда можно позлиться и сказать ему - читай, думай, в справочнике написано.
Нет, я не злюсь. Я просто не понимаю. А тебе я написал что конкретно и как делать чтобы получить твой ЕРМ код. Ты даже не удосужился прочитать. Просмотрел по диагонали, увидел незнакомые слова (значение которых тебе даже знать не нужно для этого), не увидел ожидаемого результата и тут же заявил как ты задолбался и как тебе нужно двигаться дальше.


RE: Ваши вопросы по ERM-скриптам - Barin - 12.09.2015 21:32

У меня нет времени и желания изучать возможности Эры, а тем более байты, адреса, пубертатную десятичную пубертатность. Кампанию делаю давно, многое что задумывал, реализовал на wog3.58 - это меня устраивает и переходить на другую платформу нереально. Я буду доделывать "проект" на платформе wog3.58, если будет работать на Эре, то хорошо.

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


RE: Ваши вопросы по ERM-скриптам - gamecreator - 12.09.2015 21:47

Ой всё. Откланиваюсь.


RE: Ваши вопросы по ERM-скриптам - Barin - 12.09.2015 22:07

Кто напишет скрипт? Даже подсказка есть.

Нужно сделать так, чтобы после каждой битвы не появлялось окно: победитель\проигравший.
Берсеркер однажды помог мне отключить сообщение об ограничении опыта: !#UN:C5125902/4/34281 C5125907/1/144; Думаю по такому принципу можно решить задачу.


RE: Ваши вопросы по ERM-скриптам - Algor - 12.09.2015 22:41

gamecreator, это верно?
Image: unc.jpg


RE: Ваши вопросы по ERM-скриптам - Barin - 12.09.2015 23:27

!#UN:C4682226/4/37008; Вылетает игра.


RE: Ваши вопросы по ERM-скриптам - gamecreator - 12.09.2015 23:35

(12.09.2015 22:41)Algor Wrote:  gamecreator, это верно?
Раздели числа в третьем столбце на 2. В остальном верно.


RE: Ваши вопросы по ERM-скриптам - Algor - 12.09.2015 23:54

А, точно, пропустил...
Вот экселька, кому надо (макросы не отключать).


RE: Ваши вопросы по ERM-скриптам - Barin - 13.09.2015 00:19

Algor, спасибо! Работает.

А изначальный адрес любого другого процесса как определить? Артмани надо?
4771EE EB649090 9090
47729B EB


RE: Ваши вопросы по ERM-скриптам - Algor - 13.09.2015 00:38

gamecreatorу, спасибо за алгоритм.
Я от этого так же далёк, как и ты.


RE: Ваши вопросы по ERM-скриптам - igrik - 15.09.2015 18:40

(13.09.2015 00:19)Barin Wrote:  А изначальный адрес любого другого процесса как определить? Артмани надо?
Артмани слишком мало. Нужна Ida + база героев для неё


RE: Ваши вопросы по ERM-скриптам - igrik - 16.09.2015 22:44

Quote:!!EX:R$1/$2/$3/$4
    $1 – есть артефакт или нет (0 = нет, 1 = да)
    $2 – номер артефакта (сейчас только 156)
    $3 – подтип артефакта (опции 0…15 – еще не все используются)
    $4 – количество копий артефакта (0...3)
gamecreator, ты не вкурсе как увеличить кол-во копий арта с 0...3 до 0...6?


RE: Ваши вопросы по ERM-скриптам - gamecreator - 17.09.2015 01:00

Никак, это поле занимает 2 бита.

Ну вообще можно переписать пол-системы опыта отрядов и забрать биты у номера артефакта, раз он бывает только один. Тогда можно будет 0..15. Но это очень сильное колдунство. Мне пытаться?


RE: Ваши вопросы по ERM-скриптам - Valery - 17.09.2015 04:24

In my opinion, is not a good solution to increase number, because player will anyway need to remove the extra 5 copies manually then. If it is for WT keys mod, just store each warlord banner then give the extra to hero backpack

This is what I use in army management, all extra banners from combining 4-6 stacks into one go to backpack:



RE: Ваши вопросы по ERM-скриптам - igrik - 17.09.2015 12:25

Quote:Но это очень сильное колдунство. Мне пытаться?
Ого как ты сложно спросил. Я тут не в праве решать. Но если конечно же у тебя есть время и желание, это было бы очень замечательно.

Спасибо, Valery. В таком духе я и добавлю этот функионал в HoatkeysWT + прикручу фунцию: быстрое снятие одной еденицы Знамени Полководца с отряда с перемещением его в рюкзак (на какую бы комбинацию кнопок его повесить? [Ctrl+ПКМ] сойдет? А то ЛКМ почти вся уже занята).
Сейчас как раз я делаю умное распределение отрядов по Shift+ЛКМ (равное разделение отрядов) с учетом Знамени и опыта


RE: Ваши вопросы по ERM-скриптам - gamecreator - 17.09.2015 15:07

(17.09.2015 12:25)igrik Wrote:  Ого как ты сложно спросил. Я тут не в праве решать. Но если конечно же у тебя есть время и желание, это было бы очень замечательно.
Ну я конечно же попробую, потому что раньше ничего подобного не делал. Но ценности именно в плане управления отрядами я не вижу. Лишние артефакты всегда можно сбрасывать в рюкзак, как верно заметил Valery. Кстати, удаление артефактов при соединении тоже попытаюсь исправить.
А про пол-системы это я преувеличил немного. Слава ООП!

(17.09.2015 01:00)gamecreator Wrote:  забрать биты у номера артефакта, раз он бывает только один. Тогда можно будет 0..15.
А можно ещё и убрать бессмысленное поле наличия артефакта и освободить ещё целый бит. Тогда можно будет 0..30 копий иметь (то есть 0..31 артефактов). А если и это мало, то там ещё есть 10 бит неиспользованных. Можно сделать 0..32766 копий если надо. 96-copy


RE: Ваши вопросы по ERM-скриптам - igrik - 17.09.2015 18:42

:D
Quote: можно ещё и убрать бессмысленное поле наличия артефакта и освободить ещё целый бит.
и сделать о кол-ве знамен не 0...3, а 1...4 (или в этом духе). или если нет знамени, то устанавливать -1.


RE: Ваши вопросы по ERM-скриптам - Algor - 18.09.2015 14:10

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


RE: Ваши вопросы по ERM-скриптам - gamecreator - 18.09.2015 16:19

Да, было. Но всё это можно в воговских исходниках найти:
0x698BC4 - таблица названий вторичных навыков, хз зачем она. Подряд идут указатели на строки с названиями.
0x698C34 - таблица описаний вторичных навыков, хз зачем она. Подряд идут указатели на строки, по три строки на навык.
0x698D88 - таблица названий и описаний вторичных навыков, используется игрой (это та, которую я находил). Подряд идут указатели на строки, по 4 стоки на навык (первая - название).
0x679C80 - адрес таблицы специализаций (подменяется вогом). На каждую специализацию сначала идут 7 четырёхбайтовых чисел, потом указатели на три строки (третья - описание, первые две - название какое-то).
Как заменять: создаёшь строковую переменную SN:W, получаешь её адрес и присваиваешь этот адрес вместо геройского родного. Сохранять эти переменные в сейве не нужно.
Это всё может понадобиться переустанавливать каждый раз при запуске игры.


RE: Ваши вопросы по ERM-скриптам - igrik - 18.09.2015 17:19

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


PS: Как ввариант: создать таблицу такого же размера, и заменить указатель старой таблицы на указатель своей таблицы. Так можно вообще?


RE: Ваши вопросы по ERM-скриптам - gamecreator - 18.09.2015 18:03

(18.09.2015 17:19)igrik Wrote:  PS: Как ввариант: создать таблицу такого же размера, и заменить указатель старой таблицы на указатель своей таблицы. Так можно вообще?
Ну со специализацией прокатит, а вот с другими мне было бы лень искать их все в коде. Да и смысла так делать я не вижу, когда можно просто подменить строку.

(18.09.2015 17:19)igrik Wrote:  !!VRy1:S10; указываем нормер создаваемого слота
Для временной переменной можно и не занимать номер.


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

Угу, а если не заморачиваться со слотами и использовать это:
feanor Wrote:Получить адрес z-переменной из ert-файла
!!SN:E7824928/1/299000; //299000 - номер.
Пойдет?
Т.е. у меня задача, собственно, текст из ert загнать в описание навыка/специализации и освободить полтора-два десятка z-переменных.


RE: Ваши вопросы по ERM-скриптам - igrik - 18.09.2015 18:56

ну а че не пойдет то? Работет жеж

(18.09.2015 18:03)gamecreator Wrote:  
(18.09.2015 17:19)igrik Wrote:  !!VRy1:S10; указываем нормер создаваемого слота
Для временной переменной можно и не занимать номер.
Можно, но лентяйская натура дает своё, + так проще редактировать, ибо менять всего одно значение, а не во всех местах искать этот номер.


RE: Ваши вопросы по ERM-скриптам - Algor - 18.09.2015 20:15

Да, работает, спасибо.


RE: Ваши вопросы по ERM-скриптам - gamecreator - 18.09.2015 23:52

Achievement get!
Code:
; SetArtAll
753313 8B45088B510881E2FF1FC0FF85C0740C8B45144083E01FC1E00D09C28B451083E00FC1E01209C289​51088BE55DC210009090909090909090909090909090909090909090909090909090909090909090​90909090909090909090909090909090909090909090909090909090909090909090909090909090​9090909090909090909090
; HasArt
7279C3 8B41082500E003007406B80100000090
; GetArt
728263 B89C00000089EC5DC390909090909090909090909090909090
; ArtCopy (get)
727A63 8B41082500E003007406C1E80D489090
; DelArt
727903 8B410825FF1FC0FF89410889EC5DC390909090909090909090909090909090909090909090909090​90909090909090909090909090909090909090909090909090909090909090909090909090909090​
; SetArt
7279E3 8B51088B450C81E2FF1FC0FF83E00F81CA00200000C1E01209C2895108B80100000089EC5DC20800​90909090909090909090909090909090909090909090909090909090909090909090909090909090​90909090909090909090909090909090909090909090909090909090909090
; GetArtNums
768B93 8B41082500E00300C1E80D89EC5DC3909090909090909090909090909090909090909090909090
; TakeArt
728283 8B410889C22500E00300741EC1E80D48740A81E2FF1FFCFF09C2EB0681E2FF1FC0FFB80100000089​510889EC5DC390909090909090909090909090909090909090909090909090909090909090909090​90909090909090909090909090909090909090909090909090909090909090909090909090909090​9090909090909090909090909090909090909090
; CopyArt
727D53 8B55088B42088B51082500E03F0081E2FF1FC0FF09C289510889EC5DC20400909090909090909090​90909090909090909090909090909090909090909090909090909090909090909090909090909090​90909090909090909090909090909090909090909090909090909090909090909090909090909090​90909090909090909090909090909090909090909090909090909090909090909090909090909090​
; ArtCopy (set)
727A83 8B51088B450881E2FF1FFCFF83F8007D07B801000000EB0D83F81F7C07B81F000000EB0140C1E00D​09C289510889EC5DC204009090909090909090909090909090
Теперь, igrik, потестируй, где именно я накосячил. Кто с опытом и знамёнами играет - можете тоже.
Соединение отрядов я не трогал пока, знамёна всё равно будут теряться. Но с лимитом в 31 шт. это уже не критично.


RE: Ваши вопросы по ERM-скриптам - feanor - 18.09.2015 23:53

Аккуратнее. Адреса z-переменных сбиваются после каждой перезагрузки ERM, адреса в SN:W Берс вообще не советовал использовать таким образом.


RE: Ваши вопросы по ERM-скриптам - gamecreator - 18.09.2015 23:55

А, точно. Они же там пересоздаются постоянно. Ну тогда SN:M.


RE: Ваши вопросы по ERM-скриптам - igrik - 19.09.2015 01:09

Quote:Achievement get!
Офигенно! Но теперь нужно время. Пока из замеченых штук - это то, что если знамен больше 4х, то в окне существа не отображается круглешочек, указывающий о наличии знамени.
Интересно еще потестировать скриптами. Но опять же нужно время...
Если кому еще нужен, то вот banner.bin
Блин, это знамя отличная вещь, но в тоже время такая геморная


RE: Ваши вопросы по ERM-скриптам - gamecreator - 19.09.2015 02:24

(19.09.2015 01:09)igrik Wrote:  Пока из замеченых штук - это то, что если знамен больше 4х, то в окне существа не отображается круглешочек, указывающий о наличии знамени.
Code:
71737E 25
717494 25
7174D8 25
Теперь 4 - это 4+. И можно, пожалуйста, скрин с этими четырьмя символами (для 1, 2, 3 и 4 знамён)? А то чувство, будто что-то абстрактное редактирую.

...хотя если подумать, теперь отсутствие знамени тоже может отображаться как 4+. Впихну значит функцию вместо той кучи 90 из предыдущего патча.


RE: Ваши вопросы по ERM-скриптам - Algor - 19.09.2015 02:29

(18.09.2015 16:19)gamecreator Wrote:  0x679C80 - адрес таблицы специализаций (подменяется вогом). На каждую специализацию сначала идут 7 четырёхбайтовых чисел, потом указатели на три строки (третья - описание, первые две - название какое-то).

По указанному адресу (6790272 +4 +4 +4 ...) валяется что-то не сильно похожее на приведенное описание
Image: scec.jpg
Специализации точно по этому адресу лежат?


RE: Ваши вопросы по ERM-скриптам - igrik - 19.09.2015 02:32

Нет, по моему ты меня не понял.
Я имею ввиду вот это: у стека на обоих скринах есть 5 Знамен
Их количество отображается нормально, а вот круглешечек (его место я обозначил желтой обводкой) его нет. я про него. Но это не критично как по мне, по моему не надо ничего впихивать больше. Вроде все и так "ок"

Algor, так как ты пытаешься сделать у тебя не получится, потому что там не будет описаний представленных в текстовом виде. Там по нужному адресу нужно через SN получить значение и переконвертировать его в текст. Вот у тебя на скрине после "0" видно, что идут указатели. Вот по третьему перейди, и полученное значение через конвертацию и будет твоё описание.


RE: Ваши вопросы по ERM-скриптам - gamecreator - 19.09.2015 02:43

(19.09.2015 02:29)Algor Wrote:  Специализации точно по этому адресу лежат?
Я же написал, что там не таблица, а адрес её. То есть число по этому адресу указывает на таблицу специализаций (первое в твоём списке). Оно может отличаться между разными версиями ВоГ (и Эры), поэтому бери его всегда по этому адресу.

(19.09.2015 02:32)igrik Wrote:  Их количество отображается нормально, а вот круглешечек (его место я обозначил желтой обводкой) его нет. я про него.
Я так и понял. И сделаю чтобы отображались, иначе как понять, что артефакт есть? А скрин с этими "кругляшками" можно? Там отдельные для 1, 2, 3 и 4 знамён. Они все разные, по крайней мере в коде.


RE: Ваши вопросы по ERM-скриптам - igrik - 19.09.2015 02:58

Вот. Они по порядку возрастания 1...4



RE: Ваши вопросы по ERM-скриптам - igrik - 19.09.2015 03:11




RE: Ваши вопросы по ERM-скриптам - feanor - 19.09.2015 03:15

Quote:А, точно. Они же там пересоздаются постоянно. Ну тогда SN:M.
Да сеймшит же, не?
в общем-то, пока боле-мене надежно только в 2.4.7 / 2.5 ручками память выделять/освобождать


RE: Ваши вопросы по ERM-скриптам - igrik - 19.09.2015 03:26

SN:M можно же в сохранять в сейвы
По моему проще/менее_геморно заменить текстовики


RE: Ваши вопросы по ERM-скриптам - gamecreator - 19.09.2015 10:11

(19.09.2015 03:15)feanor Wrote:  Да сеймшит же, не?
И правда. Ну SN:M хоть можно не сохранять в сейв. Не будет замусориваться память.


RE: Ваши вопросы по ERM-скриптам - Algor - 19.09.2015 10:58

igrik, gamecreator, я в курсе, что это не значения а адреса.
Но при попытке получить по этому адресу значение в z (как у igrik'а выше в примере) получается либо лажа, либо вылет.
Просто судя по описанию, кам каждые 7*4+3*4 байта должна просматриваться некоторая повторяемость, кмк. Не просматривается (скрин).
Поэтому и спросил, может не тот базовый адрес? Или я не так понял?


RE: Ваши вопросы по ERM-скриптам - igrik - 19.09.2015 11:01

всмысле? ты скопировал мой код и у тебя вылет?
У меня работает



RE: Ваши вопросы по ERM-скриптам - gamecreator - 19.09.2015 12:10

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


RE: Ваши вопросы по ERM-скриптам - gamecreator - 19.09.2015 14:12

Как-то так с индикатором:
Code:
; SetArtAll
753313 8B45088B510881E2FF1FC0FF85C0740C8B45144083E01FC1E00D09C28B451083E00FC1E01209C289​51088BE55DC210009090909090909090909090909090909090909090909090909090909090909090​90909090909090909090909090909090909090909090909090909090909090909090909090909090​9090909090909090909090
; HasArt
7279C3 8B41082500E003007406B80100000090
; GetArt
728263 B89C00000089EC5DC390909090909090909090909090909090
; ArtCopy (get)
727A63 8B41082500E003007406C1E80D489090
; DelArt + new GetIndicator(uint amount)
727903 8B410825FF1FC0FF89410889EC5DC390909090909098028600E0187900E4187900E8187900EC1879​00909090905589E58B450883F8047605B8040000008B04851879720089EC5DC20400909090909090​
; SetArt
7279E3 8B51088B450C81E2FF1FC0FF83E00F81CA00200000C1E01209C2895108B80100000089EC5DC20800​90909090909090909090909090909090909090909090909090909090909090909090909090909090​90909090909090909090909090909090909090909090909090909090909090
; GetArtNums
768B93 8B41082500E00300C1E80D89EC5DC3909090909090909090909090909090909090909090909090
; TakeArt
728283 8B410889C22500E00300741EC1E80D48740A81E2FF1FFCFF09C2EB0681E2FF1FC0FFB80100000089​510889EC5DC390909090909090909090909090909090909090909090909090909090909090909090​90909090909090909090909090909090909090909090909090909090909090909090909090909090​9090909090909090909090909090909090909090
; CopyArt
727D53 8B55088B42088B51082500E03F0081E2FF1FC0FF09C289510889EC5DC20400909090909090909090​90909090909090909090909090909090909090909090909090909090909090909090909090909090​90909090909090909090909090909090909090909090909090909090909090909090909090909090​90909090909090909090909090909090909090909090909090909090909090909090909090909090​
; ArtCopy (set)
727A83 8B51088B450881E2FF1FFCFF83F8007D07B801000000EB0D83F81F7C07B81F000000EB0140C1E00D​09C289510889EC5DC204009090909090909090909090909090
; Exp2String calls GetIndicator
717363 8B451050E8C40501008945E0EB3A9090909090909090909090909090909090909090909090909090​9090909090909090909090909090909090909090909090909090909090909090
; Exp2String2 calls GetIndicator
717470 8B55108B028B4A0450E8B20401008945C451E8A90401008945F8EB79909090909090909090909090​90909090909090909090909090909090909090909090909090909090909090909090909090909090​90909090909090909090909090909090909090909090909090909090909090909090909090909090​9090909090909090909090909090909090909090909090909090909090



RE: Ваши вопросы по ERM-скриптам - gamecreator - 19.09.2015 19:52

igrik, теперь-то кругляшки отображаются?


RE: Ваши вопросы по ERM-скриптам - Algor - 19.09.2015 21:26

(19.09.2015 12:10)gamecreator Wrote:  Algor, повторяю: по адресу неходится не таблица, а адрес таблицы.
Блин, невнимательно прочитал / не разобрался, извиняюсь.
Что-то втыкнуло, что это адрес непосредственно начала таблицы.


RE: Ваши вопросы по ERM-скриптам - igrik - 20.09.2015 19:06

Quote:igrik, теперь-то кругляшки отображаются?
да, отображаются. Огромное спасибо.
upd: Я ток домой после гулек вернулся. Сегодня немного всё потестю.


RE: Ваши вопросы по ERM-скриптам - igrik - 21.09.2015 19:03

gamecreator, я так понял, что формат
Quote:!!EX:R$1/$2/$3/$4
    $1 – есть артефакт или нет (0 = нет, 1 = да)
    $2 – номер артефакта (сейчас только 156)
    $3 – подтип артефакта (опции 0…15 – еще не все используются)
    $4 – количество копий артефакта (0...3)
сохранился, ток
    $4 – количество копий артефакта (0...31)
Я правильно понял? Хотя ERM показывает, что да.

Вчера тестил, сегодня немного. Пока что всё ок Ab


RE: Ваши вопросы по ERM-скриптам - Algor - 21.09.2015 19:07

(18.09.2015 16:19)gamecreator Wrote:  0x698BC4 - таблица названий вторичных навыков, хз зачем она. Подряд идут указатели на строки с названиями.
0x698C34 - таблица описаний вторичных навыков, хз зачем она. Подряд идут указатели на строки, по три строки на навык.
0x698D88 - таблица названий и описаний вторичных навыков, используется игрой (это та, которую я находил). Подряд идут указатели на строки, по 4 стоки на навык (первая - название).
0x679C80 - адрес таблицы специализаций (подменяется вогом). На каждую специализацию сначала идут 7 четырёхбайтовых чисел, потом указатели на три строки (третья - описание, первые две - название какое-то).
А можно еще адрес для таблицы с названиями/описаниями артефактов?


RE: Ваши вопросы по ERM-скриптам - igrik - 21.09.2015 19:19

0x660B68 - указатель на начало таблицы артов



RE: Ваши вопросы по ERM-скриптам - gamecreator - 21.09.2015 19:23

(21.09.2015 19:03)igrik Wrote:      $4 – количество копий артефакта (0...31)
Я правильно понял?
Нет, количество артефактов 0..31, копий же 0..30.


RE: Если просто нужен скрипт - Barin - 12.10.2015 22:28

Вопрос. Как сделать, чтобы в меню кнопка "Сценарии" не работала. Деф можно сделать прозрачным, осталось отменить нажатие на неё.

Мне нужно чтобы работала только кнопка "Кампании".


RE: Если просто нужен скрипт - igrik - 13.10.2015 01:10

сместить кнопки далеко за пределы экрана: для бин файла
; кнопка синглплеер
63E6B0 FFFD

; кнопка мультиплеер
63E6B8 FFFD

; кнопка обучение
63E6C8 FFFD


RE: Если просто нужен скрипт - Barin - 13.10.2015 03:22

(13.10.2015 01:10)igrik Wrote:  сместить кнопки далеко за пределы экрана: для бин файла
; кнопка синглплеер
63E6B0 FFFD

; кнопка мультиплеер
63E6B8 FFFD

; кнопка обучение
63E6C8 FFFD
Спасибо. А это только для Эры? И если так, то вкратце, как это оформить?

В wog3.58 это можно реализовать?


RE: Если просто нужен скрипт - feanor - 13.10.2015 04:06

Редактировать экзешник.


RE: Если просто нужен скрипт - igrik - 13.10.2015 04:06

это только для эры. ButtonSinglOff.bin. Скопировать в папку "EraPlugins"


RE: Если просто нужен скрипт - Barin - 13.10.2015 11:56

(13.10.2015 04:06)igrik Wrote:  это только для эры. ButtonSinglOff.bin. Скопировать в папку "EraPlugins"
Благодарю, а это точно не вирус? Аваст ругается.

И если не составит трудности, напишите аналогичные команды для "кнопок" кампаний: SoD, AB, Roe - быть может что-то прийдётся убрать.


RE: Если просто нужен скрипт - igrik - 13.10.2015 12:15

Точно не вирус 118


RE: Если просто нужен скрипт - igrik - 13.10.2015 14:27

Quote:; кнопка "Во имя богов"
456C6C AAAA
; кнопка "Клинок Армагедона"
456CE6 AAAA
; кнопка "Возраждение Эратии"
63BBF0 AAAA
; кнопка "Выбрать"
63BBF8 AAAA
Теперь, как это все преобразовать в *.bin файл.
- заходишь в папку "...Tools\BinMagic 1.0" через "Total Comander"
- создаешь txt файл, например "ButtonSinglOff.txt" и копируешь туда вышеуказанные данные
- наводишь мышью на "binary.bat" и нажимаешь "Ctrl+Enter"
- наводишь мышью на "ButtonSinglOff.txt" и нажимаешь "Ctrl+Enter"
- нажимаешь "Enter"
- в итоге создается файл "ButtonSinglOff.bin", который ты копируешь в папку "EraPlugins" своего мода
вот и всё...


RE: Если просто нужен скрипт - Bes - 13.10.2015 22:15

(13.10.2015 01:10)igrik Wrote:  сместить кнопки далеко за пределы экрана
а если я нажму клавой те кнопки? не сработают разве?
Scratch_one-s_head


RE: Если просто нужен скрипт - Barin - 13.10.2015 23:17

igrik, благодарю!


RE: ERA Scripts 1.19 Rus - Dantea - 24.11.2015 13:27

Добрый день, товарищи, есть предложение внедрить мод XXL в меню вогификации. Сам мод есть и найти его не трудно. Самое важная часть это были бы умельцы, чтобы его доработать. Ато потестил и погонял этот мод и получается, что это даже не генератор карт, а именно всего 3-5 карт XXL. Есть идеи или желающие сделать генератор случайных карт XXL размера? Я бы и сам все это сделал, если бы был не безграмтным в програмировании или написании скриптов...))) Вобщем даже не знаю где это все пишется)

Кстати, так же тут видел интересную фишку с 6 слотами под артефакты) Есть идея) Если слоты расположить не по диагонали а в 2 ряда параллельных друг другу по вертикали, то можно было бы реализовать не 5-6 слотов, а 8) Это было бы очень удобно с учетом проблемы закрывающихся слотов из-за артефактов)


RE: ERA Scripts 1.19 Rus - Ivor - 24.11.2015 14:48

Проблема-то не в том, чтобы поместить 2 допольнительных слота на экран героя, а в том, чтобы добавить их в структуру героя.


RE: ERA Scripts 1.19 Rus - gamecreator - 24.11.2015 16:53

(24.11.2015 13:27)Dantea Wrote:  Добрый день, товарищи, есть предложение внедрить мод XXL в меню вогификации.
Это плагин, а не скрипт. Потому невозможно.
(24.11.2015 13:27)Dantea Wrote:  Есть идеи или желающие сделать генератор случайных карт XXL размера?
Генератор работает и так. То, что ты хочешь - это XXL шаблоны, а их хватает (тот же Тессеракт, к примеру).

Algor, поздравляю, уже второй человек считает твой мод частью Эры. 96-copy



RE: ERA Scripts 1.19 Rus - Dantea - 24.11.2015 19:20

Алгор, вообще молодец! Я думаю не так много людей осталось кто еще что-то делает для WOG) Жду с нетерпением, когда он уберет ограничение в 30 мб (под скрипты или моды). Если память не изменяет он где то об этом писал)

А вообще кстати, коль дело зашло про карты... Можно как то портировать L карту в XXL?) Есть одна карта стандартная из Меча армагедона, когда только вышла игра затерли до дыр одну карту) Но тем не мение в душу запала еще с детства)
Нашел тему с шаблоном под XXL карту, здесь на форуме, но еще не тестил его) Может кто подсказать, с чем связана проблема, что на воде нет водоворотов да и вообще любых объектов? Т.е. вода вообще умерла... Раньше было прикольно на маленьком уровне плавать и собирать арты, обломки, посещать корабли и тд...


RE: ERA Scripts 1.19 Rus - gamecreator - 24.11.2015 19:39

(24.11.2015 19:20)Dantea Wrote:  Можно как то портировать L карту в XXL?
Что значит портировать? ЕМНИП, карты все запускаются независимо от того, какие размеры прописаны в игре для генератора.


RE: ERA Scripts 1.19 Rus - MOP - 24.11.2015 19:40

(24.11.2015 19:20)Dantea Wrote:  Жду с нетерпением, когда уберeт ограничение в 30 мб.
Это уже кому-то мешает? 36
Вообще, это ограничение на один файл скрипта, а не на всю папку с ними. А в Эре вроде разрешены дополнительные номера скриптов, так что...
Но если кому-то надо - заносим в адрес 73E1E8h нужное нам ограничение вместо 30000000.
Что будет - не проверял.


RE: ERA Scripts 1.19 Rus - Algor - 24.11.2015 21:52

(24.11.2015 19:20)Dantea Wrote:  Может кто подсказать, с чем связана проблема, что на воде нет водоворотов да и вообще любых объектов? Т.е. вода вообще умерла... Раньше было прикольно на маленьком уровне плавать и собирать арты, обломки, посещать корабли и тд...
"Раньше" - это не на рандомках. Генератор при выборе опции "острова" ищет шаблон, который чуть меньше указанного по размеру, генерит по нему локации и тупо раздвигает их на больший размер холста. Ну и верфи проставляет. И скорее всего делает что-то еще, менее заметное неискушенному наблюдателю.
Но факт остается фактом: водные просторы на "островной" случайной карте это не локация(и) и генератор их ничем интересным не наполняет. Возможно для воды где-то есть отдельные настройки заполнения, но я туда не копал.

Интересно бы наверное смотрелось, если б кто запилил поддержку в шаблонах типа земли "вода", чтобы генерились отдельные водные локации-озера... Кстати, ХотА в этом направлении не докопалась (я давно не слежу)? Это ж самое их, вроде.

(24.11.2015 19:20)Dantea Wrote:  Жду с нетерпением, когда он уберет ограничение в 30 мб (под скрипты или моды). Если память не изменяет он где то об этом писал)
Изменяет. Где-то в соседней теме этот вопрос кто-то подымал, но не я. Я на 30-метровое ограничение еще не наступал. Если вдруг наступлю, будет повод потестить предоставленный МоР'ом адресок. Но это будет (?) еще не скоро.

Или скиньте для теста свою подборку модов, которая в это ограничение упирается. Интересно будет глянуть.

(24.11.2015 19:40)MOP Wrote:  Вообще, это ограничение на один файл скрипта, а не на всю папку с ними.
А разве не на все загруженные в память скрипты?


(24.11.2015 16:53)gamecreator Wrote:  Algor, поздравляю, уже второй человек считает твой мод частью Эры. 96-copy
Возможно, имя мода провоцирует, но менять не буду. "ERA Scripts" - уже брэнд Beee
Хотя изначально указал в названии слово ERA только чтобы указать, что требуется именно эта платформа, а не чистый WoG. ВоГовский прародитель же назывался и вовсе незатейливо - script79.erm



RE: ERA Scripts 1.19 Rus - MOP - 24.11.2015 22:00

(24.11.2015 21:52)Algor Wrote:  А разве не на все загруженные в память скрипты?

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


RE: ERA Scripts 1.19 Rus - gamecreator - 24.11.2015 22:12

MOP, сейвы не поломаются от такого? Там же вроде фиксированное место под скрипты.


RE: ERA Scripts 1.19 Rus - MOP - 24.11.2015 22:17

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


RE: ERA Scripts 1.19 Rus - Dantea - 27.11.2015 12:48

(24.11.2015 21:52)Algor Wrote:  скиньте для теста свою подборку модов, которая в это ограничение упирается. Интересно будет глянуть.

Вот ошибки, с чем они связаны, подскажите) Может и не с ограничением)
Image: 04956b1b7d6e.png Image: d18a95172790.png

Соответсвенно подобные ошибки появлются частенько и содержание разное.


RE: ERA Scripts 1.19 Rus - KAVASAKY - 28.11.2015 12:37

(24.11.2015 19:40)MOP Wrote:  
(24.11.2015 19:20)Dantea Wrote:  Жду с нетерпением, когда он уберет ограничение в 30 мб.
Это уже кому-то мешает? 36
Вообще, это ограничение на один файл скрипта, а не на всю папку с ними. А в Эре вроде разрешены дополнительные номера скриптов, так что...
Но если кому-то надо - заносим в адрес 73E1E8h нужное нам ограничение вместо 30000000.
Что будет - не проверял.

Так и как, говорите, занос в адрес осуществить таким обычно обывателям как я?


RE: Ваши вопросы по ERM-скриптам - Algor - 12.01.2016 02:00

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


RE: Ваши вопросы по ERM-скриптам - gamecreator - 12.01.2016 02:39

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


RE: Ваши вопросы по ERM-скриптам - Algor - 12.01.2016 04:19

Хм, действительно. А я почему-то считал, что зашито.
Спасибо.


RE: ERA Scripts 1.19 Rus - Dantea - 12.01.2016 22:15

Эм... Живые то есть? Замолчали все резко... Даже ответа не дождался...


RE: ERA Scripts 1.19 Rus - gamecreator - 12.01.2016 23:11

Так ты втихаря последнее сообщение на странице отредактировал. Ничего удивительного.

(27.11.2015 12:48)Dantea Wrote:  Вот ошибки, с чем они связаны, подскажите) Может и не с ограничением)
А чего цвет ошибки красный? Какая это версия Эры?

(27.11.2015 12:48)Dantea Wrote:  Соответсвенно подобные ошибки появлются частенько и содержание разное.
Если они во время игры появляются, то ограничение тут ни при чём.


RE: ERA Scripts 1.19 Rus - Dantea - 12.01.2016 23:54

Quote:
(27.11.2015 12:48)Dantea Wrote:  Вот ошибки, с чем они связаны, подскажите) Может и не с ограничением)
А чего цвет ошибки красный? Какая это версия Эры?

(27.11.2015 12:48)Dantea Wrote:  Соответсвенно подобные ошибки появлются частенько и содержание разное.
Если они во время игры появляются, то ограничение тут ни при чём.

Еще бы знать как версию проверить)
Да во время игры...Bad


RE: ERA Scripts 1.19 Rus - gamecreator - 13.01.2016 00:12

Открыть heroes3.ini и установить значение Debug равным 1. Сохранить файл, запустить и закрыть игру. Вернуть Debug обратно в 0 и закрыть heroes3.ini. Открыть eralog.txt, найти текст "CheckVersion", посмотреть версию в следующей строке.


RE: ERA Scripts 1.19 Rus - Berserker - 13.01.2016 00:30

gamecreator, 2.55, если красный.


RE: ERA Scripts 1.19 Rus - gamecreator - 13.01.2016 00:31

Ну я так и думал. Dantea, установи 2.46. Может это баг новой версии.


RE: Вопросы по моддингу - svkiller2014 - 13.01.2016 04:03

Подскажите пожалуйста, очень хочу вырезать эффекты с мода LORD: туман и леприкона с радугой. И вставить в свой мод. Какие файлы нужно вырезать?


RE: Вопросы по моддингу - Ethereal - 31.01.2016 17:30

Есть ли у кого идеи, как дистанцию перемещения в бою уменьшить, не уменьшая скорости? Уменьшение скорости гарантировано порежет передвижения по карте. То есть пачти как в четвёрке - дистанция перемещения в бою ровна половине от скорости или вообще определяется отдельно. Возможно ли такое?


RE: Вопросы по моддингу - Berserker - 31.01.2016 20:07

Уменьшать скорость существ в начале первого раунда?

Или даже до боя менять глобально скорость, после боя восстанавливать.


RE: Вопросы по моддингу - gamecreator - 31.01.2016 20:15

В триггере Эры на получение хода отрядом уменьшать скорость и восстанавливать после действия отряда.


RE: Вопросы по моддингу - Berserker - 31.01.2016 23:16

А, инициатива. Таки да, как игродел сказал.


RE: Вопросы по моддингу - Barin - 31.01.2016 23:41

Может кто знает как пропустить 1-й раунд в битве? В 1-м раунде команда на подмену звука урона и защиты не срабатывает. Незнаю почему так, вот движение срабатывает.

!?BG0;
!!BG:N?v2200; что был за стек?
!!BMv2200:T?v2201; кто из монстров?
!!FU3058&v2201=152:P;

!?FU3058;
!!BMv2200:G-8/?y1/d; получает урон
!!SN:E5622064/2/^DMmus16.wav^; 3
!!BMv2200:G-8/v1/d;
!!UN:Cy1/4/?y3;
!!VRy3:+4;
!!UN:Cy3/4/?y4;
!!SN:Ey4/2/y1;


RE: Вопросы по моддингу - Bes - 31.01.2016 23:43

Barin, а в триггере BF не пробовали?


RE: Вопросы по моддингу - Ethereal - 31.01.2016 23:44

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


RE: Вопросы по моддингу - Barin - 31.01.2016 23:57

(31.01.2016 23:43)bugyboy Wrote:  Barin, а в триггере BF не пробовали?
Не получилось. BF же срабатывает 1 раз перед битвой. А у меня команда запускается после каждого действия монстра.

Ситуация 1: начался бой, мой монстр идёт - звук подменяется.
Ситуация 2: начался бой, мой стрелок, либо стрелок противника стреляет в 1-м раунде - и звук урона у атакуемого монстра не подменяется, только со 2-го раунда.

На дф2 задал вопрос, автор скрипта feanor глянул и ушёл, не нашёл решение. Вот и подумал хитростью обойти косяк, пропустить бы 1-й раунд для обеих сторон.


RE: Вопросы по моддингу - Bes - 01.02.2016 00:04

Barin, ну значит в...
(31.01.2016 20:15)gamecreator Wrote:  В триггере Эры на получение хода отрядом



RE: Вопросы по моддингу - igrik - 02.02.2016 13:17

Quote:автор скрипта feanor глянул и ушёл
Потому что вопрос до скудности банальный.
!?FU77006;


RE: Вопросы по моддингу - Barin - 02.02.2016 14:37

(02.02.2016 13:17)igrik Wrote:  
Quote:автор скрипта feanor глянул и ушёл
Потому что вопрос до скудности банальный.
!?FU77006;

!?FU77006; так тоже в 1-м раунде звук не срабатывает.

А если ход пропускать:
Quote:!?FU77006;!!SN:X0/0; в бою только первый отряд героя будет получать право хода
Здесь что за шляпа? Если бы доступно было написано. Почему не написано как пропустить ход.


RE: Вопросы по моддингу - igrik - 02.02.2016 15:08

Quote:Здесь что за шляпа?
Что за бред? Зачем тебе пропускать целый раунд битвы?


RE: Вопросы по моддингу - Barin - 02.02.2016 16:18

(02.02.2016 15:08)igrik Wrote:  
Quote:Здесь что за шляпа?
Что за бред? Зачем тебе пропускать целый раунд битвы?
Потому что все заменённые звуки работают во 2-м раунде, а в 1-м выборочно: движение работает, а урон с защитой нет.


RE: Вопросы по моддингу - igrik - 02.02.2016 17:07

А может все потому что ты не понимаешь простейших основ?
И могу тебя заверить, хоть 130 раундов ты пропустишь, через ту реализацию, которую ты используешь, звук урона и защиты сработает у тебя на 131 раунд :D
Подсказка: потому что !!BG:N?v2200; что был за стек


RE: Вопросы по моддингу - Barin - 02.02.2016 18:26

(02.02.2016 17:07)igrik Wrote:  А может все потому что ты не понимаешь простейших основ?
И могу тебя заверить, хоть 130 раундов ты пропустишь, через ту реализацию, которую ты используешь, звук урона и защиты сработает у тебя на 131 раунд :D
Подсказка: потому что !!BG:N?v2200; что был за стек
Ну вот уже ближе к реализации. !!BG:E?v2200; заработало в 1-м раунде, но блин начинаю движение вылет игры, ошибки. Дальше скрипт сбивается, надо где-то подхимичить, а тут на зло появилось это:
Image: 7702926.jpg

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

Попробовал открыть сначало пустой редактор и открыть карту - вроде исчез глюк.


RE: Вопросы по моддингу - Ethereal - 02.02.2016 18:30

А не проще переписать полностью озвучку и сделать примерно так:
Code:
!?FU111112;
!!UN:C4697553/4/?y1; y1 - MonInfo Table
!!VRy2:S116*x1+y1+8; y2 - address of sound pointer
!!UN:Cy2/4/?y3;
!!SN:K4/?z1/y3/1;
!?PI;
!!VRz1:S^pala^; Замок (174/183 Paladin)
!!FU111112:P174;
!!FU111112:P183;
!?GM0;
!!VRz1:S^pala^; Замок (174/183 Paladin)
!!FU111112:P174;
!!FU111112:P183;
м?Ab Только не в редакторе, а в отдельном скрипте.


RE: Вопросы по моддингу - Barin - 02.02.2016 18:44

Ethereal, с ходу не могу понять преимущество твой команды, у меня тоже скрипт заменяет звуки, всем монстрам прописал в скрипте, единственное, что в 1-м раунду не срабатывал звук урона и защиты, но теперь через !!BG:E заработал, тока дальше отключилось перепиздрилось всё, надо править. Ещё ошибка вышеописанная свалилась откуда-то, не уловил момент, вроде не трогал ничего, но такая ошибка не из-за скрипта - эту фигню помню ещё по wog3.57, тоже доставала когда карты делал. Снёс его потом и забыл. Вообще глюков можно во многих местах схватить, было например - провидцу поставил в условие принести арт пустой воговский - словил глюки, долго найти не мог.


RE: Вопросы по моддингу - Ethereal - 02.02.2016 18:56

Barin, да это не моя команда. Это из мода новых командиров HeroinesM. А преимущество, видимо в том, что она работает без глюков. Ab Правда требует запаковки звуковых файлов в общую корзину.


RE: Вопросы по моддингу - igrik - 02.02.2016 19:30

Quote:!BG:E?v2200; заработало в 1-м раунде, но блин начинаю движение вылет игры, ошибки
Ясень пень. А кто будет проверять на тип действия?
BG:A.
При типе действия "движение" в BG:E ничего нет, кроме ненужного для тебя хлама (-1)


RE: Вопросы по моддингу - Barin - 02.02.2016 19:36

(02.02.2016 19:30)igrik Wrote:  
Quote:!BG:E?v2200; заработало в 1-м раунде, но блин начинаю движение вылет игры, ошибки
Ясень пень. А кто будет проверять на тип действия?
BG:A.
При типе действия "движение" в BG:E ничего нет, кроме ненужного для тебя хлама (-1)
Да, тип действия упустил. Просто когда BG:N - ничего лишнего! очень просто в 2 строки, тока работало со 2-го раунда.

А тут...

!?BG0;
!!BG:A?v2202; узнать тип действия
!!BG&v2202<>2:E?v2200;
!!BMv2200&v2202<>2:T?v2201; кто из монстров?

Вроде заработало, тока всё равно что-то недоделано, запутался совсем. Домой получает атаку, звук есть, идёт - игра не вылетает как раньше. НО другой монстр вначале битвы вылетает, видать что-то с типами действия. Башка уже не соображает ковыряться.


RE: Вопросы по моддингу - Barin - 03.02.2016 00:43

(02.02.2016 19:30)igrik Wrote:  [quote]
При типе действия "движение" в BG:E ничего нет, кроме ненужного для тебя хлама (-1)
Спасибо, эта особенность помогла. Из-за этого хлама игра вылетала, когда монстр начинал движение.
Обошёлся без !!BG:A!


RE: Вопросы по моддингу - hippocamus - 23.02.2016 14:48

Подскажите, SOD хоть какие-то лоды подгружает кроме h3bitmap и h3sprite?
Если да - то какие, и до или после? (я в экзешнике все заменил на один и тот же - и он всё равно не загружался).
Или это как-то включить надо?


RE: Вопросы по моддингу - Heromant - 03.03.2016 21:56

Подскажите пожалуйста, как вернуть нормального вида кузницы с одним видом товара в города вместо нынешних воговских фабрик военной техники, где есть всё, кроме хотовской пушки?


RE: Вопросы по моддингу - Berserker - 03.03.2016 22:37

А как ты его включил?
Переименуй Mods\WoG\EraPlugins\all war machines in blacksmith.dll в all war machines in blacksmith.dll.off


RE: Вопросы по моддингу - Heromant - 04.03.2016 03:09

(03.03.2016 22:37)Berserker Wrote:  А как ты его включил?
Переименуй Mods\WoG\EraPlugins\all war machines in blacksmith.dll в all war machines in blacksmith.dll.off
Не, никак не включал. Я с H3LORD играюсь - там включено было. Причём, all war machines in blacksmith.dll.off у меня было, но вот в аналогичной папке самого данного мода arsenal.dll было не отключено. Смысл по названию угадал. Теперь другой вопрос - как вернуть доступность строительства двора баллист в цитадель? На сколько я вижу, сейчас с военной техникой всё нормально, но вот двор баллист запрещен всё равно всегда.


RE: Вопросы по моддингу - Berserker - 04.03.2016 15:01

Это уже скриптом, видимо.


RE: Вопросы по моддингу - Heromant - 04.03.2016 17:44

(04.03.2016 15:01)Berserker Wrote:  Это уже скриптом, видимо.
Ага, я тоже так подозревал. Тогда мне лучше найти строчку, которая за это отвечает и выпилить её, чем писать противоположную ей, отменяющую её в другом скрипте. Вот что-то найти её не могу. Поищу ещё. Пока вижу, что это на уровне H3LORD мода, так, если его выключаю - мод баллист строить становится можно. Там ведь что-то такого типа должно быть !!CA-1:B5/22?


RE: Вопросы по моддингу - Berserker - 04.03.2016 18:44

Да, что-то схожее.


RE: Вопросы по моддингу - Heromant - 05.03.2016 01:40

(04.03.2016 18:44)Berserker Wrote:  Да, что-то схожее.
Нашел. Было вот так !#CD:B0/6/22/0;
Кстати, такой вопрос, чем глобально отличается !# от !! в начале строки?


RE: Вопросы по моддингу - gamecreator - 05.03.2016 01:45

!# выполняется при старте карты, !! - в триггере. Это же основы ЕРМ, Heromant!


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

почему в существующих при определении почти всех вторичных навыков никак не учитывается соответствующая специализация героя? У кого-то возникал такой вопрос уже?
И если по дополнительным бонусам - по коду видно, что специализация не добавляет, то в случае изменения процентовок вопрос в слудущем.
Вот у меня есть волшебство эксперта +30% вместо +15%. Герой специалист по нему. У него бонусы специализации будут считаться по +5% за уровень от старых +15% (0,75% за уровень) или по +5% от новых 30%, то есть по 1,5% за уровень?


RE: Вопросы по моддингу - StasPV - 17.04.2016 15:14

Возможно вопрос глупый, но я не сильно в программировании разбираюсь.

Суть в следующем, Igrik помог мне с редактированием окна таунхола, помог убрать из окна построек одну спец постройку (вместо 18 позиций зданий осталось 17), поэтому пришлось заменять задний фон. Для СОД-а задников 9 штук - по одному на город (здесь все просто заменить), в ВОГ-е их заменили на 3 штуки (так как некоторые повторяются), в HD mod-е их тоже три штуки.

Для ВОГ-а я поступил следующим образом - сделал ЕРМ скрипт, который проверяет тип города, и если он совпадает с нужным, через UN:C подменяет один из трех фонов на другой, потом заменяет обратно.

А вот с HD для меня сложнее - IDA не подгружает HD_WOG.dll к екзешнику, даже если сгенерировать в лаунчере ХД готовый екзешник, поэтому не могу найти адрес, по которому он загружает свои ресурсы. Пробовал открыть длл отдельно - там адреса вида h1006385e , к которым не могу обратится через UN:C. Каким образом грузится длл ХД мода при старте, и как её можно загрузить в ИДЕ вместе с exe-файлом ВОГ-а?


RE: Вопросы по моддингу - igrik - 17.04.2016 19:11

Я придумал как это обойти :D.
Этот скрипт работает во всех случаях (с HD и без него) и применим только для Темницы



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

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


RE: Вопросы по моддингу - igrik - 17.04.2016 22:20

проверка 100% 118 посмотри на код в HD_WOG.dll
Code:
if ( dword_1006A1F0 >= 808 )
    {
      if ( dword_1006A2FC >= 608 )
      {
        (*(void (__stdcall **)(_DWORD, signed int, _DWORD))(*(_DWORD *)dword_1006A1D0 + 8))(
          dword_1006A1D0,
          6072621,
          "hd_thbCs.pcx");
        (*(void (__stdcall **)(_DWORD, signed int, _DWORD))(*(_DWORD *)dword_1006A1D0 + 8))(
          dword_1006A1D0,
          6073203,
          "hd_thbRm.pcx");
        (*(void (__stdcall **)(_DWORD, signed int, _DWORD))(*(_DWORD *)dword_1006A1D0 + 8))(
          dword_1006A1D0,
          6073787,
          "hd_thbTw.pcx");
        (*(void (__stdcall **)(_DWORD, signed int, _DWORD))(*(_DWORD *)dword_1006A1D0 + 8))(
          dword_1006A1D0,
          6074365,
          "hd_thbTw.pcx");
        (*(void (__stdcall **)(_DWORD, signed int, _DWORD))(*(_DWORD *)dword_1006A1D0 + 8))(
          dword_1006A1D0,
          6074949,
          "hd_thbTw.pcx");
        (*(void (__stdcall **)(_DWORD, signed int, _DWORD))(*(_DWORD *)dword_1006A1D0 + 8))(
          dword_1006A1D0,
          6075533,
          "hd_thbTw.pcx");
        (*(void (__stdcall **)(_DWORD, signed int, _DWORD))(*(_DWORD *)dword_1006A1D0 + 8))(
          dword_1006A1D0,
          6076445,
          "hd_thbTw.pcx");
        (*(void (__stdcall **)(_DWORD, signed int, _DWORD))(*(_DWORD *)dword_1006A1D0 + 8))(
          dword_1006A1D0,
          6078589,
          "hd_thbRm.pcx");
        (*(void (__stdcall **)(_DWORD, signed int, _DWORD))(*(_DWORD *)dword_1006A1D0 + 8))(
          dword_1006A1D0,
          6080733,
          "hd_thbRm.pcx");
        (*(void (__stdcall **)(_DWORD, signed int, _DWORD))(*(_DWORD *)dword_1006A1D0 + 8))(
          dword_1006A1D0,
          6081276,
          "hd_tstat.pcx");
        (*(void (__stdcall **)(_DWORD, signed int, _DWORD))(*(_DWORD *)dword_1006A1D0 + 8))(
          dword_1006A1D0,
          6081293,
          578);
        (*(void (__stdcall **)(_DWORD, signed int, _DWORD))(*(_DWORD *)dword_1006A1D0 + 8))(
          dword_1006A1D0,
          6081377,
          578);
        (*(void (__stdcall **)(_DWORD, signed int, _DWORD))(*(_DWORD *)dword_1006A1D0 + 8))(
          dword_1006A1D0,
          6088537,
          578);
      }
    }



RE: Вопросы по моддингу - StasPV - 18.04.2016 23:13

igrik, огромное спасибо!


RE: Вопросы по моддингу - StasPV - 24.04.2016 17:18

Даже не знаю куда лучше вопрос запостить, сюда или в вопросы по скриптингу.
В ЕРМ хелпе номера флагов существ, номера игроков и еще много чего представлены в виде степени двойки. Вот я например добавил существу 5 первых флагов 1+2+4+8+16=31 . Как с точки зрения математики можно по этой сумме определить, установлен ли флаг номер 3 (два в кубе=8) существу или нет? Если кто расскажет, буду благодарен.


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

Есть битовая операция & (логическое "и"). Для того, чтобы проверить установлены ли флаги, выполняют &флаги. Например:



RE: Вопросы по моддингу - StasPV - 25.04.2016 23:34

gamecreator, спасибо за разъяснение, с помощью битовых операций получилось сделать аналог повышения первичного навыка от спецпостройки в городе (можно посещать одним героем один раз в одном городе), может кому пригодится:




RE: Вопросы по моддингу - StasPV - 03.05.2016 17:07

Люди, кто-нибудь знает как изменить стартовые армии героев? Редактирование hotraits.txt ничего не дало, а ресейвер НЕ H$1/$2/$3/$4 изменяет армии только нанимаемых в таверне героев.


RE: Вопросы по моддингу - MOP - 03.05.2016 17:33

679DD0h - массив стартовых параметров героев. 5Ch байт на структуру героя. Данные структуры:
1. Пол
2. ?
3. Класс
4. Первый стартовый навык
5. Уровень первого стартового навыка
6. Второй стартовый навык
7. Уровень второго стартового навыка
8. Наличие Книги Заклинаний: да/нет
9. Стартовое заклинание
10. Стартовая армия, тип существа, слот №1
11. Стартовая армия, тип существа, слот №2
12. Стартовая армия, тип существа, слот №3
13. Ссылка на название малого портрета
14. Ссылка на название большого портрета
15. ? (напоминает запрет/доступность для найма, но при изменении эффекта не замечено)
Остальные данные - ссылки на строковые описания.


RE: Вопросы по моддингу - StasPV - 03.05.2016 17:37

MOP, спасибо!


RE: Вопросы по моддингу - igrik - 03.05.2016 18:02

Когда то для себя создавал файл экселя по адресам, которые нашел MoP


RE: Вопросы по моддингу - StasPV - 03.05.2016 20:28

Блин, уже свою таблицу сделал) Почему-то через UN:C у меня не менялись стартовые существа, пришлось изменять значения в екзешнике с адресами -400000


RE: Вопросы по моддингу - MOP - 04.05.2016 07:53

Потому что WoG при загрузке копирует эти данные в свою таблицу, если не ошибаюсь. И дальше используется уже она.


RE: Вопросы по моддингу - igrik - 04.05.2016 09:56

.... или не меняя адресов просто положить бинарник в "EraPlugins\BeforeWoG"


RE: Вопросы по моддингу - StasPV - 05.05.2016 23:17

Я потом воспользуюсь BinMagic для преобразования изменений в бинарник, просто много мелких изменений я уже сделал через HEX-редактор


RE: Вопросы по моддингу - StasPV - 14.05.2016 19:10

А есть ли где-нибудь описание того, как правильно и чем создавать установочный файл мода для ЭРЫ?


RE: Вопросы по моддингу - gamecreator - 15.05.2016 00:24

Обычно самораспаковывающийся архив с папкой Mods, внутри твой мод или моды.


RE: Вопросы по моддингу - StasPV - 15.05.2016 16:50

Да, действительно обычный саморазпаковывающийся архив, спасибо


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

У кого то скрипт "волшебство 2" работает. Я проверил на нескольких версиях Era + WoG - результат везде один. Описание навыка корректное, а к силе ударной магии по прежнему +5, +10, +15% вместо 10, 20, 30 как заявлено.


RE: Вопросы по моддингу - igrik - 21.05.2016 21:36

Потому что оригинальный скрипт вообще не учитывает "Волшебство II" (v7198=1). Видимо автор скрипта недоглядел.


И да, это не совсем та тема. Лучше такие вопросы задавать в теме по ERM скриптам


RE: Вопросы по моддингу - Heromant - 30.05.2016 13:59

(21.05.2016 21:36)igrik Wrote:  Потому что оригинальный скрипт вообще не учитывает "Волшебство II"
Спасибо. А как сделать, чтобы в колдовской книге в походном режиме правильный урон показывался, а не только в битве? Сейчас разный урон отображается - в битве с учётом правки в триггере битвы.
И ещё - специализация героя по вторичному навыку "волшебство" никак не учитывается. То есть, независимо от уровня у такого героя бонус к силе заклинания +10, 20, 30% со включённым скриптом. Этот то момент я поправлю своим умом - с описанием в походной книге урона помощи прошу. И что-то мне подсказывает, что с другими специализациями на вторичных навыках тоже могут быть ошибки и логические несостыковки.

PS: Вообще у меня складывается впечатление, что в этой группе не хватает тестировщиков. Люди пишут скрипты зашкаливающей сложности, а проверить нормально по тесткейсам не хотят. Причем чем проще скрипт - тем хуже он протестирован. Поэтому все в Хоту и играют.


RE: Вопросы по моддингу - igrik - 31.05.2016 11:15

(30.05.2016 13:59)Heromant Wrote:  с описанием в походной книге урона помощи прошу.
Посмотрю что можно сделать. Только что вы используете WoG или ERA?
(30.05.2016 13:59)Heromant Wrote:  И что-то мне подсказывает, что с другими специализациями на вторичных навыках тоже могут быть ошибки и логические несостыковки.
Вполне может быть. Тестировать нужно под разными призмами.
(30.05.2016 13:59)Heromant Wrote:  PS: Вообще у меня складывается впечатление, что в этой группе не хватает тестировщиков. Люди пишут скрипты зашкаливающей сложности, а проверить нормально по тесткейсам не хотят. Причем чем проще скрипт - тем хуже он протестирован. Поэтому все в Хоту и играют.
Потому что стандартным воговским скриптам уже чуть больше 10 лет. Че их тестировать то уже, хотя недочеты потихонку ещё всплывают.
А тестировать - дело нудное, долгое и неинтересное. Кто ж так делает 148
Как сказал однажды feanor - "Ну и Кибераллах с ними".


RE: Вопросы по моддингу - Heromant - 31.05.2016 15:58

(31.05.2016 11:15)igrik Wrote:  Посмотрю что можно сделать. Только что вы используете WoG или ERA?
ERA +WoG, как мод, + LORD, как мод + ещё всякая незначительная мелочёвка - ERM скрипты.


RE: Вопросы по моддингу - StasPV - 01.06.2016 16:37

Кто-нибудь знает как сделать для стрелка стрельбу по площади (как магоги и личи)?

В базе по адресу 0041ED00 находится такая вот вещь, пытался заменить номер монстра в проверке на другой, но эффект удара по площади не приобретается



RE: Вопросы по моддингу - gamecreator - 01.06.2016 18:07

Можно изменить тип существа перед атакой, а потом вернуть как было.


RE: Вопросы по моддингу - igrik - 01.06.2016 19:07

Не там смотришь. Твой адрес видимо для определения ценности выстрела для AI.
А тебе нужно смотреть в функции по адресу 0x0043F620
Например, подменить магога !!UN:C4454190/1/[номер монстра 0...127];


RE: Вопросы по моддингу - feanor - 01.06.2016 19:32

Все воговские скрипты надо не тестировать, а тупо переделывать под эру, под её возможности и её принципы. А там где не хватает - допиливать эру.
Вот например кому вообще это Волшебство Два нужно скриптом, когда тот же функционал достигается бинарником в шестнадцать байт?

..но это еще более никому не надо.


RE: Вопросы по моддингу - StasPV - 01.06.2016 21:18

gamecreator, igrik спасибо!


RE: Вопросы по моддингу - igrik - 01.06.2016 21:52

(30.05.2016 13:59)Heromant Wrote:  ... с описанием в походной книге урона помощи прошу.
В этом плане согласен с feanor'ом.
Но коль нужно, то держи скрипт.
Для работы нужен "erm_hooker.era", который положишь в папку "EraPlugins"
Кстати, в предпросмотре сообщения не работает тег [erm]



RE: Вопросы по моддингу - StasPV - 04.06.2016 23:57

Добрый вечер! Вопрос к программистам. Есть функция, которая определяет доход города (скопировано с базы ИДЫ Феанора):

Code:
//----- (005BFA00) --------------------------------------------------------
signed int __thiscall Town_GetGoldIncome(int this, char a2)
{
  signed int result; // eax@1
  int v3; // edi@1
  int v4; // esi@1
  int v5; // edx@9

  v4 = *(_DWORD *)(this + 336);
  v3 = *(_DWORD *)(this + 340);
  result = 500;
  if ( __PAIR__(
         (unsigned int)TownHallMask2 & *(_DWORD *)(this + 340),
         (unsigned int)TownHallMask & *(_DWORD *)(this + 336)) )
    result = 1000;
  if ( CityHallMask2 & v3 | CityHallMask & v4 )
    result = 2000;
  if ( CapitolMask2dword & v3 | CapitolMask & v4 )
    result = 4000;
  if ( a2 )
  {
    if ( ResSiloMask2 & v3 | (unsigned int)ResSiloMask & v4 )
    {
      v5 = *(_BYTE *)(this + 4);
      LOWORD(v5) = LOWORD(TownsResourceSilo[7 * v5 + 6]);
      result += v5;
    }
  }
  if ( __PAIR__((unsigned int)GrailMask2 & *(_DWORD *)(this + 348), (unsigned int)GrailMask & *(_DWORD *)(this + 344)) )
    result += 5000;
  return result;
}
// 66CDF0: using guessed type int TownHallMask;
// 66CDF4: using guessed type int TownHallMask2;
// 66CDF8: using guessed type int CityHallMask;
// 66CDFC: using guessed type int CityHallMask2;
// 66CE00: using guessed type int CapitolMask;
// 66CE04: using guessed type int CapitolMask2dword;
// 66CE6C: using guessed type int GrailMask2;
// 688F04: using guessed type int TownsResourceSilo[63];

Первый вопрос, как правильно понимать данное условие:
Code:
if ( __PAIR__(
         (unsigned int)TownHallMask2 & *(_DWORD *)(this + 340),
         (unsigned int)TownHallMask & *(_DWORD *)(this + 336)) )
, вижу что проверка на построенный таунхолл, но что именно происходит в условии не понимаю.

Второй вопрос, как с помощью длл добавить еще одно условие перед return result: если город Темница, и построен торговец артефактами то доход +100? У меня есть скрипт, который писал на ЕРМ, он просчитывает количество темниц, проверяет постройку здания, а потом прибавляет залото в начале хода, но хочеться научиться писать подобные штуки в Microsoft Visual C++, кроме того есть планы модифицировать под себя еще кое-какие функции, но очень нужен хоть один пример, по аналогии с которым я бы потихоньку начал разбираться дальше


RE: Вопросы по моддингу - gamecreator - 05.06.2016 00:25

На место return result; вставить хук и изменить этот самый result. В ERM это через erm hooker делается, а в плагине просто вместо возврата записываешь прыжок на твою функцию, которая __declspec(naked), и там уже изменяешь и возвращаешь результат. Сходу код не могу выдать, это надо с адресами копаться (посмотреть где result, куда вписывать хук и т.п.). Тут же важно ещё и понимать язык ассемблера, одного знания С++ недостаточно.
А что за база Феанора? Можно ссылку?


RE: Вопросы по моддингу - StasPV - 05.06.2016 00:49

[b]ссылка с df2 форума на базу Феанора

Quote:Сходу код не могу выдать
сходу не надо, если вдруг время будетAb


RE: Вопросы по моддингу - StasPV - 05.06.2016 13:18

По той функции дохода из поста выше. Утром набросал ерм скрипт, в котором ставлю хук и изменяю result. Скрипт записывает в result 5000.

Теперь голову ломаю, как считать номер города и флаг здания, чтоб добавить условие... здесь моих знаний пока не хватает




RE: Вопросы по моддингу - igrik - 05.06.2016 14:58

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


RE: Вопросы по моддингу - StasPV - 05.06.2016 15:12

igrik, то пробный скрипт, поэтому записывал сразу значение 5000, позже изменил на +5000, чтоб проверить работает ли. Хук установлен на адрес с уже окончательным доходом, вроде подсчитывает правильно и с граалью и без.

Тут на дф2 нашел запись по структурам монстров и героев, а вот по городу ничего найти не могу, не знаю от куда прочитать тип города и построенные в нем строения


RE: Вопросы по моддингу - gamecreator - 05.06.2016 15:45

Хук поставлен правильно.
Структура города (из исходников ВоГ):
Code:
// Замки
// 6971F0 (18h*9[число типов городов])
// 6A60B0 ()
//
// + 24h dw * 8  = количество доступных для найма монстров
// +150h dd + dd = постройки
// 0 01 -  0 Гильдия магов ур 1
//   02 -  1 2
//   04 -  2 3
//   08 -  3 4
//   10 -  4 5,?(6,7)
//   20 -  5 таверна
//   40 -  6 верфь(0,4,7,8),?(1,2,3,5,6)
//   80 -  7 форт (+ слева картинка)
// 1 01 -  8 цитадель (+)
//   02 -  9 замок (+)
//   04 - 10 управа (+)
//   08 - 11 префектура (+)
//   10 - 12 муниципалитет (+)
//   20 - 13 капитолий (+)
//   40 - 14 рынок
//   80 - 15 хранилище ресурсов
// 2 01 - 16 кузница
//   02 - 17 маяк(0),таинств.пруд(1),торг.арт.(2,5,8),?(3),вуаль тьмы(4),
//           чер.ход(6),кл.бог.войны(7)
//   04 - 18 баст.гриф.(0-3),гильд горн.(1-2),крылья воятеля(2-2),инкуб(3-1),
//           взрыт.мог.(4-1),гриб.кольца(5-1),стол(6-1),кв.капитана(7-1),сад жизни(8-1)
//   08 - 19 баст.гриф.+(0-3+),гильд горн.(1-2+),крылья воятеля(2-2+),инкуб(3-1+),
//           взрыт.мог.(4-1+),гриб.кольца(5-1+),стол(6-1+),кв.капитана(7-1+),сад жизни(8-1+)
//   10 - 20 ?(0,1,2,3,4,5,6,7,8)
//   20 - 21 конюшни(0),фонтан уд(1),см.башня(2),сер.тучи(3),ус.ч.магии(4),
//           водов.маны(5),гил.н.раб(6),знаки страха(7),ун.магии(8)
//   40 - 22 бр.меча(0),сокровищ(1),библ(2),врата замка(3),преобр.ск(4),
//           портал выз(5),дв.балист(6),обелиск крови(7),?(8)
//   80 - 23 ?(0,1,4,7,8),стена зн.(2),орден огня(3),ак.б.иск(5),храм волх(6)
// 3 01 - 24 ?(0,2,4,5,6,7,8),мол.дендр(1-5),клетки(3-3)
//   02 - 25 ?(0,2,4,5,6,7,8),мол.дендр(1-5+),клетки(3-3+)
//   04 - 26 грааль
//   08 - 27 ?(x)
//   10 - 28 ?(x)
//   20 - 29 ?(x)
//   40 - 30 жил 1  (x-1)
//   80 - 31 жил 2  (x-2)
// 4 01 - 32 жил 3  (x-3)
//   02 - 33 жил 4  (x-4)
//   04 - 34 жил 5  (x-5)
//   08 - 35 жил 6  (x-6)
//   10 - 36 жил 7  (x-7)
//   20 - 37 жил 1+ (x-1+)
//   40 - 38 жил 2+ (x-2+)
//   80 - 39 жил 3+ (x-3+)
// 5 01 - 40 жил 4+ (x-4+)
//   02 - 41 жил 5+ (x-5+)
//   04 - 42 жил 6+ (x-6+)
//   08 - 43 жил 7+ (x-7+)
// +158h dd + dd = модификаторы и производители существ
// теже жилища
// 0 80 - форт слева картинка
// 2 08 - "Инкубатор"
// 3 40 - "Бесы" карт
//   80 - "Гоги"
// 4 01 - "Адские Гончие"
//   02 - "Демоны"
//   04 - "Порождение Зла"
//   08 - "Эфриты"
//   10 - "Дьяволы"
//   20 - + "Черти" ("Бесы")
//   40 - + "Магоги" ("Гоги")
//   80 - + "Церберы" ("Адские Гончие")
// 5 01 - + "Рогатые Демоны" ("Демоны")
//   02 - + "Адские Отродья" ("Порождение Зла")
//   04 - + "Султаны Эфритов" ("Эфриты")
//   08 - + "Архидьяволы" ("Дьяволы")

struct _CastleSetup_{
  Byte   Number;        //* +0 0,1,2,...
  char   Owner;         //*O +1 0,...
  char   BuiltThisTurn; // +2 - уже строили в этот турн (0-нет, 1-да, 2-не наш город)
  Byte  _u2;            //* +3 0
  Byte   Type;          //*T +4 0,1...,8
  Byte   x;             //* +5
  Byte   y;             //* +6
  Byte   l;             //* +7
  Byte   Pos2PlaceBoatX;//* +8 помещать лодку при покупки в Shipyard
  Byte   Pos2PlaceBoatY;//* +9
  Byte  _uAa[2];        // +0A
  int    IHero;         //* +0Ch = номер героя внутри города (-1 - никого нет)
  int    VHero;         //* +10h = номер героя снаружи города (-1 - никого нет)
  char   MagLevel;      //*G +14h = уровень магической гильдии в городе (исп. AI для постройки)
  Byte  _u15;
  Word   Monsters[2][7];//*M- +16h ко-лво простых и апгрейднутых
  char  _u32;           //*- +32 = ?
  char  _u33;           //* +33 = 1
  char  _u34;           //* +34 = 0
  Byte  _u35a[3];
  int   _u38;           //* +38 = -1
  int   _u3C;           //* +3C = -1
  short _u40;           //*- +40
  Word  _u42;           //  +42
  int    Spels[5][6];   //*G- +44 сами заклинания
  char   MagicHild[5];  //*G- +BCh = колво заклинаний в уровне гильдии
  Byte  _uC1[3];
  char  _uC4;           //* +C4 = 0
  Byte  _uC5[3];
  _AMes_ Name;          //*N +C8 -> Имя города
  int   _u8[3];         //* +D4 = 0
  Dword  GuardsT[7];    //*M +E0 = охрана замка
  Dword  GuardsN[7];    //*M +FC = кол-во охраны
  Dword  GuardsT0[7];   //*M- +118 = охрана замка
  Dword  GuardsN0[7];   //*M- +134 = кол-во охраны
  Byte   Built[8];      //*B +150h = уже построенные здания (0400)
  Byte   Bonus[8];      //*B +158h = бонус на существ, ресурсы и т.п., вызванный строениями
  Dword  BMask[2];      //*B- +160h = маска доступных для строения строений
};



RE: Вопросы по моддингу - igrik - 05.06.2016 18:13

Всё таки хук поставлен не правильно. Потому что в этом месте уже не получить структуру города внутри этой функции, и поэтому ни номер города на карте, ни его тип.
Хук нужно ставить в 0x005BFA68.



RE: Вопросы по моддингу - StasPV - 05.06.2016 18:45

Пока получилась такая штука:

Стабильно вылетает в первую неделю, хотя после того как переустановил героев вылетают подряд все скрипты, и старые и новые, может кто-нибудь проверить у себя на вылеты?

Единственное, не могу понять, почему тип города определяется только на карте, если клацнуть на замок, а в экране города значение всегда 0, как и при передаче хода.

igrik, только прочитал твое сообщение, сейчас попробую.


RE: Вопросы по моддингу - gamecreator - 05.06.2016 18:56

igrik, да, насчёт структуры города ты прав. Не заметил, что значение затирается.


RE: Вопросы по моддингу - StasPV - 05.06.2016 19:07

igrik, твой скрипт работает на ура, спасибо. Еще раз посмотрел в ИДЕ, увидел, что уже при проверке на хранилище ресурсов используется esi.

gamecreator, спасибо за структуру города.


RE: Вопросы по моддингу - igrik - 01.07.2016 14:57

Подскажите, человеку вообще слабознакомому с С++.
Как это (хоть и работающее) безобразие привести к нормальному виду. А еще лучше оранизовать в функцию и показать способ вызова этой функции, которая будет возвращать адрес структуры активного стека. И еще желательно не через __thiscall.
Code:
char* combatManager = (char*)(*((int*)0x699420));  // это this_

int j = *(int*)(this_ + 78524);       // номер активного стека текущей стороны 0 ... 20
int i = *(int*)(this_ + 78520);       // номер активной стороны
int v3 = i * 14 + i * 7 + j;          // переход к номеру стека 0 ... 41
int v1 = v3 * 1352;                   // длина структуры одного стека
int v2 = *(int*)(this_ + 21708 + v1); // получить структуру стека



RE: Вопросы по моддингу - gamecreator - 01.07.2016 18:14

Что подразумевается под нормальным видом? Потому что лично для меня нормальным было бы подобное:
Code:
CombatManager *cm = *(CombatManager**)0x699420;
BattleStack activeStack = cm->stack[cm->currentSide][cm->currentSideStack];
Но к такому виду приводить долго и нудно.
И зачем здесь функция?


RE: Вопросы по моддингу - Berserker - 02.07.2016 14:47

Code:
void* __stdcall getActiveStackAddress () {
  char* combatManager = (char*)(*((int*)0x699420));  // это this_

  int j = *(int*)(this_ + 78524);       // номер активного стека текущей стороны 0 ... 20
  int i = *(int*)(this_ + 78520);       // номер активной стороны
  int v3 = i * 14 + i * 7 + j;          // переход к номеру стека 0 ... 41
  int v1 = v3 * 1352;                   // длина структуры одного стека
  int v2 = *(int*)(this_ + 21708 + v1); // получить структуру стека
  return (void*) v2;
}


Если возвращать адрес нужно как целое число, то просто return v2; и int __stdcall getActiveStackAddress .


RE: Вопросы по моддингу - feanor - 03.07.2016 01:59

igrik, у тебя же есть человеческие заголовочники из HD.
o_BattleMgr->GetCurrentStack();


RE: Вопросы по моддингу - igrik - 04.07.2016 03:19

Есть конечно, но далеко не всегда врубаюсь как их использовать.
И еще один вопрос. Как через патчер вызвать например такую функцию

Чёто не компилируется. Пишет "результатом вычисления фрагмента не является функция, принимающая 0 аргументов" Visual C++ 2008
Code:
CALL_2(int, __thiscall, 0x5AF4E0(), 0x6A3D90, 0);



RE: Вопросы по моддингу - gamecreator - 04.07.2016 03:37

У тебя скобки после адреса. Я ничего не понимаю в патчере, но предполагаю, что должно быть так:
Code:
CALL_2(int, __thiscall, ((void*)0x5AF4E0), ((void*)(*(int*)0x6A3D90)), 0);
Ведь по адресу 0x6A3D90 у тебя не this, а указатель на него. Иначе зачем UN:C?


RE: Вопросы по моддингу - feanor - 04.07.2016 12:58

не совсем:
Code:
CALL_2(int, __thiscall, 0x5AF4E0, *(int*)0x6A3D90, 0);
оно все равно все в int приводит
Code:
#define CALL_2(return_type, call_type, address, a1, a2) \
((return_type (call_type *)(_dword_,_dword_))(address))((_dword_)(a1),(_dword_)(a2))


кстати, чтобы не запускать калькулятор, можно и
Code:
CALL_2(int, __thiscall, 5960928, *(int*)6962576, 0);

   :D


RE: Разные вопросы - Barin - 11.07.2016 16:34

Мне нужно в меню выбора кампаний SoD отключить некоторые окна, выглядеть должно так:
Image: 8274307.jpg

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

Quote:сместить кнопки далеко за пределы экрана: для бин файла
; кнопка "Синглплеер"
63E6B0 FFFD
; кнопка "Мультиплеер"
63E6B8 FFFD
; кнопка "Обучение"
63E6C8 FFFD
; кнопка "Во имя богов"
456C6C AAAA
; кнопка "Клинок Армагедона"
456CE6 AAAA
; кнопка "Возраждение Эратии"
63BBF0 AAAA
; кнопка "Выбрать"
63BBF8 AAAA

Кто может помочь?

p.s Оставшиеся 3 окна тоже бы отключить.


RE: Вопросы по моддингу - Heromant - 26.07.2016 10:45

Как вернуть героям-строителям первоначальную специализацию? А то получается, что при выключенном скрипте "разрушение городов" она совершенно бесполезна.


RE: Вопросы по моддингу - igrik - 26.07.2016 10:48

Heromant Wrote:Как вернуть героям-строителям первоначальную специализацию?
Что ты под этми имеешь ввиду?


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

(26.07.2016 10:48)igrik Wrote:  
Heromant Wrote:Как вернуть героям-строителям первоначальную специализацию?
Что ты под этми имеешь ввиду?
Специализация Жедитта в WoG - перестройка городов. То есть он может не только темницу строить после разрушения а любой город. А хорошо бы вернуть ему спецу "воскрешение".


RE: Вопросы по моддингу - gamecreator - 26.07.2016 10:55

Я где-то писал уже... вот.


RE: Вопросы по моддингу - Heromant - 26.07.2016 11:08

(26.07.2016 10:55)gamecreator Wrote:  Я где-то писал уже... вот.

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


RE: Вопросы по моддингу - MOP - 04.08.2016 20:36

Где вообще найти XXL-патч? На Вог-архиве только фикс для PO.


RE: Вопросы по моддингу - gamecreator - 04.08.2016 23:34

В XXL моде, который можно найти, к примеру, на wakeofgods.org.
Но насколько я понимаю, он только меняет размеры случайных карт и фиксит миникарту. XXL карты можно играть и в оригинальной игре.


RE: Вопросы по моддингу - fireman - 05.08.2016 02:45

MOP, http://bers.heroes35.net/mods/XXL.exe


RE: Вопросы по моддингу - MOP - 05.08.2016 16:54

Спасибо.


RE: Ваши вопросы по ERM-скриптам - Elzivir - 16.08.2016 17:27

Кто-нибудь знает, почему RMG продолжает генерировать дефы зеленых деревьев (AVLPNTR6.def, AVLPNTR7.def) на снежной территории, несмотря на то, что во всех вариантах файла Objects.txt данным дефам установлен ландшафт Grass/Dirt?


RE: Вопросы по моддингу - Ethereal - 16.08.2016 17:50

Пара вопросов;
1) Скажите пожалуйста, ведёт кто-нибудь и где-нибудь изыскания на тему, снятия или смещения, количественных ограничений для городов и объектов?

2) Есть ли скрипт отвязки внешних жилищ от городов, в плане плюса к приросту?


RE: Вопросы по моддингу - Elzivir - 16.08.2016 20:26

Нужен скрипт, позволяющий RMG генерировать деревья на строго соответствующем им типе ландшафта... 4


RE: Вопросы по моддингу - MOP - 16.08.2016 20:37

Это не скриптом делается, а редактированием файла с данными объектов.


RE: Вопросы по моддингу - Elzivir - 16.08.2016 22:47

(16.08.2016 20:37)MOP Wrote:  Это не скриптом делается, а редактированием файла с данными объектов.

Пересмотрел все разновидности файла Objects.txt, нигде в дефах деревьев Grass и Snow не пересекаются, но это не мешает зеленым деревьям генерироваться на снежной территории. В чем ещё может быть причина - не знаю.


RE: Вопросы по моддингу - gamecreator - 17.08.2016 01:29

А среди снежных дефов точно нет зелёных деревьев?


RE: Вопросы по моддингу - Elzivir - 17.08.2016 03:55

Опытным путем удалось установить, что двумя из 4-х зеленых дефов, поганящих игру, являются avlpntr6.def и avlpntr7.def. Но везде в файлах objects.txt им присвоены Grass/Dirt Landscape. "Галочка" напротив "Snow Landscape" нигде не стоит...


RE: Вопросы по моддингу - MOP - 17.08.2016 04:09

А zobjcts.txt, zeobjcts.txt и zaobjcts.txt?


RE: Вопросы по моддингу - Elzivir - 17.08.2016 05:03

(17.08.2016 04:09)MOP Wrote:  А zobjcts.txt, zeobjcts.txt и zaobjcts.txt?

Да, проверил все: оbjects.txt, zaobjts.txt, zeobjts.txt, zobjcts.txt.


RE: Вопросы по моддингу - Elzivir - 17.08.2016 05:55

Возникла еще идея по изменению "Садов лепрекона". Скажите, насколько сложно сделать так, чтобы данный объект приносил random не только самоцветы, но и ртуть, серу и кристаллы (т.е. все драг. ресурсы)? Тем более, что в файле "42 wog - mithril enhancements.erm" ему приписали еще и мифрил.


RE: Вопросы по моддингу - MOP - 17.08.2016 06:38

Ну так что сложного, юзай !!GD.


RE: Вопросы по моддингу - Elzivir - 17.08.2016 07:16

Если бы я знал как это сделать, я бы не задавал эти вопросы здесь...


RE: Вопросы по моддингу - Bes - 17.08.2016 11:00

Elzivir, для скриптовых проблем такого характера есть тема http://wforum.heroes35.net/showthread.php?tid=4692 4


RE: Вопросы по моддингу - MOP - 17.08.2016 14:58

(16.08.2016 17:50)Ethereal Wrote:  2) Есть ли скрипт отвязки внешних жилищ от городов, в плане плюса к приросту?
Повторюсь и тут:
!#UN:C6054797/1/235 С6029738/2/37008;


RE: Вопросы по моддингу - gamecreator - 17.08.2016 15:10

(17.08.2016 05:55)Elzivir Wrote:  Скажите, насколько сложно сделать так, чтобы данный объект приносил random не только самоцветы, но и ртуть, серу и кристаллы (т.е. все драг. ресурсы)?
Ну например



RE: Вопросы по моддингу - Elzivir - 17.08.2016 19:03

gamecreator, скрипт должен выглядеть таким образом?
P/S: Если не займет много времени, добавь, пожалуйста, вариативность по кол-ву ресурса (от 1 до 5) и возможность нахождения в садах мифрила (с немного пониженным шансом относительно других 4-х видов ресурсов; +500 золота можно не добавлять, т.к. с этим прекрасно справляются водяные мельницы).

(17.08.2016 14:58)MOP Wrote:  Повторюсь и тут:
!#UN:C6054797/1/235 С6029738/2/37008;

MoP, как я не пытался оформить данный скрипт, ничего не вышло. Need Help... 119


RE: Вопросы по моддингу - MOP - 17.08.2016 19:10

ZVSE
!#UN:C6054797/1/235 C6029738/2/37008;
!?GM;
!!UN:C6054797/1/235 C6029738/2/37008;

Неужели не работает?


RE: Вопросы по моддингу - Elzivir - 17.08.2016 19:29

(17.08.2016 19:10)MOP Wrote:  Неужели не работает?

При генерировании карты выдает ошибку именно этот скрипт, выключает несколько других используемых скриптов (некоторые из числа Era scripts Rus), но что самое удивительное - в игре работает.


RE: Вопросы по моддингу - MOP - 17.08.2016 19:32

При генерировании карты ERM вообще ещё не работает, а лог ошибки тогда указывает на левую строку. Ищи проблему в генерации.


RE: Вопросы по моддингу - Elzivir - 17.08.2016 19:35

(17.08.2016 19:32)MOP Wrote:  При генерировании карты ERM вообще ещё не работает...

Если точнее выразиться, то при загрузке карты после генерации.


RE: Вопросы по моддингу - MOP - 17.08.2016 19:38

Если б глючил мой скрипт, игра бы в 99% вылетела при входе в город. А он, говоришь, даже не отключается ERM-ом. Значит, не он.


RE: Вопросы по моддингу - Valery - 17.08.2016 20:03

(17.08.2016 19:03)Elzivir Wrote:  !?PI;
!?OB55;
141


RE: Вопросы по моддингу - Elzivir - 17.08.2016 20:44


Valery, thanks!

MoP, сообщения об ошибке перестали появляться при первой загрузке карты после того, как перенес скрипт в Data\s с более низким приоритетом. Но при повторной загрузке все равно выдает ошибку.

Это я не к тому пишу, чтобы обвинить в неработоспособности скрипта (тем более,что сам скрипт работает), а чтобы вычислить причину конфликта.


RE: Вопросы по моддингу - gamecreator - 17.08.2016 20:45

(17.08.2016 19:03)Elzivir Wrote:  gamecreator, скрипт должен выглядеть таким образом?
Нет, он должен выглядеть так, как я написал (плюс ZVSE, конечно же). Если ты уж взялся за скрипты, то почитай в общих чертах про триггеры и рисиверы в ЕРМ-справке, зачем нужны и когда выполняются. Чтобы не писать вещей вида
(17.08.2016 19:03)Elzivir Wrote:  P/S: Если не займет много времени, добавь, пожалуйста, вариативность по кол-ву ресурса (от 1 до 5) и возможность нахождения в садах мифрила (с немного пониженным шансом относительно других 4-х видов ресурсов;
Количество просто не изменить, да и смысла резать бонус я не вижу.
С мифрилом:



RE: Вопросы по моддингу - Elzivir - 17.08.2016 21:25

gamecreator, спасибо!

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


RE: Вопросы по моддингу - igrik - 17.08.2016 21:39

Нет не затрагивает.
И тема по ERM скриптам находится в другой ветке форума. Такие вопросы лучше писать там.


RE: Вопросы по моддингу - Pun-Chela - 20.08.2016 00:47

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


RE: Вопросы по моддингу - gamecreator - 20.08.2016 01:04

1. Создаёшь папку внутри папки Mods.
2. Мод готов!
3. Представляешь, что это корневая папка Героев.
4. Помещаешь туда все свои файлы, как они должны быть в корневой папке.
5. Запаковываешь мод в архив: внутри архива папка Mods, а в ней твой мод (или моды).


RE: Вопросы по моддингу - Pun-Chela - 20.08.2016 02:14

(20.08.2016 01:04)gamecreator Wrote:  1. Создаёшь папку внутри папки Mods.
2. Мод готов!
3. Представляешь, что это корневая папка Героев.
4. Помещаешь туда все свои файлы, как они должны быть в корневой папке.
5. Запаковываешь мод в архив: внутри архива папка Mods, а в ней твой мод (или моды).

Я просто немного конченый дегенерат. И даже не могу понять как сделать свой артефакт (Деф вставить). А там это было как раз расписано.


RE: Вопросы по моддингу - gamecreator - 20.08.2016 02:37

Насчёт добавления артефактов не знаю, но, емнип, в Эре деф должен работать из папки Data.


RE: Вопросы по моддингу - feanor - 20.08.2016 13:49

Нет, не должен, это HD их может с диска грузить.


RE: Вопросы по моддингу - gamecreator - 20.08.2016 14:13

Ну тогда надо открыть MMArchive, создать там новый lod и вставить туда. lod положить в Data.


RE: Вопросы по моддингу - Pun-Chela - 20.08.2016 15:56

(20.08.2016 02:37)gamecreator Wrote:  Емнип

Что это за чудо?


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

Это не чудо, а сокращение: если мне не изменяет память.


RE: Вопросы по моддингу - Pun-Chela - 20.08.2016 16:33

Я имел ввиду, что это за программа?


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

Какая программа?


RE: Вопросы по моддингу - Pun-Chela - 20.08.2016 16:51

Ой. Я наверное что-то не так понял. Тысяча извинений.

з.ы: Понял только сейчас всю истину. Тысяча извинений.


RE: Ваши вопросы по ERM-скриптам - Heromant - 24.08.2016 04:11

Хочу, чтобы новые артефакты WoG появлялись не вместо старых, а вместо некоторого малого процента кучек ресурсов. Кто-то делал подобное?


RE: Ваши вопросы по ERM-скриптам - gamecreator - 24.08.2016 04:22

Так сделай чтобы искало ресурсы вместо артов.


RE: Вопросы по моддингу - igrik - 31.08.2016 22:12

Как записать по нужному адресу такую вещь в С++?
Code:
00536214 120000004800000090000000FC



RE: Вопросы по моддингу - feanor - 01.09.2016 10:55

В патчеровской библиотеке есть WriteCodePatch/WriteDataPatch.

Если прост - то можно загнать в массив байт, а потом memcpy memmove.
const _byte_ test[] = {0x12,0x00,0x00 ...};
memcpy((void*)test,(void*)0x536214, sizeof(test));


RE: Вопросы по моддингу - feanor - 01.09.2016 11:55

Стоп, на самом деле это ж четыре инта?
*(int*)0x536214 = 0x12;
*(int*)0x536218 = 0x48;
*(int*)0x53621C = 0x90;
*(int*)0x536220 = 0xFC;

или

const int test[] = {0x12,0x48,.. ...};
memcpy((void*)test,(void*)0x536214, sizeof(test));


RE: Вопросы по моддингу - igrik - 01.09.2016 12:00

feanor Wrote:Стоп, на самом деле это ж четыре инта?
Ну в данном частном примере да.
Code:
const _byte_ test[] = {0x12,0x00,0x00 ...};
memcpy((void*)test,(void*)0x536214, sizeof(test));
... более чем достаточно. Спасибо.


RE: Вопросы по моддингу - Elzivir - 01.09.2016 19:19

(17.08.2016 19:10)MOP Wrote:  ZVSE
!#UN:C6054797/1/235 C6029738/2/37008;
!?GM;
!!UN:C6054797/1/235 C6029738/2/37008;

Неужели не работает?

MoP, игра перестала выдавать конфликты после того, как добавил "0" после "GM". Спасибо за скрипт! Ab

Возвращаясь к старой теме... Мне так и не удалось найти причину генерации дефов зеленых деревьев на снежном ландшафте.
Пересмотрел все версии файла objects.txt (zaobjts.txt, zobjcts.txt и т.д.). Нигде несоответствия не обнаружил. 105


RE: Вопросы по моддингу - MOP - 01.09.2016 20:19

Значит, Берсеркер так переделал триггер GM, что без нолика никуда... Раньше WoG отсутствие дополнительного параметра воспринимал как 0.


RE: Вопросы по моддингу - Elzivir - 02.09.2016 18:37

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

Само сообщение находится в файле genrltxt.txt:
%s получает %d ед. дополнительного урона.
%s получают %d ед. дополнительного урона.

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


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

Кто знает, как реализуется в .ERS взаимоисключающие опции? Чтобы галочка на одной делала недоступной для выбора другую?
А как наоборот сделать чтобы выбор одной, открывал доступ к возможности выбора другой?


RE: Вопросы по моддингу - SyDr - 02.01.2017 16:59

Хм... Вроде как никак. Зашито в коде.


RE: Вопросы по моддингу - Algor - 03.01.2017 02:28

При передаче последнего отряда (transfer last stack.bin) теряется опыт.
Кто-то может допилить, или может уже есть допиленный?


RE: Вопросы по моддингу - gamecreator - 03.01.2017 03:37

Во всех случаях теряется или только в некоторых?


RE: Вопросы по моддингу - Algor - 03.01.2017 04:37

Вроде во всех. Я правда не помню, откуда у меня эта версия бинарника, поэтому и спросил, может уже давно поправлено.


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

Размер 85 байт? Должен работать...


RE: Вопросы по моддингу - Algor - 03.01.2017 19:04

Мой всего 45 байт. Кинь ссылку на свою версию.
А, все, нашел в последней эре.
Странно, но у меня в WoG-моде лежал 45 байтовый, хотя вроде тоже 2.46...


RE: Вопросы по моддингу - feanor - 22.01.2017 01:16

Слушайте, а остались у кого две МоР-овские дллки, на управление двеллингами и на допслоты при найме в городах?


RE: Вопросы по моддингу - igrik - 22.01.2017 01:35

Допслоты в этом моде есть.


RE: Вопросы по моддингу - ALEXALEX3434 - 23.01.2017 17:23

Знатоки подскажите .Нашел тут много новых портретов героев ,но они только большие(в игру для отоброжения надо вставлять маленькие тоже),уменьшил и сохранил в 8 битном цвете.Но в игре они как бы с потерей цвета.Чем нужно обрабатывать и в каких настройках сохранять?


RE: Вопросы по моддингу - igrik - 23.01.2017 17:46

В 8 номере "Вестника героев" была статья по созданию портретов для HoMM3.


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

Вопрос такой: почему в процессе WoG'ификации, если в качестве объекта для замены выбрана Школа Войны или Башня Марлетто, Боевая Академия практически всегда генерируется с бревнами около боковых стен? Причем, если заменять Академией Картограф, то бревна не появляются. Кто-то сталкивался с подобной ситуацией?

И еще: теоретически можно ли сделать так, чтобы командиры накладывали заклинания на самих себя?


RE: Вопросы по моддингу - Algor - 24.01.2017 10:11

(24.01.2017 05:19)Elzivir Wrote:  Боевая Академия практически всегда генерируется с бревнами около боковых стен?
Насколько я помню, так решается проблема проходимости при замене большего по площади объекта меньшим.

(24.01.2017 05:19)Elzivir Wrote:  И еще: теоретически можно ли сделать так, чтобы командиры накладывали заклинания на самих себя?
Тратя при этом ход и на усмотрение героя?

Если да, то смысла в этом не много (кроме, пожалуй, призыва элементалей Астральным духом), а геморроя достаточно.

Если нет (автокаст без потери хода), то это легко можно сделать в фазе регенерации командира.


RE: Вопросы по моддингу - swallowmee - 07.03.2017 00:35

Извиняюсь за немного безадресный вопрос - если что предлагаю считать что вопрос всем кто разбирается на серьезном уровне - реально ли модифицировать формулу расчета повреждения в HOMM 3 ? Если да, то насколько трудозатратно? Есть ли в теории спецы, которые могли бы взяться за эту задачку за финансовое вознаграждение? Мысль была навеяна обсуждением на DF2 выбора формулы расчета для мода succession wars (фактически homm2 адаптированный на движке homm3). Так вот сам факт обсуждения и навёл на мысль что это гипотетически возможно, есть обоснование, которым я готов поделиться в любой момент, но для начала хотел бы уточнить о самой возможности чтобы можно было говорить более предметно.
Заранее спасибо всем кто увидел это сообщение и ответил на него.


RE: Вопросы по моддингу - StasPV - 21.05.2017 12:33

Всем добрый день, давно не заходил на форум. Сегодня увидел, что MOP выпустил утилиту для ЕРЫ, позволяющей редактировать монстров.

Есть ли плагин, или инструкция для ЕРЫ по добавлению новых объектов-генераторов монстров на карте, никто не встречал?


RE: Вопросы по моддингу - MOP - 21.05.2017 12:52

Да, давно уже существует - https://drive.google.com/open?id=0B0G5E1yQKJXBc29WQjFBZVBYVlk


RE: Вопросы по моддингу - StasPV - 21.05.2017 14:03

Нереальные вещи! МОР, спасибо!

Заметил единственный баг в Typhon - вылетает при смене типа атаки (рукопашка-стрельба-колдовство), обнаружил, когда захотел пойти Колесуном в рукопашку а не колдовать.


RE: Вопросы по моддингу - MOP - 21.05.2017 15:46

У меня отображается два варианта - рукопашная и стрельба, и не вылетает. Проверь без включения опыта существ.


RE: Typhon v. 1.2 - jklmn - 23.05.2017 23:23

Какой программой рекомендуется добавлять недостающею анимацию стрельбы в деф?


RE: Typhon v. 1.2 - gamecreator - 24.05.2017 17:20

(23.05.2017 23:23)jklmn Wrote:  Какой программой рекомендуется добавлять недостающею анимацию стрельбы в деф?
DefTool, как обычно.


RE: Вопросы по моддингу - StasPV - 28.05.2017 20:37

У кого нибудь есть крайняя версия плагина для ЕРЫ, позволяющего добавлять новые артефакты? Помню, лет 5 назад выкладывался.


RE: Вопросы по моддингу - feanor - 29.05.2017 03:43

Фактически нету, потому что в крайней версии я наломал дров, и она глючила.


RE: Вопросы по моддингу - XEPOMAHT - 29.05.2017 13:12

Для добавления новых артефактов лучше использовать emerald_v202a, Version from: Mar 31 2014 20:12:29. Вроде бы это последняя стабильная версия (по крайней мере у меня она работает без вылетов вместе с остальным компотом плагинов к ЭРА).


RE: Вопросы по моддингу - Ivor - 29.05.2017 18:23

Quote:Для добавления новых артефактов лучше использовать emerald_v202a, Version from: Mar 31 2014 20:12:29.
Где взять?

Quote:Вроде бы это последняя стабильная версия (по крайней мере у меня она работает без вылетов вместе с остальным компотом плагинов к ЭРА).
Загрузка мультиплеерного сейва работает? У меня с версией 2.01 - игра крашилась


RE: Вопросы по моддингу - XEPOMAHT - 29.05.2017 19:01

(29.05.2017 18:23)Ivor Wrote:  Где взять?

3.0 валяется на дробкоробке у majaczek:dropbox.com/sh/tmjsyj81bcjmd0e/AACpyLJPOzWGq6ffXaNa0Nhya/_Plugins_?dl=0&preview=Emerald+majaczek+2016-08-11+08-44+Fully+Working!+user+foolproof!.7z

2.02a нужно заливать, все ссылки на такую древлятину давно не действуют.

(29.05.2017 18:23)Ivor Wrote:  Загрузка мультиплеерного сейва работает? У меня с версией 2.01 - игра крашилась

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


RE: Вопросы по моддингу - Ivor - 29.05.2017 19:34

(29.05.2017 19:01)XEPOMAHT Wrote:  3.0 валяется на дробкоробке у majaczek
Спасибо

(29.05.2017 19:01)XEPOMAHT Wrote:  
(29.05.2017 18:23)Ivor Wrote:  Загрузка мультиплеерного сейва работает? У меня с версией 2.01 - игра крашилась
Что за такой "мультиплейерный сейв"? На обычных сохранение шло с повреждениями сейва из-за расширения каких-то непонятных таблиц
Обычная сохраненка *.gm2, только при игре в хот-сите. Начинаешь игру в хот-cит, с двумя игроками, делаешь сейв и тут же пытаешься его загрузить.

Да, дело действительно может быть из-за сборных артефактов, в своём недоделанном моде я их переделывал


RE: Вопросы по моддингу - StasPV - 29.05.2017 21:30

feanor, жаль что ты дело до конца не доводишь, штука ведь необходимая для моддинга.

Касательно majaczek, молодец конечно что продолжил, но в архиве черт ногу сломит, и исходники и мусор всякий, и артефактов добавлена куча какихто, описания нет, без пол литра не разберешься


RE: Вопросы по моддингу - Ivor - 04.06.2017 12:46

(29.05.2017 19:01)XEPOMAHT Wrote:  3.0 валяется на дробкоробке у majaczek:dropbox.com/sh/tmjsyj81bcjmd0e/AACpyLJPOzWGq6ffXaNa0Nhya/_Plugins_?dl=0&preview=Emerald+majaczek+2016-08-11+08-44+Fully+Working!+user+foolproof!.7z
Как её скомпилировать? В архиве нет dll


RE: Вопросы по моддингу - gamecreator - 04.06.2017 13:35

Release\emerald3.era же.


RE: Вопросы по моддингу - Ivor - 04.06.2017 16:01

Ok, спасибо, попробую


RE: Вопросы по моддингу - StasPV - 18.06.2017 18:34

Люди, подскажите, как вручную создать bin patch для ЕРЫ?
Например мне нужно по адресу 27BAB4h записать C7h, я создаю *txt файл и записываю:

27BAB4 C7;

сохраняю файл, меняю расширение на *bin, но игра выдает ошибку при старте, говоря что не может применить патч


RE: Вопросы по моддингу - MOP - 18.06.2017 18:59

Во-первых, у тебя адрес для экзешника, а не для памяти.
Во-вторых, не расширения сменой, а пропускания путём через BinGen али BinMagic пачти бинарные создаются.


RE: Вопросы по моддингу - StasPV - 18.06.2017 19:19

(18.06.2017 18:59)MOP Wrote:  BinGen али BinMagic пачти бинарные создаются

Блин, забыл что BinMagic-ом нужно создавать.
МОР, мне казалось что в бин-патч нужно для екзешника адреса писать, а UN:C уже для памяти в игре, или туплю?


RE: Вопросы по моддингу - MOP - 18.06.2017 19:35

Бин-патчи могут быть такие и сякие. Если для экзешника - exe остаётся физически пропатченным, а бин-патч после применения уже не нужен. Если для памяти - то лишь во время игры, и файл патча необходим.
Что конкретно нужно и что там по этому адресу?


RE: Вопросы по моддингу - StasPV - 18.06.2017 20:18

MOP, это адрес в массиве стартовых параметров героев (кстати ты выкладывал, спасибо), существо первого слота армии героя №80. Патч создал,нужно было писать адрес екзешника, а плагин загружать в BeforeWog, установил экспериментально.


RE: Вопросы по моддингу - kozelrus - 24.06.2017 01:23

Привет всем)
подскажите пожалуйста, почему после замены существа на апнутого Ящера, игра вылетает?
В дефе есть анимация стрельбы, всё как надо вроде..уже и пробовал всё менять что можно - ничего не получаетFie
ДЕФ

Подскажите кто может, добрые люди119


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

Какой-то другой анимации значит нет.


RE: Вопросы по моддингу - Macron1 - 24.06.2017 15:37

(24.06.2017 01:23)kozelrus Wrote:  Привет всем)
подскажите пожалуйста, почему после замены существа на апнутого Ящера, игра вылетает?
В дефе есть анимация стрельбы, всё как надо вроде..уже и пробовал всё менять что можно - ничего не получаетFie
ДЕФ

Подскажите кто может, добрые люди119

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


RE: Вопросы по моддингу - kozelrus - 24.06.2017 16:56

(24.06.2017 15:37)Macron1 Wrote:  
(24.06.2017 01:23)kozelrus Wrote:  Привет всем)
подскажите пожалуйста, почему после замены существа на апнутого Ящера, игра вылетает?
В дефе есть анимация стрельбы, всё как надо вроде..уже и пробовал всё менять что можно - ничего не получаетFie
ДЕФ

Подскажите кто может, добрые люди119

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

Анимация есть.
У стандартного апнутого Ящера 10 кадров выстрела вверх, прямо, вниз.
В данном дефе 7 кадров стрельбы вверх, прямо, вниз (если об этом речь)
А где смотреть кадры выстрела в конфигах? точнее в каком можно изменить и понизить значение, что бы не разбирать и собирать юнита ради 3 кадров


RE: Вопросы по моддингу - MOP - 24.06.2017 17:13

Да, у Ящера-Воина Attack climax frame = 9, а кадров стрельбы всего 7. Отсюда и вылет. Либо добавить пару кадров, либо в CrAnim.txt снизить Attack climax frame до 7.


RE: Вопросы по моддингу - kozelrus - 24.06.2017 19:11

(24.06.2017 17:13)MOP Wrote:  Да, у Ящера-Воина Attack climax frame = 9, а кадров стрельбы всего 7. Отсюда и вылет. Либо добавить пару кадров, либо в CrAnim.txt снизить Attack climax frame до 7.

Благодарю, СоД запускается, а ВоГ как и раньше выдает ошибку.
Пытался поискать в папке Вога - "CrAnim.txt"в \Mods\WoG Rus\Data\era rus.pac нету.
Что делать?


RE: Вопросы по моддингу - MOP - 24.06.2017 19:13

Mods\WoG\Data\hmm35wog.pac - cranim.txt.
Если включен мод FastBattleAnimation - то в его cranim.txt.
Если проект создаётся на Тифоне - то cranim.txt вообще не нужно теребить, все его параметры в редакторе существ.


RE: Вопросы по моддингу - kozelrus - 24.06.2017 19:30

(24.06.2017 19:13)MOP Wrote:  Mods\WoG\Data\hmm35wog.pac - cranim.txt.
Если включен мод FastBattleAnimation - то в его cranim.txt.
Если проект создаётся на Тифоне - то cranim.txt вообще не нужно теребить, все его параметры в редакторе существ.

Спасибо огромное, мастер.
Да, дело было в моде на анимацию, не заметил я под носом явное


RE: Вопросы по моддингу - Ethereal - 29.06.2017 21:16

Появились глюки с отображением опыта, после добавления новых существ.
В чём причина не знаю. Трижды перепроверил всё, что можно, но не нашел ничего такого, от чего могло бы глючить. В битве все бонусы работают правильно, как отображено в меню бонусов, а не согласно галочкам на картинках существ. В качестве дополнительной меры, в 78 wog - wogify.erm установил
Code:
!!DO29/0/222/1&y22=1/y25=1:P; [Set 50% Exp. Multiplier for Level 7+ Troops]

   (222 - номер последнего монстра), но это не помогло.

Подскажите, что могло привести к таким глюкам и как это исправить? Или вообще отключить отображения галочек и мечей, в качестве крайней меры?


RE: Вопросы по моддингу - Heromant - 03.07.2017 02:36

Встретился вот такой вылет: https://yadi.sk/i/1n_wqu0Y3KgdsZ
Что бы это могло быть?


RE: Вопросы по моддингу - MOP - 07.07.2017 08:33

Да ничего сверхсложного, я же сам не математик, просто использовал подходящую, как мне кажется, последовательность.

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


RE: Вопросы по моддингу - MOP - 14.07.2017 16:05

(29.06.2017 21:16)Ethereal Wrote:  Появились глюки с отображением опыта, после добавления новых существ.
Как оказалось, не все проблемы можно решить, беря тип монстра из слота вместо того, что в структуре опыта. Нужно задействовать неиспользованное 10-битовое поле для хранения типа. Работа кропотливая, но так как это нужно мне для MoP - она будет сделана. Тогда глюки пропадут.


RE: Вопросы по моддингу - Elzivir - 17.07.2017 10:10

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


RE: Вопросы по моддингу - igrik - 17.07.2017 15:32

В экзешнике.


RE: Вопросы по моддингу - Elzivir - 17.07.2017 16:18

(17.07.2017 15:32)igrik Wrote:  В экзешнике.

т.е. отредактировать не получится? Я не умею взламывать экзешник... Bad


RE: Вопросы по моддингу - igrik - 17.07.2017 17:56

UN:C в помощь

Image: mRbeLV5pcms.jpg


RE: Вопросы по моддингу - gamecreator - 17.07.2017 21:36

Мда, печально у ИИ с ресурсами.


RE: Вопросы по моддингу - Elzivir - 18.07.2017 07:00

igrik, вообще я имел ввиду не стартовые ресурсы, получаемые в соответствии с выбранным уровнем сложности, а те, которые можно выбрать в качестве альтернативы артефакту перед игрой: 5-10 дерева/руды или 3-6 ценного ресурса (в зависимости от фракции). Планировал сделать выбор ресурса одинаковым для всех замков: 5-10 дерева, т.к. на начальном этапе развития при игре на 200% сложности от них будет гораздо больше пользы.


RE: Вопросы по моддингу - igrik - 18.07.2017 12:07

Более ясно формулируй вопросы.





RE: Вопросы по моддингу - Elzivir - 18.07.2017 13:08

igrik, благодарю за скрипт! Ab


RE: Вопросы по моддингу - Elzivir - 27.07.2017 15:45

Ребята, помогите, пожалуйста, советом как убрать бревна при замене в процессе WoG'ификации объекта Школа войны на Боевую академию (zobj026.def/msk). В оригинале вместо Школ на Академии заменяются Утопии драконов, и чтобы соответствовать Утопиям и по размеру и в плане клеток проходимости к Академиям (как к меньшему по размеру объекту) "пришиваются" в принудительном порядке эти самые бревна и пеньки. Перебробовал кучу разных def'ов, масок по замене, подгонял по размеру объекты путем редактирования в Paint, изменял клетки проходимости в zobjcts.txt/zаobjts.txt и т.д. На мой взгляд, проблема кроется именно в файле zobj026. Бревна в нем просто намертво "прошиты". Может быть есть способ переназначить другой № объекта для Академии? Вообще, возможно как-нибудь решить эту проблему?

P/S: долгое время пытался закрыть на нее глаза, но последней каплей стала невозможность после нескольких недель игры выйти из стартовой локации , проход из которой как раз-таки перекрыли деревяшки Академии... Dash1


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

Elzivir, то есть ты вместо Школы ставишь Академию, которая добивается брёвнами до размера Утопии? Так почему ты просто не уберёшь код установки брёвен в скрипте?


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

gamecreator, просто в файле "78 wog - wogify.erm" я так понял используется общая для всех объектов функция по присвоению объектам бревен/пеньков, если в процессе WoG'ификации клетка оказалась не красной:

Только я так и не понял, почему при полном соответствии заменяемого объекта заменяемому (Школа войны в моем варианте заменяется на Академию) по размеру и клеткам проходимости к последнему "пришиваются" бревна таким образом, как-будто на месте замены стояла Утопия, а не Школа войны (заменялась Школа, а разброс бревен по округе соответствует размеру Утопии). А как корректно стереть из файла "память Утопии", я не знаю.
Help, plz... 105


RE: Вопросы по моддингу - gamecreator - 27.07.2017 19:11

(27.07.2017 17:16)Elzivir Wrote:  ** function to place a stump or log if square isn't red;
** v952-v954 = x/y/l; x1/x2 are x/y offset
Это функция для одной клетки. Смотри откуда она вызывается.


RE: Вопросы по моддингу - Elzivir - 27.07.2017 19:35

(27.07.2017 19:11)gamecreator Wrote:  Это функция для одной клетки. Смотри откуда она вызывается.

Да это просто какой-то ппц... Ответ оказывается был всего на пару строк выше того раздела, который я скопипастил, и скрывался здесь:
!!FU676&vv959=5:P-4/-1 P-2/0 P-2/-2 P0/-2 P1/-2; [fill missing red squares for utopia/battle academy swap]

Как я мог пропустить его ранее, не понимаю.

gamecreator, спасибо за напутственный совет! Ab


RE: Вопросы по моддингу - Дьякон - 03.08.2017 23:20

Игродел уже когда-то кидал, но где-то потерялось. Киньте прогу для создания шаблонов. Спасибо!


RE: Вопросы по моддингу - Algor - 03.08.2017 23:33

Отсюда можно взять.
Но Excel все равно лучше.


RE: Вопросы по моддингу - gamecreator - 04.08.2017 10:32

https://www.dropbox.com/s/oo6dil0w0a5s51h/TEditor%201.0.rar?dl=0


RE: Вопросы по моддингу - totkotoriy - 05.02.2018 09:49

Привет, не знаете как убрать абилки с WOG существ, например чтоб у Алмазного Дракона не было иммунитета к магии?
Скорее всего это в exe прописано, ERM командами не получается сбросить (((


RE: Вопросы по моддингу - XEPOMAHT - 05.02.2018 11:22

(05.02.2018 09:49)totkotoriy Wrote:  Скорее всего это в exe прописано, ERM командами не получается сбросить (((

Под ЭРА - делается через Аметист или Тифон. Под оригинальный WoG - только вручную изменением соответствующего байта в h3wog.exe.


RE: Вопросы по моддингу - totkotoriy - 05.02.2018 14:05

(05.02.2018 11:22)XEPOMAHT Wrote:  
(05.02.2018 09:49)totkotoriy Wrote:  Скорее всего это в exe прописано, ERM командами не получается сбросить (((

Под ЭРА - делается через Аметист или Тифон. Под оригинальный WoG - только вручную изменением соответствующего байта в h3wog.exe.
Что-то я пока очкую пользоваться такими большими плагинами, как Typhon. Судя по переписке там могут быть ещё глюки.

Может кто знает какие адреса в exe надо править? Или как их найти?

Позже:
Поставил Typhon, работает, но настройки существ стали ВОГовские, пока не знаю как применить свои, поменял бы в ручную, но это очень много изменений делать ((


RE: Вопросы по моддингу - MOP - 05.02.2018 15:07

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

А много изменений - это иллюзия проблемы. Даже если все параметры существ в Лорде другие, за пару вечеров вбить их в Тифон ничего не стоит. Зато на всю последующую эволюцию мода получаем расширенные возможности и сплошное удобство.


RE: Вопросы по моддингу - XEPOMAHT - 05.02.2018 15:15

(05.02.2018 14:05)totkotoriy Wrote:  Может кто знает какие адреса в exe надо править? Или как их найти?

В воговском экзешнике от 3.58f список номеров адресов в списке функций, задающих иммунитеты, лежит по адресу 332СС4. Начинается с гномов и заканчивается 200-м монстром. Соответственно, номер Изумрудного Дракона в этом массиве - 135-й байт. Там записан номер 4. Чтобы снять иммунитет, туда нужно записать 8.

Если ты используешь exe от TE или выше, то адрес у тебя уже будет другим.

(05.02.2018 15:07)MOP Wrote:  Если даже такие инструменты уже не пользуются спросом - я не знаю, что сказать о моддинге.

Моддеры Третьих Героев почти все вымерли - сохранились динозавры, которые что-то делают преимущественно в одиночку. Кроме Хота Крю (которые к моддингу относятся скорее негативно) других существующих команд, делающих большие моды для Третьих героев, наверное уже не осталось. Даже исходники от ВоГ и МоП остались практически никем не задействованы - так и лежат себе в пыли (если их ещё не удалили). У такой ситуации несколько причин - это и полная разобщённость сообщества моддеров, и сильное доминирование мода Хота, и угробленность самой серии Героев после выхода 6-й и 7-й частей.


RE: Вопросы по моддингу - igrik - 05.02.2018 16:36

(05.02.2018 09:49)totkotoriy Wrote:  Привет, не знаете как убрать абилки с WOG существ, например чтоб у Алмазного Дракона не было иммунитета к магии?
Скорее всего это в exe прописано, ERM командами не получается сбросить (((
!!UN:C7995223/1/8;
Для других монстров - читай этот пост

А вообще да - лучше все изменения переписать на тифон.


RE: Вопросы по моддингу - totkotoriy - 05.02.2018 17:07

Спасибо мужики!

Я боюсь Typhon ставить ещё и потому, что он открывает беспредельные возможности на внедрение новых существ, а время на всё это где взять?! :D

А MOP вообще молодец! Ещё бы запилил такое же для замков Ab
Был бы супер мод...

Получается ВОГ - это пропатченный ехе СОДа, ERA - патч для WOGa с кучей дополнительных библиотек и поверх ещё всякие патчи со своими заплатками )))


RE: Вопросы по моддингу - totkotoriy - 05.02.2018 17:22

(05.02.2018 15:07)MOP Wrote:  Если все очковать будут - я так никогда и не узнаю о возможных глюках.(
Совершенно непонятно, сколько людей пользуется Тифоном. Темы с ним безлюдны, баг-репорты не шлют (все выявленные давно исправлены). Если даже такие инструменты уже не пользуются спросом - я не знаю, что сказать о моддинге.
Впрочем, могут не писать как раз ввиду отсутствия ошибок. Или потому что так и не вкурили, как юзать.

А много изменений - это иллюзия проблемы. Даже если все параметры существ в Лорде другие, за пару вечеров вбить их в Тифон ничего не стоит. Зато на всю последующую эволюцию мода получаем расширенные возможности и сплошное удобство.
Спасибо тебе огромное за труды, классную штуку сделал!

Пойми меня правильно, если я всё перенесу на Тифон и появиться какой то неприятный глюк, то назад уже я откатывать не стану, буду жить с этим глюком и оббивать пороги форумов чтоб заставить кого-нибудь этот глюк исправить. Не охота так... уже было такое... точнее даже есть.
Я сделал кнопки выбора режима битвы под ERA, и теперь из-за этого вылетает иногда (из-за функции подмены кадров def'a). Обычно вылетает когда сразу после загрузки тыкаешь мышкой на область правее карты приключений (где все кнопки). Я вроде корявенько обошёл этот глюк - сделал чтоб кадры def'a подменялись лишь когда какой либо герой сделает шаг по карте (с чем это с связано я естественно не знаю) - перестало вылетать после загрузки, но это коряво и говорят кто тестировал всё равно иногда вылетает по ходу игры. Заставить никого исправить этот глюк не могу, да если бы и могли, то давно бы исправили, я думаю... и отказаться от этого не могу уже.... так и живу )))


RE: Вопросы по моддингу - MOP - 05.02.2018 17:57

Да не за что. Я ведь выплачивал долг.
Не знаю, как у других со временем, но третью версию MoP я сделал за полгода, хотя работал грузчиком с девяти утра до восьми вечера. 95% Тифона же сделал за три дня в отпуске, а потом только правил баги и добавлял в неделю по абилке. "Человек находит время для всего, что он действительно хочет".
Я до сих пор поддерживаю Тифон и буду поддерживать его неограниченно долго - мне это не составляет труда, так как прога далека от масштабов MoP и запутанности его кода. Вкладки df2 и этого форума у меня открыты всегда. Так что о просьбах исправить или доработать что-то можешь не беспокоиться - поправлю что могу.


RE: Вопросы по моддингу - totkotoriy - 05.02.2018 18:12

(05.02.2018 17:57)MOP Wrote:  ...
Я вот смотрю на всё это и руки сами опускаются )))
Это же по идее можно во первых всех WOGовских существ назад вернуть, да ещё кучу новых наделать.

Я как понимаю теперь и NOTUSEDы можно использовать?

Дело ещё в том, что для каждого существа ещё существует куча ERM кода, который теперь будет не нужен. На это тоже время нужно, чтоб убрать его... даже не знаю, я теперь как собака между 2-мя мисками )))

Ещё непонятно как быть с файлами zaobjects всякими, там у меня тоже куча изменений, их подменить в паке на свои тогда надо?

Наверное всё таки пока рановато мне браться за расширение монстров пока остальное не устаканилось в моем моде.


RE: Вопросы по моддингу - MOP - 05.02.2018 18:26

Можно скопировать главную таблицу существ программным методом из текущего ЛОРДа в MonstersSetup.mop. Я примерно так и сделал, когда создавал этот файл, только вместо ЛОРД-а был WoG. Но потом удалил код копирования как промежуточный.
Это уже устранит как минимум половину проблем и избавит от ошибок по невнимательности.
В общем, сегодня-завтра добавлю в Тифон режим компиляции только для копирования данных таблицы любого мода в файл данных Тифона. Так что пока можешь не переносить вручную.

NOT_USED-ы можно было и раньше использовать. В Тифоне эти ячейки ничем не отличаются от обычных.

Избавление от ERM - только благо. Да и ломать не строить.

(05.02.2018 18:12)totkotoriy Wrote:  Ещё непонятно как быть с файлами zaobjects всякими, там у меня тоже куча изменений, их подменить в паке на свои тогда надо?
Да. Но это вроде самая лёгкая из проблем? Или там какие-то особенности?


RE: Вопросы по моддингу - totkotoriy - 05.02.2018 18:37

(05.02.2018 18:26)MOP Wrote:  Можно скопировать главную таблицу существ программным методом из текущего ЛОРДа в MonstersSetup.mop. Я примерно так и сделал, когда создавал этот файл, только вместо ЛОРД-а был WoG. Но потом удалил код копирования как промежуточный.
Это уже устранит как минимум половину проблем и избавит от ошибок по невнимательности.
В общем, сегодня-завтра добавлю в Тифон режим компиляции только для копирования данных таблицы любого мода в файл данных Тифона. Так что пока можешь не переносить вручную.
Если только из-за меня, то точно не стоит, я и руками если надо вобью)))

(05.02.2018 18:26)MOP Wrote:  NOT_USED-ы можно было и раньше использовать. В Тифоне эти ячейки ничем не отличаются от обычных.
Просто я помню что при манипуляции с их уровнями вылетало

(05.02.2018 18:26)MOP Wrote:  Да. Но это вроде самая лёгкая из проблем? Или там какие-то особенности?
Так плагин просто дописывает нижнюю строчку или когда что-то поменял и сохранил, он достаёт какой-нибудь свой откуда-нибудь взятый ТХТ и ложит в пак? Или что он вообще с этими ТХТ делает?

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

Ещё дилемма возникает, я вообще хотел выкинуть большинство ВОГ существ 8-го уровня, а тут такой плагин. Даже не знаю... всякие там снайперы, посланники, нужны они не нужны хз....


RE: Вопросы по моддингу - MOP - 05.02.2018 18:37

Ах да, мне нужно знать номер последнего существа в ЛОРД. Или там по сравнению с WoG ничего не добавлялось? Аметист не использовался?


RE: Вопросы по моддингу - MOP - 05.02.2018 18:44

(05.02.2018 18:37)totkotoriy Wrote:  Если только из-за меня, то точно не стоит, я и руками если надо вобью)))
Что поначалу нужно одному, потом требуется многим.
Да это несложно.
(05.02.2018 18:26)MOP Wrote:  Так плагин просто дописывает нижнюю строчку или когда что-то поменял и сохранил, он достаёт какой-нибудь свой откуда-нибудь взятый ТХТ и ложит в пак? Или что он вообще с этими ТХТ делает?
Плагин ничего с ними не делает. Загрузка та же, что и в любом другом моде. Единственная причина, по которой они есть в Typhon.pac - полномасштабное тестирование Колесуна. Можешь положить их в любую другую подходящую директорию, просто Typhon.pac - логичное место этим файлам в отключаемом мода к ЭРЕ.

(05.02.2018 18:37)totkotoriy Wrote:  Ещё дилемма возникает, я вообще хотел выкинуть большинство ВОГ существ 8-го уровня, а тут такой плагин. Даже не знаю... всякие там снайперы, посланники, нужны они не нужны хз....
Так ничего сложного. Скопировать пустые параметры из бланкового монстра парой кликов (Copy All States + Past All States) или выставить галочку "Запрещён для генерации".


RE: Вопросы по моддингу - totkotoriy - 05.02.2018 18:49

(05.02.2018 18:44)MOP Wrote:  ...
Блин, я там пишу - ты тут))) Интернет на вахте медленный...

(05.02.2018 18:44)MOP Wrote:  Так ничего сложного. Скопировать пустые параметры из бланкового монстра парой кликов (Copy All States + Past All States) или выставить галочку "Запрещён для генерации".
Блин, слушай, прям мысли читаешь )))

А не помнишь про редактор карт и про ограничение номера объектов на карте? Было что такое или нет? Помню что зачем то ВОГовские объекты брал и менял, не помню почему новые не заводил номера.

А запрещён для генерации значит что они автоматически должны генерироваться?
А всё понял, если на командирах галка стоит, то так и есть )))
То есть раньше ВОГовские существа заменялись на карте, а теперь они должны генерироваться сами?


RE: Вопросы по моддингу - MOP - 05.02.2018 19:02

(05.02.2018 18:49)totkotoriy Wrote:  А не помнишь про редактор карт и про ограничение номера объектов на карте? Было что такое или нет?
Не помню. Помню только, что был лимит в 255 подтипов не то с существами, не то с артефактами, не то с жилищами. Но если один раз снял, то и снова смогу.
(05.02.2018 18:49)totkotoriy Wrote:  А запрещён для генерации значит что они автоматически должны генерироваться?
А всё понял, если на командирах галка стоит, то так и есть )))
Ага. Избавляет от части слоу-вогификации.
(05.02.2018 18:37)MOP Wrote:  Ах да, мне нужно знать номер последнего существа в ЛОРД. Или там по сравнению с WoG ничего не добавлялось? Аметист не использовался?
А не, затупил. Количество же в экзешнике найти можно.


RE: Вопросы по моддингу - MOP - 05.02.2018 19:12

(05.02.2018 18:49)totkotoriy Wrote:  То есть раньше ВОГовские существа заменялись на карте, а теперь они должны генерироваться сами?
Да. Если желаем сохранить вогификационную замену - опять же ставим галочку "Запрещён для генерации".


RE: Вопросы по моддингу - totkotoriy - 05.02.2018 19:16

(05.02.2018 19:02)MOP Wrote:  Ага. Избавляет от части слоу-вогификации.
Ну вот это вообще крутяк! Такое бы ещё с объектами провернуть.

Ладно спасибо большое за ответы.... надеюсь решусь на переделку.

Я уже боюсь за что-либо глобальное браться, вчера сижу себе существ 8-го уровня из ВОГа заменяю, анимацию конкретно редактирую и когда уже всё готово, понимаю, что у новых существ остались старые абилки. Чуть комп с окна не выкинул )))


RE: Вопросы по моддингу - MOP - 06.02.2018 12:41

Короче, вот Typhon_copier.dll.

Делаем так:
1. Заменяем Typhon.dll в папке EraPlugins на Typhon_copier.dll.
2. Запускаем игру и тут же выходим из неё.
3. Производим обратную замену библиотеки.

В итоге все параметры основной таблицы существ твоего мода скопируются в MonstersSetup.mop. Все эти - Wood Mercury Ore Sulfur Crystal Gems Gold Fight Value AI Value Growth Horde Growth Hit Points Speed Attack Defense Low High Shots Spells Low High, а также деф, озвучка и CrAnim.
Хотел сделать то же самое с именами и описаниями существ, но в текстах WoG-а богомерзкие переносы строк прямо в описаниях, а Тифон не только их не любит, но их в него даже Энтером не забить, а при копировании получаются разрывы строк... в общем, геморрой и безопаснее ручками.


RE: Вопросы по моддингу - totkotoriy - 06.02.2018 14:12

(06.02.2018 12:41)MOP Wrote:  ...
Спасибо!


RE: Вопросы по моддингу - MOP - 06.02.2018 14:20

А, забыл. Город, уровень и флаги, само собой, тоже скопируются.
Не за что.)


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

MOP, отличный способ упростить крупным мододелам жизнь )


RE: Вопросы по моддингу - totkotoriy - 10.02.2018 00:31

(08.02.2018 17:16)Berserker Wrote:  MOP, отличный способ упростить крупным мододелам жизнь )
Привет, выяснил наконец-то из-за чего вылетает с кнопками выбора режима битвы в моём моде, оказывается до загрузки карты вообще эта область памяти (с которой работает команда замены кадров def'a), не определена/заполнена/загружена. И в триггере !?GM эта область тоже ещё не успевает загрузиться, потому и вылетает, а в !?HM уже заполнена.... может есть какой-нибудь другой триггер позже !?GM? Не знаешь?


RE: Вопросы по моддингу - Berserker - 10.02.2018 05:00

totkotoriy, для последних эр есть !?(OnGameEnter) и !?(OnGameLeave). В последнем правильно отменить все UN:C хаки.


RE: Вопросы по моддингу - totkotoriy - 10.02.2018 12:33

(10.02.2018 05:00)Berserker Wrote:  totkotoriy, для последних эр есть !?(OnGameEnter) и !?(OnGameLeave). В последнем правильно отменить все UN:C хаки.
Спасибо. А когда срабатывает !?(OnGameEnter)?
И что значит отменить все хаки?


RE: Вопросы по моддингу - Berserker - 10.02.2018 14:36

Enter - игра загружена, карта отобразилась, управление передаётся курсору мыши.
Leave - игра завершается (загрузка/выход в меню).

Отменить. Если ты меняешь что-то через UN:C, запомни предыдущее значение:

Enter
!!UN:C[addr]/4/?[сохранить значение]
!!UN:C[addr]/4/[изменить значение]

Leave
!!UN:C[addr]/4/[восстановить сохранённое значение]

В результате твой код работает стабильнее и совместимее.


RE: Вопросы по моддингу - totkotoriy - 10.02.2018 15:33

Спасибо! Надеюсь поможет


RE: Вопросы по моддингу - Berserker - 10.02.2018 16:47

На здоровье )


RE: Вопросы по моддингу - igrik - 11.02.2018 19:25

(10.02.2018 12:33)totkotoriy Wrote:  
(10.02.2018 05:00)Berserker Wrote:  totkotoriy, для последних эр есть !?(OnGameEnter) и !?(OnGameLeave). В последнем правильно отменить все UN:C хаки.
Спасибо. А когда срабатывает !?(OnGameEnter)?
Я когда-то по просьбе переписывал часть твоего скрипта с настройкой битвы (вроде не жаловались):

Если понадобится, то тогда сделай еще и следующие несколько пунктов:
1. Переименуй indy3.def->indy4.def
2. Удали вообще !?CM5&999;
3. Замени на вышеуказанную свою !?CM5&v2027=0/999;
4. Создаешь папку ".\Mods\Lord\_HD3_Data\Common" и в неё пихаешь содержимое архива "HDpatch"


RE: Вопросы по моддингу - totkotoriy - 11.02.2018 22:15

Спасибо, я думаю просто триггера !?(OnGameEnter); будет достаточно


RE: Вопросы по моддингу - totkotoriy - 25.02.2018 20:32

При использовании !?(OnGameEnter)? триггера выходят ошибки при загрузке карты по другим триггерам в этом же скрипте , использовал последнюю версию ЭРА Bad

Поставил ЭРА на чистый английский СОД, даже не запускается ))) пишет failed load angel.dll... че то я туплю наверное
Со второго раза поставилась нормально, добавил в скрипт !?(OnGameEnter); - тоже самое, вылет при загрузке на другом триггере в этом скрипте.


RE: Вопросы по моддингу - igrik - 25.02.2018 21:19

Покажи ошибки, или весь скрипт выложи.


RE: Вопросы по моддингу - totkotoriy - 25.02.2018 21:33

(25.02.2018 21:19)igrik Wrote:  Покажи ошибки, или весь скрипт выложи.

Например взял скрипт 53 wog, вставил в середине
!?(OnGameEnter);
!!VRv9701:S1;

Вылет:
!!HEx16:M3/?y10; [y10=1 if Hero has View Earth]
!!HEx16&y10=1/x11=1:M3/0 M42/1; [Give Hero Curse instead if banned]

Стираешь - вылет в другом месте


RE: Вопросы по моддингу - igrik - 25.02.2018 21:37

(25.02.2018 21:33)totkotoriy Wrote:  !?(OnGameEnter);
!!VRv9701:S1;
Ab
Надо:
!?FU(OnGameEnter);
!!VRv9701:S1;


RE: Вопросы по моддингу - totkotoriy - 25.02.2018 21:59

(25.02.2018 21:37)igrik Wrote:  
(25.02.2018 21:33)totkotoriy Wrote:  !?(OnGameEnter);
!!VRv9701:S1;
Ab
Надо:
!?FU(OnGameEnter);
!!VRv9701:S1;
Ну ёмоё ))) Спасибо!
А почему у вас в коде без FU?

Ндааа.... теперь если после загрузки быстро нажать на кнопки справа от карты приключений виснет наглухо без ошибок ЕРМ :\ офигеть исправил
Сделаю, наверное, опять через !?HM-1 и не буду париться


RE: Вопросы по моддингу - igrik - 26.02.2018 00:36

Ну вот объясни мне - чем тебе указанный код выше не нравится?
У меня ни разу не вылетал он


RE: Вопросы по моддингу - totkotoriy - 26.02.2018 01:14

(26.02.2018 00:36)igrik Wrote:  Ну вот объясни мне - чем тебе указанный код выше не нравится?
У меня ни разу не вылетал он
Если честно ещё не успел разобраться... сейчас попробую
у меня сейчас пишет что нет indy0.def и потом indy4.def... про indy4 понял, а про 0 нет

Короче зависает код, который ответственен за изменение индикатора при загрузке игры, пока не пойму почему.

Усё... сделал 109
Спасибо огромное, Igrik!
Я тут давно этим не занимался, да и не стильно то и раньше понимал.
У меня почему то зависает с этим кодом
Code:
!?FU(OnGameEnter); А это можно добавить для "при загрузке сохранения"
!!UN:P233/?y1; !!FU&y1=0:E;
!!SN:L^Era.dll^/?y2 Ay2/^GetButtonID^/?y3;
!!OW:C?y1;     !!VRy2:S3393 +y1; !!VRy1:Svy2;
!!FU830000:Py1/y3;

Я сделал так:
Code:
!?CM5&v2027=0/999;
    !!UN:P233/?y1; !!FU&y1=0:E;
    !!CM:S?y1;     !!FU&y1<>13:E;
    !!CM:I?y1;  
    !!SN:L^Era.dll^/?y2 Ay2/^GetButtonID^/?y3;
    !!SN:Ey3/0/^manualf^; !!FU830000&y1=v1:P1/y3;
    !!SN:Ey3/0/^automf^;  !!FU830000&y1=v1:P2/y3;
    !!SN:Ey3/0/^autowm^;  !!FU830000&y1=v1:P3/y3;
    

!?FU(OnGameEnter);
!!UN:P233/?y1; !!FU&y1=0:E;
!!SN:L^Era.dll^/?y2 Ay2/^GetButtonID^/?y3;
!!OW:C?y1;     !!VRy2:S3393 +y1; !!VRy1:Svy2;
!!FU830000&y1=1:P1/y3;
!!FU830000&y1=2:P2/y3;
!!FU830000&y1=4:P3/y3;
    
    !?FU830000;

      !!VRz1:S^indy%X1.def^;
      !!OW:C?y1;  !!VRy2:S3393 +y1; !!VRvy2:Sx1;
      !!UN:C6918840/4/?y7;
      !!VRy8:Sy7 +68;   !!UN:Cy8/4/?y9;
      !!SN:Ex2/0/^indicator^; !!VRy10:Sv1;
      !!SN:E6288384/2/y9/512/9/y10/z1;
      !!SN:E6288384/2/y9/512/2/y10/0;
      !!SN:E6288528/2/y9/6/16384;
      !!SN:E6288816/2/y9/6;
      !!UN:R1;

Значит какая-то принципиальная разница есть между твоим кодом и тем, который я использовал:

Code:
!?FU27116;
!!UN:C10916496/4/?y1;
!!if&y1>0:;
  !!SN:E6288384/2/y1/512/9/416/z1;
  !!SN:E6288384/2/y1/512/2/416/0;
  !!SN:E6288528/2/y1/6/16384;
  !!SN:E6288816/2/y1/6;
!!en:;

А вот в чем я не знаю, надо разбираться конкретно, скорее всего эта команда влияла !!UN:C10916496/4/?y1;


RE: Вопросы по моддингу - igrik - 26.02.2018 01:33

Хорошо, я попробую сделать эту фичу немного по другому. По результату отпишусь.


RE: Вопросы по моддингу - totkotoriy - 26.02.2018 01:49

(26.02.2018 01:33)igrik Wrote:  Хорошо, я попробую сделать эту фичу немного по другому. По результату отпишусь.
Ай подожди... я там уже дописал ответ Ab


RE: Вопросы по моддингу - igrik - 26.02.2018 01:55

Конечно разница есть - команда !!UN:C10916496/4/?y1; обращается по динамическому адресу.
А нужен указатель (который лежит в статическом адресе) на этот динамический.


RE: Вопросы по моддингу - totkotoriy - 26.02.2018 02:00

(26.02.2018 01:55)igrik Wrote:  Конечно разница есть - команда !!UN:C10916496/4/?y1; обращается по динамическому адресу.
А нужен указатель (который лежит в статическом адресе) на этот динамический.
Ну я ж ничё в этом не понимаю ))) Как в справке было, так и бездумно использовал... ещё раз спасибо!


RE: Вопросы по моддингу - totkotoriy - 03.03.2018 15:41

Господа, кто нибудь знает как корректно убить стэк в битве?
Выяснил, что именно из-за команды !!BMv7207&v7207>-1/y-2<v7211:K100000; в скрипте оруженосца происходят все глюки, например оруженосец после смерти может ответить на удар (я думал это специально в скрипте так сделали, оказывается нет Sm ) или бегать как курица без головы в 2-х экземплярах без окошка количества и т.д. Или может надо его в другое время убивать как то (сейчас это происходит в триггере BG1)?


RE: Вопросы по моддингу - MOP - 03.03.2018 16:46

Вроде поле боя надо обновить. BF:C.


RE: Вопросы по моддингу - Algor - 03.03.2018 16:55

Да, глюки именно из-за необновления поля боя (BU:R)



RE: Вопросы по моддингу - MOP - 03.03.2018 19:55

Забыл уже команды...


RE: Вопросы по моддингу - totkotoriy - 03.03.2018 21:37

(03.03.2018 16:55)Algor Wrote:  Да, глюки именно из-за необновления поля боя (BU:R)
Команда !!BU:R; там уже была, не помогает...


RE: Вопросы по моддингу - igrik - 03.03.2018 23:34

Значит передай флаг, что отряд совершил дейстие.

А если не поможет, то выполни весь комплекс процедур:

Image: image.png

(dword) ActiveStack->StepsTaken= [структура стека] + 0x490h;
Это: "+1168 0x490 dd номер атакера по порядку??? уже атаковал??? (сбрасывается после первого удара)"
(как получить структуру стека см.UN:C)


RE: Вопросы по моддингу - totkotoriy - 04.03.2018 07:51

А как этот флаг передать? Нигде не нашёл...
Спасибо, но это для меня сложно :\
Структуру стека видел, но нет команды для завершения действия стека...


RE: Вопросы по моддингу - igrik - 04.03.2018 11:09

(04.03.2018 07:51)totkotoriy Wrote:  А как этот флаг передать? Нигде не нашёл...
Спасибо, но это для меня сложно :\
Вообще ничего сложного
(04.03.2018 07:51)totkotoriy Wrote:  Структуру стека видел, но нет команды для завершения действия стека...
Команды завершения действия как таковой вроде нет. Для этого и есть флаг "совершил действие"


RE: Вопросы по моддингу - totkotoriy - 04.03.2018 12:47

Точно, BM:F, как я мог пропустить?! Спасибо.
Никаких изменений, скорее всего надо убивать существо немного раньше чем в BG1.

А что за знак ИЛИ перед значением флага !!VRi:|67108864;? Что эта функция тут означает? Я так понял добавляет только нужный бит.
Но изменения есть, если только вообще этот бит один оставляю !!VRi:S67108864; (оруженосец перемещается только на одну клетку).

Поменял в скрипте оруженосца А3 на А12... пока вроде глюков нет. Посмотрим...
!!BG&v7207=v7210/v7211=0:A12; [if dead henchman is next set to defend - attacker]
!!BG&v7208=v7210/v7212=0:A12; [if dead henchman is next set to defend - defender]


RE: Вопросы по моддингу - igrik - 04.03.2018 15:45

(04.03.2018 12:47)totkotoriy Wrote:  А что за знак ИЛИ перед значением флага !!VRi:|67108864;? Что эта функция тут означает? Я так понял добавляет только нужный бит.
Да, так ты добовляешь только нужный бит, не трогая другие.
(04.03.2018 12:47)totkotoriy Wrote:  Но изменения есть, если только вообще этот бит один оставляю !!VRi:S67108864; (оруженосец перемещается только на одну клетку).
А вот так ты заберешь все способности монстра, например полёт, духклеточность, стрельбу, двойной удар и т.п.

Вообще для ERMа тебе нужно знать и понимать всего 2 оператора: & и |
1. Проверка на способность:

2. Установить или забрать флаг:
а) установить:
б) забрать способность (дословно - сначала дать, а потом забрать)

Если всё суммировать, то например благородный эльф имеет такие флаги:



RE: Вопросы по моддингу - totkotoriy - 04.03.2018 18:40

Спасибо! В справке по ERM такого не смог найти


RE: Вопросы по моддингу - Bes - 04.03.2018 20:58

(04.03.2018 15:45)igrik Wrote:  Вообще для ERMа тебе нужно знать и понимать всего 2 оператора: & и |
ну, в идеале бы и операцию "исключающее Или" бы знать... X. Не знаю чем она большинству бывалых не нравится. Сразу отпадает двойные операции типа "сначала дать, если нет, а потом забрать"
Например, инвертировать переменную часто нужно
Code:
!!VRv1:X1; если ноль, будет один, и наоборот
Или перевести номера от вида [0..40] к [-1..-41]
Code:
!!VRv1:Sx16 X-1;
Ну и с флагами монстров тож удобнее... где-то тут на форуме эти примеры уже писали...

totkotoriy Wrote:В справке по ERM такого не смог найти
есть, см.ресивер VR, там вначале страницы есть "логические операции"


RE: Вопросы по моддингу - Algor - 04.03.2018 22:05

(04.03.2018 20:58)Bes Wrote:  ну, в идеале бы и операцию "исключающее Или" бы знать... X. Не знаю чем она большинству бывалых не нравится.
В части работы с флагами монстров тем, что ее результат без доп. проверок не гарантирован.
Т.е. "&" "|" и комбинация "| -" всегда гарантированно проверяют, дают или убирают флаг, не зависимо от того, какой был до этого, "X" - нет.

Вроде тоже обсуждалось уже...


RE: Вопросы по моддингу - UrbanCAESAR - 08.04.2018 15:21

Захотелось мне перерисовать интерфейс на свой лад, возникает вопрос, в основном к создателям New interface mod'а. Вы каждую кнопку отдельно ковыряли из файлов игры, или есть какой-то комплексный вариант?


RE: Вопросы по моддингу - Algor - 08.04.2018 16:58

UrbanCAESAR, моды - вещь достаточно открытая. Можно взять New interface mod и посмотреть его содержимое - там как раз только то, что менялось.


RE: Вопросы по моддингу - UrbanCAESAR - 08.04.2018 17:35

Algor, я думал об этом, но в моём виденье намного проще перерисовывать оригинальные кнопочки меняя основной цвет и добавляя детали. Так что пожалуй начну мало помалу выдирать кнопочки.


RE: Вопросы по моддингу - Algor - 08.04.2018 18:05

UrbanCAESAR, посмотрев содержимое мода можно получить список ресурсов, которые Вы хотите переработать. А брать их из этого мода или из оригинала, тут уж сами смотрите, как удобнее.


RE: Вопросы по моддингу - Algor - 21.04.2018 18:34

Интересует одна вещь - срабатывание морали.
Когда срабатывает мораль, отряд получает дополнительный ход, без срабатывания триггеров регенерации/получения хода следующим отрядом и смены раунда. При этом отрабатывает BG1.
Хотелось бы получить возможность принудительно заморалить отряд, но без анимашки и записей в лог про высокий боевой дух. Или как-то иначе реализовать процесс двойного хода с соблюдением вышеуказанного поведения триггеров. Если решение покорежит стандартную мораль - не критично.
Это убрало бы ряд проблем в BattleHeroes.


RE: Вопросы по моддингу - igrik - 23.04.2018 15:59

(21.04.2018 18:34)Algor Wrote:  Интересует одна вещь - срабатывание морали.
Когда срабатывает мораль, отряд получает дополнительный ход, без срабатывания триггеров регенерации/получения хода следующим отрядом и смены раунда. При этом отрабатывает BG1.
Хотелось бы получить возможность принудительно заморалить отряд, но без анимашки и записей в лог про высокий боевой дух. Или как-то иначе реализовать процесс двойного хода с соблюдением вышеуказанного поведения триггеров. Если решение покорежит стандартную мораль - не критично.
Это убрало бы ряд проблем в BattleHeroes.
А чем не нравится? В теме по UN:C есть...
Но учти, что проверка на плохую мораль, устрашнуться, и фаза регена тут уже не проверяются. Также игнорируются ослепление, паралич и оцепенение (т.е. монстр под этими спелами будет активным и им можно будет управлять).


RE: Вопросы по моддингу - Algor - 23.04.2018 19:37

igrik, в какой момент мне делать стек активным?
Мне нужно чтобы после одного хода (каст) отряд получил еще один ход и при этом НЕ начался новый раунд и НЕ отработали триггеры регенерации и получения хода другого отряда.
Или я замылился и торможу, а ответ очевиден?


RE: Вопросы по моддингу - igrik - 24.04.2018 12:42

(23.04.2018 19:37)Algor Wrote:  igrik, в какой момент мне делать стек активным?
Мне нужно чтобы после одного хода (каст) отряд получил еще один ход и при этом НЕ начался новый раунд и НЕ отработали триггеры регенерации и получения хода другого отряда.
Или я замылился и торможу, а ответ очевиден?
Нет с пропуском BG1, 77006, 77007 ответ не так прост был...
Вот решение:

Т.е. как ты уже понял, тебе остается только оперировать одной переменной W^RepeatRun^ например в триггере BG0:
- нужно сделать повтор хода - включаешь переменную (1)
После первого повторного хода переменная обнуляется (см.строку 17) и включается обычный режим.


RE: Вопросы по моддингу - Algor - 24.04.2018 13:02

Спасибо! Вечером опробую.


RE: Вопросы по моддингу - Berserker - 27.04.2018 01:07

Рецепт в инженерный анализ надо бы кинуть, пригодится.


RE: Вопросы по моддингу - Algor - 27.04.2018 12:50

Там еще надо флаг "уже ходил" убирать, иначе wait на повторном ходу вызовет трату хода.
Ну и !#SN:W^RepeatRun^/0; вроде лишнее.

И, если использовать для эмуляции морали, нужно еще добавлять флаг "уже отморалился на этом ходу" и анимашку с сообщением в лог.


RE: Вопросы по моддингу - totkotoriy - 31.05.2018 14:26

Всем привет. Госпада, сегодня с ужасом обнаружил, что артефакты для дипломатии не снижают агрессию монстров, а так же при увеличении навыка дипломатия скидки не работают. Не знаете в чем дело? Может нужны какие-нибудь дополнительные условия, например уровень героя или какое-то количество армии?


RE: Вопросы по моддингу - igrik - 31.05.2018 15:11

Скидки на что? На присоединение или на сбегание с поля боя? Артефакты не снижают агрессию, не увеличивают шансы на присоединение. Они уменьшают цену откупа и только.

Прочитай о дипломатии в физмиге


RE: Вопросы по моддингу - Ben - 31.05.2018 15:24

(31.05.2018 14:26)totkotoriy Wrote:  Всем привет. Госпада, сегодня с ужасом обнаружил, что артефакты для дипломатии не снижают агрессию монстров, а так же при увеличении навыка дипломатия скидки не работают. Не знаете в чем дело? Может нужны какие-нибудь дополнительные условия, например уровень героя или какое-то количество армии?

Согласно Физмигу, каждый арт дипломатии понижает цену откупа на 10%, и более ничего делать не должен. Соответственно, данные арты по настоящему полезны именно дипломатам. Для Эксперта Дипломатии наличие 3 таких артов понижает цену откупа в 4 раза (с 40% до 10%).


RE: Вопросы по моддингу - Bes - 31.05.2018 17:15

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


RE: Вопросы по моддингу - totkotoriy - 31.05.2018 23:37

Сорян господа! Sm Я опять облажался, видать воговский скрипт улучшения артефактов прибил, а описание артефактов осталось ))))


RE: Разные вопросы - totkotoriy - 13.07.2018 03:10

А можно как-то сделать, что кнопка "кампания" в главном меню не срабатывала?


RE: Разные вопросы - igrik - 13.07.2018 11:12

Можно. Но это можно сделать либо bin патчем, либо dll.
Скрипты такое по нормальному не потянут.

На днях гляну


RE: Разные вопросы - Bes - 13.07.2018 15:08

bin патчем можно, уменьшить область нажатия в точку и всё
например
Code:
; ZTCAMPN y x lenth width
23E6C2 CF01
23E6C0 DF01
23E6C4 0100
23E6C6 0100


P.S.значения y x не смотри, я скопировал из своих координат кнопок, от скина под ФМ

0100 вроде как и будет = 1 при патчинге, мог попутать, давно не практиковал.
хотя логично вообще 0 поставить чтоб наверняка не нажалось ))


RE: Разные вопросы - MOP - 13.07.2018 15:43

Самое логичное и минималистичное: 4F0644 5AF5


RE: Разные вопросы - Bes - 13.07.2018 21:36

а что это? запрет вывода кнопки?


RE: Разные вопросы - Ben - 13.07.2018 21:56

(13.07.2018 21:36)Bes Wrote:  а что это? запрет вывода кнопки?

Это переход на инструкцию:

Code:
004EF55A                     call ContinueAnimation

вместо оригинального перехода:
Code:
004EF37C                     call StartCampaign



RE: Разные вопросы - totkotoriy - 14.07.2018 21:44

спасибо! надеюсь сделаю, а то люди играют в кривые кампании и ругаются, что ошибки всякие)))


RE: Разные вопросы - totkotoriy - 14.07.2018 21:54

работает, чтоб я без вас делал? ))


RE: Вопросы по моддингу - totkotoriy - 26.07.2018 19:02

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

Без точной информации от игры никак, например из физмига:
Полезно знать, что вероятность существа присоединиться за золото так же повышается, если иметь навык Дипломатии (+10% за уровень). Причем, действует это независимо от вероятности присоединиться бесплатно. Однако стоимость присоединения никак не зависит ни от степени развития навыка, ни от наличия дипломатических артефактов.
Плюс к этому существует ряд наблюдений, позволяющих повысить вероятность:
1. Войска героя должны быть "сильнее" присоединяемого существа. Сила армии равна сумме "АI values" всех существ.
2. Желательно чтобы количество всех остальных войск по отрядам должно быть строго меньше, чем в этом "родном" для присоединяемого существа отряде. Причем имеется в виду строго количество, а не "мощь армии".
3. Вероятность присоединения также зависит от критерия "силы" героя, которая зависит от его параметров Атаки и Защиты (с учетом артефактов).
Ну и как это рассчитывать? :\


RE: Вопросы по моддингу - igrik - 26.07.2018 22:03

Скрипт такой писать можно заколебаться напрочь.
А вот хукнуть стандартную проверку можно легко:
Для работоспособности нужны хукер_ERM и заклинание "видения"


RE: Вопросы по моддингу - Bes - 26.07.2018 22:41

totkotoriy, может пригодится, тут не полный ф-ционал, но часть есть...
кусок кода из Гавани (Click to View)



RE: Вопросы по моддингу - totkotoriy - 27.07.2018 16:18

Спасибо! Блин, ссылка на хукер умерла :\
Наверное надо было его сразу в инсталяху ЭРА в tools и положить...


RE: Вопросы по моддингу - igrik - 27.07.2018 17:00

У Берса в подписи же.
Или вот ERM_Hooker


RE: Вопросы по моддингу - totkotoriy - 28.07.2018 00:27

Спасибо, работает! Только функция GetDiploPowerRMC срабатывает при использовании Видения и правого клика по существам, а у меня стандартный клик при Разведке и Волшебстве отключен и хз как теперь эту функцию заставить работать :\ Может как то можно по другому это использовать?


RE: Вопросы по моддингу - totkotoriy - 10.08.2018 15:20

Наконец-то дошли руки до выяснения тормозов на ходе ИИ, оказалось виноват корявейший скрипт мифрила. Там в триггере ежедневного таймера шерстятся циклами все сады и мельницы, причём для каждого игрока, то есть сколько игроков, столько раз в день триггер и срабатывает 49
Может кто-то уже подправлял этот скрипт? 148

Пока поставил на таймере условие $once$=1 - уже совсем другое дело
А водяные колёса не дают что-ли мифрил? :\ я всегда думал что дают )))


RE: Вопросы по моддингу - ModWizard - 10.08.2018 23:32

Товарищи! Задумал переделать героя.

Покопался в ресурсах игры, сменил большую аватарку, малую аватарку. Сменил биографию, название и текст специализации.

Иконка специализации не меняется, эффект как я понял то же. Где сменить это не нашел.

Правильно ли я понимаю, что сама специализация прописана в движке? И менять её в ручную надо где-то в бефор воге?


RE: Вопросы по моддингу - Algor - 11.08.2018 15:21

(10.08.2018 15:20)totkotoriy Wrote:  Пока поставил на таймере условие $once$=1 - уже совсем другое дело
Конечно другое. Срабатывать будет только для первого игрока-человека (день начинается с него), а все ИИ останутся с... ничем. Ну эт если у тебя за раз начисляется не всем сразу, конечно (что игромеханически тоже некорректно).

(10.08.2018 15:20)totkotoriy Wrote:  А водяные колёса не дают что-ли мифрил? :\ я всегда думал что дают )))
Не, ток здания способные поставлять "ценные" ресурсы.


RE: Вопросы по моддингу - totkotoriy - 11.08.2018 17:29

слушай, точно, спасибо!
вот я затупок - чуть скрипт не испортил, а ещё на создателей ругался... знач надо будет как то переделать скрипт :/


RE: Вопросы по моддингу - totkotoriy - 11.08.2018 18:15

Сделал вот так: поставил флаг 1000 на первую половину таймера 99, т.к. ИИ всё равно не пользуется мифрилом, замену мифрила на золото для ИИ вынес в другой таймер 99 с флагом -1000, и остальную часть, связанную с мельницами, вынес ещё в один таймер, который срабатывает раз в неделю.... надеюсь правильно... надо протестить

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

Нет, всё равно скрипт корявый был...)))


RE: Вопросы по моддингу - igrik - 11.08.2018 22:40

(10.08.2018 23:32)ModWizard Wrote:  Товарищи! Задумал переделать героя.
Покопался в ресурсах игры...
ModWizard, если вы используете WoG, то вы пошли не тем путем. Все очень просто делается через ERM:
- портреты меняются через HE:L
- имя HE:B0
- биография HE:B1
- описание и картинка специализации UN:G2
- техническое исполнение (эффект) HE:X


RE: Вопросы по моддингу - ModWizard - 12.08.2018 15:20

(11.08.2018 22:40)igrik Wrote:  если вы используете WoG, то вы пошли не тем путем. Все очень просто делается через...

Здравствуйте!

я пытаюсь сделать небольшой мод в подарок на день рождения. делаю на платформе ЕРА2. с ЕРМ скриптами я работал последний раз в 2006, так что вспоминаю с мучительной болью...

мне бы хотелось, что бы изменение работало не только на ВОГ-картах и не только после ВОГ-фикации, поэтому и полез в файлы игры.

я могу изменить специальность героя после загрузки карты ВОГ-карты

Code:
ZVSE
!?PI;
!!UN:G2/25/3/62;

или ers файл попробовать сделать, что бы добавить настройки в опции ВОГ.

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

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


RE: Вопросы по моддингу - igrik - 12.08.2018 21:06

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


RE: Вопросы по моддингу - Noel - 12.08.2018 21:21

Есть у кого нибудь шаблоны для ХХЛ интересные? Максимум территорий с сильными стражами и артефактами например.


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

Noel, шаблон из этого обсуждения пробовал?
Шаблон конечно не про "максимум территорий с сильными стражами и артефактами", но должен быть интересен тем, кто любит посложнее.


RE: Вопросы по моддингу - Ivor - 17.08.2018 14:29

(21.04.2018 18:34)Algor Wrote:  Когда срабатывает мораль, отряд получает дополнительный ход, без срабатывания триггеров регенерации/получения хода следующим отрядом и смены раунда. При этом отрабатывает BG1.
Хотелось бы получить возможность принудительно заморалить отряд, но без анимашки и записей в лог про высокий боевой дух. Или как-то иначе реализовать процесс двойного хода с соблюдением вышеуказанного поведения триггеров.
Метод против единичек?
Сразу придумалась идея артефакта "Знак убийцы", под которым отряд, убивший отряд врага, получает доп. ход Sm


RE: Вопросы по моддингу - Algor - 17.08.2018 15:14

Против нескольких слабых отрядов уже есть подобный вариант:

Опция 758 Wrote:Головорезы
Воры становятся хладнокровными головорезами не зависящими от боевого духа, но каждый раз после убийства отряда воодушевляются получая возможность совершить еще одно действие.

Артефакт, дающий подобный эффект будет, скорее всего, очень жирным. С таким артом и одним большим и быстрым ударным стеком можно будет зачищать карту вообще без потерь. Хотя, можно конечно и ограничить кол-во срабатываний жестко (не более 1го воодушевления) или шансом (50% шанс воодушевления).

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

Вообще, тема артефактов в игре, имхо, недораскрыта. Очень уж много однотипных, различающихся тупо размером бонуса. Для сборников это нормально - схожие арты за счет синергии входят в резонанс и все такое. Но вот те же антизакловские подвески - шлак в чистом виде. Да и всяким секирам кентавров не мешало бы раздать интересные бонусы вроде багрового щита возмездия.


RE: Вопросы по моддингу - Ivor - 17.08.2018 15:55

(17.08.2018 15:14)Algor Wrote:  Против нескольких слабых отрядов уже есть подобный вариант:

Опция 758 Wrote:Головорезы
Воры становятся хладнокровными головорезами не зависящими от боевого духа, но каждый раз после убийства отряда воодушевляются получая возможность совершить еще одно действие.
О, подзабыл про эту опцию.

(17.08.2018 15:14)Algor Wrote:  Артефакт, дающий подобный эффект будет, скорее всего, очень жирным. С таким артом и одним большим и быстрым ударным стеком можно будет зачищать карту вообще без потерь. Хотя, можно конечно и ограничить кол-во срабатываний жестко (не более 1го воодушевления) или шансом (50% шанс воодушевления).
Как вариант - ограничить кол-во срабатываний уровнем отряда.

(17.08.2018 15:14)Algor Wrote:  Как вариант, можно какой-нить антизакловский ошейник переделать в вышеописанный арт, т.к. путевых подвесок раз-два и всё.
Я-то прикидывал, что подобный артефакт должен занимать какой-нибудь из важных слотов типа правой руки или кольца.

(17.08.2018 15:14)Algor Wrote:  Вообще, тема артефактов в игре, имхо, недораскрыта. Очень уж много однотипных, различающихся тупо размером бонуса. Для сборников это нормально - схожие арты за счет синергии входят в резонанс и все такое. Но вот те же антизакловские подвески - шлак в чистом виде. Да и всяким секирам кентавров не мешало бы раздать интересные бонусы вроде багрового щита возмездия.
Это да. Я в своё время почему и начал копать тему артефактов - потому что на примере ЛоР понял, что когда за счет подбора артефактов можно сильно менять билд героя - это гораздо интереснее, чем вариант в Героях, когда один слот героя жестко завязан на получаемый бонус (правая рука - атака, голова - знания) и т.д.

По подвескам - напрашивающийся вариант решения - в каком-нибудь из объектов карты, например, артефакторе или в домике квестодателя объединять их в единый артефакт, имеющий объединенный бонус
Pendant of Dispassion (Амулет хладнокровия)
Pendant of Second Sight (Амулет другого зрения)
Pendant of Free Will (Амулет свободной воли)
Pendant of Total Recall (Амулет абсолютной памяти)
собираются в амулет защиты разума, с защитой от воздействия на разум.


RE: Вопросы по моддингу - Ivor - 17.08.2018 16:12

Pendant of Life Делает юниты героя имунными к заклинанию Death Ripple и ослабляет вражескую нежить (накладывает Слабость на вражеские войска с флагом IS_UNDEAD)
Pendant of Death Делает юниты героя имунными к заклинанию Destroy Undead и ослабляет вражеские живые войска (накладывает Слабость на вражеские войска с флагом 16 - живой)

А секире кентавра выдать доп.бонус +1 макс. урон


RE: Вопросы по моддингу - Algor - 17.08.2018 16:56

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

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

Секира была просто примером. Сам по себе этот артефакт в усилении не нуждается. Он просто скучный и безальтернативно меняется на любой другой при первой же возможности.
А вот дать ему вместо бонуса атаки свойство рассекания (например, -2 к защите вражеского отряда при атаке в ближнем бою) и он станет существенно интереснее и ситуационнее.


RE: Вопросы по моддингу - Ivor - 17.08.2018 17:25

(17.08.2018 16:56)Algor Wrote:  Артефактор вообще спорный объект,
Домик квестгивера для таких вещей как раз и создан, но это исключительно для авторских карт.
Ну да, артефактор в моём виденьи - это "костыль" для замены квестгивера на рандомках

(17.08.2018 16:56)Algor Wrote:  Оно не более, чем идея вводить еще одну механику для создания сборного артефакта 118

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

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

Артефакт может быть сам по себе слаб, но становиться сильнее и интереснее при улучшении

(17.08.2018 16:56)Algor Wrote:  Подвескам жизни/смерти лучше выдать Слабость в виде понижения атаки соотв. вражеских существ, а не в виде заклинания.
Если можно так, то так даже лучше.

(17.08.2018 16:56)Algor Wrote:  Секира была просто примером. Сам по себе этот артефакт в усилении не нуждается. Он просто скучный и безальтернативно меняется на любой другой при первой же возможности.
Вот мой вариант и предполагает интересный выбор: что лучше - выбрать +4 атаки всем или +2 атаки и +1 урона, которая сильно повлияет на 1- и 2-уровневые войска?
"Игра - это последовательность интересных выборов" (с) С.Мейер

(17.08.2018 16:56)Algor Wrote:  А вот дать ему вместо бонуса атаки свойство рассекания (например, -2 к защите вражеского отряда при атаке в ближнем бою) и он станет существенно интереснее и ситуационнее.
И чем он стал интереснее? Тем, что у него становится разное действие
- при атаке в рукопашную (+4)
- при стрельбе и при контратаке (+2)?

И эффект становится труднее просчитать? Да ну..


RE: Вопросы по моддингу - ModWizard - 17.08.2018 18:18

Продолжаю копать.

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

Отследить клик по хижине не проблема - тригер на клик по городскому экрану, считали разрешение HD-мода, определили приходится ли ЛКМ на квадрат, куда вписывается хижина. Это я сделал.

А вот как показать игроку, что по хижине можно кликать?

Вроде, самое просто решение:

1. отслеживать перемещение курсора
2. в момент попадания его в квадрат здания перегрузить деф, где хижина обведена рамкой. При сходе с квадрата - убрать.

считать координаты курсора без клика можно при помощи !!UN:C1, я даже где-то видел на форуме адрес где они хранится - и забыл записать(((

но как периодический запускать процедуру проверки мыши?

!?ММ1 на городском экране вроде выдает номер объекта, если мышку сдвинуть. Но, как назло мне нужен Оплот, а там номер 23 - городские здания не активны....

есть ли выход?


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

(17.08.2018 17:25)Ivor Wrote:  И чем он стал интереснее?...И эффект становится труднее просчитать? Да ну..
Не не, я имел в виду, что защита будет снижаться не по "бегемотовскому" принципу - только на время расчета урона, а по принципу заклинания "разрушение" - эффект кумулятивный и не рассеивается. Т.е. при первом ближнем ударе бонуса нет, при втором, грубо, +10% урона, при третьем - +20% и т.д. вплоть до ограничений расчетной формулы и параметров взаимодействующих отрядов.

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


RE: Вопросы по моддингу - Heromant - 17.08.2018 21:44

Кто нибудь фиксил некромантию для ИИ. В физмиге написали, что она даёт его героям всегда 1 скелета или лича (с плащём). Я проверил - да, всё верно, одного только скелета за битву.


RE: Вопросы по моддингу - totkotoriy - 25.08.2018 17:21

Случайно не знаете как найти def файл для кнопки "WoG Options" в HD или WOG, которая отображается при настройке карты? - хочу поменять
Я так понял в HD допилили эту кнопку, т.к. раньше у неё не было анимации нажатия, а сейчас появилась...

(17.08.2018 21:44)Heromant Wrote:  Кто нибудь фиксил некромантию для ИИ. В физмиге написали, что она даёт его героям всегда 1 скелета или лича (с плащём). Я проверил - да, всё верно, одного только скелета за битву.
Можно скриптом сделать даже...


RE: Вопросы по моддингу - MOP - 25.08.2018 17:38

_HD3_Data\Common\HWBUT2.def. Надпись рисуется на кнопке уже в процессе.


RE: Вопросы по моддингу - totkotoriy - 25.08.2018 18:01

(25.08.2018 17:38)MOP Wrote:  _HD3_Data\Common\HWBUT2.def. Надпись рисуется на кнопке уже в процессе.
Хм... это как в процессе? Текстом? В первый раз такое вижу, текст же при нажатии тоже смещается и становится темнее. Да и HWBUT2.def по размеру меньше.


RE: Вопросы по моддингу - MOP - 25.08.2018 18:18

Ошибся. Стандартная кнопка GSPBUT2.DEF.
(25.08.2018 18:01)totkotoriy Wrote:  Хм... это как в процессе? Текстом? В первый раз такое вижу, текст же при нажатии тоже смещается и становится темнее.
Да вообще-то все эти кнопки - "Случайная карта", "Доступные сценарии", "Дополнительные опции" - такие. И у меня кнопка "Опции MoP" такая же, и в самом диалоге опций таких кнопок много (я этот элемент и в DL-шаблоны добавил).


RE: Вопросы по моддингу - totkotoriy - 25.08.2018 18:21

(25.08.2018 18:18)MOP Wrote:  Ошибся. Стандартная кнопка GSPBUT2.DEF.
(25.08.2018 18:01)totkotoriy Wrote:  Хм... это как в процессе? Текстом? В первый раз такое вижу, текст же при нажатии тоже смещается и становится темнее.
Да вообще-то все эти кнопки - "Случайная карта", "Доступные сценарии", "Дополнительные опции" - такие. И у меня кнопка "Опции MoP" такая же, и в самом диалоге опций таких кнопок много (я этот элемент и в DL-шаблоны добавил).
А не знаешь где текст от этих кнопок хранится?


RE: Вопросы по моддингу - MOP - 25.08.2018 18:30

GENRLTXT.TXT


RE: Вопросы по моддингу - totkotoriy - 25.08.2018 19:15

(25.08.2018 18:30)MOP Wrote:  GENRLTXT.TXT
Так а там нету строк с WoG Options и настроить...

Нашёл в HD_WOG.dll...


RE: Вопросы по моддингу - MOP - 25.08.2018 19:18

В HD_WOG.dll зашиты.


RE: Вопросы по моддингу - totkotoriy - 25.08.2018 19:20

(25.08.2018 19:18)MOP Wrote:  В HD_WOG.dll зашиты.
Тоже уже нашёл.... спасибо! )))


RE: Вопросы по моддингу - totkotoriy - 29.08.2018 00:41

Подскажите плиз, можно ли отключить отображение кнопки плагина buttons в скриптах?


RE: Вопросы по моддингу - igrik - 29.08.2018 12:13

(29.08.2018 00:41)totkotoriy Wrote:  Подскажите плиз, можно ли отключить отображение кнопки плагина buttons в скриптах?
Всмысле? Дай более развёрнутый вопрос.


RE: Вопросы по моддингу - totkotoriy - 29.08.2018 13:13

(29.08.2018 12:13)igrik Wrote:  
(29.08.2018 00:41)totkotoriy Wrote:  Подскажите плиз, можно ли отключить отображение кнопки плагина buttons в скриптах?
Всмысле? Дай более развёрнутый вопрос.
Ну вот плагином buttons.dll добавлены новые кнопки, например кнопки быстрого перемещения армии в замке. Можно ли такую кнопку как-нибудь отключить в ERM, то есть чтоб она не показывалась? А то получается, что какая-нибудь настройка отключена, а кнопка осталась.


RE: Вопросы по моддингу - igrik - 29.08.2018 17:59

(29.08.2018 13:13)totkotoriy Wrote:  Ну вот плагином buttons.dll добавлены новые кнопки, например кнопки быстрого перемещения армии в замке. Можно ли такую кнопку как-нибудь отключить в ERM, то есть чтоб она не показывалась? А то получается, что какая-нибудь настройка отключена, а кнопка осталась.
Сомневаюсь что так можно. Либо можно, но геморно. Но я не знаю как это достаточно корректно сделать на ERM.


RE: Вопросы по моддингу - totkotoriy - 29.08.2018 20:23

спасибо... печально :/


RE: Вопросы по моддингу - MOP - 31.08.2018 17:31

Который день ломаю голову над багом, который отравил возникшее было желание работать над модом. Суть такова:
Написана коротенькая функция - переходник к игровой процедуре. Аргумент - один, соглашение - stdcall.
Записал эту функцию в exe, чтобы вызывать, как прочие, методом push-ret.
Дальше начинается идиотизм... Суть бага - в вылете при переходе в главное меню.

Вызываю эту функцию из процедуры обновления строки ресурсов - вылет.
Переписываю её в другое место экзешника - вылет.
Переписываю в WERD и вызываю просто call-ом - о чудо, вылета нет!
Опять зашиваю в exe - вылет!
Вызываю её через mov eax, адрес; call eax - вылет!
Вызываю зашитую из другого места кода (скажем, правый клик на карте) - вылета нет!!
Вызываю из процедуры обновления строки ресурсов другую push-ret-ную функцию с аналогичным соглашением вызова - вылета нет!!
Вызываю из процедуры обновления строки ресурсов пустышку (retn 4) - вылет!!!

Вопрос: какого хрена???

Вылет идёт в какой-то подфункции функции RtlFreeHeap, что в ntdll.dll. Функция, в свою очередь, вызывается из HeapFree, что в KeRNeL32.


RE: Вопросы по моддингу - Berserker - 17.09.2018 17:33

Quote:Функция, в свою очередь, вызывается из HeapFree, что в KeRNeL32.
Странная функция какая-то. Зачем нужен переходник? Сохраняешь ли ты регистры до вызова оригинала и восстанавливаешь ли после?


RE: Вопросы по моддингу - Дьякон - 18.09.2018 14:51

MOP, мало информации. Что делает функция? Код функции? Куда в ехе зашил? Откуда вызываешь, из какого участка кода? Что со стеком не перекосил ли стек? Когда вылетает - при вызове функции, во время исполнения, или по возврату?
По факту - чудес не бывает. Если не работает значит - где-то ошибка. Помню как-то неделю просидел над кодом длл, которая упорно не хотела работать. И часть кода там была написана на встроенном ассемблере. Я до буквы все проверил, несколько раз прогнал отладчиком. Потом заменил весь код просто на вызов MessageBox и даже в таком виде оно отказывалось работать. В итоге Сергрой подсказал - проверь стек. И действительно стек был перекошен. Оказалось, что в том встроенном ассемблере то ли pusha то ли push по-умолчанию пихало в стек word вместо dword.


RE: Вопросы по моддингу - MOP - 03.10.2018 19:08

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


RE: Вопросы по моддингу - Berserker - 03.10.2018 22:16

MOP, это радует! Ab


RE: Вопросы по моддингу - totkotoriy - 17.10.2018 00:40

Можно ли как нибудь сделать чтоб на 4х посланников стихий не накладывались заклинания в битве?
Просто у меня это в моде другие существа и другие заклинания...


RE: Вопросы по моддингу - igrik - 17.10.2018 01:07

(17.10.2018 00:40)totkotoriy Wrote:  Можно ли как нибудь сделать чтоб на 4х посланников стихий не накладывались заклинания в битве?
Просто у меня это в моде другие существа и другие заклинания...



RE: Вопросы по моддингу - totkotoriy - 17.10.2018 02:32

Чет не работает... :\... может то что я exe менял?


RE: Вопросы по моддингу - igrik - 17.10.2018 09:13

(17.10.2018 02:32)totkotoriy Wrote:  Чет не работает... :\... может то что я exe менял?
Забыл я, что заклинания устанавливаются в двух местах.
Вот полный:


Кстати, Algor , если не ошибаюсь, когда-то спрашивал как выключить огнещит у командиров. Вот так:



RE: Вопросы по моддингу - totkotoriy - 17.10.2018 09:35

В очередной раз огромное спасибо! Вроде бы все что хотел сделал для мода...


RE: Вопросы по моддингу - Algor - 17.10.2018 11:46

(17.10.2018 09:13)igrik Wrote:  Кстати, Algor , если не ошибаюсь, когда-то спрашивал как выключить огнещит у командиров. Вот так:

Спасибо, ток вот я уже не помню куда это хотел...
И да, то, что нарыл по UN:C надо бы в соотв. тему дублировать.


RE: Вопросы по моддингу - Elzivir - 20.10.2018 04:25

(17.10.2018 09:13)igrik Wrote:  Кстати, Algor , если не ошибаюсь, когда-то спрашивал как выключить огнещит у командиров. Вот так:

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


RE: Вопросы по моддингу - igrik - 20.10.2018 12:17

(20.10.2018 04:25)Elzivir Wrote:  igrik, а заменить одну способность командиров на другую намного сложнее в реализации, чем просто выключить имеющуюся? Давно думал заменить их смертельный взгляд, например, на 50%-ый шанс отравить противника ядом (как сделано в скрипте "усиленные командиры"). Сам скрипт не использую, но вот вышеназванную способность заменил бы...
В данном конкретном случае да. Это совершенно другой принцип кода. И одной простой командой тут не обойдешься...


RE: Вопросы по моддингу - Shiva - 24.10.2018 19:54

Как можно увеличить силу метеоритного дождя у Сказочных драконов?


RE: Вопросы по моддингу - igrik - 24.10.2018 20:03

Отдельно от других заклинаний Сказочного Дракона - никак


RE: Вопросы по моддингу - Shiva - 24.10.2018 20:41

(24.10.2018 20:03)igrik Wrote:  Отдельно от других заклинаний Сказочного Дракона - никак

А с помощью артефакта (сфера илистого озера), который увеличивает силу магии земли на 50%. Есть какая нибудь формула для него?


RE: Вопросы по моддингу - totkotoriy - 25.10.2018 00:03

Спасибо, как будет время доделаю свои окна


RE: Вопросы по моддингу - totkotoriy - 29.10.2018 16:44

Ещё заметил маленькую недоработку: Окна, выводящиеся командной IF:G имеют серо-голубую рамку, даже в справке ЕРМ Sm.


RE: Вопросы по моддингу - igrik - 29.10.2018 17:04

(29.10.2018 16:44)totkotoriy Wrote:  Ещё заметил маленькую недоработку: Окна, выводящиеся командной IF:G имеют серо-голубую рамку, даже в справке ЕРМ Sm.
А что не так? Надеюсь ты же знаешь, что это же не "родные" геройские диалоги (по способу их рисования и отображения). Именно по этому они не масштабируются в HD моде и вешают игру, когда в них пытаешься закрыть игру через Alt+F4


RE: Вопросы по моддингу - totkotoriy - 29.10.2018 17:21

Хммм, я так думал вообще все диалоги в ХД не масштабируются... да и с Alt+F4 не вылетает при них


RE: Вопросы по моддингу - igrik - 29.10.2018 17:47

Я и не говорил, что они вылетают при Alt+F4. Я сказал, что они вешают игру и ничего другого ты сделать больше не можешь, как убить процесс через диспечер задач.
А всё потому, что они реализованы по другому: через воговскую библиотеку zvslib1.dll приостонавливая игру на время своего показа. Поэтому HD мод их и не массштабирует в отличии от стандартных геройских диалогов. Плюс они мерцают и намного медленней запускаются (что хорошо видно невооруженным глазом). Да и выглядят они со свомими рамками чужеродно...

Именно поэтому я потихоньку и пилю (когда есть желание и время) WoG Native Dialogs


RE: Вопросы по моддингу - totkotoriy - 29.10.2018 17:56

Не знаю, у меня не вешают игру. Спасибо, за разъяснение.


RE: Вопросы по моддингу - igrik - 29.10.2018 18:40

(29.10.2018 17:21)totkotoriy Wrote:  Хммм, я так думал вообще все диалоги в ХД не масштабируются...
Я думаю, ты не совсем понял о каком масштабировании я говорю (отсюда: зачем в лаунчере стоит выбор разрешения, что такое стретч фильтры HD мода и вообще для чего они нужны).
Вот смотри:

У меня монитор с разрешением 1920х1080. Но я играю с разрешением выставленным в HD 1180х664 (для квадратноформатников 4:3 884x664).
Т.е. стретч фильтры HD растягивают всю геройскую картинку к разрешению моего монитора 1920х1080.
При настройке в HD разрешения как у монитора, т.е. 1920х1080 - картинка меня не устраивает - всё слишком мелко. И чем выше разрешение монитора, тем всё становится еще мельче.

Теперь, когда мы разобрались с тем, что делают фильтры, давай сравним отрисовку и отсюда проблему воговских диалогов в совместной работе с фильтрами HD
Первый скрин с WoG Native Dialogs, второй - старый воговский.
Без использования стретч фильтров (т.е. разрешение HD выставленно точно таким же как и разрешение монитора) этой проблемы просто не видно


Теперь надеюсь понятно Ab


RE: Вопросы по моддингу - totkotoriy - 29.10.2018 21:34

Понял я, понял Sm Ещё в прошлый раз.


RE: Вопросы по моддингу - totkotoriy - 30.10.2018 00:53

igrik, вот эта штука вылетает:



RE: Вопросы по моддингу - igrik - 30.10.2018 10:13

Странно... Не должно вылетать. У меня же не вылетает.
Покажи как ты вызываешь диалог и приложи txt диалога
Либо используй первый способ (Мастера)


RE: Вопросы по моддингу - totkotoriy - 30.10.2018 10:44

У меня вылетело не сразу.
txt

Наверное не то не это делать не буду, надоело уже тестировать )))


RE: Вопросы по моддингу - igrik - 30.10.2018 10:50

Тогда используй способ Мастера.

А где вызов моей функции? Приложи весь код, и то как ты вызывешь функцию окрашивания


RE: Вопросы по моддингу - totkotoriy - 30.10.2018 11:04

Может и я что-то напортачил



RE: Вопросы по моддингу - igrik - 30.10.2018 13:32

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

Поэтому в твоем случае всё же безопаснее использовать способ Мастера)))


RE: Вопросы по моддингу - totkotoriy - 30.10.2018 14:11

Ок )))


RE: Вопросы по моддингу - totkotoriy - 05.12.2018 10:53

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


RE: Вопросы по моддингу - Berserker - 05.12.2018 15:43

Только через костыли с возможной утечкой памяти. В самой структуре оставленного отряда негде хранить, если верно помню, доп. значение.
На вскидку:
Пусть y1, y2, y3 - координаты на карте.

Тогда при оставлении (эм, а разве есть событие такое?)
SN:W^AdvMonExp_%Y1_%Y2_%Y3^/сохраняемый_опыт;

И в !$OB нужно обнулять по координатам боя переменную SN:W^AdvMonExp_%Y1_%Y2_%Y3^, если там отряд больше не существует.


RE: Вопросы по моддингу - totkotoriy - 05.12.2018 16:35

Вот именно, что события такого в ЕРМ нет


RE: Вопросы по моддингу - Berserker - 06.12.2018 20:53

Это «фишка» (оставление монстров) — сама костыль, который лучше скриптами реализовывать.


RE: Вопросы по моддингу - igrik - 07.12.2018 00:48

(05.12.2018 16:35)totkotoriy Wrote:  Вот именно, что события такого в ЕРМ нет
Не знаю, придумаешь ты что-то с этим, или нет.
Но вот держи событие оставление монстров:

Надеюсь, тебе понятно :D


RE: Вопросы по моддингу - totkotoriy - 07.12.2018 00:49

igrik, Спасибо! попробую...

Berserker, тоже думал так сделать


RE: Вопросы по моддингу - totkotoriy - 12.12.2018 11:10

igrik, а в этом триггере !?FU(AddMonOnMap); уже армия перемещена и никак опыт этих отрядов уже не узнать получается?
А такого же кода, только для присоединения нету? :D


RE: Вопросы по моддингу - igrik - 12.12.2018 11:40

(12.12.2018 11:10)totkotoriy Wrote:  igrik, а в этом триггере !?FU(AddMonOnMap); уже армия перемещена и никак опыт этих отрядов уже не узнать получается?
Ты хоть проверял код? Конечно можно узнать опыт:

(12.12.2018 11:10)totkotoriy Wrote:  А такого же кода, только для присоединения нету? :D
Я думаю он не нужен. Если нужен, то найду.


RE: Вопросы по моддингу - totkotoriy - 12.12.2018 11:43

igrik, проверять то можно, но перемещаемых монстров в стеках героя уже нет и соответственно узнать их опыт тоже нельзя.
Можно проверить опыт оставшихся у героя существ, но он тут не нужен.

(12.12.2018 11:40)igrik Wrote:  Я думаю он не нужен. Если нужен, то найду.
Это даже важнее, т.к. можно будет присоединять существ с опытом...


RE: Вопросы по моддингу - igrik - 12.12.2018 11:51

(12.12.2018 11:43)totkotoriy Wrote:  igrik, проверять то можно, но перемещаемых монстров в стеках героя уже нет и соответственно узнать их опыт тоже нельзя.
Ты сам себе противоречишь в этом предложении.
Я тебе прислал код, который я проверил перед отправкой (там опыт стеков можно получить).
totkotoriy, пожалуйста, проверяй сначала - потом задавай вопросы.
(12.12.2018 11:43)totkotoriy Wrote:  Это даже важнее, т.к. можно будет присоединять существ с опытом...
Хорошо. Я накопаю


RE: Вопросы по моддингу - totkotoriy - 12.12.2018 11:53

igrik, проверил я... Можно проверить только опыт оставшихся у героя существ, но он тут не нужен.
Зачем вообще тут опыт существ, которые остаются у героя? Нужен же опыт у перемещаемых существ.


RE: Вопросы по моддингу - igrik - 12.12.2018 12:03

У тех которые выкладываются - опыт можно счесть!
Вот смотри:
Image: 1.jpg
Image: 2.jpg

Как я понял - нельзя делать лишних движений типо открывания окна монстра и перемещения его туда-сюда. Тогда опыт обнуляется. Но как это лечить - я хз.


RE: Вопросы по моддингу - totkotoriy - 12.12.2018 12:48

igrik, ничего не понял, команда !!EXy2/1&y36>0:E?y46; проверяет же опыт у стеков героя? Как она может проверить у отсоединившихся отрядов?
Пытался проверить командой !!EXy4/y5/y6/0:E?y41; - выдает ошибку, мол ничего в этих координатах не найдено...


RE: Вопросы по моддингу - Ethereal - 10.01.2019 13:56

Может знает кто, или возможно даже было, но я прошляпил, но...
В общим, можно что то сделать, что бы штурм гарнизонов проходил как штурм замка, со всеми всеми оборонительными причиндалами? Запихать героев в гарнизоны, как в четвёрке, невозможно, так пусть хоть какое то преимущество будет у обороняющийся стороны, да и Баллистика с Землетрясением полезней станет. Такое возможно реализовать?


RE: Вопросы по моддингу - ArKan - 25.01.2019 16:45

Каким способом можно персонажей из игры Iron & Blood: Warriors of Ravenloft https://yandex.ru/images/search?text=Iron%20%26%20Blood%3A%20Warriors%20of%20Ravenloft переделать в существ?


RE: Вопросы по моддингу - daemon_n - 25.01.2019 17:44

ArKan, возможно, есть способ покороче, но я сделал бы примерно так ( тупо закинуть в папку data?148) :
1 Нарисовать или вычленить из откуда бы то ни было аккуратные изображения ( на свой вкус )
2 создать пустые файлы .def с названиями, соотв. заменяемым существам - средства ОС
3 сделать анимации (.def-файлы) из картинок - Def tool
4 еще нужно заменить def с маленькими иконками существ - их, кажется, 2 всего
5 тут не уверен, у меня программа не открывается, в общем, надо сделать это и для монстров на карте, и для монстров в бою, а для стреляющих еще def снаряда нужен.
6 заменить в файле оригинала или добавить в hmm35wog.pac -- MMArchive
В целом, есть чем заняться.


RE: Вопросы по моддингу - azda.club - 24.03.2019 09:15

Добрый день. подскажите пожалуйста. собираю мод и столкнулся с таким вопросом Какой файл отвечает за расположение зданий? Огромное спасибо.era


Добрый день подскажите хочу сделать такое меню с чего начать era2




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

Quote:Какой файл отвечает за расположение зданий?
Исполняемый. Способов отредактировать уже примерно дофига: эрм, патчи, правка экзе, дллка-редактор.

Quote:и некоторые текстурки начали вылазить за экран не страшно ли это?
не, это всего лишь некрасиво. Впрочем, колхоз - дело добровольное.
С масками и обводками надо быть осторожнее, они довольно требовательны к палитре.


RE: Вопросы по моддингу - azda.club - 25.03.2019 22:06

Quote:Какой файл отвечает за расположение зданий?
Исполняемый. Способов отредактировать уже примерно дофига: эрм, патчи, правка экзе, дллка-редактор.

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


RE: Вопросы по моддингу - orzie - 01.04.2019 12:13

Уважаемые, никто не занимался ранее для Вога/Эры вопросом бонусов/проклятий богов и хардкоденных специализаций "перестройка городов" (Rebuilding) и "вуаль тьмы" (Veil of Darkness)?

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


RE: Вопросы по моддингу - Ivor - 01.04.2019 12:38

Так оно же всё отключается. Или этого недостаточно?


RE: Вопросы по моддингу - igrik - 01.04.2019 12:43

(01.04.2019 12:13)orzie Wrote:  Уважаемые, никто не занимался ранее для Вога/Эры вопросом бонусов/проклятий богов и хардкоденных специализаций "перестройка городов" (Rebuilding) и "вуаль тьмы" (Veil of Darkness)?

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

(01.04.2019 12:38)Ivor Wrote:  Так оно же всё отключается. Или этого недостаточно?
Как раз таки эти фичи неотключаемые.


RE: Вопросы по моддингу - orzie - 01.04.2019 12:47

К сожалению, да, не отключается. Наш код специализаций тоже перекрывается воговским.

Однозначно нужно, поэтому если найдётся возможность - были бы крайне признательны.


RE: Вопросы по моддингу - wessonsm - 01.04.2019 13:31

(01.04.2019 12:47)orzie Wrote:  К сожалению, да, не отключается. Наш код специализаций тоже перекрывается воговским.

Однозначно нужно, поэтому если найдётся возможность - были бы крайне признательны.
В моде "Safe SoD" (автор мода Valery) есть плагин (бинарный патч), отключающий воговские специализации Джеддит и Нагаша.
Ссылки на мод были здесь на англоязычной ветке форума, если они еще не умерли.


RE: Вопросы по моддингу - feanor - 01.04.2019 16:21

Quote:1. Сделать мод на чистом SoD, используя только патчер HD-мода.
И вместо выпиливания некоторого подмножества вога/эры нам (мне) понадобится писать куда большее подмножество заново, ага, отличная экономия сил.

Quote:2. Если п.1 слишком сложный, то может быть просто попробовать загружать WoG в режиме "NoWoG" (это просто изменить одну глобальную переменную в памяти) - не знаю что при этом произойдёт с игрой, но довольно многое в воговском коде проверяет эту переменную, если в ней ноль, то происходит RETURNV.
Не уверен, что пользоваться недокументированным и непредсказуемым поведением - хорошая идея.


RE: Вопросы по моддингу - orzie - 01.04.2019 16:40

Quote:Что в них хардкорного?
https://en.wikipedia.org/wiki/Hard_coding

wessonsm, спасибо, попробовали - теперь специализации и их описания работают корректно. Осталось проверить на наличие каких-то возможных осложнений в будущем.


RE: Вопросы по моддингу - igrik - 01.04.2019 20:21

(01.04.2019 12:13)orzie Wrote:  Уважаемые, никто не занимался ранее для Вога/Эры вопросом бонусов/проклятий богов?
Плагином я не придумал как написать, поэтому патчем в AfterWoG - убираем 4 воговских хука и один 10 байтный ноп, восстанавливая оригинальный код игры
Code:
004E11E0 6A085353688B000000
004E1F35 8B0D809C67008B421A8D04808B54C11C526828746900E88E5A1300
004E1F4B E88E5A130083C408
004DED05 6A0853536A6B6A01
004DDA15 8B411A83C9FF8D1480A1809C67008B7CD02433C0

Хотя уже дали решение, пусть всё равно будет
(01.04.2019 12:13)orzie Wrote:  Уважаемые, никто не занимался ранее для Вога/Эры вопросом хардкоденных специализаций "перестройка городов" (Rebuilding) и "вуаль тьмы" (Veil of Darkness)?
Code:
_PI->WriteDword(0x79C3D8, 0xFFFFFFFF); // убираем WoG специализацию у Нагаша     HeroSpecWoG[0].ind = -1
_PI->WriteDword(0x79C454, 0xFFFFFFFF); // убираем WoG специализацию у Джедита    HeroSpecWoG[1].ind = -1



RE: Вопросы по моддингу - orzie - 02.04.2019 20:36

Собрал плагин, всё работает как надо. Спасибо!

Правда, у нас вылезла другая проблема, над решением которой ещё предстоит думать. Наверное, придётся вообще убирать текстовую строку в этом месте.

Image: n0TBaLH.png


RE: Вопросы по моддингу - igrik - 02.04.2019 20:46

Невлезающие тексты? Я думаю эту проблему можно поправить.


RE: Вопросы по моддингу - Glenn - 11.04.2019 18:58

Подскажите, скачал шаблон "Your custom skin", в фотошопе сделал нужные мне фоны, но не знаю как их внедрить в саму игру. Что для этого нужно?


RE: Вопросы по моддингу - Ivor - 11.04.2019 19:06

Берешь любой скин
http://yadi.sk/d/XOy0fLmKHbFnF

и начинаешь потрошить и заменять картинки, руководствуясь программами и описаниями из FAQ по моддингу


RE: Вопросы по моддингу - Glenn - 12.04.2019 16:23

Подскажите, как убрать черный квадрат на главном меню игры? Я так понял, что это анимированное название Вога, которое в данной теме должно отсутствовать, но оно заменяется этим квадратом.
https://prnt.sc/nazgg6


RE: Вопросы по моддингу - Berserker - 12.04.2019 18:20

Glenn, заменить соответствующий видео файл неанимированной болванкой. В Феникс-Моде так сделано.


RE: Вопросы по моддингу - Glenn - 12.04.2019 19:10

Berserker, как я понимаю DragonTheme.vid это и есть болванка. Она как раз, наверно, и должна "закрывать" воговское анимированное лого. Но почему-то она работает не так как надо. Вот скрин с MMArchive.
http://prntscr.com/nb27ap

Заметил, что на базе Эры 2.77 такой квадрат висит, на старой версии 2.46 скин работает нормально.

И еще вопрос: что это за шрифт с этого же драконего скина?
http://i.piccy.info/i9/9733ee1c7d26d3a5376070ad2beebf29/1555087538/5746/1312853/gtmultin.jpg


RE: Вопросы по моддингу - wessonsm - 13.04.2019 03:25

(12.04.2019 16:23)Glenn Wrote:  Подскажите, как убрать черный квадрат на главном меню игры? Я так понял, что это анимированное название Вога, которое в данной теме должно отсутствовать, но оно заменяется этим квадратом.
https://prnt.sc/nazgg6
Можно закинуть в DragonTheme.vid пустой файл acredit.smk (размером 0 байт). Квадратика не будет, но и информацию об авторах показывать не будет, то есть кнопка "Авторы" в главном меню вообще не будет работать.
Если такое половинчатое решение устроит.


RE: Вопросы по моддингу - Glenn - 13.04.2019 03:41

wessonsm, знаю про такой вариант, он не подходит.


RE: Вопросы по моддингу - igrik - 22.04.2019 15:07

daemon_n, вот для остановки кадра перед битвой



RE: Вопросы по моддингу - Grossmaster - 28.06.2019 18:16

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


RE: Вопросы по моддингу - daemon_n - 28.06.2019 18:26

(28.06.2019 18:16)Grossmaster Wrote:  Хочу почистить меню вог-опций, удалив все дисбалансные и абсурдные скрипты, а некоторые из оставшихся сделать так, чтобы они не были опциональными и были встроены в игру по умолчанию (как возможность выбора типа атаки, сфинкса, загадывающего зададки и т.п.). Возможно ли такое провернуть?

да,
Удаление опции = очистка соответствующего файла erm - сделать его пустым. НО! скрипты вога очень длинные, так что удалять там надо не все, поскольку один файл отвечает за несколько скриптов.
Принудительное включение - вычистить проверку на включение скрипта в erm файле. Нужная строка всегда закомментирована.
Далее надо удалить/изменить на другой скрпит строку данного скрипта из zsetup01.txt. (hmm35wog.pac)


RE: Вопросы по моддингу - wessonsm - 28.06.2019 19:00

Да, это довольно-таки нудная и кропотливая работа)
Удалить строки из zsetup01 легко, чтобы не мозолили глаза, но нужно еще и с самими скриптами поработать.
Чтобы не перелопачивать все скрипты, как вариант, можно написать отдельный скрипт, принудительно отключающий "ненужные" и включающий "нужные" опции.
Смотри в ERM-помощи описание команды !!UN:P;
К примеру, !!UN:P141/0; отключает вог-опцию 141 "Сфинкс", !!UN:P141/1; - включает.
И нужно еще включить замену объектов !!UN:P195/1;
а то сфинксы могут и не появиться.


RE: Вопросы по моддингу - Grossmaster - 28.06.2019 19:24

Спасибо, нашел файл и провел инквизицию скриптов. Попробую настроить ерм файлы на принудительное включение


RE: Вопросы по моддингу - igrik - 28.06.2019 19:32

В сборке в моде Баттлхероес есть плагин, убирающий кнопку Вог опций. Если нужно конечно...


RE: Вопросы по моддингу - Grossmaster - 28.06.2019 19:57

А принудительное включение скрипта будет работать, если не выполнять вогификацию карты?


RE: Вопросы по моддингу - Berserker - 28.06.2019 20:13

Grossmaster, вогификация нужна. С Эры 2.8.4 вогификация будет происходить всегда, опция будет игнорироваться.


RE: Вопросы по моддингу - Grossmaster - 08.09.2019 15:36

Я создаю новый тип почвы для героев. Как настроить её цвет на миникарте?
   Цвет у самого ландшафта светло-зеленый, а на миникарте отображается темноболотным.


RE: Плагины - AuAu - 01.10.2019 17:33

Кстати про заклинания :О
1 можно ли заставить рассеивание реагировать на резист (шанс заспоротивляться)?
2 Можно ли вшить при наложении антимагии 100% уменьшение маг. дамага? от молний или огненного щита к примеру.


RE: Плагины - AuAu - 01.10.2019 19:49

Знает кто, как сделано разделение по полам героев в era+? Там на каждый класс и каждый пол свой спрайт...


RE: Плагины - feanor - 01.10.2019 20:57

Quote:Знает кто, как сделано разделение по полам героев в era+? Там на каждый класс и каждый пол свой спрайт...
А в чем проблема? Пол взять можно, класс можно (даже расу можно, хе-хе), код на замену спрайта есть.




RE: Плагины - AuAu - 02.10.2019 01:23

feanor, сложна!
igrik, при наведении спелла на командира со 100 хп и 0 резиста - показывает урон 405, убьёт 0. Да и на остальных существ. Примечание - с era+
А, это по ходу потому, что там тоже такой плагин лежит


RE: Плагины - igrik - 02.10.2019 12:32

(02.10.2019 01:23)AuAu Wrote:  igrik, при наведении спелла на командира со 100 хп и 0 резиста - показывает урон 405, убьёт 0. Да и на остальных существ. Примечание - с era+
А, это по ходу потому, что там тоже такой плагин лежит
Да, тут все вопросы к моду ERA+

(01.10.2019 19:49)AuAu Wrote:  А можете плис перечислить в первом сообщении все известные плагины(названия) и для чего они?
Все мои плагины и так подробно расписаны "для чего, как и зачем". Других плагинов в данной теме нет, поэтому писать о них не вижу смысла. А все другие плагины мне явно расписывать нет желания.
   
(01.10.2019 19:49)AuAu Wrote:  Знает кто, как сделано разделение по полам героев в era+? Там на каждый класс и каждый пол свой спрайт...
Можно и так:
Но для этого нужно отредактировать названия всех боевых дефов героев.


RE: Плагины - AuAu - 02.10.2019 15:37

ВООООООО! Супер! Спасибочки! Сорян за оффтоп. Надо эту штуку включить во все сборки, классно же.
А что добавить, чтобы при рестарте карты или старте новой из главного меню скрипт не игнорировался? !?FU(OnGameStart) ? не помогает


RE: Плагины - AuAu - 02.10.2019 16:37

daemon_n, ентер уже есть, igrik же написал) но не помогает, старт и лоад тоже.


RE: Плагины - igrik - 02.10.2019 17:14

(02.10.2019 16:37)AuAu Wrote:  Ентер уже есть, igrik же написал) но не помогает, старт и лоад тоже.
А что, он игнорируется?

Если да, то:



RE: Плагины - AuAu - 02.10.2019 17:30

Сенкую <3


RE: Вопросы по моддингу - feanor - 02.10.2019 19:10

Quote:Я создаю новый тип почвы для героев. Как настроить её цвет на миникарте?
    Цвет у самого ландшафта светло-зеленый, а на миникарте отображается темноболотным.
Цвета в палитре. Девятый - цвет почвы основной, десятый - с препятствиями.


RE: Вопросы по моддингу - Igor - 04.10.2019 13:00

AuAu, кстати тоже заметил что не работает !?FU(OnGameEnter); , а вот !?FU7700; работает прекрасно. Я так понял это одна и таже функция.


RE: Вопросы по моддингу - XEPOMAHT - 04.10.2019 13:06

(04.10.2019 13:00)Igor Wrote:  на работает !?FU(OnGameEnter); , а вот !?FU7700; работает прекрасно. Я так понял это одна и таже функция.

!?FU77000 - TRIGGER_BEFORE_SAVE_GAME - должна вызываться после сохранения
!?FU(OnGameEnter) имеет номер 77015 - вызов где-то после показа карты в загрузке.


RE: Вопросы по моддингу - Berserker - 04.10.2019 14:57

Igor, странно весьма. OnGameEnter - начало обработки событий диалога карты приключений (карта отобразилась вместо с курсором), если верно помню.
!IF:M^^; там работает?

FU7700 — это из игриковского FUN.erm !?GM0; !!FU7700:P; !?PI; !!FU7700:P;


RE: Вопросы по моддингу - igrik - 04.10.2019 15:00

(04.10.2019 13:06)XEPOMAHT Wrote:  
(04.10.2019 13:00)Igor Wrote:  на работает !?FU(OnGameEnter); , а вот !?FU7700; работает прекрасно. Я так понял это одна и таже функция.

!?FU77000 - TRIGGER_BEFORE_SAVE_GAME - должна вызываться после сохранения
Нет. !?FU7700; это функция определённая в ERA Scripts Rus в FUN:erm:



RE: UN:C - AuAu - 01.12.2019 19:55

> !!UN:C4468973/4/6535680; "потолок" бонуса атаки (orig 400%)
не работает


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

Напомните, у нас есть возможность отрисовать Pcx16 с прозрачностью?


RE: Вопросы по моддингу - wessonsm - 07.01.2020 10:58

(08.11.2018 17:25)igrik Wrote:  Так вот, видимо при переводе на русский язык о данной особенности не знали. А всё что нужно было сделать для инициализации русских строк и описания специальностей, это в файле "ZMESS00.TXT" первый символ в моде "WoG Rus" изменить с E на R

Заодно эта буква "R" в zmess00.txt меняет позицию анимации в главном меню (та, что в acredit.smk) таким образом, что патч по адресам 00706625 и 0070662С больше не действует.
Я это выяснил случайно методом проб и ошибок.
Ранее в русификаторе был патч acredit.bin, который патчил эти адреса.
Он и сейчас там есть, но он больше не действует.

В этой связи вопрос:
Как теперь изменить позицию анимации в главном меню в русской версии?
Какие адреса патчить?

Upd: Я кажется нашел в исходниках WoG кусок кода, который отвечает за координаты smk. Вот он:
Координаты 8,104 в английской версии и 115,142 в русской.
Но как найти адрес, понятия не имею.

Все нашел) 00706615 и 0070661С, кому интересно.


RE: Вопросы по моддингу - Ivor - 09.01.2020 19:31

Вернулся к Героям, сыграл пару партий на Diamond'e и понял, что мне не хватает пары фишек относительно ваниллы:
1. Магической арены, бесплатно дающей +2 Sp|Kn, аналог обычной арены
2. Объекта, где герою-воину можно было бы купить книжку магии.

Беглое гугленье и проверка темы модов на HC результатов не дало.

В связи с этим вопрос: никто подобные моды не делал?


RE: Вопросы по моддингу - Berserker - 09.01.2020 19:58

Нет, не встречал.


RE: Вопросы по моддингу - professornova - 10.01.2020 15:44

В WoG книжку магии герой может купить в School of Wizardry.


RE: Вопросы по моддингу - Ivor - 10.01.2020 20:07

Проверил, не работает. Предлагает либо повышение Sp | Kn, либо заклинания


RE: Вопросы по моддингу - professornova - 10.01.2020 23:18

Ivor, Нужно выбрать заклинание.
Если будет достаточно мудрости для предлагаемого заклинания, то предложат купить книжку.
От покупки заклинания затем можно отказаться.


RE: Вопросы по моддингу - Ivor - 11.01.2020 03:59

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

Считаю такие замены неправильными, поэтому поменял в 78 wog - wogify.erm блок

на

Сделал тестовую карту, включил скрипты замены объектов и школы колдовства и протестировал. Ни один университет и ни одна школа войны не заменились на школу колдовства. Что я делаю не так?


RE: Вопросы по моддингу - daemon_n - 11.01.2020 04:03

Ivor, era scripts mod подключен? там есть свой wogify.


RE: Вопросы по моддингу - Ivor - 11.01.2020 05:02

Да, подключен. Но ведь и импятни, консервы, башни и флаги не заменились.
Вся карта у меня со старта открыта


RE: Вопросы по моддингу - daemon_n - 11.01.2020 05:06

Ivor, а "замена объектов при Вогификации" включена?


RE: Вопросы по моддингу - Ivor - 11.01.2020 16:13

Quote:включил скрипты замены объектов и школы колдовства
Image: WoGoptions.png

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


RE: Вопросы по моддингу - daemon_n - 11.01.2020 16:18

Ivor, тогда предположу ещё один вариант. Максимально невероятный. Включена ли вогификация всех карт на самой первой странице? Может, ей до сих пор требуется галка - я так и не проверилAb

Впрочем, постараюсь и я сегодня поэкспериментировать с заменой объектов.


RE: Вопросы по моддингу - Ivor - 11.01.2020 16:28

Вогификация включена


RE: Вопросы по моддингу - igrik - 14.01.2020 10:00

Ivor, в каком из модов ты менял замену объектов? в WoG или ES Rus?
Просто ES Rus перекрывает файл замены объектов на свой, причем там замена объектов достаточно сильно изменена. Для проверки попробуй отключить мод ES Rus и проверить замену без него.


RE: Вопросы по моддингу - Ivor - 14.01.2020 11:46

В обоих



RE: Вопросы по моддингу - Ivor - 14.01.2020 12:53

(14.01.2020 10:00)igrik Wrote:  Для проверки попробуй отключить мод ES Rus и проверить замену без него.
Проверил - никаких изменений. Даже включил сообщения вогификации -ничего не пишет


(требует модерации) Чем редактировать txt файлы в SOD - Awesomealldays - 28.01.2020 18:49

Какой программой редактировать txt файлы H3 SOD?


RE: Чем редактировать txt файлы в SOD - daemon_n - 28.01.2020 18:52

Awesomealldays, HoMM3 ERA\Tools\TextEdit


RE: Чем редактировать txt файлы в SOD - Awesomealldays - 28.01.2020 18:55

(28.01.2020 18:52)daemon_n Wrote:  Awesomealldays, HoMM3 ERA\Tools\TextEdit

SOD основа


RE: Чем редактировать txt файлы в SOD - igrik - 28.01.2020 18:56

(28.01.2020 18:55)Awesomealldays Wrote:  
(28.01.2020 18:52)daemon_n Wrote:  Awesomealldays, HoMM3 ERA\Tools\TextEdit

SOD основа
B всё равно HoMM3 ERA\Tools\TextEdit


RE: Чем редактировать txt файлы в SOD - daemon_n - 28.01.2020 18:57

Awesomealldays, какой именно текстовый файл?
TextEdit редактирует все типовые txt документы для sod/wog/hota, в т.ч. и шаблоны случайных карт.


RE: Чем редактировать txt файлы в SOD - Algor - 28.01.2020 19:10

Шаблоны случайных карт лучше редактировать Excel'ем. Ну или специальной графической приблудой, но это для слабаков Gigi


RE: Чем редактировать txt файлы в SOD - XEPOMAHT - 28.01.2020 19:10

Обычным блокнотом свободно редактируются подавляющее большинство без последствий для игры. Для различных извращений - можно хоть шеснадцатеричным редактором (например, для CREDITS.TXT я использовал обычный Hex Workshop, сам текст набирал в штатном виндовозном WordPad-е).


RE: Чем редактировать txt файлы в SOD - Awesomealldays - 28.01.2020 19:32

Ссылка на мод Heroes 3 SOD HD Balance and gameplay mod https://vk.com/topic-46967798_40812774


RE: Чем редактировать txt файлы в SOD - daemon_n - 28.01.2020 19:45

Awesomealldays, 105
Что теперь требуется сделать?


RE: Чем редактировать txt файлы в SOD - Ethereal - 29.01.2020 20:45

(28.01.2020 18:56)igrik Wrote:  
(28.01.2020 18:55)Awesomealldays Wrote:  
(28.01.2020 18:52)daemon_n Wrote:  Awesomealldays, HoMM3 ERA\Tools\TextEdit

SOD основа
B всё равно HoMM3 ERA\Tools\TextEdit

Кстати, HoMM3 ERA\Tools\TextEdit великолепно подходит не только для Героев. Я им свой мод для Дьябло 2 делал. Кажется ещё и для модификации Героев 4 использовал, вмести с другими приблудами... не помню точно.

(28.01.2020 19:10)Algor Wrote:  Шаблоны случайных карт лучше редактировать Excel'ем. Ну или специальной графической приблудой, но это для слабаков Gigi

А сами карты HexEditor'ом.148


RE: Чем редактировать txt файлы в SOD - Ivor - 30.01.2020 12:27

(28.01.2020 19:32)Awesomealldays Wrote:  Ссылка на мод Heroes 3 SOD HD Balance and gameplay mod https://vk.com/topic-46967798_40812774
Посмотрел. Так мило, этакий привет из 2004ого, когда я только начинал заниматься моддингом героев Sm


RE: Чем редактировать txt файлы в SOD - Awesomealldays - 30.01.2020 14:31

(30.01.2020 12:27)Ivor Wrote:  
(28.01.2020 19:32)Awesomealldays Wrote:  Ссылка на мод Heroes 3 SOD HD Balance and gameplay mod https://vk.com/topic-46967798_40812774
Посмотрел. Так мило, этакий привет из 2004ого, когда я только начинал заниматься моддингом героев Sm

Фишка моего мода ребаланс и баланс.
И если что достаточно цифры поменять, чтобы сделать баланс и немного другой геймплей и делается это за день.
А вы пилите новые замки, качество которых даже в 2000 не зашло бы.
Если есть качественные замки, то в мой мод можно добавить.
Новый замок норм причал в хоте, но слабый, грот должен стоить 5000, вместо 7500.


RE: Чем редактировать txt файлы в SOD - XEPOMAHT - 30.01.2020 14:57

(30.01.2020 14:31)Awesomealldays Wrote:  Альтернатива HOTA

Что-то совсем слабо для сравнения с HoA.

(30.01.2020 14:31)Awesomealldays Wrote:  Фишка моего мода ребаланс и баланс.
И если что достаточно цифры поменять, чтобы сделать баланс и немного другой геймплей и делается это за день.

За 20 лет существования игры ни у кого не получилось сделать идеальный баланс, удовлетворяющий 100% предпочтений игроков. Модов на ребаланс и баланс - тысячи, сыты ими уже все и вряд ли кого-то это может заинтересовать.

(30.01.2020 14:31)Awesomealldays Wrote:  А вы пилите новые замки, качество которых даже в 2000 не зашло бы.
Если есть качественные замки, то в мой мод можно добавить.

Давай, добавь в игру новый супер-пупер замок с помощью текстовиков. И мы посмотрим. :D


RE: Чем редактировать txt файлы в SOD - Ethereal - 30.01.2020 15:10

(30.01.2020 14:57)XEPOMAHT Wrote:  
(30.01.2020 14:31)Awesomealldays Wrote:  А вы пилите новые замки, качество которых даже в 2000 не зашло бы.
Если есть качественные замки, то в мой мод можно добавить.

Давай, добавь в игру новый супер-пупер замок с помощью текстовиков. И мы посмотрим. :D

Да ладно, не травите человека. Все с текстовиков начинали. Может позже, лет через 10, он выдаст мод уровня Master of Puppets. :D


RE: Чем редактировать txt файлы в SOD - Algor - 30.01.2020 16:23

(30.01.2020 15:10)Ethereal Wrote:  Да ладно, не травите человека. Все с текстовиков начинали. Может позже, лет через 10, он выдаст мод уровня Master of Puppets. :D

Ethereal, боюсь, тут всё видно невооруженным глазом 96-copy


RE: Чем редактировать txt файлы в SOD - Awesomealldays - 30.01.2020 18:45

(30.01.2020 14:57)XEPOMAHT Wrote:  
(30.01.2020 14:31)Awesomealldays Wrote:  Альтернатива HOTA

Что-то совсем слабо для сравнения с HoA.

Хоту удалил, там мистицизм 5\10\15, поместье 250\500\1000.


RE: Чем редактировать txt файлы в SOD - Ethereal - 30.01.2020 19:22

(30.01.2020 18:45)Awesomealldays Wrote:  Хоту удалил, там мистицизм 5\10\15, поместье 250\500\1000.

36

(30.01.2020 16:23)Algor Wrote:  Ethereal, боюсь, тут всё видно невооруженным глазом 96-copy

Причём настолько, что его хочется немедленно вооружить.


RE: Чем редактировать txt файлы в SOD - daemon_n - 30.01.2020 19:36

(30.01.2020 18:45)Awesomealldays Wrote:  Хоту удалил, там мистицизм 5\10\15, поместье 250\500\1000.

Пожалуй, это ещё нормально. А вот порезанные логистика, дипломатия, сапоги, перчатки и замедление просто кричат: "SOD+WOG+плагины!!!"


RE: Чем редактировать txt файлы в SOD - Berserker - 30.01.2020 23:12

(30.01.2020 18:45)Awesomealldays Wrote:  Хоту удалил, там мистицизм 5\10\15, поместье 250\500\1000.

Awesomealldays, мистицизм чем именно плох?


RE: Вопросы по моддингу - Sandris - 05.02.2020 16:44

Заменил в Оплоте Кентавров Феями.
Подскажите, как также правильно прописать замену Кентавров на Маленьких фей и Фей в генераторе-двеллинге Конюшни Кентавров на карте.

P.S. Попробовал просто приписать Фей к двеллингу, но не хватает знаний установить 7-дневный интервал их появления в жилище.



RE: Вопросы по моддингу - Ethereal - 12.02.2020 12:19

asandris, с Тифоном это делается намного проще. Там же, в "DwTable.txt" можно и Фей к любому жилищу добавить.

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


RE: Вопросы по моддингу - Sandris - 12.02.2020 13:04

(12.02.2020 12:19)Ethereal Wrote:  asandris, с Тифоном это делается намного проще. Там же, в "DwTable.txt" можно и Фей к любому жилищу добавить.

Кстати у меня была такая же идея, но я от неё отказался. Феи достойны большего, чем конюшни и без перерисовки строений замков тут не обойтись. Что же касается внешних жилищ, то можно просто поменять def-ы.
Да, спасибо. Я уже так и сделал. Ab


RE: Вопросы по моддингу - Zur13 - 22.02.2020 13:09

Может кто знает у меня в ЕРА самой новой похоже сломан сетевой код. Ситуация такая, сетевая игра, синий против красного, один из героев, надевает артефакт 170 из рюкзака руками без скриптов (проверял и вариант когда он подбирает артефакт на карте, и он сразу надевается в слот), после чего герой с надетым артефактом вступает в битву с героем второго игрока, но в битве идет рассинхрон, на одном компе артефакт надет на первом герое, а на втором компе не надет:

Code:
!?BG0&1000;
!!UN:P895/?v1;         [Check for WoG option]
!!FU&v1<>1:E;          [Exit if Option 895 is OFF]

!!BG:A?y-1;                       [y-1 action]
!!BG:H?y-2;                       [y-2 hero]
!!BG:N?y-3;                       [y-3 acting stack number]
!!BG:E?y-4;                       [y-4 target stack number (-1 if no dest stack)]
!!BG:D?y-5;                       [y-5 destination position]
!!BG:S?y-6;                       [y-6 Number of a Spell to Cast ]

!!FU&v6357>=0:E;                  [Exit if invalid reduce request (self recursion call?)]

!!VRv6357:S-1;                    [v6357 request to reduce magic damage]
!!VRv6356:S-1;                    [v6356 caster spell]
!!VRv6355:S-1;                    [v6355 caster hero side]

!!IF:M^Action: %Y-1 Spell: %Y-6 Hero: %Y-2^;

!!FU&y-1<>1:E;                    [Exit if not a Hero cast a spell action]
!!FU&y-2<0:E;                     [Exit invalid hero]

!!FU&y-6<10:E;                           [Exit if invalid spell]
!!FU&y-6<>23/y-6<>16/y-6<>21/y-6<>15:E;  [Exit if invalid spell]

*!FU&y-4<0:E;                     [Exit if no target stack]
*!FU&y-5<0:E;                     [Exit if invalid target position]

!!VRy-7:S0;                       [y-7 = 0]
!!HEy-2&y-2>=0:A2/170/?y-8/?y-7;  [y-7 number of equipped #170 hero]
!!IF:M^Action: %Y-1 Spell: %Y-6 Hero: %Y-2 ArtEquiped: %Y-7^;

В результате на компе 1 выводит ArtEquiped: 1 а на втором ArtEquiped: 0, остальные три переменные в выводе одинаковы.


RE: Вопросы по моддингу - Berserker - 22.02.2020 16:02

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


RE: Вопросы по моддингу - Zur13 - 22.02.2020 16:42

(22.02.2020 16:02)Berserker Wrote:  Zur13, в ближайшем же обновлении я отключу временно изменение генератора случайных чисел. Очень важен будет твой отчёт, исправился баг или нет. Если нужно срочнее, скомпилирую код 2.9.10 без генератора и загружу быстрее.

Да я смогу проверить, у меня сейчас ЕРА 2.9.10 английская с HD модом 5.0 РС64 модами ВоГ и Вог скрипты и моим на комбо артефакты. Хотя я не совсем понимаю как связан генератор случайных чисел с работой ресивера

!!HEy-2:A2/170/?y-8/?y-7; [y-7 number of equipped #170 hero]

Проверял также на артефакте №128 на всякий случай, тоже самое второй ПК не знает о том что герой на первом ПК надел артефакт. Это не ситуация когда скрипт заменил артефакт на карте случайным образом на другой, это моя тестовая карта в которой артефакт прямо в редакторе положен в рюкзак герою.


Нашел еще один кусок кода который не работает в новой версии ЕРА:
Похоже что в новой версии ЕРА сломался вот этот код, y1 всегда 1, в 2.8.8 работало:
Code:
** x1 == hero id  0..155
** x2 == ?RESULT (this much free slots is in hero backpack)
!?FU23041;
!!FU&v9217<>1:E; [Exit if WoG option is not ON]

!!VRy1:S0;
!!DO23042/19/82/1:Px1/=y1/?y1;     [y1 free slots counter in x1 hero backpack]


** x1 == hero id  0..155
** x2 == this much free slots counted on previous steps
** x3 == this much free slots counted on previous steps + this step
** x16 == backpack slot 19..82
!?FU23042;
!!FU&v9217<>1:E; [Exit if WoG option is not ON]

!!VRx3:Sx2;

!!HEx1:A1/?y1/x16;      [y1 Check what artifact is in x16 slot]

!!VRx3&y1<0:Sx2+1;      [change result counter x3]



RE: Вопросы по моддингу - Berserker - 22.02.2020 23:07

Quote:Да я смогу проверить, у меня сейчас ЕРА 2.9.10 английская с HD модом 5.0 РС64 модами ВоГ и Вог скрипты и моим на комбо артефакты. Хотя я не совсем понимаю как связан генератор случайных чисел с работой ресивера
Рассинхронизация может быть в другом коде, где используется VR:R. Будут разные последовательности на разных сторонах = разные события, артефакты, замены на карте.

Да, !!DO циклы оптимизированы до схожих с циклом FOR на других ЯП, подобные проверки работать не будут в !!DO/!!FU:P/!!FU:D.


RE: Вопросы по моддингу - Zur13 - 24.02.2020 15:29

Тут наткнулся на непонятную ситуацию, и единственный имеющий смысл вариант наблюдаемого поведения, это то что иногда при вызове функций, не указанные явно параметры функций не обнуляются
Code:
!!FU21020:P1/2;

!?FU21020;
* х1 == 1
* х2 == 2
* но в некоторых случаях х3 <> 0

Я сейчас не смог найти в справочнике этого, но вроде раньше где-то встречал упоминание о том что пропущенные аргументы автоматически обнуляются, там даже был пример вроде такого !!FUxxx:P1/2//4; с указанием что аргумент 3 будет считаться 0. Что-то изменилось или это относится только к явно пропущенным аргументам между "//" ?


RE: Вопросы по моддингу - igrik - 24.02.2020 15:47

Начиная с версий 2.8.4 и выше (если не ошибаюсь) обнуление x переменых в функциях убрано.
Теперь это нужно делать вручную. Да и правильнее ручное (явное) обнуление, с моей точки зрения.

Справочник начинает устаревать, но его обновление уже готовится.


RE: Вопросы по моддингу - Berserker - 24.02.2020 18:20

Zur13, сейчас сделано как в компилируемых языках. Только переданные параметры перезаписываются. Полагаться на значения по умолчанию нельзя много где (в Go разве что сделали инициализацию нулями по умолчанию). Рекомендую писать код и для y-переменных и для x-переменных, не рассчитывающий на что-либо конкретно. Добавится оптимизация какая, расчёт перестанет быть верным.


RE: Вопросы по моддингу - Zur13 - 24.02.2020 22:11

(24.02.2020 18:20)Berserker Wrote:  Zur13, сейчас сделано как в компилируемых языках. Только переданные параметры перезаписываются. Полагаться на значения по умолчанию нельзя много где (в Go разве что сделали инициализацию нулями по умолчанию). Рекомендую писать код и для y-переменных и для x-переменных, не рассчитывающий на что-либо конкретно. Добавится оптимизация какая, расчёт перестанет быть верным.

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


RE: Вопросы по моддингу - Berserker - 24.02.2020 22:22

Zur13,
Quote:В большинстве других ЯП есть проверки на количество аргументов при вызове функций
Обижаешь Ab

Version 2.9.7
------------------------
[+] Added possibility to query function arguments count for functions, called via FU:P, FU:D, DO:P.
    New command !!FU:A?$ returns number of x-arguments (not including x16 for DO:P), received by function.
    This mechanism allows to write functions with optional parameters (parameters with default values) and
    functions with variadic arguments number.

А циклы уже вместо !!SN:G можно писать на !!re. Смотри Help\Era\era ii changelog.txt

; Clear current hero army



RE: Вопросы по моддингу - Zur13 - 24.02.2020 23:44

(24.02.2020 22:22)Berserker Wrote:  Zur13,
Quote:В большинстве других ЯП есть проверки на количество аргументов при вызове функций
Обижаешь Ab

Version 2.9.7
------------------------
[+] Added possibility to query function arguments count for functions, called via FU:P, FU:D, DO:P.
    New command !!FU:A?$ returns number of x-arguments (not including x16 for DO:P), received by function.
    This mechanism allows to write functions with optional parameters (parameters with default values) and
    functions with variadic arguments number.

А циклы уже вместо !!SN:G можно писать на !!re. Смотри Help\Era\era ii changelog.txt

; Clear current hero army

Спасибо, это реально полезно. Возможно стоит помещать актуальные примеры кода не в ченжлог, а просто в отдельные текстовые файлы чтобы оно было хотя бы сгруппировано по темам как в справочнике, вроде examples_fu.txt examples_do.txt examples_general.txt вроде это не так много работы как обновление html справочника и сравнимо с обновлением ченжлога?

И еще вопрос, а область видимости имен меток какая, внутри одного триггера, файла или вообще везде?


RE: Вопросы по моддингу - Algor - 24.02.2020 23:48

(24.02.2020 23:44)Zur13 Wrote:  И еще вопрос, а область видимости имен меток какая, внутри одного триггера, файла или вообще везде?

Сейчас, емнип, внутри триггера.
Но с появлением re/br/co вообще не вижу необходимости их использования. И, возможно, лучше SN:G выпилить вообще, пока он еще не сильно укоренился.


RE: Вопросы по моддингу - Berserker - 25.02.2020 00:56

Quote:Спасибо, это реально полезно. Возможно стоит помещать актуальные примеры кода не в ченжлог, а просто в отдельные текстовые файлы чтобы оно было хотя бы сгруппировано по темам как в справочнике, вроде examples_fu.txt examples_do.txt examples_general.txt вроде это не так много работы как обновление html справочника и сравнимо с обновлением ченжлога?
Видишь ли, примеры устаревают, бывают, а структура в виде файлов, пусть и голый текст, но уже документация, за которой следить нужно и которую обновлять. По времени меня хватает только расписать хотя бы changelog. Если кто будет помогать, буду включать ваши работы без вопросов.

Quote:И еще вопрос, а область видимости имен меток какая, внутри одного триггера, файла или вообще везде?
До следующего триггера (!?XX). В последних версиях метки можно переопределять.
Quote:И, возможно, лучше SN:G выпилить вообще, пока он еще не сильно укоренился.
Увы, уже в куче скриптов и модов данный GOTO заиспользован. И для всех старых версий, на которых моды Валерия и Succession Wars другого способа сделать быстрый цикл не было.
Думаю, можно в справке пометить, что его использование не рекомендуется. И предложить использовать структурные конструкции if/el/en + re.


RE: Плагины - Algor - 25.02.2020 15:38

(25.02.2020 15:26)igrik Wrote:  Диалог заданий (журнал)

Автор: igrik
Язык: не зависит от языка
Поддерживаемые версии: ERA
Способ установки: класть в папку EraPlugins

Скачать

132
Положил рядом с 10SSkills.dll и ArtGuard.dll.


RE: Плагины - Berserker - 25.02.2020 16:26

(25.02.2020 15:26)igrik Wrote:  Диалог заданий (журнал)

Скачать
igrik, ты чудо Ab Спасибо огромное!


RE: Плагины - SergOz - 26.02.2020 20:32

(25.02.2020 15:26)igrik Wrote:  Диалог заданий (журнал)

Скачать
igrik, отличный плагин. Да, блокнот больше не нужен. Mr47_05
Спасибо!


RE: Вопросы по моддингу - Zur13 - 26.02.2020 21:14

Как выбрать для своего мода безопасный номер слота для !!SN:M массива?


RE: Вопросы по моддингу - Algor - 26.02.2020 21:44




RE: Вопросы по моддингу - Berserker - 26.02.2020 22:11

-1 выделит автоматом свободный слот в отрицательном диапазоне. А положительный диапазон вводил, так как мод Сагамоза был написан в абсолютной адресацией и нужен был инструмент для переноса его на Эру.


RE: Вопросы по моддингу - Zur13 - 26.02.2020 23:32

(26.02.2020 21:44)Algor Wrote:  

Это будет работать после загрузки игры из сейва если я один раз при старте игры выполню инициализацию массива в тригере !?PI


А после загрузки сохраненной игры, просто продолжу пользоваться ранее инициализированным и заполненным массивом

И это уже работает в текущей верси ЭРА 2.9.10?


RE: Вопросы по моддингу - Berserker - 27.02.2020 00:13

Да, да, да, да.

Era 1.5.chm есть на русском с описанием. Последний параметр SN:M как раз и отвечает за то, что в сейве сохраняются не только размеры массивов, но и их содержимое.

У тебя пока что будет вроде такого:


Удалять массивы тоже можно. !!SN:M#id;


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

Zur13, да, все верно. Если массив определен как сохраняемый (4й параметр SN:M равен 1), то достаточно инициализировать его один раз и после работать по имени с его элементами, как указано в строке 2.
Да, в 2.9.10 работает. Вообще, прочитай changelog Эры (Help\Era manual\era ii changelog.txt или здесь на форуме соотв. темы в разделе Эры) - там куча всего крайне интересного по новым возможностям. В т.ч. и примеры использования.


RE: Вопросы по моддингу - Berserker - 27.02.2020 00:24

Так, я уже совсем заговорился. s^^ и i^^ синтаксис доступен для команд SN/RD/MP ещё с 2.9.6. Поэтому пишем:



RE: Вопросы по моддингу - Zur13 - 03.03.2020 04:20

Нужна помощь вот с такой задачей:
  • 1. на поле боя есть 2 мины (расположены рядом горизонтально), их позиции известны (на самом деле мин может быть и больше и располагаться они могут как угодно).
  • 2. на поле боя есть двухклеточный монстр, BM:P для таких монстров в обычном режиме возвращает клетку под его задней частью, соответственно передняя клетка для такого монстра вычисляется в зависимости от стороны за которую он воюет (для левой это +1, а для правой -1)
  • 3. этот гадкий монстр наступает на одну из мин, и для него срабатывает триггер !?MR0, в этом триггере нужно вычислить на какую из 2-х мин он наступил. И казалось бы имея математику из п.2 проблем быть не должно, но она не всегда работает см. п.4.
  • 4. Проблема в том что триггер !?MR0 для мины срабатывает во время движения монстра, и если монстр двигался назад, то позиция возвращаемая !!BM:P, инвертируется от таковой у неподвижного монстра. И если бы движение назад можно было вычислить только из целевой позиции то это пол беды, но монстр может огибать препятствия меняя направление движения несколько раз.
  • 5. В момент срабатывания триггера !?MR0 обе мины все еще присутствуют на поле боя и через !!BU:O определяются.

Возможно есть другие способы вычислить правильно вторую клетку монстра?


RE: Вопросы по моддингу - Berserker - 03.03.2020 05:02

Не до конца понимаю задачу. Разве он может наступить сразу на две мины? И что значит «инвертируется», если позиция монстра, судя по описанию, всегда направлена к стороне его героя (левая - правая). Пример бы.


RE: Вопросы по моддингу - XEPOMAHT - 03.03.2020 12:12

(03.03.2020 05:02)Berserker Wrote:     И что значит «инвертируется», если позиция монстра, судя по описанию, всегда направлена к стороне его героя (левая - правая). Пример бы.

Думаю, что имеется в виду гендерная ориентация монстра (т.е. в какую сторону отзеркален def, в какой стороне у монстра мэ и жо и т.д.). Изменяется содовской функцией (например, можно сделать, чтобы все монстры на поле боя смотрели только в одну сторону 148 или наоборот - чтобы монстры атаковали друг друга задницами 148 ), проверяется в структуре стека (в MoP это Структура_стека.Ориентация).


RE: Вопросы по моддингу - Zur13 - 03.03.2020 13:18

(03.03.2020 12:12)XEPOMAHT Wrote:  
(03.03.2020 05:02)Berserker Wrote:     И что значит «инвертируется», если позиция монстра, судя по описанию, всегда направлена к стороне его героя (левая - правая). Пример бы.

Думаю, что имеется в виду гендерная ориентация монстра (т.е. в какую сторону отзеркален def, в какой стороне у монстра мэ и жо и т.д.). Изменяется содовской функцией (например, можно сделать, чтобы все монстры на поле боя смотрели только в одну сторону 148 или наоборот - чтобы монстры атаковали друг друга задницами 148 ), проверяется в структуре стека (в MoP это Структура_стека.Ориентация).

@Berserker Да монстр может наступить на две мины сразу двигаясь сверху вниз или снизу вверх, в этом случае они срабатывают последовательно.

С примером посложнее так как в статике, когда монстр просто стоит на поле боя всё работает верно, BM:P возвращает клетку под задней частью дефа монстра и передняя вычисляется путем +1 или -1. Проблема возникает в динамике, при движении деф монстра может несколько раз отзеркаливаться, например если монстр обходит препятствие, и когда деф отзеркален BM:P возвращает клетку под задней частью отзеркаленого дефа, а значит передняя часть будет в обратной стороне, к примеру не +1, как при статике, а -1.

Вот как-то так
Image: Homm3-ERA-landmines-BM-P.png

@XEPOMAHT а это можно как-то из скриптов проверить для стека с заданным стекайди который от 0 до 41?


RE: Вопросы по моддингу - XEPOMAHT - 03.03.2020 13:50

(03.03.2020 13:18)Zur13 Wrote:  а это можно как-то из скриптов проверить для стека с заданным стекайди который от 0 до 41?

Главная беда ERM в том, что оно не содержит готовой команды для получения адреса структуры стека (как и адресов других структур), что затрудняет прямое считывание и изменение данных стека с помощью ERM. Вот весь копеечный код, который нужен для получения структуры (из исходников ВоГ):

Code:
    bm = combatManager;
    if (mn == -1)
        if (CurrentMon)
            mon = CurrentMon;
        else
            mn = M2B_GetMonNum(bm);

    if (mn >= 0)
        mon=&bm[0x54CC+0x548*mn];

Только сделать его отдельной ERM-командой увы никто не захотел. Mad


RE: Вопросы по моддингу - igrik - 03.03.2020 14:13

(03.03.2020 13:18)Zur13 Wrote:  а это можно как-то из скриптов проверить для стека с заданным стекайди который от 0 до 41?
Можно. Ищи в теме по UN:C.
Смещение для данных о повороте стека: stack->0x44


RE: Вопросы по моддингу - Zur13 - 03.03.2020 14:43

(03.03.2020 14:13)igrik Wrote:  
(03.03.2020 13:18)Zur13 Wrote:  а это можно как-то из скриптов проверить для стека с заданным стекайди который от 0 до 41?
Можно. Ищи в теме по UN:C.
Смещение для данных о повороте стека: stack->0x44

Найти бы еще эту тему по UN:C Bad


RE: Вопросы по моддингу - igrik - 03.03.2020 15:07

Тема UN:C


RE: Вопросы по моддингу - Zur13 - 03.03.2020 15:33

(03.03.2020 15:07)igrik Wrote:  Тема UN:C

Спасибо, тема не находится поиском по форуму по запросу UN:C. А там есть и решение второй моей проблемы по проигрыванию анимации стека. Сегодня попробую оба решения.


RE: Вопросы по моддингу - daemon_n - 03.03.2020 18:28

(03.03.2020 15:33)Zur13 Wrote:  Спасибо, тема не находится поиском по форуму по запросу UN:C.

Я, к слову, это уже упоминал. Поиск работает странно



RE: Вопросы по моддингу - Berserker - 03.03.2020 20:34

daemon_n, поиск работает нормально. Просто фраза разбивается на слова, а слова должны иметь минимальную длину для индексации. 1-2 символа, как в UN перед разделителем не считаются.


RE: Вопросы по моддингу - Zur13 - 10.03.2020 22:22

(03.03.2020 14:13)igrik Wrote:  
(03.03.2020 13:18)Zur13 Wrote:  а это можно как-то из скриптов проверить для стека с заданным стекайди который от 0 до 41?
Можно. Ищи в теме по UN:C.
Смещение для данных о повороте стека: stack->0x44

Код для проверки в какую сторону "смотрит" деф на поле битвы, на основе кода подсказаного igrik, вдруг кто-то будет искать готовое решение:
Code:
!!UN:C6919200/4/?y10;                      [y10 combat manager]
!!VRy1:Sx1 *1352 +21708 +y10;              [y1 TMP address of memory struct of x1 stack]
!!VRy1:Sx1 *1352 +21708 +y10 +68;          [y1 address of x1 stack face direction]
!!VRy2:S0;                                 [y2 = 0]
!!UN:Cy1/1/?y2;                            [y2 face direction (0: faced left side; 1: faced right side)]

Возможно кто-то может помочь еще вот с такой проблемой. Мне нужно как-то отключить механику заклинания "мина", которая показывает и деактивирует вражеские мины если в армии героя есть существа для которых тип почвы на которой происходит битва является родным. Т.е. если битва происходит на траве и в армии вражеского героя есть существа из замка, например копейщики, то мины становятся бесполезными, они видимы вражескому герою и не срабатывают. Заклинание минного поля даже нельзя кастануть в этом случае, но я говорю про мины поставленные через !!BM:Q.


RE: Чем редактировать txt файлы в SOD - Awesomealldays - 12.03.2020 14:17

(30.01.2020 23:12)Berserker Wrote:  
(30.01.2020 18:45)Awesomealldays Wrote:  Хоту удалил, там мистицизм 5\10\15, поместье 250\500\1000.

Awesomealldays, мистицизм чем именно плох?

2\3\4 -> 5\10\15.
2\4\6 норм было бы.


RE: Чем редактировать txt файлы в SOD - daemon_n - 12.03.2020 15:17

(12.03.2020 14:17)Awesomealldays Wrote:  
(30.01.2020 23:12)Berserker Wrote:  
(30.01.2020 18:45)Awesomealldays Wrote:  Хоту удалил, там мистицизм 5\10\15, поместье 250\500\1000.

Awesomealldays, мистицизм чем именно плох?

2\3\4 -> 5\10\15.
2\4\6 норм было бы.

Awesomealldays, лично мне нравится мистицизм из ES за авторством Algor'а: проценты от максимума, но не меньше определённого порога.


RE: Чем редактировать txt файлы в SOD - Algor - 12.03.2020 16:33

(12.03.2020 15:17)daemon_n Wrote:  Awesomealldays, лично мне нравится мистицизм из ES за авторством Algor'а: проценты от максимума, но не меньше определённого порога.

daemon_n, да, с момента создания всегда им пользуюсь. Для обычной магии может и чуть многовато, но я затачивал в первую очередь под ReMagic, где заклинания дороже.


RE: Вопросы по моддингу - V_Maiko - 18.03.2020 23:32

I'm adding more objects to map editor and random map generator but I'm very limited with that. I can only make objects with the same attributes be generated for which they are made, for example, I can generate a thousand varieties of mermaids, because type of object 'mermaid' is made for water terrain.
Image: Screenshot-1.png
Image: Screenshot-2.png

But I can't spawn a pandora's box in the water because its object type and attribute are not supported, and I think this is more of a bug than asking, because in the map editor you can't place it on dirt terrain if it is configured with those attributes, but the random map generator generates them on land when it is supposed to generate on water. How can I make an object can be generated freely on the terrain you want without being limited to the type of object?
Image: Screenshot-4.png
Image: Screenshot-3.png

Clarification, in "AVA0128w.def" it is the new def that I extracted from HoTA, and the "AVA0128.def" is the def of the classic pandora box.


RE: Вопросы по моддингу - Berserker - 19.03.2020 00:00

Replacing objects on the first day with ERM does not fit your requirements?


RE: Вопросы по моддингу - V_Maiko - 19.03.2020 00:09

Berserker, Do I really need to write an event for something that can easily be done with the object editor? So it is true that the types of objects are made for the terrain that was created and I cannot generate them even if I put other attributes that correspond where they should be placed?


RE: Вопросы по моддингу - Berserker - 19.03.2020 04:56

V_Maiko, I don't know. Didn't investigate editor behavior at all. Possibly, there is a solution. Try to contact RoseKavalier. He wrote nice patch/mod called "Unleashed Editor". Perhaps, it can become a feature of updated editor.


RE: Вопросы по моддингу - RoseKavalier - 19.03.2020 17:31

Try to make it a different subtype, that way it can have its own land properties.

If that doesn't work then you need a patch for mapeditor, and for the game itself; you'd essentially be creating a new object subtype and need to teach RMG to use it.


RE: Вопросы по моддингу - V_Maiko - 07.04.2020 04:13

Conquering level 8 dwellings has already become useless in my mod "Third Upgrades" because 1 creature is always recruited, is there no script that allows level 8 dwellings to accumulate like normal dwellings?


RE: Вопросы по моддингу - Elmore - 07.04.2020 13:28

(07.04.2020 04:13)V_Maiko Wrote:  Conquering level 8 dwellings has already become useless in my mod "Third Upgrades" because 1 creature is always recruited, is there no script that allows level 8 dwellings to accumulate like normal dwellings?


Image: 0skfcGg.png


RE: Вопросы по моддингу - V_Maiko - 07.04.2020 19:55

Mr.S, No, I mean EXTERNAL DWELLINGS It can be cumulative, that script doesn't make dwellings become cumulative like normal dwellings.


RE: Вопросы по моддингу - ElfbI - 11.04.2020 00:35

Вот кстати да, тоже хотелось бы, чтобы жилища "восьмого" уровня накапливали существ для съема. Опционально хотя бы.


RE: Вопросы по моддингу - V_Maiko - 11.04.2020 04:25

ElfbI, From what I saw, no one knows the answer or they don't give an indication of how to start doing something like this, since neither in the ERM tutorial guides you to something like this, I'm assuming that it's something hard coded and it is difficult to achieve.

As I said on the discord server, "I understand that it can be hardcoding, but it's time to spice up level 8 creatures. We can no longer say that these creatures are special, unique and exclusive, they no longer specials since ERA was released, they need to be cumulative in their external dwellings."


RE: Вопросы по моддингу - RedScare - 11.04.2020 04:46

Добрый день.

Есть идея реализовать режим игры autochess/battlegrounds(hearthstone) на движке HOMM3.
По сути, это навигация между городом и полем боя.
Какое время находишься в городе, строишь, закупаешь войска, качаешь умения у героя,
потом автоматически начинается бой с одним из семи игроков, потом опять город и т.д.

Может ли кто подсказать, насколько сложно добавить такой режим игры/карту?
Позволяет ли движок игры/редактор карт реализовать это малой кровью или нужно будет погрязнуть в ассемблере?


RE: Вопросы по моддингу - Berserker - 11.04.2020 06:25

V_Maiko, did you try to turn option "Level 8 dwellings act as usual" and change dwellings population manually?

RedScare, прямо на текущий момент понадобится использовать несовсем интуитивный язык скриптов — ЕРМ. Скачайте любую сборку Эры и загляните в Help\Erm manual.


RE: Вопросы по моддингу - V_Maiko - 11.04.2020 09:33

Berserker, I don't understand how it is "change dwellings population manually" Sorry but I'll tell you that I always had that script enabled, but it never affected the external dwellings so that creatures always accumulate per week.


RE: Вопросы по моддингу - Algor - 11.04.2020 11:35

RedScare Wrote:Есть идея реализовать режим игры autochess/battlegrounds(hearthstone) на движке HOMM3.

RedScare, я когда попытался такое сделать, у меня получился BattleHeroes 96-copy
Только там я в процессе разработки плюнул на метания между полем и городом и вынес все развитие непосредственно в бой.


RE: Вопросы по моддингу - ElfbI - 13.04.2020 22:43

V_Maiko, as said, that option is placed into exe (hardcodded). By the way, it worked with accumulation for 8 level in old WOG.


RE: Вопросы по моддингу - daemon_n - 14.04.2020 00:09

ElfbI, вот же решение


RE: Вопросы по моддингу - ElfbI - 14.04.2020 01:34

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




RE: Вопросы по моддингу - daemon_n - 14.04.2020 01:55

ElfbI, в общем, плагин на сервере есть, и в след релизе уже в сборке будет.


RE: Вопросы по моддингу - Zur13 - 19.04.2020 04:00

Может кто-то помочь, мне нужно в бою динамически изменять описание юнита в окне по ПКМ на нем, само открытие окна ПКМ я думаю смогу поймать через триггер ММ0, но если в нем менять дескрипшн юнита например через

!!FU7701:P1/2/2/192514; или через МА

то в окне всё-равно остается старый дескрипшн. Я попробовал способ отсюда https://forum.df2.ru/index.php?showtopic=6813&view=findpost&p=193891 , но что-то функция для получения адресов Z переменных из следующего сообщения в той ветке не работает, я вот про эту функцию

Code:
!?FU12925; Получение адреса z переменной номер x1 (возврат в x2)
Поддерживаются версии: 3.58, ТЕ
!!UN:V?y1/?y2;
!!VRy3&y1=358:S40225400;
!!VRy3&y1=359:S9597416;
!!VRx2&y3=0:S0;
!!FU&y3=0:E;
!!VRx2:Sx1*512+y3;



RE: Вопросы по моддингу - daemon_n - 19.04.2020 04:03

Zur13, а если "обновить" экран?


RE: Вопросы по моддингу - Zur13 - 19.04.2020 10:48

(19.04.2020 04:03)daemon_n Wrote:  Zur13, а если "обновить" экран?

Я попробовал BU:R, но явно проблема не в нем, новый текст появляется только в следующей битве, а до конца текущей так и остается изначальное описание, так что похоже что эти строки где-то кешируются до начала битвы. Я вот про этот текст:

Image: Heroes-3-mon-descr.jpg

Правка: в общем частично удалось сделать, просто адрес новой строки получил с помощью куска кода из FUN.erm как-то так:

!!SN:E7824928/1/192517; !!VRy31:Sv1;

Но этот код не обрабатывает строку, в том смысле что нельзя подставлять туда значения переменных типа %Y1, может есть другой способ? Пока у меня в ММ0 триггере вот такой код:

Code:
!!SN:E7824928/1/192517; !!VRy31:Sv1;    [y31, mem address of z192517]
!!BMy1:G-66/?y30/d;                     [y30, mem address of stack's y1 description text]
!!FU12926:Py31/y30;                     [copy mem bytes from y31 to y30]

!?FU12926; Копирование строки по адресу. x1 - источник, x2 - приемник.
!!DO12927/0/511/1:Px1/x2;

!?FU12927;
!!VRy1:Sx1+x16;
!!VRy2:Sx2+x16;
!!UN:Cy1/1/?y3Cy2/1/y3;
!!VRx16&y3=0:S511;

Правка 2: оно похоже еще и что-то портит в памяти потому что иногда игра вылетает с таким кодом. Нужны другие варианты...


RE: Вопросы по моддингу - igrik - 19.04.2020 14:57

(19.04.2020 04:00)Zur13 Wrote:  Может кто-то помочь, мне нужно в бою динамически изменять описание юнита в окне по ПКМ на нем

1. Конечно будут утечки памяти.
2. Обрати внимание! Тут есть новый синтаксис рессиверов BM0 и UN:C (мне куда удобнее новый синтаксис. Но он не будет работать на старых версиях ЭРЫ)
Можно сделать и через старый синтаксис - как? Читай тут (под спойлером я показал разницу кодов ERM, которые делают одно и то же)


RE: Вопросы по моддингу - Berserker - 19.04.2020 16:49

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


RE: Вопросы по моддингу - Zur13 - 19.04.2020 17:34

(19.04.2020 14:57)igrik Wrote:  
(19.04.2020 04:00)Zur13 Wrote:  Может кто-то помочь, мне нужно в бою динамически изменять описание юнита в окне по ПКМ на нем

1. Конечно будут утечки памяти, ни у хрен с ними. Это уже более сложна... Не такие уж и большие утечки будут))
2. Обрати внимание! Тут есть новый синтаксис рессиверов BM0 и UN:C (мне куда удобнее новый синтаксис. Но он не будет работать на старых версиях ЭРЫ)
Можно сделать и через старый синтаксис - как? Читай тут (под спойлером я показал разницу кодов ERM, которые делают одно и то же)

Спасибо, работает супер! Вот код, работает и для старой ЭРЫ если кому надо, с подчисткой памяти (заточено на один стек, перед показом окна сменили текст FU(имя вашей функции для смены описания), сразу после показа окна вернули как было FU(имя вашей функции чтобы вернуть как было)):

Code:
********************************************************************************​
**  Function to change stack description to new one
********************************************************************************​
** x1 == stack ID
!?FU(имя вашей функции для смены описания);
!!VRz9:S^New stack description text^;
!!VRy2:S9 *512 +9597416;                 [y2, new z9 mem addr]
*!BM0:Z?y1; [получаем структуру первого стека атакующей стороны (стек 0) в y1]
!!UN:C6919200/4/?y10;                    [y10, BattleManager struct addr]
!!VRy1:Sx1 *1352 +21708 +y10;            [y1, desired stack struct]

!!VRy1:+144;                             [y1, add shift for monster stack description text reference]
!!UN:Cy1/4/?y3;                          [y3, initial monster desc reference]
!!UN:Cy1/4/y2;                           [change initial monster desc reference to new one]

!!SN:W^имя вашей переменной^/?y4;     [y4, get initial monster desc reference]
!!SN&y4=0:W^имя вашей переменной^/y3; [store initial monster desc reference]

********************************************************************************​
**  Function to restore original stack description
********************************************************************************​
** x1 == stack ID
!?FU(имя вашей функции чтобы вернуть как было);
!!VRy2:S9 *512 +9597416;                 [y2, new z9 mem addr]
*!BM0:Z?y1; [получаем структуру первого стека атакующей стороны (стек 0) в y1]
!!UN:C6919200/4/?y10;                    [y10, BattleManager struct addr]
!!VRy1:Sx1 *1352 +21708 +y10;            [y1, desired stack struct]
!!VRy1:+144;                             [y1, add shift for monster stack description text reference]

!!SN:W^имя вашей переменной^/?y3; [get initial monster desc reference]
!!UN&y3<>0:Cy1/4/y3;                     [restore initial monster desc reference]
!!SN:W^имя вашей переменной^/0;   [reset storage]



RE: Вопросы по моддингу - Algor - 19.04.2020 19:41

... вот и еще одна полезная функция для общей библиотеки. Да, Берс?


RE: Вопросы по моддингу - Berserker - 19.04.2020 20:31

Algor, конечно. Но каждый продукт выпускается отдельно (мод ли, пакет из репозитория ли), имеет своих maintainers (команда поддержки), семантические версии, возможность зависимости модов от них (как в последнем менеджере модов от SyDr) и обновляются с частотой, не связанной с частотой обновления условного движка.

Я отпустил моды в свободное плавание и рад этому. Сейчас огромная сборка держится на том, что daemon_n тратит 90% своего времени на неё. Изменятся жизненные обстоятельства и никто её в текущем виде не обновит. Модульность и разделение ответственное — наше всё. А потом появляются люди, готовые объединить ряд модов в один установщик.


RE: Вопросы по моддингу - Bes - 19.04.2020 20:48

Berserker, он тебя троллит.. 103

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


RE: Вопросы по моддингу - Berserker - 19.04.2020 23:32

Bes, десяток моддеров пишет удобные для установки моды, 1 человека объединяет их в сборку для масс. Противоречий нет.


RE: Вопросы по моддингу - Bes - 19.04.2020 23:57

а когда не станет такого "сборщика вкуснятины"? всё опять в застой провалится?
печально будетSorry



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

Berserker, ок, пусть FUN остается в рамках ES и каждый по мере необходимости вытаскивает себе нужные куски. Или всё целиком, как посчитает нужным.

А потом я психану, поправлю пару имен и куча подсаженных на FUN модов перестанет работать Spiteful


RE: Вопросы по моддингу - Bes - 20.04.2020 02:40

Algor, ну хоть оправдаешь тогда название этой "весёлой" солянки... ты всех предупредил задолго до часа икс 148



RE: Вопросы по моддингу - igrik - 20.04.2020 02:53

(20.04.2020 02:00)Algor Wrote:  Berserker, ок, пусть FUN остается в рамках ES и каждый по мере необходимости вытаскивает себе нужные куски. Или всё целиком, как посчитает нужным.

А потом я психану, поправлю пару имен и куча подсаженных на FUN модов перестанет работать Spiteful
Давай я создам такую библиотеку в Wog Scripts


RE: Вопросы по моддингу - Berserker - 20.04.2020 03:31

igrik, не лучше ли отдельный мод?


RE: Вопросы по моддингу - Algor - 20.04.2020 11:06

igrik, Wog Scripts в этом плане сейчас от ERA Scripts не отличается - такой же отделенный от базовой поставки мод.
Просто делать общую библиотеку надо или в базе или, действительно, отдельным модом. Но, в последнем случае, такой мод со временем станет must have, по сути 2й базой. И будут уже 2 базы со всеми вытекающими сложностями и зависимостями.

Поэтому мне и видится предпочтительным держать такую библиотеку в Эре. Не думаю, что расширять ее понадобится чаще, чем релизить саму платформу.
А в отдельной теме собирать/обсуждать коллекцию полезных функций для включения в очередной релиз.


RE: Вопросы по моддингу - igrik - 20.04.2020 11:23

Мои мысли по этому поводу таковы: сама игра есть библиотека необходимых функций, событий и свойств. Я поэтому и очень сильно просил Берса, чтобы он включил 3 рессивера в базу эры (HE:Z, BM:Z и расширенное UN:C). Через них можно сделать практически половину необходимого функционала для стандартных потребностей пользователя. Просто нужно показать пользователю как это научиться легко делать самому.

Поэтому я не вижу смысла в ERM библиотеке. Также я не вижу чем полезным можно дополнить тот же FUN.erm. В нем уже есть всё необходимое.


RE: Вопросы по моддингу - Algor - 20.04.2020 12:25

(20.04.2020 11:23)igrik Wrote:  Также я не вижу чем полезным можно дополнить тот же FUN.erm. В нем уже есть всё необходимое.

igrik, ок, вот тебе пример: хочу узнать максимум маны героя, чтобы, скажем, восстановить/забрать/и пр. 10%, не важно...
Кинешь сходу код без UN:C который легко и просто, с учетом всех нюансов вернет мне его? Не?

А если кинешь код с UN:C, я вставлю его в FUN и можно будет !!FU(FUN.GetHeroMaxMana):Ph/?m; пользовать.

(20.04.2020 11:23)igrik Wrote:  Просто нужно показать пользователю как это научиться легко делать самому.
Да, можно все делать сбазовым наборос инструментов. Да хоть на асме можно все делать.
Вопрос только в том, нахрена тратить время и изобретать велосипеды, которые в общем случае будут еще и кривыми, если можно взять готовый, уже вылизанный, сесть на него и ехать дальше писать что-то действительно новое?


RE: Вопросы по моддингу - igrik - 20.04.2020 12:41

(20.04.2020 12:25)Algor Wrote:  igrik, ок, вот тебе пример: хочу узнать максимум маны героя, чтобы, скажем, восстановить/забрать/и пр. 10%, не важно...
Кинешь сходу код без UN:C который легко и просто, с учетом всех нюансов вернет мне его? Не?
Это частный случай. А сколько таких частных случаев в игре? Правильно -> вагон и маленькая тележка.


(20.04.2020 12:25)Algor Wrote:  Да, можно все делать с базовым набором инструментов. Да хоть на асме можно все делать.
Вопрос только в том, нахрена тратить время и изобретать велосипеды, которые в общем случае будут еще и кривыми, если можно взять готовый, уже вылизанный, сесть на него и ехать дальше писать что-то действительно новое?
Т.е. сейчас ты предлагаешь написать функции на каждый вопрошаемый "бзык". И сколько таких функций у тебя в библиотеке будет. Тысяча, две....?


RE: Вопросы по моддингу - Algor - 20.04.2020 12:55

igrik, я понимаю, что не подстелишь везде соломку. Это и не нужно.
Но те моменты, которые требуют использования особых хуков или UN:C не плохо бы оформить в виде функций.

Конечно, если бы были !!HE-ресиверы, возвращающие тот же максимум маны или имя фала портрета героя, было бы еще более здОрово.
Но их нет и, значит, базовым функционалом ERM оно не делается (кроме, может, совсем-через-жопных вариантов). Поэтому такая библиотека, имхо - выход.
Для себя я так решил давно. И сделал. И продолжу развивать по мере появления необходимости.

Давить и спорить не хочется. Вы с Берсом видите проблему под другим углом. Меня ваши доводы не убедили, вас мои - тоже. Пора выдохнуть и заняться делом Yes


RE: Вопросы по моддингу - Zur13 - 20.04.2020 13:03

Я от имени простого ЕРМ скриптера неумеющего в UN:C выскажусь.

Товарищ igrik прав, адрес менеджера героев и менеджера битвы настолько часто нужен что их действительно стоило бы добавить в базовый ЕРМ, а почему не добавить расширенный синтаксис UN:C мне вообще не ясно.

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

Как пример вот тут описана функция получения адреса Z переменной, и она оказывается, не работает или уже не работает в ЭРЕ, есть подозрение что постепенно всё больше таких кусочков кода могут устаревать с развитием ЭРЫ, а подчисткой форумов никто заниматься не будет и потом перебирать накопанные на форумах нерабочие варианты это не есть хорошо. Я про то что такая библиотека даст возможность ЭРЕ более свободно развиваться ведь если такой кусочек кода есть только в библиотеке с развитием ЭРЫ достаточно будет поправить это место только в этой в библиотеке чтобы все моды не отваливалились с новым релизом.

P.S. к библиотеке можно даже прикрутить набор юнит тестов чтобы проверять не отвалилось ли чего в новой сборке ЭРЫ Sm


RE: Вопросы по моддингу - XEPOMAHT - 20.04.2020 14:41

(20.04.2020 13:03)Zur13 Wrote:  Как пример вот тут описана функция получения адреса Z переменной, и она оказывается, не работает или уже не работает в ЭРЕ, есть подозрение что постепенно всё больше таких кусочков кода могут устаревать с развитием ЭРЫ

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

Естественно, способ получения адреса по той ссылке - старый и не рассчитан на ERA (которой тогда ещё не было).

Про устаревание: к примеру, ERA PLUS переносит кучу данных для поддержки новых игровых фракций, после чего злая половина ERM-команд просто не работают или работают с ошибками. И это совсем не повод менять сам код ERA ради поддержки изменений в ERA PLUS - тут всё всецело на совести авторов модов, а не автора платформы ERA. Т.е. только моддеры могут скооперироваться и выпустить "мод для моддеров" с набором полезных ERM-функций.


RE: Вопросы по моддингу - Zur13 - 20.04.2020 15:27

(20.04.2020 14:41)XEPOMAHT Wrote:  
(20.04.2020 13:03)Zur13 Wrote:  Как пример вот тут описана функция получения адреса Z переменной, и она оказывается, не работает или уже не работает в ЭРЕ, есть подозрение что постепенно всё больше таких кусочков кода могут устаревать с развитием ЭРЫ

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

Естественно, способ получения адреса по той ссылке - старый и не рассчитан на ERA (которой тогда ещё не было).

Про устаревание: к примеру, ERA PLUS переносит кучу данных для поддержки новых игровых фракций, после чего злая половина ERM-команд просто не работают или работают с ошибками. И это совсем не повод менять сам код ERA ради поддержки изменений в ERA PLUS - тут всё всецело на совести авторов модов, а не автора платформы ERA. Т.е. только моддеры могут скооперироваться и выпустить "мод для моддеров" с набором полезных ERM-функций.

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


RE: Вопросы по моддингу - XEPOMAHT - 20.04.2020 16:07

(20.04.2020 15:27)Zur13 Wrote:  проблемы обратной совместимости занимают довольно много времени, и вынесенная библиотека может частично помочь отвязать функционал предоставляемый ЭРА от модов, такой себе промежуточный слой. Т.е. мое предложение таково что нужно выделить одну библиотеку открытую для правок модерами, и на нее ориентироваться при обновлении ЭРА (из разряда если обновление ломает что-то, то вот такой фикс в этой библиотеке должен исправить ситуацию).

Ну если Берсеркер сможет и захочет целиком выделить код, отвечающий за ERM, из era.dll, создать отдельную библиотеку, к примеру erm.dll, и отдать её вместе с исходными кодами сообществу моддеров, тогда моддеры сами смогут следить за совместимостью, что-то добавлять или убирать в ERM по своему усмотрению (после чего может расплодиться куча разных версий erm.dll, под которых делать "совместимые" со всеми версиями одной библиотеки станет ещё геморройнее 148 ).

Делать фиксы ERM-комманд и сейчас может каждый желающий (даже с помощью UN:C можно изменить работу команды UN:C 148 ), если не умеете, просите готовую библиотеку - вряд ли найдётся сейчас такой добряк, который сделает такую грязную работу за Вас.

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


RE: Вопросы по моддингу - Zur13 - 20.04.2020 16:20

(20.04.2020 16:07)XEPOMAHT Wrote:  Ну если Берсеркер сможет и захочет целиком выделить код, отвечающий за ERM, из era.dll, создать отдельную библиотеку, к примеру erm.dll, и отдать её вместе с исходными кодами сообществу моддеров, тогда моддеры сами смогут следить за совместимостью, что-то добавлять или убирать в ERM по своему усмотрению (после чего может расплодиться куча разных версий erm.dll, под которых делать "совместимые" со всеми версиями одной библиотеки станет ещё геморройнее 148 ).

Делать фиксы ERM-комманд и сейчас может каждый желающий (даже с помощью UN:C можно изменить работу команды UN:C 148 ), если не умеете, просите готовую библиотеку - вряд ли найдётся сейчас такой добряк, который сделает такую грязную работу за Вас.

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

Мы кажется говорим о разных вещах, под библиотекой ЕРМ функций я имелл ввиду имено билбиотеку ерм функций в виде, одного или нескольких ЕРМ файлов с функциями внутри которых используется в том числе UN:C команды, типа таких:

!?FU(EraGetMaxHeroMana);
!?FU(EraGetBattlefieldStackMemRef);
!?FU(EraGetZVarMemRef);
!?FU(EraSetArtNameFromErtString);

И если после обновления ЭРЫ сбивается адресация UN:C, то достаточно будет править код только в этой библиотеке, а все моды использующие функционал библиотеки смогут продолжать работать как работали без обновлений.


RE: Вопросы по моддингу - XEPOMAHT - 20.04.2020 16:46

(20.04.2020 16:20)Zur13 Wrote:  билбиотеку ерм функций в виде, одного или нескольких ЕРМ файлов с функциями внутри которых используется в том числе UN:C команды, типа таких:

!?FU(EraGetMaxHeroMana);
!?FU(EraGetBattlefieldStackMemRef);
!?FU(EraGetZVarMemRef);
!?FU(EraSetArtNameFromErtString);

И если после обновления ЭРЫ сбивается адресация UN:C, то достаточно будет править код только в этой библиотеке, а все моды использующие функционал библиотеки смогут продолжать работать как работали без обновлений.

А отчего такой "библиотекой" не может быть тот же ERA Scripts? И Вы сами можете исправить неправильную адресацию UN:C и выложить обновлённый FUN.erm для включения его в обновление ERA Scripts. Поменять erm-скрипт и поделиться им в теме скриптов - разве так сложно?


RE: Вопросы по моддингу - Zur13 - 20.04.2020 16:58

(20.04.2020 16:46)XEPOMAHT Wrote:  А отчего такой "библиотекой" не может быть тот же ERA Scripts? И Вы сами можете исправить неправильную адресацию UN:C и выложить обновлённый FUN.erm для включения его в обновление ERA Scripts. Поменять erm-скрипт и поделиться им в теме скриптов - разве так сложно?

Хотя бы потому что ERA Scripts содержит просто тонну расширенных игровых механик, и кода который может мешать другим мододелам, потому включать её как базовую зависимость для всех остальных модов неправильно. Но вот FUN.erm оказался прямо очень полезен и удобен, настолько, что его просто хочется увидеть отдельным базовым модом, но опять-таки если развитием этого мода смогут заниматься мододелы, то нужно чтобы и при разработке ЭРЫ его наличие учитывалось. Как я писал мне кажется что правильно было бы выделить такой мод-библиотеку как промежуточный слой между ЕРМ и базой ЭРА.


RE: Вопросы по моддингу - Zur13 - 20.04.2020 17:14

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

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

P.S.> Когда разработчики Цивилизации 6 выпустили осеннее обновление и внезапно два десятка моих модов перестали работать было не весело, пришлось 3 недели только и заниматься починкой и перезаливом всего. Не буду рассказывать что я обо всё этом думал тогда Sm


RE: Вопросы по моддингу - Algor - 20.04.2020 17:19

Предлагаю продолжить тут.


RE: Вопросы по моддингу - XEPOMAHT - 20.04.2020 18:10

(20.04.2020 17:14)Zur13 Wrote:  И если честно я пока не понимаю конт-аргументации, почему одна централизованная библиотека расширенных функций это плохо? Ведь наоборот это облегчает ситуацию и для модописателей и для разработчика ЭРА.

Плохо тем, что нужен хотя бы 1 человек, который будет заниматься систематизацией, обновлением и добавлением новых erm-функций. Который послезавтра не положит болт с резьбой на это дело. Может быть Algor согласится этим заниматься - желающим необходимо написать в его теме.


RE: Вопросы по моддингу - Algor - 20.04.2020 18:44

(20.04.2020 18:10)XEPOMAHT Wrote:  Плохо тем, что нужен хотя бы 1 человек, который будет заниматься систематизацией, обновлением и добавлением новых erm-функций. Который послезавтра не положит болт с резьбой на это дело.
Git с доступом для нескольких проверенных модеров. + Тема с предложением/обсуждением нововведений или корректировок.


RE: Вопросы по моддингу - Berserker - 21.04.2020 06:02

Quote:Прямая адресация - зло. Для совместимости с данными, которые могут быть перенесены другими моддерами, лучше считывать адреса с железобетонных функций, которые их используют.
В ERA Plus нужно просто вызывать RedirectMemoryBlock, как я делаю в нескольких местах Typhon 2.72. В результате !!UN:C будет работать с адресами перенесённых структур. Там таблица поиска в памяти вида [старый адрес, новый адрес, размер старой структуры].

Во всём остальном Zur13 прав. Библиотеки решают массу проблем, обеспечивают совместимость через сокрытие деталей реализации и разгружают «базу». Например, в языке СИ почти всё, что можно, вынесено на уровень библиотек, а не средств языка.


RE: Вопросы по моддингу - XEPOMAHT - 21.04.2020 12:05

(21.04.2020 06:02)Berserker Wrote:  В ERA Plus нужно просто вызывать RedirectMemoryBlock, как я делаю в нескольких местах Typhon 2.72. В результате !!UN:C будет работать с адресами перенесённых структур. Там таблица поиска в памяти вида [старый адрес, новый адрес, размер старой структуры].

Пока что страшусь использовать RedirectMemoryBlock, т.к. она довольно не простая (с тем, чтобы просто указать ЭРЕ на расширенную таблицу монстров, мне пришлось дожидаться твоей версии Typhon и потом ещё искать место в коде, из которого RedirectMemoryBlock срабатывала корректно). И в ERA Plus RedirectMemoryBlock можно использовать только для структуры монстров, к которой часто обращаются через ERM и плагинами, остальные структуры, которые были перенесены, моддерами почти не используются (попадаются такие ERMэшники-экстрималы, но они обычно за километр обходят ERA Plus 148 ), поэтому жду того времени, когда ERM в era.dll больше не будет изменяться и тогда можно будет менять ERM уже в ERA Plus с поддержкой всех перенесённых структур.


RE: Вопросы по моддингу - Berserker - 21.04.2020 16:31

XEPOMAHT, функция элементарная. Приведи пример старого адреса, названия переменной с новым и размера старой области. Я напишу код вызова (там одна строка). Через UN:C сам увидишь, что всё верно работает.


RE: Вопросы по моддингу - XEPOMAHT - 21.04.2020 17:19

Пример: таблица запрета артефактов (та самая, из-за которой до сих пор ругается ERM при загрузке карты в ERA PLUS)

Старый адрес: [699538h]+4E2B4h
Название переменной: Таблица_запрета_артефактов
Новый адрес: [699538h]+4E2B4h+321488
Размер старой области: 90h


RE: Вопросы по моддингу - Berserker - 21.04.2020 17:57

XEPOMAHT, сразу после патча на подмену адреса.
Code:
mov eax, [699538h]
add eax, 4E2B4h; eax - старый адрес
lea ecx, [eax + 321488]; ecx - новый адрес
stdcall [RedirectMemoryBlock], eax, 90h, ecx

В ЕРМ



RE: Вопросы по моддингу - XEPOMAHT - 21.04.2020 18:24

(21.04.2020 17:57)Berserker Wrote:  В ЕРМ

Теоретически, должно быть так:


К у2 точно прибавится 321488, чтобы получить новый адрес??? 148 Ведь на твой RedirectMemoryBlock посылаются реальные адреса памяти, а скрипт оперирует сложением с базовым.

И что будет, если где-нибудь в другом месте встретится число 3282056 (или случайно произойдёт совпадение реального адреса с каким-нибудь числом в скрипте, мне не известно, как срабатывают проверки при обработке данных из RedirectMemoryBlock), не имеющее никакое отношение к таблице запрета артефактов??? 148


RE: Вопросы по моддингу - Berserker - 21.04.2020 18:56

Точно, неверно смещение скопировал. У тебя верный код.
Ничего нигде не совпадёт. Игра запускается, адрес [699538h]+4E2B4h становится фиксированным и известным. Назовём его X.
Тогда таблица занимает память [X..X + 0x90 - 1].
Новая таблица у тебя перенесена в память [Y..Y + очень много - 1]
У Эры есть запись, что [X..X + 0x90 - 1] нужно транслировать в [Y..Y + 0x90 - 1]

Мы в ЕРМ в любом месте получаем старый адрес X
Затем находим его новый адрес:
После чего имеем "Y". Можно смело прибавлять индекс артефакта * размер записи для артефакта, чтобы сослаться на запрет конкретного артефакта. Всё. Никаких багов, ошибок, двусмысленностей.

Пример, перенос с адреса 1000 структуры на 200 байт на адрес 2000.
Было 1000..1199, стало 2000..2499 (структура расширена).

Для безопасной работы с расширенными структурами нужно не по 1000 + номер арта * 4 проводить работу, а сперва получить реальный базовый адрес структуры.
GetRealAddr(1000) = 2000.
Всё, теперь прибавляй, что хочешь.

В Era 2.9.13 есть команда !!UN:C[базовый адрес]/[смещение]/[размер]/[значение].
Вот она работает в точности так, как описано выше. Сперва получает реальный адрес для базового, только потом прибавляет смещение.


Чёрт. Понял, что написал полный бред. Херомант, ну ты и затейник. Если ты расширил таблицу путём изменения указателя в структуре данных, то не нужны RedirectMemoryBlock и GetRealAddr вообще. У тебя по

!!UN:C6919480/4/?y1;
!!VRy1:+320180; y1 - всегда актуальный адрес

Вот если ты расширяешь статичную область памяти (например, строго по 0x500000 размером 1000 байт), на которую нет единого указателя, вот тогда и нужен RedirectMemoryBlock.


RE: Вопросы по моддингу - igrik - 21.04.2020 19:18

(21.04.2020 18:56)Berserker Wrote:  У тебя по

!!UN:C6919480/4/?y1;
!!VRy1:+320180; y1 - всегда актуальный адрес
Ага, если конечно ХЕРОМАНТ будет в 6919480 заносить адрес смещенной таблицы))


RE: Вопросы по моддингу - Berserker - 21.04.2020 20:13

igrik, если не будет, то это ахтунг )))


RE: Вопросы по моддингу - XEPOMAHT - 21.04.2020 21:03

(21.04.2020 19:18)igrik Wrote:  если конечно ХЕРОМАНТ будет в 6919480 заносить адрес смещенной таблицы))

Не, точно не будет, т.к. расширению базовой структуры ничего не мешает (в чём её огромный плюс). Главное, чтобы этим занимался только 1 плагин в ERA, иначе будет истинный ахтунг.


RE: Вопросы по моддингу - Berserker - 21.04.2020 22:32

XEPOMAHT, вот как это понимать? Весь геройский код работает со старой таблицей? Если с новой и ты патчишь код для новых смещений, то это в корне неверно. Нужно просто подменить адрес.


RE: Вопросы по моддингу - XEPOMAHT - 22.04.2020 01:24

(21.04.2020 22:32)Berserker Wrote:  Весь геройский код работает со старой таблицей?

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

(21.04.2020 22:32)Berserker Wrote:  Если с новой и ты патчишь код для новых смещений, то это в корне неверно. Нужно просто подменить адрес.

Если бы было всё так просто, новые города в WoG появились бы ещё в 2005 году. Замена адреса на всю таблицу работает только для небольших и простых изолированных таблиц, типа таблицы монстров (что в WoG было реализовано ещё в 2001 году). Крупные массивы данных типа базовой структуры - только через непосредственное перераспределение данных в памяти бинарным патчем. А вот данные стека уже переносятся только заменой кода (т.к. менять адресацию в стеке так, чтобы работа функций при этом не нарушилась - полный хардкор).


RE: Вопросы по моддингу - Berserker - 22.04.2020 04:48

Не соглашусь. Пусть есть большая структура, которая состоит из трёх других структур, разделённых мусором.
Пусть есть указатель на эту большую структуру, например [699538h].

Тогда патчим все смещения от этой большой структуры до трёх подструктур так, чтобы итогово смещение = новый адрес подструктуры - адрес начала большой старой структуры.
Вызываем RedirectMemoryBlock, как в зачёркнутом посте выше для каждой подструктуры.

В результате получаем совместимость с плагинами и lua/erm-скриптами, который будут использовать UN:C или GetRealAddr.

!!UN:C6919480/4/?y1;
!!VRy1:+320180; y1 - адрес старой подструктуры запрещённых артефактов

!!UN:Cy1/смещение/4/?y2; прочли данные уже из новой

mov eax, [699538h]
add eax, 4E2B4h; eax - старый адрес
lea ecx, [eax + 641668]; ecx - новый адрес. Смещение вроде бы верно расчитал
stdcall [RedirectMemoryBlock], eax, 90h, ecx


RE: Вопросы по моддингу - XEPOMAHT - 22.04.2020 11:31

(22.04.2020 04:48)Berserker Wrote:  Тогда патчим все смещения от этой большой структуры до трёх подструктур так, чтобы итогово смещение = новый адрес подструктуры - адрес начала большой старой структуры.
Вызываем RedirectMemoryBlock, как в зачёркнутом посте выше для каждой подструктуры.

Хорошо, к примеру была таблица по адресу 6666, с помощью RedirectMemoryBlock указываем, что она переместилась на 6667. Какой-нибудь левый скрипт использует следующий код:

!!VRy1:S1;
!!VRy1:+6665;

Что получится в итоге? 6666 или 6667?

И если честно, мне плохо понятен принцип работы RedirectMemoryBlock. Она проверяет значения при каждой математической операции? Смещения могут быть очень маленькими, что в итоге может превратить любой ERM-код в тыкву. Технического описания по RedirectMemoryBlock по-прежнему нету (соответственно, когда не знаешь последствий от использования данного вызова, сложно с ней работать, принцип чёрного ящика здесь не работает).

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

Так же может использоваться прямая адресация от базового значения, без использования адреса субтаблиц (т.к. адрес сразу вычисляется для определённой ячейки первой строки таблицы, а не её начала, чтобы использовать, например, в цикле).


RE: Вопросы по моддингу - Berserker - 22.04.2020 17:29

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

RedirectMemoryBlock запоминает конкретную физическую область памяти с абсолютным начальным адресом и абсолютной длиной.
Пример: с адреса 6000 длиной 550 байт. Запомнили диапазон [6000..6549]. Это реальные старые адреса.
А новые, например, [100000..100549]. Их преобразование — элементарная задача двоичного поиска и замены.

Херомант, тут смешались в кучу кони, люди.

1) Код игры ты патчишь так, как нужно, чтобы он работал с новыми адресами структур.
2) Ты всегда можешь определить старый абсолютный адрес [под]структуры и новый. С ними и вызывай RedirectMemoryBlock.
2) Код lua/erm скриптов будет использовать UN:C и GetRealAddr. Если есть опасение, что подструктуры перенесены в разные области памяти, то GetRealAddr вызывается для каждой подструктуры. Сперва определяем новый адрес подструктуры, потом к нему прибавляем уже смещение. То, что в коде игры нас не интересует.


RE: Вопросы по моддингу - XEPOMAHT - 22.04.2020 19:00

(22.04.2020 17:29)Berserker Wrote:  таблицы нельзя переносить сами в себя, ты это знаешь. Иначе никакой код работать нормально не будет. Всегда в отдельную, непересекающуюся память.

Вообще-то так и делаю, т.к. чтобы изменить значение базового адреса таблицы - не хватит всей жизни 148 (базовый адрес может передаваться от функции к функции через сотни, если не тысячи, функций, он постоянно где-нибудь да хранится (в стеке, переменных, до которых простым бинарным патчем не доберёшься), данные, зависящие от базового адреса, используются повсеместно, поэтому потребуется изменить ВЕСЬ КОД ИГРЫ только ради одной таблицы).

А вот перенесение данных внутри одной структуры в одной единой области памяти с сохранением базового адреса неизменным - то, что реально работает (и не только в MoP/ERA PLUS, но и ещё в одном очень известном глобальном моде). Быстро и эффективно, прошло проверку временем, но увы, не дружит с RedirectMemoryBlock (а может быть и дружит, только до сих пор непонятно как можно оформить вызов RedirectMemoryBlock с правильными адресами).

Скажете, что будут утечки памяти из-за использования стандартной области памяти Третьих Героев без выделения отдельной непересекающейся памяти через dll? А вот нет, утечек не происходит, герои бегают по карте и строят Причалы с Форджами 148 , значит, считаю, что в плане кода, добавляющего новые игровые фракции, всё сделано правильно (только противоречит нормам профессиональных программистов, но главное не нормы, а результат). Минус естественно в совместимости с большинством модов для ERA, которые с помощью GetRealAddr не смогут получить правильные адреса, тут я тоже ничего придумать не могу 105

В общем, то, что кажется немыслимым для одних людей, - норма для других. ERA PLUS всегда будет модом-изгоем - это плата за быстрое добавление в ERA новых игровых фракций. С MoP вот всё гораздо проще - никто не делает моды под MoP.


RE: Вопросы по моддингу - Berserker - 22.04.2020 20:00

XEPOMAHT, присутствует путаница в рассуждениях.
Повторюсь:
Можно сохранить базовый указатель на большую структура а-ля ИГРА.

ИГРА {
    мусор
    мусор
    таблица портретов
    мусор
    таблица запрещённых приёмов
    мусор
    таблица внебрачных связей
}

Можно при этом перенести любые подструктуры/таблицы на любые адреса.
В коде игры к таким подструктурам обращения будут следующие: [ИГРА] + Смещение.
Можно изменить Смещение так, что конечный адрес будет указывать на любое место в оперативной памяти (могут потребоваться хуки, если размер смещения не 4 байта.

Далее.
Можно сообщить плагинам/Эре/скриптам соответствие старых адресов подструктур новым.

Где я не прав?


RE: Вопросы по моддингу - feanor - 22.04.2020 20:02

Quote:Можно изменить Смещение так, что конечный адрес будет указывать на любое место в оперативной памяти (могут потребоваться хуки, если размер смещения не 4 байта.
Собственно, в хоте с героями так и сделано


RE: Вопросы по моддингу - XEPOMAHT - 22.04.2020 20:25

(22.04.2020 20:00)Berserker Wrote:  Можно при этом перенести любые подструктуры/таблицы на любые адреса.

У меня примерно так:

Было:

ИГРА {
0 - мусор
100 - стартовая структура героев
200 - мусор
300 - таблица портретов
330 - мусор
400 - таблица самих героев
600 - мусор
1000 - конец таблицы
}

Стало:

ИГРА {
0 - мусор
100 - таблица портретов
160 - пусто
200 - мусор
300 - пусто
330 - мусор
400 - стартовая структура героев
600 - мусор
1000 - таблица самих героев
1400 - конец таблицы
}

И как такие изменения сообщить плагинам/Эре/скриптам?

(22.04.2020 20:02)feanor Wrote:  Собственно, в хоте с героями так и сделано

В WoG 3.59 тоже. Как будто один человек всё делал.


RE: Вопросы по моддингу - Berserker - 22.04.2020 20:43

В твоём примере
RedirectMemoryBlock([ИГРА] + 100, размер = 100, [ИГРА] + 400)
RedirectMemoryBlock([ИГРА] + 300, размер = 30, [ИГРА] + 100)
RedirectMemoryBlock([ИГРА] + 400, размер = 200, [ИГРА] + 1000)


RE: Вопросы по моддингу - XEPOMAHT - 22.04.2020 20:53

(22.04.2020 20:43)Berserker Wrote:  В твоём примере
RedirectMemoryBlock([ИГРА] + 100, размер = 100, [ИГРА] + 400)
RedirectMemoryBlock([ИГРА] + 300, размер = 30, [ИГРА] + 100)
RedirectMemoryBlock([ИГРА] + 400, размер = 200, [ИГРА] + 1000)

Спасибо, теперь понятно. Теперь осталось узнать список всех таблиц, для получения адресов которых в era.dll применяется GetRealAddr.

Т.к. патч на игровые фракции переносит 77 таблиц, думаю, что 90% из них скрипты/плагины не используют (т.к. мало кто о них что-нибудь знает).


RE: Вопросы по моддингу - Berserker - 22.04.2020 20:59

Я пока только частично использую, там, где нужно:
Code:
ZvsIsGameLoading           := GameExt.GetRealAddr(ZvsIsGameLoading);
ZvsTriggerIfs              := GameExt.GetRealAddr(ZvsTriggerIfs);
ZvsTriggerIfsDepth         := GameExt.GetRealAddr(ZvsTriggerIfsDepth);
ZvsChestsEnabled           := GameExt.GetRealAddr(ZvsChestsEnabled);
ZvsGmAiFlags               := GameExt.GetRealAddr(ZvsGmAiFlags);
IsWoG                      := GameExt.GetRealAddr(IsWoG);
WoGOptions                 := GameExt.GetRealAddr(WoGOptions);
ErmEnabled                 := GameExt.GetRealAddr(ErmEnabled);
ErmErrCmdPtr               := GameExt.GetRealAddr(ErmErrCmdPtr);
ErmDlgCmd                  := GameExt.GetRealAddr(ErmDlgCmd);
MrMonPtr                   := GameExt.GetRealAddr(MrMonPtr);
HeroSpecsTable             := GameExt.GetRealAddr(HeroSpecsTable);
HeroSpecsTableBack         := GameExt.GetRealAddr(HeroSpecsTableBack);
HeroSpecSettingsTable      := GameExt.GetRealAddr(HeroSpecSettingsTable);
SecSkillSettingsTable      := GameExt.GetRealAddr(SecSkillSettingsTable);
SecSkillNamesBack          := GameExt.GetRealAddr(SecSkillNamesBack);
SecSkillDescsBack          := GameExt.GetRealAddr(SecSkillDescsBack);
SecSkillTextsBack          := GameExt.GetRealAddr(SecSkillTextsBack);
MonNamesSettingsTable      := GameExt.GetRealAddr(MonNamesSettingsTable);
MonNamesSingularTable      := GameExt.GetRealAddr(MonNamesSingularTable);
MonNamesPluralTable        := GameExt.GetRealAddr(MonNamesPluralTable);
MonNamesSpecialtyTable     := GameExt.GetRealAddr(MonNamesSpecialtyTable);
MonNamesSingularTableBack  := GameExt.GetRealAddr(MonNamesSingularTableBack);
MonNamesPluralTableBack    := GameExt.GetRealAddr(MonNamesPluralTableBack);
MonNamesSpecialtyTableBack := GameExt.GetRealAddr(MonNamesSpecialtyTableBack);
SecSkillNames              := GameExt.GetRealAddr(SecSkillNames);
SecSkillDescs              := GameExt.GetRealAddr(SecSkillDescs);
SecSkillTexts              := GameExt.GetRealAddr(SecSkillTexts);
MonInfos                   := GameExt.GetRealAddr(MonInfos);



RE: Вопросы по моддингу - Элементалист - 29.04.2020 19:25

вопрос, можно ли добавлять/изменять флаги существам без тифона? по типу летает/стрелок/нежить и т. п.


RE: Вопросы по моддингу - ElfbI - 29.04.2020 21:26

Элементалист, можно через erm, например ресивер !!МА. Если нужно что-то конкретное, спрашивайте здесь:

http://wforum.heroes35.net/showthread.php?tid=4692&page=47


RE: Вопросы по моддингу - planetavril - 29.04.2020 23:44

there is a way to add heroes and other monoliths?


RE: Вопросы по моддингу - Элементалист - 30.04.2020 11:22

(29.04.2020 21:26)ElfbI Wrote:  Элементалист, можно через erm, например ресивер !!МА. Если нужно что-то конкретное, спрашивайте здесь:

http://wforum.heroes35.net/showthread.php?tid=4692&page=47
Про ерм знаю, хочется без скриптов обойтись, чисто правкой текстовиков 116. Мучает лишь незнание того, какой текстовик править: crtraits, crtrait0 или zcrtrait?


RE: Вопросы по моддингу - XEPOMAHT - 30.04.2020 11:25

(22.04.2020 20:59)Berserker Wrote:  Я пока только частично использую, там, где нужно:
Code:
...
HeroSpecsTable             := GameExt.GetRealAddr(HeroSpecsTable);
HeroSpecsTableBack         := GameExt.GetRealAddr(HeroSpecsTableBack);
HeroSpecSettingsTable      := GameExt.GetRealAddr(HeroSpecSettingsTable);
...

По новым героям совместимость с ERA потребуется по этим таблицам. А именно:

*) HeroSpecsTable успешно переносится, но: игра всегда узнаёт её адрес из переменной по адресу 679C80, поэтому необходимости в GetRealAddr(HeroSpecsTable) абсолютно никакой не вижу.
*) HeroSpecsTableBack не используется вовсе (если ERA что-то делает с этой таблицей, то как-то эти действия нужно будет как-то отменять).
*) HeroSpecSettingsTable не перенесена, а данные в ней оптимизированы (т.е. длинна строки уменьшена с 40 до 16 байт). Если ERA что-то читает от туда, то чтение будет проходить не верно (и опять все манипуляции ERA с этой таблицей придётся как-то отменять). Если не менять формат (т.е. оставить вог-копирование вместо отдельного загрузчика), то эту таблицу всё равно переносить не нужно, т.к. прямо за ней расположены пустые данные (когда-то там была ещё одна таблица).


RE: Вопросы по моддингу - igrik - 30.04.2020 13:43

(30.04.2020 11:25)XEPOMAHT Wrote:  *) HeroSpecSettingsTable не перенесена, а данные в ней оптимизированы (т.е. длинна строки уменьшена с 40 до 16 байт). Если ERA что-то читает от туда, то чтение будет проходить не верно (и опять все манипуляции ERA с этой таблицей придётся как-то отменять). Если не менять формат (т.е. оставить вог-копирование вместо отдельного загрузчика), то эту таблицу всё равно переносить не нужно, т.к. прямо за ней расположены пустые данные (когда-то там была ещё одна таблица).
Эта не та таблица, которая сжата в campaign heroes as start heroes.bin?


RE: Вопросы по моддингу - XEPOMAHT - 30.04.2020 14:09

(30.04.2020 13:43)igrik Wrote:  Эта не та таблица, которая сжата в campaign heroes as start heroes.bin?

Нет. Под HeroSpecSettingsTable подразумеваю таблицу по адресу 278420h из exe, в которой находятся настройки специализаций героев (изначально, она использовалась кодом игры напрямую, но какой-то великий умник в WoG Team вместо 1й единой таблицы специализаций сделал ЧЕТЫРЕ 148 . В MoP/ERA+ это дело уменьшено до двух: одна собственно игровая и вторая сжатая исходная, из которой данные загружаются в игровую, включая моменты восстановления а-ля бэкапа).

Если скляроз не изменяет, campaign heroes as start heroes.bin ужимает данные в стеке от диалога настроек карты (которые тоже можно было перенести, но... бинарный патч не позволяет выделять память, да и HD-мод всё равно не увидит её и будет продолжать вылетать при попытке вывода улучшенного окна стартового героя, которое... HD-мод для ERA не выводит и не должен выводить 148 , зачем так сделано? Скорее всего просто от лени и нежеланием заниматься поддержкой воговщины, к примеру, мне тоже воговский код не нравится, но постепенно всё-таки переписываю его в рамках MoP, правда под ERA уже сложно что-то переписать опять из-за совместимости).


RE: Вопросы по моддингу - Berserker - 30.04.2020 19:01

planetavril, no.

Элементалист, zcrtrait.txt
Только любые скриптовые опции будут иметь приоритет, если включите.

XEPOMAHT,

Quote:*) HeroSpecsTable успешно переносится, но: игра всегда узнаёт её адрес из переменной по адресу 679C80, поэтому необходимости в GetRealAddr(HeroSpecsTable) абсолютно никакой не вижу.
Разницы нет, откуда узнаёт о ней игра. База — h3te.exe. В базе адрес у неё другой. Нужно сообщать, если он изменяется.

Quote:*) HeroSpecsTableBack не используется вовсе (если ERA что-то делает с этой таблицей, то как-то эти действия нужно будет как-то отменять).
С ней работают команды сброса описаний/названий и она же используется при выходе из карты для возврата значений по умолчанию. Должна расширяться на равне с первой таблицей.

Quote:*) HeroSpecSettingsTable не перенесена, а данные в ней оптимизированы (т.е. длинна строки уменьшена с 40 до 16 байт). Если ERA что-то читает от туда, то чтение будет проходить не верно (и опять все манипуляции ERA с этой таблицей придётся как-то отменять). Если не менять формат (т.е. оставить вог-копирование вместо отдельного загрузчика), то эту таблицу всё равно переносить не нужно, т.к. прямо за ней расположены пустые данные (когда-то там была ещё одна таблица).
Почему не верно?
Вот формат:

Code:
THeroSpecSettings = packed record
  PicNum:     integer;
  ZVarDescr: array [0..2] of integer;
end; // .record THeroSpecSettings

PHeroSpecSettingsTable = ^THeroSpecSettingsTable;
THeroSpecSettingsTable = array [0..NUM_WOG_HEROES - 1] of THeroSpecSettings;

Да, номер картинки специализации и 3 индекса z-переменных новых описаний. Эта таблица позволяет возвращать ЕРМ-командам текущие настройки. Работаю с ней в точности, как ВоГ.
------------------------------------
campaign heroes as start heroes.bin Думаю, нужно переименовать с предупреждением.


RE: Вопросы по моддингу - XEPOMAHT - 01.05.2020 01:09

(30.04.2020 19:01)Berserker Wrote:  База — h3te.exe. В базе адрес у неё другой. Нужно сообщать, если он изменяется.

Мне казалось, что это SoD. Т.к. WoG так же использует свою функцию для получения адреса.

(30.04.2020 19:01)Berserker Wrote:  С ней работают команды сброса описаний/названий и она же используется при выходе из карты для возврата значений по умолчанию. Должна расширяться на равне с первой таблицей.

Понятно. Придётся её тогда оставить для ERA.

(30.04.2020 19:01)Berserker Wrote:  Вот формат:

Code:
THeroSpecSettings = packed record
  PicNum:     integer;
  ZVarDescr: array [0..2] of integer;
end; // .record THeroSpecSettings

PHeroSpecSettingsTable = ^THeroSpecSettingsTable;
THeroSpecSettingsTable = array [0..NUM_WOG_HEROES - 1] of THeroSpecSettings;

Ну вот, ещё одна вог-таблица, связанная со специализациями. Ну сколько ж их ещё-то??? Куда и зачем столько много наклепали их в воге??? Хорошо, что в MoP это чудовищное количество таблиц-костылей не используется (по специализациям там всё как в SoD), скорее всего в ERA PLUS будет так же (из двух зол выбираю меньшее).

(30.04.2020 19:01)Berserker Wrote:  Эта таблица позволяет возвращать ЕРМ-командам текущие настройки. Работаю с ней в точности, как ВоГ.

Похоже, что эти ERM-команды окажутся неработоспособными в ERA PLUS после добавления специализаций по монстрам в диапазоне 197...1000. С воговским кодом одни сплошные конфликты, он совершенно не рассчитан под увеличение количества специализаций (как будто кем-то так и было запланировано, что WoG 3.58 будет последним, без оглядки на будущее).


RE: Вопросы по моддингу - Berserker - 01.05.2020 01:47

XEPOMAHT, сам понимаешь, лепил не я. Проще всего в 3.59 будет. Просто изменить размеры массивов и перекомпилировать.


RE: Вопросы по моддингу - Zur13 - 03.05.2020 14:29

А есть ли возможность через ЕРМ поменять родной тип земли для определенного монстра?


RE: Вопросы по моддингу - Algor - 03.05.2020 16:15

Zur13, так !!MA:O же. Или надо без принадлежности к замку?


RE: Вопросы по моддингу - Zur13 - 03.05.2020 16:58

(03.05.2020 16:15)Algor Wrote:  Zur13, так !!MA:O же. Или надо без принадлежности к замку?

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

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

Code:
combatManager:
   +1C4 db*(0x70 на клетку) поле битвы
         ...
         +10 db &3F - препятствие (0=yнет припятствий)
           01 - горит стена огня
           02 - есть препятствие
           04
           08
           10 - горит стена огня
           20
           40
           80
         ...
         +14 dd = номер анимации стены огня и др. (по порядку загрузки), -1=нет
         ...
         +18 db (сторона стэка(0,1), -1=нет стэка)
         +19 db (номер стэка у стороны)
         ...
         +1С db (номер последнего мертвого стэка в позиции, 0=нет больше)
         ...
         +20 db*14 (сторона умершего стэка)
         +2E db*14 (номер стэка у стороны)
         +3C

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


RE: Вопросы по моддингу - Berserker - 03.05.2020 17:06

combat manager +0x1c4 массив клеток по 0x70 байт на клетку.
В клетке по смещению 0x10 байт флагов клетки.
Эти биты стоит проверить.


RE: Вопросы по моддингу - igrik - 03.05.2020 22:07

(03.05.2020 16:58)Zur13 Wrote:  Да, нужно без смены мировоззрения, на самом деле я продумываю способы как можно исправить ситуацию с "видимостью" мин. Т.е. если в армии героя есть юниты для которых почва поля битвы является родной, то они показывают и отключают мины расставленные вражеским героем. Идея сменить до битвы родную землю юнитам и добавить при необходимости бонус скорости тем стекам которые бы его получили из-за родной земли.
Это неразделимые понятия в игре: родная земля, бонусы скорости, видимость мин и т.п. Это всё жестко привязано к фракциям.
Но, если всё же хочешь покопаться в структуре стека - смотри тут
https://github.com/RoseKavalier/H3Plugins/blob/master/H3API/lib/h3api/H3Structures/H3Structures.hpp#L2361

Исправить ситуацию с видимостью мин можно только влез в код "показа" мин.

(03.05.2020 16:58)Zur13 Wrote:  Второй способ рассматриваю вот это место, возможно можно как-то подменить тип магической мины через память:
Всмысле? Подменить тип мины на что? Каков аналог мины, или на что ты хочешь её подменить?
Стуктура гекса на поля битвы
https://github.com/RoseKavalier/H3Plugins/blob/master/H3API/lib/h3api/H3Structures/H3Structures.hpp#L3795

Вообще изучи хорошенько эти заголовочники Ab


RE: Вопросы по моддингу - Zur13 - 04.05.2020 00:32

Я где-то, точно помню, видел упоминание о том как рассчитать расстояние между хексами на поле битвы, но сейчас никак не удается найти, а самописный метод как-то сильно усложняется никак его дописать не могу Sm Кто-то может подсказать способ через ЕРМ найти дистанцию между двумя клетками поля битвы?


(03.05.2020 22:07)igrik Wrote:  Всмысле? Подменить тип мины на что? Каков аналог мины, или на что ты хочешь её подменить?

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


RE: Вопросы по моддингу - igrik - 04.05.2020 01:07

(04.05.2020 00:32)Zur13 Wrote:  Я где-то, точно помню, видел упоминание о том как рассчитать расстояние между хексами на поле битвы, но сейчас никак не удается найти, а самописный метод как-то сильно усложняется никак его дописать не могу Sm Кто-то может подсказать способ через ЕРМ найти дистанцию между двумя клетками поля битвы?
http://wforum.heroes35.net/showthread.php?tid=541&pid=83787#pid83787

(04.05.2020 00:32)Zur13 Wrote:  
(03.05.2020 22:07)igrik Wrote:  Всмысле? Подменить тип мины на что? Каков аналог мины, или на что ты хочешь её подменить?

Была идея заменить мину от заклинания, миной которая вместо рва при осаде Башни используется, мины от Башни не открываются осаждающему герою, даже если у него в армии есть монстры с родным типом почвы, но я уже успел побайтово сравнить структуры гексов с обоими типами мин, и ничего отличного не нашел. Но зато от безысходности я придумал новую безумную механику вместо механики с минами, жаль конечно на код с минами уже больше недели потратил суммарно, а обходов рабочих не придумал, потому, видимо, буду полностью от них отказываться Bad
А чем эти мины отличаются? Чет я не помню разницы кроме видимости/невидимости.
Куда записываются мины - нужно исследовать. Точно не скажу. Я посмотрю позже.


RE: Вопросы по моддингу - Algor - 04.05.2020 01:19

(04.05.2020 01:07)igrik Wrote:  
(04.05.2020 00:32)Zur13 Wrote:  Я где-то, точно помню, видел упоминание о том как рассчитать расстояние между хексами на поле битвы, но сейчас никак не удается найти, а самописный метод как-то сильно усложняется никак его дописать не могу Sm Кто-то может подсказать способ через ЕРМ найти дистанцию между двумя клетками поля битвы?
http://wforum.heroes35.net/showthread.php?tid=541&pid=83787#pid83787
36


RE: Вопросы по моддингу - igrik - 04.05.2020 01:44

(04.05.2020 01:19)Algor Wrote:  http://wforum.heroes35.net/showthread.php?tid=541&pid=83787#pid83787
36
А то 118
Шесть лет, как никак, уже...

Вот ещё, но если мне не изменяет память - это определение прямого расстояния: http://wforum.heroes35.net/showthread.php?tid=541&pid=103827#pid103827


RE: Вопросы по моддингу - Zur13 - 04.05.2020 13:23

(04.05.2020 01:07)igrik Wrote:  
(04.05.2020 00:32)Zur13 Wrote:  Была идея заменить мину от заклинания, миной которая вместо рва при осаде Башни используется, мины от Башни не открываются осаждающему герою, даже если у него в армии есть монстры с родным типом почвы, но я уже успел побайтово сравнить структуры гексов с обоими типами мин, и ничего отличного не нашел. Но зато от безысходности я придумал новую безумную механику вместо механики с минами, жаль конечно на код с минами уже больше недели потратил суммарно, а обходов рабочих не придумал, потому, видимо, буду полностью от них отказываться Bad
А чем эти мины отличаются? Чет я не помню разницы кроме видимости/невидимости.
Куда записываются мины - нужно исследовать. Точно не скажу. Я посмотрю позже.

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

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

(04.05.2020 01:44)igrik Wrote:  Вот ещё, но если мне не изменяет память - это определение прямого расстояния: http://wforum.heroes35.net/showthread.php?tid=541&pid=103827#pid103827

Вот именно то что искал, спасибо!


RE: Вопросы по моддингу - Berserker - 04.05.2020 18:30

По минам нужен имхо патч, который вообще отменит проверку на родные почвы. Она лишняя в игре.


RE: Вопросы по моддингу - daemon_n - 04.05.2020 18:54

Разве? Мины проверяют нативность почвы для существ , чтобы отображать их или скрывать.


RE: Вопросы по моддингу - Zur13 - 04.05.2020 19:23

(04.05.2020 18:54)daemon_n Wrote:  Разве? Мины проверяют нативность почвы для существ , чтобы отображать их или скрывать.

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

(04.05.2020 18:30)Berserker Wrote:  По минам нужен имхо патч, который вообще отменит проверку на родные почвы. Она лишняя в игре.

Да меня тоже удивляет эта механика, эти 2 заклинания и так практически бесполезны, а с таким ограничением они полностью бесполезны в 99% случаев.


RE: Вопросы по моддингу - igrik - 04.05.2020 21:29

По минам. Сейчас я сделал такой патч:
1. Разрешен каст мин против существ на родной территории
2. Урон от мин наносится теперь и по "своим" существам (т.е. существам под командованием героя, создавшего мины)

Вопрос:
3. Нужно ли убирать видимость мин для всех (т.е. чтобы герой, создавший мины их не видел)? Или оставить как есть?


RE: Вопросы по моддингу - Bes - 04.05.2020 21:52

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


RE: Вопросы по моддингу - igrik - 04.05.2020 22:07

Согласен. Тогда вот патч на каст мин.
Code:
; разрешен каст мин против существ на родной территории
59F010 EBDD ; JMP SHORT 0x59EFEF
; разрешено нанесение урона "своим"
59FEB8 EB12 ; JMP SHORT 0x59FECC



RE: Вопросы по моддингу - Zur13 - 09.05.2020 15:44

(04.05.2020 22:07)igrik Wrote:  Согласен. Тогда вот патч на каст мин.
Code:
; разрешен каст мин против существ на родной территории
59F010 EBDD ; JMP SHORT 0x59EFEF
; разрешено нанесение урона "своим"
59FEB8 EB12 ; JMP SHORT 0x59FECC

Спасибо за помощь, но боюсь, что для моей механики мин это решение не сработает, а просто так вносить в игру настолько суровые изменения, мне кажется, не стоит, будет много жалоб от игроков. Да и если, к примеру, теже Мастер Гремлины перед атакой кастанут мины которые будут действовать на всех это будет только мешать.

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


RE: Вопросы по моддингу - Видомина - 12.05.2020 21:49

Ребят помогите! не могу создать код чтобы к оригиналу трека при использовании выбирались альтернативы мп3105 со сменой после использования (просто замену освоил 2 способами)
Например в меню идёт 1 случайный трек, а потом исключая этот трек случайный другой
Идея состоит в том чтобы сделать музыкальный мод на лучших треках 2-7 героев, Dragon Bone Staff и King's Bounty.


RE: Вопросы по моддингу - Berserker - 13.05.2020 01:05

suftfree, ты сделай сборку музыки, в любом случае будет полезна.
Сейчас нет события «трек закончился». Потому сложно сделать в указанном тобой варианте.


RE: Вопросы по моддингу - Algor - 13.05.2020 21:50

Ну, справедливости ради, замечу, что если трэки достаточно длинные, то они "естественным образом" очень редко заканчиаются. Гораздо чаще - меняются.
Т.о. события "трек начался" будет, в общем-то, достаточно.


RE: Вопросы по моддингу - Berserker - 13.05.2020 22:01

5 секунд играет тема города. Пара щелчков → уже тема равнины. Щелчок на городе — уже другая тема города?


RE: Вопросы по моддингу - Algor - 13.05.2020 22:19

Да, ток что пробовал - не прикольно.
Более-менее вариант менять раз в день на случайную тему, типа:



RE: Вопросы по моддингу - Berserker - 14.05.2020 03:32

Algor, вот раз в день уже получше вариант. Или раз в несколько дней.


RE: Вопросы по моддингу - Bes - 14.05.2020 03:42

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


RE: Вопросы по моддингу - Видомина - 14.05.2020 13:31

(13.05.2020 22:19)Algor Wrote:  Да, ток что пробовал - не прикольно.
Более-менее вариант менять раз в день на случайную тему, типа:
Спасибо, думаю каждый день или лучше второй наверное отличный вариант.
Это даст разную, хоть и повторяющуюся музыку:
Темы городов, музыку битв, мелодию главного меню, музыку на карте приключений, мини звуки.
Получается так?
А можно чтоб они ещё случайно выбирались combat01.mp3-combat011.mp3-combat012.mp3


RE: Вопросы по моддингу - Algor - 14.05.2020 17:44

(14.05.2020 13:31)suftfree Wrote:  Получается так?

Нет, не так Sm




RE: Вопросы по моддингу - Видомина - 14.05.2020 18:57

Спасибо большое!


RE: Вопросы по моддингу - V_Maiko - 15.05.2020 08:59

Thanks to Typhon, I was able to add a dummy creature bank

The id of the new object is type 16, subtype 21 and is able to generate freely in rmg

Image: Screenshot-1.png
Image: Screenshot-2.png

The funny thing is that it works, and as a test here you will see pikemen with zero amount

Image: Screenshot-3.png

Now the question is, how can I make it functional? I have been told that it is calling "!!CB", but could you help me? I am not good with ERM I would like to test if it is possible to make new Creature Banks work Rolleyes


RE: Вопросы по моддингу - wessonsm - 15.05.2020 09:45

V_Maiko,
First you need to get the bank coordinates X,Y,L, and then it will be possible to set up guards and rewards like this:
!!CBx/y/l:G#1/$2/$3 - set a guard creature in slot #1 (0...6), to type $2 and number $3.
You may have to configure all 7 guards slots.
For a missing slots 5,6, use type -1 and qty 0.
!!CBx/y/l:M$1/$2 - set/get/check a bonus creature type $1 and number $2.
!!CBx/y/l:R#1/$2 - set/get/check a resource bonus. Resource type #1 and amount $2. You may set all 7 resources simultaneously.
I will try to write a complete script now.

Something like this:
I have not tested this script, and it requires script 78 wog - wogify.erm to work.

Can I find out how to make such a bank using Typhon?


RE: Вопросы по моддингу - Algor - 15.05.2020 17:29

Через !!CA:B5/здание можно запретить постройку конкретного здания в конкретном городе.

Вопрос: а как проверить, разрешена ли постройка конкретного здания в конкретном городе?

В идеале для города/здания надо получить статус
- Постройка недоступна (запрещена в конкретного городе, типе города, или рядом нет воды для Верфи, или, для Капитолия, отстроен в другом городе)
- Постройка недоступна (потенциально возможна, но нет нужных построек или сегодня уже было что-то построено)
- Постройка недоступна (не хватает ресурсов)
- Постройка доступна

UPD: попутный вопрос - как получить стоимость постройки здания? Чёт не могу найти, хотя есть ощущение, что было где-то...


RE: Вопросы по моддингу - V_Maiko - 15.05.2020 18:54

wessonsm, Works! It really works! Now I need to find out how I can put the name of the object, it doesn't work writing in zcrbank.txt. I really appreciate it.

Image: Screenshot-1.png


RE: Вопросы по моддингу - wessonsm - 15.05.2020 20:55

(15.05.2020 18:54)V_Maiko Wrote:  wessonsm, Works! It really works! Now I need to find out how I can put the name of the object, it doesn't work writing in zcrbank.txt. I really appreciate it.

Add to your script:
But you may need to add “visited / not visited” to the description, that is, you will need to change the description after visiting the object, and for each player separately, and this is a more difficult task.
Immediately, I can’t write such a script, it takes time.


RE: Вопросы по моддингу - V_Maiko - 15.05.2020 21:20

(15.05.2020 20:55)wessonsm Wrote:  
(15.05.2020 18:54)V_Maiko Wrote:  wessonsm, Works! It really works! Now I need to find out how I can put the name of the object, it doesn't work writing in zcrbank.txt. I really appreciate it.

Add to your script:
But you may need to add “visited / not visited” to the description, that is, you will need to change the description after visiting the object, and for each player separately, and this is a more difficult task.
Immediately, I can’t write such a script, it takes time.

A friend tried something similar and got the same result, when I visit the creature bank the name does not appear

Code:
!#VRz890:S^Test^;
!#HT16/21:P0/890;

I was underestimating that it was going to be simple but it wasn't, well, I'll see if it's possible otherwise.


RE: Вопросы по моддингу - Berserker - 15.05.2020 22:15

wessonsm, memory-heave script:
!!SN:W^vis%Y1.%Y2.%Y3%Y4^/$;
where y1..y3 are coordinates, y4 - hero id. $ is 0 or 1 SET/GET.


RE: Вопросы по моддингу - wessonsm - 15.05.2020 22:33

(15.05.2020 22:15)Berserker Wrote:  wessonsm, memory-heave script:
!!SN:W^vis%Y1.%Y2.%Y3%Y4^/$;
where y1..y3 are coordinates, y4 - hero id. $ is 0 or 1 SET/GET.
Там есть еще один нюанс. Если зайти в банк, но не перебить охрану, то будет отображаться не "посещено/не посещено", а примерное количество оставшейся охраны (толпа, орда, группа и так далее).
Это тоже надо предусмотреть.
В общем, как ни крути, все равно не так просто, хоть и реализуемо.


RE: Вопросы по моддингу - igrik - 15.05.2020 23:26

(15.05.2020 17:29)Algor Wrote:  Через !!CA:B5/здание можно запретить постройку конкретного здания в конкретном городе.

Вопрос: а как проверить, разрешена ли постройка конкретного здания в конкретном городе?

В идеале для города/здания надо получить статус
- Постройка недоступна (запрещена в конкретного городе, типе города, или рядом нет воды для Верфи, или, для Капитолия, отстроен в другом городе)
- Постройка недоступна (потенциально возможна, но нет нужных построек или сегодня уже было что-то построено)
- Постройка недоступна (не хватает ресурсов)
- Постройка доступна

UPD: попутный вопрос - как получить стоимость постройки здания? Чёт не могу найти, хотя есть ощущение, что было где-то...
Ответил в UN:C


RE: Вопросы по моддингу - V_Maiko - 15.05.2020 23:46

Berserker, My new creature bank is functional, but it is very difficult for the game to treat it as one, there is no specific call for blank objects to show; the name when you enter such creature bank and if it was visited or not?


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

(15.05.2020 23:26)igrik Wrote:  Ответил в UN:C

Огромное спасибо 132
Оформлю функцией для библиотеки


RE: Вопросы по моддингу - Berserker - 16.05.2020 02:23

V_Maiko, as far as I know, there is nothing to easily make new creature bank without implementing it from scratch.


RE: Вопросы по моддингу - V_Maiko - 16.05.2020 02:35

From scratch for sure you will be referring to hardcoding because in my case I was able to create it simply by adding it in zaobjct.txt, zeobjct.txt and zobjct.txt, and if I want I can make it generate freely through this event:


I just need to find out how I can get my new creature bank named and the job will be complete.


RE: Вопросы по моддингу - planetavril - 16.05.2020 03:01

I tried to set the priority of city buildings with this script :

[Set building priority]
!? FU (SetBuilding'sPriority);
; x1 - type of city
; x2 - priority (0-43)
; x3 - building number
!! VR y1: Sx1 * 44 + x2;
!! VR y2: S6565572 + y1;
!! UN : Cy2 / 1 / x3;
[Getting priorities of city buildings]
!? FU (GetPriorities);
; x1 - type of city
!! VR v1: Sx1 * 44;
DO !! (ShowRes) / 0 / 43 / 1: P;
!? FU (ShowRes);
!! VR y1: Sv1 + x16;
!! VR y2: S6565572 + y1;
!! UN : Cy2 / 1 / ? y3;
!! IF : M ^% Y3 ^ ;

but it does not work some buildings in the city continue to overlap,

I don't know how to solve this


RE: Вопросы по моддингу - Raistlin - 16.05.2020 18:59

(16.05.2020 03:01)planetavril Wrote:  DO !! (ShowRes) / 0 / 43 / 1: P;
This is wrong.

P.S. I don't see your code


RE: Вопросы по моддингу - Zur13 - 17.05.2020 16:00

Где-то видел способ получить номер раунда битвы и сейчас не могу найти, может кто знает как это сделать в ЕРМ скрипте? Мне нужно чтобы и в !?MM и в !?СМ4 триггере работало.


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

Zur13, номер раунда битвы хранится в переменой v997. Tам, правда, есть пара нюансов, которые можно посмотреть в справке к триггеру BR


RE: Вопросы по моддингу - Zur13 - 17.05.2020 17:29

(17.05.2020 17:16)Raistlin Wrote:  Zur13, номер раунда битвы хранится в переменой v997. Tам, правда, есть пара нюансов, которые можно посмотреть в справке к триггеру BR

Мне нужно не в BR триггере, а я как-то не встречал ее использование вне BR триггера, потому не хотелось использовать, но если это допустимо тогда ладно.


RE: Вопросы по моддингу - Berserker - 17.05.2020 17:29

Zur13, секретный код:



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

(17.05.2020 17:29)Zur13 Wrote:  
(17.05.2020 17:16)Raistlin Wrote:  Zur13, номер раунда битвы хранится в переменой v997. Tам, правда, есть пара нюансов, которые можно посмотреть в справке к триггеру BR

Мне нужно не в BR триггере, а я как-то не встречал ее использование вне BR триггера, потому не хотелось использовать, но если это допустимо тогда ладно.

Если я ничего не путаю, ее можно использовать в любом боевом триггере за исключением BA. Я сослался на BR просто потому, что в справке есть некоторые подробности, типа информации про тактическую фазу, а также так называемую "темную зону"


RE: Вопросы по моддингу - Algor - 18.05.2020 12:51

(15.05.2020 23:26)igrik Wrote:  
(15.05.2020 17:29)Algor Wrote:  В идеале для города/здания надо получить статус
Ответил в UN:C


Работает не так, как ожидалось. Возвращает 1 всегда, кроме случая, когда постройка запрещена. И до постройки 1 и после.
Заменил на CA:B3

И хотелось бы получить "флаг" "построены ли необходимые здания для данной постройки"


RE: Вопросы по моддингу - igrik - 18.05.2020 14:09

Да, я ошибся. Вот правильная

(18.05.2020 12:51)Algor Wrote:  И хотелось бы получить "флаг" "построены ли необходимые здания для данной постройки"
Увы, но такого я в коде не встречал. Только проверка вручную, только хардкор.


RE: Вопросы по моддингу - Algor - 18.05.2020 14:26

(18.05.2020 14:09)igrik Wrote:  Увы, но такого я в коде не встречал. Только проверка вручную, только хардкор.
Ок, спасибо.


RE: Вопросы по моддингу - Видомина - 19.05.2020 16:48

(14.05.2020 17:44)Algor Wrote:  
(14.05.2020 13:31)suftfree Wrote:  Получается так?

Нет, не так Sm

Извините, а случайное меню также писать?
!!VRz1:S^mainmenuwog.mp3^; !!VRy1:S2 -1;// Пусть 2 - количество имеющихся у нас вариаций для темы "mainmenuwog.mp3"
!!VRy2:S1 Ry1; !!SN:R^%Z1^/^%Y1_%Z1^; // выбор случайной темы. Темы должны называться 1_mainmenuwog.mp3, 2_mainmenuwog.mp3
Выяснилось, что игра поддерживает треки от 128kbps до 320kbps


RE: Вопросы по моддингу - Algor - 19.05.2020 17:35

suftfree, нет это долько для звуков в самой игре (при загруженной карте). Пока карта не загружена (главное меню, например) ERM не работает.


RE: Вопросы по моддингу - XEPOMAHT - 19.05.2020 17:36

(19.05.2020 16:48)suftfree Wrote:  Выяснилось, что игра поддерживает треки от 128kbps до 320kbps

Там стандартный Mpeg Layer 3, от 8 до 320 кб.сек., без Joint Stereo (поддерживается только в HoA) и без VBR/ABR. Поддержка тегов - только первая версия.

Звуки главного меню через ERM - только если Берсеркер добавит триггер перед показом главного меню (в MoP к примеру такое давно есть).


RE: Вопросы по моддингу - Видомина - 19.05.2020 17:58

(19.05.2020 17:35)Algor Wrote:  suftfree, нет это долько для звуков в самой игре (при загруженной карте). Пока карта не загружена (главное меню, например) ERM не работает.
Berserker подсказал сделать через Random skin, (случайные файлы при запуске мод)
Музыка заменяется, но не работает.
Может он отпишется и подскажет не знаю)


RE: Вопросы по моддингу - Berserker - 19.05.2020 18:06

suftfree, музыку главного меню можно через вызов SN:F^GlobalRedirectFile^/^старая^/^новая^ и да, после загрузки. Либо через randomskin.
Если не работает, то значит этот баг, что я исправил в 3.0. Заработает чуть позже.


RE: Вопросы по моддингу - Видомина - 19.05.2020 18:41

(19.05.2020 18:06)Berserker Wrote:  suftfree, музыку главного меню можно через вызов SN:F^GlobalRedirectFile^/^старая^/^новая^ и да, после загрузки. Либо через randomskin.
Если не работает, то значит этот баг, что я исправил в 3.0. Заработает чуть позже.
Спасибо, а где я могу скачать версию 3.0, её нигде нет), на вашем яндекс диске только плагин и он тоже не рабочий)
Извините у вас не осталось исходников?
Извините меня, если в случае с моими обоями вы удалили свою версию


RE: Вопросы по моддингу - Видомина - 19.05.2020 19:51

Image: e91084c9cd52d95919af964e546ddd31.png
Есть идея, при описании героя выдавать расширенную информацию о нём
Как такое реализовать?
Большие картинки не проблема, есть прога, обрабатывает до больших, без потери качества


RE: Вопросы по моддингу - XEPOMAHT - 19.05.2020 20:01

(19.05.2020 19:51)suftfree Wrote:  Есть идея, при описании героя выдавать расширенную информацию о нём
Как такое реализовать?

Создаёшь простой диалог с картинкой и текстом. За примером далеко ходить не нужно (т.к. уже сделано в MoP).


RE: Вопросы по моддингу - Berserker - 19.05.2020 21:44

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


RE: ERA II - wessonsm - 29.05.2020 15:50

Berserker, а можно сделать, чтобы !!SN:F работала для функции SetHook из erm_hooker?
Она используется не реже, чем функции Эры.
Хуки можно было бы одной командой ставить:
!!SN:F^SetHook^/4230103/(OnKeyPressedOnMap);
А то как-то не по фэншую сейчас уже писать !!SN:L; !!SN:A; !!SN:E; Rolleyes


RE: ERA II - Berserker - 29.05.2020 16:38

wessonsm, !!FU(Fun_SetHook) и вопросы решены. ЕРМ хуки всё же пока отдельной библиотекой, а не встроены в era.dll. Если встроить, сразу код проверки SN:L^erm_hooker^, выход если 0, перестанет работать. Пометил себе. Если встрою, сразу сломается старый код.


RE: ERA II - igrik - 29.05.2020 23:59

(29.05.2020 15:50)wessonsm Wrote:  Berserker, а можно сделать, чтобы !!SN:F работала для функции SetHook из erm_hooker?
Она используется не реже, чем функции Эры.
Хуки можно было бы одной командой ставить:
!!SN:F^SetHook^/4230103/(OnKeyPressedOnMap);
А то как-то не по фэншую сейчас уже писать !!SN:L; !!SN:A; !!SN:E; Rolleyes
В WoG Scripts уже как 2 с хвостом месяца есть функция установки хуков

А вот выдержка из скрипта НОВЫЕ БОЕВЫЕ ПОЛЯ



RE: ERA II - wessonsm - 30.05.2020 00:52

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


RE: Вопросы по моддингу - Zur13 - 30.05.2020 19:48

Может кто-то подсказать универсальный способ проверить что герой специалист баллисты/артилерии или палатки/первой помощи для обычного случая и для включенного скрипта расширенной специализации героев и подобных?


RE: Вопросы по моддингу - PerryR - 30.05.2020 20:23

(30.05.2020 19:48)Zur13 Wrote:  Может кто-то подсказать универсальный способ проверить что герой специалист баллисты/артилерии или палатки/первой помощи для обычного случая и для включенного скрипта расширенной специализации героев и подобных?

!!HE:X plus check if the WoG option is enabled?
That should be enough


RE: Вопросы по моддингу - Zur13 - 01.06.2020 20:47

(30.05.2020 20:23)PerryR Wrote:  
(30.05.2020 19:48)Zur13 Wrote:  Может кто-то подсказать универсальный способ проверить что герой специалист баллисты/артилерии или палатки/первой помощи для обычного случая и для включенного скрипта расширенной специализации героев и подобных?

!!HE:X plus check if the WoG option is enabled?
That should be enough

Thanks.


RE: Вопросы по моддингу - V_Maiko - 02.06.2020 07:55

Could someone tell me why I can't create a combo artifact with blanks artifacts parts? (#161- #170) I feel that the development of modding is very limited in terms of making artifacts combos, could someone tell me if it is possible to make a hook to break these limitations? Rolleyes


RE: Вопросы по моддингу - XEPOMAHT - 02.06.2020 12:43

(02.06.2020 07:55)V_Maiko Wrote:  Could someone tell me why I can't create a combo artifact with blanks artifacts parts? (#161- #170) I feel that the development of modding is very limited in terms of making artifacts combos, could someone tell me if it is possible to make a hook to break these limitations? Rolleyes

Not possible. 160 - max combo art ID. Because in comboartmask size for art id = (1024-64)/6.


RE: Вопросы по моддингу - V_Maiko - 02.06.2020 19:51

XEPOMAHT, Just I ask if it is possible to create a hook to break that limitation, I do not ask only to use the parts of the blank artifacts as combos, also for the new artifacts created by emerald, if you could create it it would also be convenient for you, to be able to make more types of MOP combo artifacts in ERA+. Ab


RE: Вопросы по моддингу - XEPOMAHT - 02.06.2020 20:44

(02.06.2020 19:51)V_Maiko Wrote:  Just I ask if it is possible to create a hook to break that limitation, I do not ask only to use the parts of the blank artifacts as combos, also for the new artifacts created by emerald, if you could create it it would also be convenient for you, to be able to make more types of MOP combo artifacts in ERA+. Ab

Not possile. Change data format combo artifacts = change all combo artifacts code = crazy idea. MoP & ERA+ contains enough combo artifacts, in MoP a lot of space for new combo artifacts.


RE: Вопросы по моддингу - Zur13 - 07.06.2020 18:12

Может кто-то помочь, нужно через ЕРМ полностью отключить стандартный эффект подводы с боеприпасами в бою, чтобы подвода была, но боеприпасы тратились при выстрелах. Я пока думаю писать костыль с подменой типа юнита для стека с подводой, но может есть нормальный способ?


RE: Вопросы по моддингу - Bes - 07.06.2020 19:52

"эх, времена! эх, нравы!"нынешним "нормальным способом" было написание скрипта с эмулированием нужного эффекта.
А сейчас - это напрямую через память влиять на нужные эффекты игры. 166
Вот что делает многофункциональная платформа для моддинга Spiteful

Сделай в момент !?BG0 при действии "выстрел" сохранение боезапаса стэка, а после действия верни его за вычетом кол-ва выстрелов. как вариант Unsure


RE: Вопросы по моддингу - Zur13 - 07.06.2020 19:59

(07.06.2020 19:52)Bes Wrote:  "эх, времена! эх, нравы!"нынешним "нормальным способом" было написание скрипта с эмулированием нужного эффекта.
А сейчас - это напрямую через память влиять на нужные эффекты игры. 166
Вот что делает многофункциональная платформа для моддинга Spiteful

Сделай в момент !?BG0 при действии "выстрел" сохранение боезапаса стэка, а после действия верни его за вычетом кол-ва выстрелов. как вариант Unsure

Отбросил такой вариант, так как нужен костыль для случая если какой-то мод сделает тройной выстрел или еще чего похуже.


RE: Вопросы по моддингу - Bes - 07.06.2020 20:02

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


RE: Вопросы по моддингу - Zur13 - 07.06.2020 20:16

(07.06.2020 20:02)Bes Wrote:  Zur13, а если какой-то мод сделает эмуляцию "бесконечный боезапас, даже без подводы" или еще чего похуже, будет проверять блокировку подводы через память и восстанавливать её действие? 103
в любом случае, ты не сможешь все заморочки модов с большим приоритетом чем твой учесть. Согласись?

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

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


RE: Вопросы по моддингу - Bes - 07.06.2020 20:31

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


RE: Вопросы по моддингу - Zur13 - 07.06.2020 20:41

(07.06.2020 20:31)Bes Wrote:  как по мне, хотя кто я такой, подмена типа уже имеющегося стэка в битве - это не самый безопасный вариант (учитывая ту же сетевую игру, к примеру)
а если делать подводу мёртвой, через флаги стэка, и при этом убедиться чтобы на неё никто не смог наступить или нанести урон для её ячейки на поле боя?

Спасибо, да я наверное для начала попробую помечать стек мертвым через флаг, а если не сработает буду подмену пробовать, логика похожа в обоих случях, в момент выстрела, в !?BG0 если действие - выстрел, подменяем дружественную подводу на что-то другое, в !?BG1 подменяем обратно.


RE: Вопросы по моддингу - Berserker - 07.06.2020 22:28

Zur13, если не поможет, попробуем зайти со стороны бинарного патча. Но идея интересная.


RE: Вопросы по моддингу - Algor - 08.06.2020 11:03

Zur13, в BH у меня телега не восполняет боезапас, но, блин, я не смог найти, как это сделано Bad
Возможно, не восполняется при отсутствии телеги в соотв. слоте героя. Если так, то перед боем телеги из слотов убираем, призываем на поле, а после боя восстанавливаем, что выжило.
Но там тоже могут быть нюансы по совместимости со скриптами ремонта и захвата БМ.

Как еще один вариант обхода - обнуление максимального боезапаса стрелков. Т.е. максимальный - 0 (через !!MA), а текущий - нужное кол-во (через !!BM). И телега не будет восстанавливать.
Этот вариант, имхо, самый бесконфликтный.


RE: Вопросы по моддингу - planetavril - 08.06.2020 12:10

how to recreate creatures from stationary models on heroes3towns.com using photoshop?


RE: Вопросы по моддингу - Berserker - 08.06.2020 13:46

No way, except animating them frame by frame. If I understood you correctly.


RE: Вопросы по моддингу - daemon_n - 08.06.2020 16:37

planetavril, frame by frame.
1st you need to extract defs in bmp format by defpreview(if they are in def on the site) and then edit via editor you wish, after pack all of the by hdl file or create new one by deftool
dont forget save bmp in indexed format if you expand color palette.


RE: Вопросы по моддингу - ElfbI - 17.06.2020 01:51

Скажите, грааль размещается в какой момент? При посещении первого обелиска? Есть ли возможность его разместить сразу после генерации карты?

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


RE: Вопросы по моддингу - daemon_n - 17.06.2020 03:07

ElfbI, грааль при генерации карты размещается. Можешь в редакторе карт проверить. Если не ошибаюсь, грааль после всех объектов размещается, но не могу быть уверен.


RE: Вопросы по моддингу - SergOz - 17.06.2020 03:32

ElfbI, я уже интересовался этим вопросом здесь
http://wforum.heroes35.net/showthread.php?tid=541&pid=111351#pid111351
А здесь есть код определения местоположения Грааля.
http://wforum.heroes35.net/showthread.php?tid=5118&pid=111370#pid111370

А раньше я в GE1 скриптом узнавал количество монстров на карте в y1, генерировал случайное число от 1 до y1 и под этим случайным монстром "зарывал" Грааль. По желанию можно монстра усилить, чтобы ИИ не рыл на первом же месяце.


RE: Вопросы по моддингу - daemon_n - 17.06.2020 03:34

SergOz, надо же - не знал, спасибо. Хотя это странно, если честно.


RE: Вопросы по моддингу - ElfbI - 17.06.2020 04:10

SergOz, эту ветку читал, но решил уточнить. Спасибо


RE: Вопросы по моддингу - Algor - 17.06.2020 10:22

(17.06.2020 03:32)SergOz Wrote:  А раньше я в GE1 скриптом узнавал количество монстров на карте в y1, генерировал случайное число от 1 до y1 и под этим случайным монстром "зарывал" Грааль. По желанию можно монстра усилить, чтобы ИИ не рыл на первом же месяце.

И монстр такой: "хрен тебе, а не лесопилку".


RE: Вопросы по моддингу - Raistlin - 21.06.2020 15:51

Привет, можете пожалуйста подсказать, каким образом можно активировать систему опыта существ для командиров?


RE: Вопросы по моддингу - Algor - 21.06.2020 16:21

Raistlin, вопрос выглядит очень странно. Штатно - никак, командиры сильно захардкодены.
А какая цель вообще такого действия? Если дать специфический перк из системы опыта существ, то можно и так повесить.


RE: Вопросы по моддингу - Raistlin - 21.06.2020 16:58

Algor, у меня есть "бинарники", которые за это отвечают, однако они были созданы под чистый WoG. В Эре многие вещи были перенесены на новые адреса, которые мне не известны, я не могу модифицировать их самостоятельно. Я надеялся, что все-таки существует возможность включить опыт каким-то простым способом.
Причина, по которой мне это понадобилось, довольно проста: в рамках моего основного проекта командиры недопустимы, а мне жаль их индексы. Я хочу использовать их для своих целей.


RE: Вопросы по моддингу - Bes - 21.06.2020 17:10

Raistlin, хочешь их индексы взять для нового города,колись?


RE: Вопросы по моддингу - Raistlin - 21.06.2020 17:39

Bes, к сожалению, все намного прозаичнее) Я сейчас просто портирую WoG UE на Эру, мне нужны индексы для системы третьего улучшения. Я принципиально не хочу брать командиров, так как человек может пользоваться ими намного более умно чем ИИ. Плюс, я стараюсь следовать классике.
Город, которым я сейчас занимаюсь, будет хорошо вписываться в игру, там нет каких-то ограничений или конфликтов. Командир у него тоже будет, его заклинание - волшебное зеркало. Единственное, я, пожалуй, заблокирую опции на изменение баланса, чтобы новым существам не достались способности, соответствующие их предшественникам. Заменять город будет Крепость, однако лор мода будет во многом связан с Таталией.


RE: Вопросы по моддингу - Видомина - 22.06.2020 23:39

Помогите можно ли сделать скрипт?
Идея - научить ИИ откупаться за деньги
Мои варианты:
1: При расчёте проигрыша (сбегания) компьютер автоматически капитулирует за 10%-20% от реальной суммы его войск
2: При переизбытке золота компьютер сбегает с предложением капитуляции 30-40% стоимости армии
3: При проигрыше компьютер сбегает с 50-70% армии


RE: Вопросы по моддингу - Berserker - 22.06.2020 23:52

Этакий чит, каждый бегущий платит дань.


RE: Вопросы по моддингу - Raistlin - 23.06.2020 00:14

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


RE: Вопросы по моддингу - Elmore - 23.06.2020 00:56

(22.06.2020 23:52)Berserker Wrote:  Этакий чит, каждый бегущий платит дань.

Сейчас ИИ в очень многом обделен. Найм "разового" героя для доставки войск из замка, кол-во апгрейдов существа за один заезд в город, постройка всех зданий в нормальных приоритетах (а не игнор 7 уровня по 1-2 месяца с безлимитом денег) и еще много чего. И никто не берется хоть что-то улучшать на качественном уровне (крик души).
   Откуп ИИ может стать неплохим решением для закрытия одной из "слабостей", если очень много всего предусмотреть.. игровые ситуации, условия, цены. Например, для баланса - сумма, вычитаемая у ИИ и получаемая игроком может быть разной.


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

Mr.S, да, с ИИ есть проблемы. Но почему-то для исправления Вы выбрали самую малую.
Емнип, откуп ИИ работает. Можно целенаправлено потестить и уточнить, если есть желание. Но это ситуация нечастая, да и сбегает ИИ обычно уже тогда, когда войск осталось уже кот наплакал и откупать нечего. Если же все сбегания заменить на откупы, то, боюсь, это усилит не ИИ, а человека, став для него существенным доп. заработком.

Что касается других описанных проблем ИИ, то есть тривиальные решения:
1. Автоматически отстаивать "значимые" здания в городах ИИ в конце его хода при достаточности ресурсов.
2. При достаточном кол-ве золота и места в гарнизонах автоматически скупать хотя бы топовых существ в городах ИИ каждый понедельник.
3. При достаточном кол-ве золота при посещении ИИ-героем города проверять и по возможности автоматически грейдить все стеки
Критерии достаточности, значимости и топовости можно достаточно четко определить. И даже привязать к уровню сложности.

Причем, все это делается несложно. Почему еще не сделано - хз.


RE: Вопросы по моддингу - Raistlin - 23.06.2020 02:11

Mr.S, вы пробовали играть против ИИ в моем моде? Я очень многие механики переработал, теперь на максимальной сложности выиграть далеко не так просто как раньше. В частности, ИИ не выводит армию из-за стен города и не встаёт в собственный ров во время обороны, лучше прокачивает героев, строит абсолютно все дополнительные здания (вроде вихря маны), а также может получать дополнительную фору в процессе игры. Под форой подразумевается возможность получить максимальные ресурсы, открыть всю карту или даже автоматически улучшать армию. На самом деле, это не конец, я только самое основное описал.


RE: Вопросы по моддингу - daemon_n - 23.06.2020 02:12

Algor, за столько лет игры против ИИ ни разу не видел "Враг Сдался"


RE: Вопросы по моддингу - Elmore - 23.06.2020 02:37

(23.06.2020 01:52)Algor Wrote:  Причем, все это делается несложно. Почему еще не сделано - хз.

Вот в том то и дело. Так много лет прошло, а с ИИ всего пару скриптов есть и пара модов на "бесплатные бусты".

(23.06.2020 02:11)Raistlin Wrote:  Mr.S, вы пробовали играть против ИИ в моем моде?
Обязательно опробую версию под ERA Rolleyes

А еще, как я уже предлагал не однократно, у ИИ есть большая проблема с потерями войск. И чем сложнее нейтралы - тем серьезнее проблема. "Честный/правильный" вариант решения, на мой взгляд, - восстанавливать войска после битвы в зависимости от процента потерь и уровня сложности (доп. условиями могут быть определенные wog-скрипты и размер карты).
На вскидку цифры при битве с нейтралами:
Если остаток армии 90%+, восстановить до 100% начальной армии
Если 80-89%, восстановить до 95%
Если 60-79%, восстановить до 90%
и далее
Так же это от части компенсирует переигровку битвы и save/load у игрока.

P.S. Тоже ни разу не видел "Враг Сдался". Был уверен, что ИИ этого не умеет..


RE: Вопросы по моддингу - Berserker - 23.06.2020 02:59

Raistlin, а как тебя организован запрет на вывод войск за пределы рва?


RE: Вопросы по моддингу - Raistlin - 23.06.2020 15:53

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


RE: Вопросы по моддингу - Algor - 23.06.2020 16:02

(23.06.2020 15:53)Raistlin Wrote:  Заодно я полностью переделал функцию выбора цели для башен, теперь они перед выстрелом анализируют всех врагов, расставляя приоритеты, и выбирают наиболее важные цели.
Надеюсь, это сделано только для ИИ?
А то ведь навык артиллерии и цитаделевские командиры очень обесценятся для героев-домоседов.


RE: Вопросы по моддингу - Raistlin - 23.06.2020 16:55

Algor, да, конечно для ИИYes Правда, если человек башнями управлять не может, функция все-таки работает.


RE: Вопросы по моддингу - Berserker - 23.06.2020 17:30

Raistlin, грамотный подход.


RE: Вопросы по моддингу - helgtla - 23.06.2020 17:31

(23.06.2020 15:53)Raistlin Wrote:     в начале осады я блокирую ворота, а также в течение боя подменяю попытки выйти через дыры в стенах на другие действия. В итоге ИИ зачастую сам собирает всю армию вокруг стрелков и просто ждёт, пока внутрь стен кто-нибудь не залетит, или же, пока катапульта не разобьёт ворота.

Сдаётся мне, что у Вас очень странное понятие об осадных сражениях в третьих герояхSm
В 90% случаях игроки как раз стремятся к тому, что Вы описали. ИМЕННО СТРЕМЯТСЯ!!! Заставить ИИ "сидеть" внутри стен и не выходить. Вы же делаете ЭТО по умолчанию, тем самым давая возможность игроку практически 100% победы.
Посмотрите КАК сейчас игроки отыгрывают осадные битвы. Стримов/записей боёв на эту тему в сети предостаточноSm.
P.S.: описанный Вами метод осады скорее всего ориентирован на игрока из 90-х. За более чем 20-летнюю историю третьих Героев - тактики СУЩЕСТВЕННО поменялись. Посему, по моему мнению, то как в данном случае реализована осада для ИИ оппонента, скорее всего, если сможет как-то "улучшить" положение компа, то только при условии, что на данный замок- человек нападает "второстепенным" героем (герой из разряда приди-принеси). Все остальные вариации- заведомо проигрышные для ИИ.


RE: Вопросы по моддингу - daemon_n - 23.06.2020 17:53

helgtla, +


RE: Вопросы по моддингу - Raistlin - 23.06.2020 18:33

Berserker, спасибо. Ab

(23.06.2020 17:31)helgtla Wrote:  Вы же делаете ЭТО по умолчанию, тем самым давая возможность игроку практически 100% победы.
На мой взгляд, позволять ИИ выходить за стены - это значит гарантировать победу игрока. Очень многое зависит как раз от этого фактора. В течение первых нескольких месяцев это абсолютно правильный подход, битвы становятся намного сложнее и интереснее, человеку приходится считаться с этим. Тем не менее Ваши слова заставили меня задуматься, и потому прямо сейчас я себе в список задач записал необходимость проверки на разницу в мане. Думаю, этого будет достаточно.

(23.06.2020 17:31)helgtla Wrote:  Посмотрите КАК сейчас игроки отыгрывают осадные битвы. Стримов/записей боёв на эту тему в сети предостаточноSm.
P.S.: описанный Вами метод осады скорее всего ориентирован на игрока из 90-х. За более чем 20-летнюю историю третьих Героев - тактики СУЩЕСТВЕННО поменялись.
Честно говоря, я понятие не имею, как они выглядят, и ориентирусь исключительно на собственный опыт. Не могли бы Вы привести пример?


RE: Вопросы по моддингу - helgtla - 23.06.2020 19:07

Из примеров, как я и написал, можете посмотреть прохождение любой карты или какую-либо ПВП карту(не уверен, что в них доходят до осад).
Если кратко, то общая стратегия заключается в том, чтобы "запереть" ИИ внутри стен и не дать ему выйти за их пределы. Для ЭТОГО ворота блокируются любым юнитом (желательно единичкой, чтоб не жалко было)- при таком раскладе ИИ физически не способен выбраться через врата(врата не смогут опуститься, даже если юнит-блокиратор будет убит), а также по возможности (если нет баллистики), стараются ЛЮБЫМИ способами уничтожить СВОЮ катапульту (чтобы она не смогла проделать дыры в стенах). И в ЭТОМ случае, всё "мастерство" заключается лишь в том, чтобы не "стриггерить" ИИ вылететь наружу(если есть летающие юниты). Если летунов нет, то ИИ - не жилец в 90% случаях (не важно есть у него стрелки или нет). Всё ЭТО справедливо , если игрок нападает на ИИ замок, герой-защитник которого, имея существенно превосходящую армию, не желает покидать замок(вне стен замка такого героя победить ЗНАЧИТЕЛЬНО сложнее, если вообще возможно). Потому все и стараются заманить ИИ "сесть" в замковые стены.
Как писал, примеры можно посмотреть в любом видео , где есть осады (тактика в основном схожая+/-). Чтобы было визуально понятно, приведу пример осады (типовой, не самый "жёсткий" для игрока вариант) из прохождения Glenn's stream
https://www.youtube.com/watch?v=9Fv4TgE9BlY&list=PL18SXpm11lDWFxhDBKEvvPRID0FKLjhkR&index=4 смотреть с 01:06:00.
P.S.: варианты когда у игрока примерно равная по силе армия или превосходящая, думаю смысла обсуждать нет- там и так всё ясно. Как и писал выше, Ваш вариант "усиления ИИ" применим только для случая нападения "голопузом" на ИИ игрока существенно превосходящего нападающего (про "основного" героя игрока речь не идёт, он в любом случае найдёт способ "малой кровью" выбить ИИ).


RE: Вопросы по моддингу - Berserker - 23.06.2020 19:08

Raistlin, вспоминаю, что достаточно много битв, где выгодно растреливать ИИ и поражать магией, пока тот за стенами. Многие карты построены на том, чтобы в крайне неравном для человека бою не спровоцировать ИИ на выход из-за стен. ИИ слаб в предугадывании результатов боя стрелки + армия [+ ослепление] vs войска гарнизона.


RE: Вопросы по моддингу - Raistlin - 23.06.2020 19:35

Хорошо, я понял. Мне кажется, я знаю, как решить эту проблему. Буду пробовать, если получится, поделюсь результатами) Мне давно стоит обновить мини-мод, который за улучшение ИИ отвечает. Ну и основной проект конечно тоже обновление получит)


RE: Список модов со ссылками и информацией - Heromant - 30.06.2020 11:49

Господа, есть ли решение, которое переносит данную фичу в отдельный плагин HD мода (не на ERA)?
" - Первая помощь" дает всем живым существам армии +1,+2,+3 к здоровью "
Я видел это в Фреш моде: https://forum.heroesworld.ru/showthread.php?t=14443


RE: Ваши вопросы по ERM-скриптам - wessonsm - 30.06.2020 12:09

Как узнать тип стартового замка игрока?
В "информации о сценарии" выводится.


RE: Ваши вопросы по ERM-скриптам - XEPOMAHT - 30.06.2020 12:52

(30.06.2020 12:09)wessonsm Wrote:  Как узнать тип стартового замка игрока?

игрок*4+BASE+1F6B0

(30.06.2020 11:49)Heromant Wrote:  Господа, есть ли решение, которое переносит данную фичу в отдельный плагин HD мода (не на ERA)?
" - Первая помощь" дает всем живым существам армии +1,+2,+3 к здоровью "
Я видел это в Фреш моде: https://forum.heroesworld.ru/showthread.php?t=14443

1. Выпросить у автора исходные коды и пересобрать Фреш мод только с тем, чем надо.
2. Написать подобный плагин самому (благо там дело одного перехвата с проверкой на Первую Помощь и приплюсовыванию её значения к здоровью монстра - на ассемблере строк кода примерно 3-4).
3. Наплевать на SoD и делать моды на нормальной платформе - ЭРЕ.


RE: Ваши вопросы по ERM-скриптам - wessonsm - 30.06.2020 13:11

XEPOMAHT,
BASE - это смещение 400000, я правильно понял?
Сейчас попробую.


igrik Wrote:
(30.06.2020 12:09)wessonsm Wrote:  Как узнать тип стартового замка игрока?
В "информации о сценарии" выводится.

igrik, Спасибо!


RE: Ваши вопросы по ERM-скриптам - igrik - 30.06.2020 13:16

(30.06.2020 13:11)wessonsm Wrote:  XEPOMAHT,
BASE - это смещение 400000, я правильно понял?
Каждый ****** как он хочет.

У ХЕРОМАНТА это BASE
У Кавалериста это H3Main
У Сава/Бараторча это o_GameMgr

Но всё это 0x699538


XEPOMAHT, на самом деле я в который раз удивляюсь твоей способности "помогать не помогая"


RE: Ваши вопросы по ERM-скриптам - wessonsm - 30.06.2020 13:29

igrik, я плохо плаваю в этих адресах.
А зачем присваивать x2 значение -1, если следующей командой мы его переписываем?
!!VRx2:S-1;
!!UN:Cy2/4/?x2;


RE: Ваши вопросы по ERM-скриптам - XEPOMAHT - 30.06.2020 13:59

(30.06.2020 13:16)igrik Wrote:  У ХЕРОМАНТА это BASE
У Кавалериста это H3Main
У Сава/Бараторча это o_GameMgr

BASE - терминология Славы из исходников WoG, перекочевавшая и в MoP. Так же как и в IDA базу от WoG Team. Поэтому исторически сложившееся понятие "базового адреса" применяю до сих пор (старовер я).

H3Main - такое же странное название базовой структуры, ну это выбор Кавалериста (его структуры больше для профи, ибо совершенно не откомментированы, мне в них сложно что-то найти).

o_GameMgr - более соответствует реальности, но намеренная кастратность геройских структур, представленная моддерам для платформы HD-мода, меня не прельщает (Бараторч тогда отвечал, что вырезал всё, что не использует HD-мод, но это просто нежелание делиться наработками по структурам от Hota Crew).

Увы, разобщённость сообщества моддеров приносит свои плоды.

(30.06.2020 13:16)igrik Wrote:  на самом деле я в который раз удивляюсь твоей способности "помогать не помогая"

Только подсказываю. На ERM должны учится делать сами.


RE: Ваши вопросы по ERM-скриптам - RoseKavalier - 30.06.2020 18:29

Unfortunately 0x699538 is not a manager as some other classes from heroes3; otherwise we could deduce its name easily.
"Game" makes sense to me, as it holds data pertaining to the game. Without lack of a name for certain, I just went with "Main" as alternative for wog's "Base".
Base should be reserved for BaseMgr 0x699550 that handles all managers...which I poorly named Executive after Wog sources... rename was in fact done on source not long ago.
I renamed a lot of things recently and continue to do so... I know h3api is large and not the best documented, so far I went with a descriptive approach which was not something that could be said of many wog sources. There are plans for thorough documentation when time permits...

For mapeditor there is less doubt for names (although uncertainty remains) as it was compiled with RTTI giving us a lot of class names.
Question remains whether to part away from historical names or not.
e.g.
nwc vs common use
CSprite = Def
CSpriteFrame = DefFrame


RE: Ваши вопросы по ERM-скриптам - Ben - 30.06.2020 18:51

(30.06.2020 18:29)RoseKavalier Wrote:     There are plans for thorough documentation when time permits...

Не трать зря время, на всех не угодишь. Никакие комментарии не помогут, если человек не занимается практикой. Если же занимается - то извлечь из H3API огромную пользу не составит труда. Большинство наименований структур и полей, что называется "self-explanatory", тем более что, насколько я понимаю, ты потратил немалое время именно на подбор наиболее подходящих названий/наименований.


RE: Ваши вопросы по ERM-скриптам - Bes - 30.06.2020 19:07

(30.06.2020 13:29)wessonsm Wrote:  igrik, я плохо плаваю в этих адресах.
А зачем присваивать x2 значение -1, если следующей командой мы его переписываем?
!!VRx2:S-1;
!!UN:Cy2/4/?x2;
стандартная инициализация в нейтральное значение, обнуление типа.
это правило хорошего тона опытного скриптера, как я себе это представляю.


RE: Ваши вопросы по ERM-скриптам - Berserker - 30.06.2020 20:02

Bes, если далее сразу же перезапись, то можно не инициализировать. Однако вреда не будет. Бывает, строку удалишь, а дальше случайные баги.


RE: Ваши вопросы по ERM-скриптам - XEPOMAHT - 30.06.2020 20:39

(30.06.2020 18:29)RoseKavalier Wrote:  Unfortunately 0x699538 is not a manager as some other classes from heroes3; otherwise we could deduce its name easily.

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

Также менеджер всегда имеет базовый адрес, по которому игра его видит. У BASE базовый адрес так же имеется.


RE: Ваши вопросы по ERM-скриптам - igrik - 01.07.2020 09:40

(30.06.2020 13:29)wessonsm Wrote:  А зачем присваивать x2 значение -1, если следующей командой мы его переписываем?
!!VRx2:S-1;
!!UN:Cy2/4/?x2;
Это я на автомате написал. Конечно строки с обнулением в данном случае не нужно)

(30.06.2020 20:39)XEPOMAHT Wrote:  
(30.06.2020 18:29)RoseKavalier Wrote:  Unfortunately 0x699538 is not a manager as some other classes from heroes3; otherwise we could deduce its name easily.
Тот же менеджер битвы обзывают то CombatManager, то BattleManager
Кавалерист говорит о том, что каждый из существующих игровых менеджеров имеет своё название (текстовое поле), видимо нужное для более простой отладки и понимания в какой момент какой порядок менеджеров используется.

Менеджер->0x14 = char mng_name[28];


RE: Ваши вопросы по ERM-скриптам - XEPOMAHT - 01.07.2020 19:13

(01.07.2020 18:31)Bes Wrote:  
igrik Wrote:

Можно обратиться к исходникам MoP, где есть список менеджеров:

Code:
define advManager     dword [6992B8h]
define MouseManager     dword [6992B0h]
define COMBAT_MANAGER     dword [699420h]
define swapManager     dword [6A3D90h]
define townManager     dword [69954Ch]
define heroWindowManager dword [6992D0h]

По ним BASE так же не менеджер, а просто кусок динамической памяти:

Code:
BASE               equ dword [699538h]; Базовый адрес динамической памяти Героев

Но по хотовским сорцам BASE уже в списке менеджеров, поэтому тут не известно чему верить:

Code:
// Менеджреры игры. Несколько из них ещё не распознаны.
// _bool32_ __cdecl sub_4EE1D0() - инициализация менеджеров. По ней распознан их размер.

// Some Mgr по 0x699550, размер: 16

// Менеджер ввода, управляющий событиями ввода.
struct _InputMgr_; // Размер: 2400
#define o_InputMgr (*(_InputMgr_**)0x699530)

// Менеджер мыши.
struct _MouseMgr_; // Размер: 144
#define o_MouseMgr (*(_MouseMgr_**)0x6992B0)

// Менеджер окна программы.
struct _WndMgr_; // Размер: 96
#define o_WndMgr (*(_WndMgr_**)0x6992D0)

// Менеджер звука.
struct _SoundMgr_; // Размер: 216
#define o_SoundMgr (*(_SoundMgr_**)0x699414)

// Some Mgr по 0x69941C, размер: 2260

// Менеджер игры.
struct _GameMgr_; // Размер: 321488
#define o_GameMgr (*(_GameMgr_**)0x699538)

// Менеджер карты приключений.
struct _AdvMgr_; // Размер: 952
#define o_AdvMgr (*(_AdvMgr_**)0x6992B8)

// Менеджер битвы.
struct _BattleMgr_; // Размер: 82156
#define o_BattleMgr (*(_BattleMgr_**)0x699420)

// Менеджер окна города.
struct _TownMgr_; // Размер: 472
#define o_TownMgr (*(_TownMgr_**)0x69954C)

// Some Mgr по 0x6992D4, размер: 112

// Some Mgr по 0x6992DC, размер: 1



RE: Ваши вопросы по ERM-скриптам - igrik - 01.07.2020 19:24

(01.07.2020 19:13)XEPOMAHT Wrote:  По ним BASE так же не менеджер, а просто кусок динамической памяти

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


RE: Вопросы по моддингу - MOP - 01.07.2020 23:31

Да мне-то что верить. Я даже не знаю, почему они называются менеджерами, а не какими-нибудь супервайзерами. Ab
Хотя вот для этих:
Code:
define advManager     dword [6992B8h]
define MouseManager     dword [6992B0h]
define COMBAT_MANAGER     dword [699420h]
define swapManager     dword [6A3D90h]
define townManager     dword [69954Ch]
define heroWindowManager dword [6992D0h]
я скопировал оригинальные имена данных... сущностей. Игра сама их так и называет.


RE: Вопросы по моддингу - RoseKavalier - 02.07.2020 02:32

Base/Main/Game also lacks virtual table... one can say it manages memory and it can even be called BaseMgr, MainMgr, GameMgr... but it is not a manager in the sense of nwc code ~ the class is not derived from BASEMGR (0x44D200) whereas the others are (and some other). There are also has subsequent initializations to temporary memory when you are in campaign dialogs or choosing a new map, all things that make it different from the others. In the big picture the impact is ~~0 when suitable name is used.

Random map creation also uses a central structure, which is simply named "random_map_generator" according to mapeditor 96-copy

Game Data/Details/Info/... is the most representative name I can think of; base and main are good candidates as well albeit less informative.


RE: Вопросы по моддингу - planetavril - 02.07.2020 02:56

someone manages to fix this plugin to unlink disabled buildings so that it works with connected typhon:
Sblocked Buildings


RE: Вопросы по моддингу - XEPOMAHT - 02.07.2020 11:08

(02.07.2020 02:56)planetavril Wrote:  someone manages to fix this plugin to unlink disabled buildings so that it works with connected typhon

1. Без исходников - никак. Просите Феанора (вроде бы его, раз утащили с H3:SW).
2. Данные, которые меняют эти плагины, можно изменить и без плагинов с помощью бинарного патча / UN:C / напрямую в exe. Включая запрет строений - всё это табличные данные и ни грамма кода.


RE: Ваши вопросы по ERM-скриптам - Berserker - 06.07.2020 01:32

igrik, в теме UN:C налево и направо идёт установка ссылок на ERT-строки, но их память не гарантируется постоянной (F12, перезагрузка, вызов функции обновления), да и сам формат устарел. Если убрать из ВоГ скриптов z-переменные, я бы лучше остановился на функции AllocZVar, FreeZVar. Давно хотел такой менеджер сделать, да почти вся память была занята тем, чему место в !!VRs^...^


RE: Вопросы по моддингу - Zur13 - 07.07.2020 00:43

Как в ЕРМ скрипте обнаружить нажатия на кнопки Передачи всех артефактов/артефактов куклы героя или обмена всеми артефактами/обмена артефактами с кукол героев на экране встречи героев?


RE: Вопросы по моддингу - igrik - 07.07.2020 00:45

Кнопки которые HD-шные?


RE: Вопросы по моддингу - Zur13 - 07.07.2020 01:13

(07.07.2020 00:45)igrik Wrote:  Кнопки которые HD-шные?

Да, они же вроде только HD модом добавляются, в оригинале их небыло.


RE: Вопросы по моддингу - igrik - 07.07.2020 01:28

В этом и вся проблема, что ERMу это наверное не возможно - отслеживать нажатия HD шных кнопок


RE: Вопросы по моддингу - daemon_n - 07.07.2020 03:27

А CM:I?y1; ? Если не ошибаюсь, Id этих кнопок статичный. Я пытался данный код улучшить для передачи военных машин. Есть даже эрм скрипт для этого в вог скриптс. Там много авторов, но сделано через позицию курсора на экране в момент клика. Вполне все отслеживалось. Могу, конечно, путаться, но проверить стоит.

Как пример - без hd mod id кнопок героев на кп 39-43, с - 39-46. Справка содержит инфо лишь о первых 5. Так что данный момент работает.


RE: Вопросы по моддингу - wessonsm - 07.07.2020 08:42

Zur13, daemon_n, проверил, !?CM3 действительно срабатывает для HD-шного окна встречи героев.
Id кнопок можно проверить вот так (по правому клику):
Кнопки передачи артов 450-452.


RE: Вопросы по моддингу - Zur13 - 07.07.2020 12:48

(07.07.2020 03:27)daemon_n Wrote:  А CM:I?y1; ? Если не ошибаюсь, Id этих кнопок статичный. Я пытался данный код улучшить для передачи военных машин. Есть даже эрм скрипт для этого в вог скриптс. Там много авторов, но сделано через позицию курсора на экране в момент клика. Вполне все отслеживалось. Могу, конечно, путаться, но проверить стоит.

Как пример - без hd mod id кнопок героев на кп 39-43, с - 39-46. Справка содержит инфо лишь о первых 5. Так что данный момент работает.

(07.07.2020 08:42)wessonsm Wrote:  Zur13, daemon_n, проверил, !?CM3 действительно срабатывает для HD-шного окна встречи героев.
Id кнопок можно проверить вот так (по правому клику):
Кнопки передачи артов 450-452.

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


RE: Вопросы по моддингу - igrik - 07.07.2020 13:16

(07.07.2020 12:48)Zur13 Wrote:  Подумал что в первый раз когда сам проверял что-то накосячил, но нет, проверил только что еще раз, у меня для правой кнопки мыши срабатывает перехват, а для левой - нет.
Поэтому я и написал, что для ERMа это практически неподъемная задача. Для ЛКМ.

Проблема вот в чём:
- HD мод ставит перехват на функцию обработки событий в окне встречи героев и запускает свою функцию, скажем "Heroes_Meet_Proc", и выполняет сначала свои действия, а лишь потом запускает оригинальный обработчик (и то не всегда). Например, обработав действия своих кнопок, HD выходит из функции и НЕ запускает орининальный обработчик. Именно поэтому не ловится ЛКМ по нажатию на HD-шные кнопки

Выглядит это так:
Code:
0x5B0100_Hook Heroes_Meet_Proc ()
{
  - сначала идет обработка действий HD по новым кнопкам. И если это кнопки HD, то выполняются действия с артами или монстрами, а потом идет возврат из этой функции минуя нижеследующую строку.
  - а только потом запускается оригинальный обработчик действий, на котором висят хуки Вога, которые и дают возможность работать ERMу
}

В итоге чтобы сделать обработку ERMа до действий HD, нужно выловить динамический адрес функции Heroes_Meet_Proc (что легко сделать), и найти в ней место для ERM хука (вот в этом самая большая сложность)

Но я попробую что то придумать. Хотя и не обещаю, что получится.


RE: Вопросы по моддингу - Zur13 - 07.07.2020 13:24

(07.07.2020 13:16)igrik Wrote:  
(07.07.2020 12:48)Zur13 Wrote:  Подумал что в первый раз когда сам проверял что-то накосячил, но нет, проверил только что еще раз, у меня для правой кнопки мыши срабатывает перехват, а для левой - нет.
Поэтому я и написал, что для ERMа это практически неподъемная задача. Для ЛКМ.

Проблема вот в чём:
- HD мод ставит перехват на функцию обработки событий в окне встречи героев и запускает свою функцию, скажем "Heroes_Meet_Proc", и выполняет сначала свои действия, а лишь потом запускает оригинальный обработчик (и то не всегда). Например, обработав действия своих кнопок, HD выходит из функции и НЕ запускает орининальный обработчик. Именно поэтому не ловится ЛКМ по нажатию на HD-шные кнопки

Выглядит это так:
Code:
0x5B0100_Hook Heroes_Meet_Proc ()
{
  - сначала идет обработка действий HD по новым кнопкам. И если это кнопки HD, то выполняются действия с артами или монстрами, а потом идет возврат из этой функции минуя нижеследующую строку.
  - а только потом запускается оригинальный обработчик действий, на котором висят хуки Вога, которые и дают возможность работать ERMу
}

В итоге чтобы сделать обработку ERMа до действий HD, нужно выловить динамический адрес функции Heroes_Meet_Proc (что легко сделать), и найти в ней место для ERM хука (вот в этом самая большая сложность)

Но я попробую что то придумать. Хотя и не обещаю, что получится.

Буду очень благодарен, я уже на финальной стадии, осталось чуть ИИ научить пользоваться модом и выложу раннюю версию.


RE: Разные вопросы - planetavril - 07.07.2020 14:17

someone could create a plugin to enable blocked buildings and be able to choose which ones to unlock?for example enable:mage guild 4 and 5 for all town,hrd2,hrd2upg for the castle,extra animation for tower and inferno,disable dock and boat for necropolis


RE: Разные вопросы - Berserker - 07.07.2020 14:21

XEPOMAHT, зависимости строения жёстко закодированы в коде? Есть возможность их элегантно поменять плагином?


RE: Вопросы по моддингу - Berserker - 07.07.2020 14:28

igrik, я ещё тестировал !?CM0, на ряде кнопок с HD-модом (например, просмотр информации о сценарии), тоже до ЕРМ не доходит управление. На мой взгляд, весьма недружелюбная реализация для не SoD/Hota. Давайте коллективно к Баре обратимся, чтобы во всех местах для WoG/ERA просто CM:R0 ставился.
ZvsAllowDefMouseReaction: plongbool = Ptr($A4AAFC);


RE: Разные вопросы - XEPOMAHT - 07.07.2020 14:36

(07.07.2020 14:21)Berserker Wrote:  зависимости строения жёстко закодированы в коде?

Нет, там простая таблица.

(07.07.2020 14:21)Berserker Wrote:  Есть возможность их элегантно поменять плагином?

Да хоть ERM-ом:
ERM-HELP Wrote:СА:B#/$
Настройка зданий города:
    # = 1 – построить здание $
    # = 2 – разрушить здание $
    # = 3 – проверить, построено ли здание $ (во флаг 1)
    # = 4 – разрешить для постройки здание $
    # = 5 – запретить для постройки здание $
    # = 6 – построить здание в городе, используя внутреннюю функцию
Шестая опция - улучшение первой, она позволяет строить многоуровневые здания (гильдия магов, к примеру) без ошибок.

CD:B0/#1/#2/$
Глобальное разрешение/запрещение построек
    #1 – тип города
    #2 – номер здания
    $ – 0=запретить, 1=разрешить

CD:B1/#1/#2/$1/$2
Установить зависимость построек для здания.
    #1 – тип города
    #2 – номер здания
    $1 – первое значение (байты 0..3), см. номера зданий
    $2 – второе значение (байты 4..5), см. номера зданий

CD:B2/#1/#2/#3/#4/#5/#6/#7/#8/#9/#10/#11/#12/#13/#14/#15/#16
Установить зависимость построек для здания
    #1 – тип города
    #2 – тип здания
    #3…#16 – номера зданий, от которых зависит здание #2
Можно использовать как инструкцию, опускать ненужные параметры. Нельзя проверить или получить.

CD:B3/#1/#2/$1/$2
Установить исключающие зависимости для здания.
    #1 – тип города
    #2 – номер здания
    $1 – первое значение (байты 0..3), см. номера зданий
    $2 – второе значение (байты 4..5), см. номера зданий

   Но перевод строений из декораций в постройки (и наоборот) - уже кодом в функции, которая их проверяет и указывает зависимости строительства декораций (например в определённых городах при строительстве Ратуши/Префектуры/Муниципалитета автоматически строятся "дочерние" им декорации и т.д.), в ERA+ за счёт этого и были добавлены новые объекты строительства.


RE: Разные вопросы - planetavril - 07.07.2020 15:19

It should be so?

ZVSE

!!IF:M^Now^;

CA-1:B1/1;
CA-1:B3/1;
CA-1:B4/3;
CD:B0/0/4/1;
CD:B1/0/4/4/2;
CD:B2/0/4/3/2/1;


RE: Разные вопросы - daemon_n - 07.07.2020 15:35

planetavril, you should add any trigger before.


RE: Разные вопросы - planetavril - 07.07.2020 15:42

nothing I don't know anything about erm


RE: Разные вопросы - Berserker - 07.07.2020 18:43

planetavril, for which Era version do you need the code?


RE: Вопросы по моддингу - igrik - 07.07.2020 20:43

(07.07.2020 13:24)Zur13 Wrote:  Буду очень благодарен, я уже на финальной стадии, осталось чуть ИИ научить пользоваться модом и выложу раннюю версию.
Нет. Не получается, даже через плагин со сплайс хуком. Бараторч, обработав нажатия своих кнопок производит "return 1" и даже другой хук через патчер неспособен сработать после таких действий. Нужно ставить хук раньше HD мода, но как это сделать я не знаю.

Либо как пишет Берс - обращаться к Баре, чтобы он адаптировал функционал для ERM.


RE: Вопросы по моддингу - Bes - 07.07.2020 20:49

либо делать костыль с контролем определённых координат, наличием HD и таблицей адаптации координат под разные разрешения (тут не уверен, меняются ли координаты?)Unsure


RE: Вопросы по моддингу - daemon_n - 07.07.2020 21:11

Bes, не меняются , так как окна 800*600


RE: Вопросы по моддингу - wessonsm - 07.07.2020 21:26

А кстати, можно ли как-то проверить, включен ли твик в HD?
Через ReadStrFromIni вроде не получается, формат ini-файлов в HD другой.


RE: Вопросы по моддингу - daemon_n - 07.07.2020 21:43

wessonsm, сторонним софтом разве что копировать параметры при старте игры105


RE: Разные вопросы - planetavril - 08.07.2020 00:45

3.02


RE: Разные вопросы - Berserker - 08.07.2020 01:33

Херомант, не выходит преодолеть ограничения. Гильдия магов 4-го и 5-го уровня остаётся недоступной для цитадели.
Скрипт:



RE: Разные вопросы - planetavril - 08.07.2020 02:32

also enable mage guild 5 for the castle and extra animation for tower and inferno?
Thanks for the script


RE: Разные вопросы - planetavril - 08.07.2020 02:37

then to activate extra animation for the tower
i have to write
    !! CA0/s:B4/24;enable extra animation buildings


RE: Разные вопросы - XEPOMAHT - 08.07.2020 02:44

(08.07.2020 01:33)Berserker Wrote:  Гильдия магов 4-го и 5-го уровня остаётся недоступной для цитадели.

Если добавляется уровень гильдии магов, которого не было, то ещё его нужно:
1. прописывать в массиве Town_BuildingsDrawOrder (по вогу это TownsBuildingsDrawQueue, там же можно подсмотреть адрес).
2. Добавлять деф строения в массив Town_BuildingsDefs.
3. Добавлять графику рамки в массив Town_BuildingsSelection.
4. Записать координаты строения в Town_BuildingsCoords.
5. Прописать зависимости строений в Town_BuildingsDependMasks.
6. Разрешить строение в Town_BuildingsMask.
7. Настроить игнор рендера дефов в Town_BuildingsReplaceMasks.
8. Может что-то ещё... (для городов полтинник таблиц, всего и не упомнишь)

Если не строиться здание и после этого, то пробуйте строить ERM-ом (т.к. в оригинале в диалоге холла тоже может стоять ограничение, это только в MoP/ERA+ используется универсальный диалог холла 148 , в котором разрешено всё). Если чего-то не хватает, то всё равно прозвучит звук строительства, т.е. можно будет определить, что игра пытается что-то строить.


RE: Разные вопросы - planetavril - 08.07.2020 03:09

can I do it directly in the exe file in hexadecimal?.

however then it will cause errors with typhon, because that's exactly what they did in succession wars, they added buildings that weren't there,
adding typhon in succession wars freezes the game when you click on the fort to buy creatures because
typhon conflicts with the H3SW_buildups plugin which manages added buildings


RE: Разные вопросы - Berserker - 08.07.2020 03:31

planetavril, seems like the following changes are not easy to implement right now.


RE: Разные вопросы - igrik - 08.07.2020 14:45

Berserker, SN:E возвращает только целочисленное значение в v1?
Как-то можно вернуть float? Про double я вообще молчу)

Вообще, у этого рессивера есть скрытые/незадокументированные возможности?


(08.07.2020 01:33)Berserker Wrote:  не выходит преодолеть ограничения. Гильдия магов 4-го и 5-го уровня остаётся недоступной для цитадели.
В коде этот момент жестко зашит.
Но снять ограничение в окне хола можно так
!!UN:C4591530/1/<>6;


RE: Разные вопросы - Berserker - 08.07.2020 16:23

igrik, попробуй к CALLING CONVENTION прибавить 4, будет float result в e1.


RE: Разные вопросы - planetavril - 08.07.2020 16:34

(08.07.2020 03:31)Berserker Wrote:  planetavril, seems like the following changes are not easy to implement right now.

if typhonz.era is fixed to work together with H3SW_buildups, the buildings are already added


RE: Разные вопросы - Berserker - 08.07.2020 16:36

planetavril, did you try both plugins?


RE: Разные вопросы - planetavril - 08.07.2020 16:41

yes with typhonz.era together with H3SW_buildups but the game stops when you click on the fort to buy creatures, otherwise it works,
and that only the missing mage guilds for all cities have been added, so I will wait when other buildings like extra animation can be added, unless someone creates the plugin


RE: Вопросы по моддингу - Zur13 - 08.07.2020 20:07

А может кто-нибудь знает как можно для стеков боевых машин включить флажок с количеством существ в стеке как у обычных монстров?

Image: 1111.jpg


RE: Вопросы по моддингу - Berserker - 08.07.2020 22:17

Zur13, убрать флаг боевых машин? )


RE: Вопросы по моддингу - igrik - 08.07.2020 22:38

(08.07.2020 20:07)Zur13 Wrote:  А может кто-нибудь знает как можно для стеков боевых машин включить флажок с количеством существ в стеке как у обычных монстров?
Исключаем из проверки флаг Боевые машины:
!!UN:C4448944/1/21; (ориг=6) 21 - это сдвиг, т.е. 2^21 - флаг мертв

А поле 0x30 (1 байт) у боевого стека отвечает за показ этого же кол-ва существ. Например при ходьбе поле 0x30 = 0 и кол-во не показывается

(08.07.2020 22:17)Berserker Wrote:  Zur13, убрать флаг боевых машин? )
Berserker , это же наихудшее из возможных решений)
Масса проверок на боевые машины есть в коде игры. Очень легко в любой момент может произойти ахтунг. Например, если не будет флага боевая машина, то ей возможно получится двигаться, а значит это гарантированный вылет из игры


RE: Вопросы по моддингу - Bes - 08.07.2020 22:41

ИИ от такой "магии" не поедет крышей при анализировании вражеской стороны?


RE: Вопросы по моддингу - Zur13 - 08.07.2020 22:45

(08.07.2020 22:38)igrik Wrote:  
(08.07.2020 20:07)Zur13 Wrote:  А может кто-нибудь знает как можно для стеков боевых машин включить флажок с количеством существ в стеке как у обычных монстров?
Исключаем из проверки флаг Боевые машины:
!!UN:C4448944/1/21; (ориг=6) 21 - это сдвиг, т.е. 2^21 - флаг мертв

А поле 0x30 (1 байт) у боевого стека отвечает за показ этого же кол-ва существ. Например при ходьбе поле 0x30 = 0 и кол-во не показывается

Супер! Спасибо! Работает включу в следующую версию мода, вопрос когда применять один раз через !#, !# и на каждой загрузке сейва или просто в !?BA53 достаточно?


RE: Вопросы по моддингу - igrik - 08.07.2020 22:48

Один раз при старте карты.


RE: Вопросы по моддингу - Berserker - 08.07.2020 23:09

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


RE: Вопросы по моддингу - Zur13 - 09.07.2020 01:21

Еще вопрос, я никак не могу разобраться как всё устроенно с анимациями и картинками монстров, можно ли сделать так чтобы у монстра №124 были на поле битвы анимация, звуки, и картинка от катапульты, а у монстра №126 от баллисты? Возможно ли это всё просто скопировать из существующего юнита?

Для анимации боевой баллисты я просто призываю стек осадной баллисты и заменяю его тип юнита на 126, но например в экране потерь после битвы такой стек всё равно будет показан как копейщик перечеркнутый, а с баллистой вообще проблема, так как в битве во всплывающем окне может показываться картинка копейщика перечеркнутого, так как это окошко успевает сгенерироваться до того как срабатывает СМ триггер и я подменяю тип юнита обратно.

Image: 2222.jpg


RE: Разные вопросы - feanor - 09.07.2020 02:54

(08.07.2020 16:41)planetavril Wrote:  yes with typhonz.era together with H3SW_buildups but the game stops when you click on the fort to buy creatures, otherwise it works,
and that only the missing mage guilds for all cities have been added, so I will wait when other buildings like extra animation can be added, unless someone creates the plugin

Мда, ох уж эти орочьи методы (:

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


RE: Разные вопросы - planetavril - 09.07.2020 03:42

(09.07.2020 02:54)feanor Wrote:  Мда, ох уж эти орочьи методы (:

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

ok,you can't turn it around,and you don't have time to create one similar specifically for era,or maybe you don't want to do it?


RE: Вопросы по моддингу - RoseKavalier - 09.07.2020 06:13

(08.07.2020 20:07)Zur13 Wrote:  А может кто-нибудь знает как можно для стеков боевых машин включить флажок с количеством существ в стеке как у обычных монстров?

look...
Code:
0x43E2AC EB 0B
Image: JxHULI8.png

Argh, I now just see igrik posted it in ERM) gg


RE: Ваши вопросы по ERM-скриптам - igrik - 09.07.2020 10:26

(06.07.2020 01:32)Berserker Wrote:  igrik, в теме UN:C налево и направо идёт установка ссылок на ERT-строки, но их память не гарантируется постоянной (F12, перезагрузка, вызов функции обновления), да и сам формат устарел. Если убрать из ВоГ скриптов z-переменные, я бы лучше остановился на функции AllocZVar, FreeZVar. Давно хотел такой менеджер сделать, да почти вся память была занята тем, чему место в !!VRs^...^
Berserker, я согласен с тем что установка ссылок на ERT-строки не лучший выход. Но в то время нужно было какое-то решение. Слишком сильно это было нужно - на все желания z переменных катастрофически не хватало. И менеджера не было. То что сейчас пришел json, !!VRs^...^, SH:H^...^ это круто, но поздно. Ты сам это прекрасно понимаешь.
Но я не понял что от меня на данный момент требуется? Отредачить тему UN:C и убрать из неё функционал установки ссылок на ERT-строки?


RE: Вопросы по моддингу - XEPOMAHT - 09.07.2020 10:51

(09.07.2020 01:21)Zur13 Wrote:  можно ли сделать так чтобы у монстра №124 были на поле битвы анимация, звуки, и картинка от катапульты, а у монстра №126 от баллисты? Возможно ли это всё просто скопировать из существующего юнита?

1. Установить Тифон и настроить этих монстров по своему усмотрению.
2. Изменить структуру монстров для неиспользованных монстров вручную - поменять ссылки на имена дефов, озвучку и изменить спрайты портретов.

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


RE: Вопросы по моддингу - igrik - 09.07.2020 11:19

(09.07.2020 01:21)Zur13 Wrote:  Еще вопрос, я никак не могу разобраться как всё устроенно с анимациями и картинками монстров, можно ли сделать так чтобы у монстра №124 были на поле битвы анимация, звуки, и картинка от катапульты, а у монстра №126 от баллисты? Возможно ли это всё просто скопировать из существующего юнита?

Для анимации боевой баллисты я просто призываю стек осадной баллисты и заменяю его тип юнита на 126


Дефы снарядов еще установи. В теме UN:C есть нужная функция.
Озвучку ставить не нужно. Вышеуказанная функция копирования это делает сама.

И без проблем призывай монстров 124 или 126.


(09.07.2020 01:21)Zur13 Wrote:  но например в экране потерь после битвы такой стек всё равно будет показан как копейщик перечеркнутый, а с баллистой вообще проблема, так как в битве во всплывающем окне может показываться картинка копейщика перечеркнутого, так как это окошко успевает сгенерироваться до того как срабатывает СМ триггер и я подменяю тип юнита обратно.
Вот тут ты никак не решишь проблему. Только пересобирать файлы twcrport.def и CPRSMALL.def


RE: Ваши вопросы по ERM-скриптам - Berserker - 09.07.2020 13:01

igrik Wrote:Но я не понял что от меня на данный момент требуется? Отредачить тему UN:C и убрать из неё функционал установки ссылок на ERT-строки?
igrik, это я об альтернативах размышляю безопасным и переносимых.
По-хорошему, такой работой должен заниматься плагин Lua. Плагин запускается с ехе и выгружается только при завершении процесса. Плагин может обеспечить существование в памяти строк, их хранение в файлах, восстановление оригинальных значений и загрузку (как я делаю в коде Эры с SN:H). А обычный скрипт Lua/ERM только наследить может, не заботясь о последствиях. Тут скорее в коде нужен тег @warning или @not portable. Чтобы чуть отредактировать в будущем.

Для Эра 3 в качестве полу-костыля есть ещё идея API постоянных строк. AllocConstStr(pchar StrValue) — возвращает глобальный постоянный адрес для всех строк с указанным содержимым. Такой адрес можно безопасно использовать. Один минус — память будет течь, если генерировать разные строки часто.


RE: Разные вопросы - Berserker - 09.07.2020 13:02

(09.07.2020 02:54)feanor Wrote:  Как бы, на минуточку, этот плагин заодно и TSWшный функционал реализует, так что попытки гираически подключить его к эре не приведут ни к чему.
feanor, может откроешь исходники, чтобы можно было закомментировать ненужный функционал. Решило бы это проблему?


RE: Разные вопросы - feanor - 09.07.2020 19:46

(09.07.2020 13:02)Berserker Wrote:  feanor, может откроешь исходники, чтобы можно было закомментировать ненужный функционал. Решило бы это проблему?
Да, я выложу сегодня или завтра.

Единственный нюанс - на ERM оно прям с места не портабельно, я правлю промежуточные структуры, которые уже самой игрой собираются в используемые игрой таблицы (:


RE: Вопросы по моддингу - Bes - 09.07.2020 20:24

igrik Wrote:Вот тут ты никак не решишь проблему. Только пересобирать файлы twcrport.def и CPRSMALL.def
ну да, собрать свой def и когда надо подменять им оригинальный через SN:R Yes


RE: Разные вопросы - Bes - 09.07.2020 20:27

feanor, и если улучшал свой chalk плагин, но не публиковал, тож не пожадничай и выложи (хотя бы что есть) пожалуйста Ab


RE: Вопросы по моддингу - daemon_n - 09.07.2020 20:55

Вот и нашли решение96-copy



RE: Вопросы по моддингу - Zur13 - 09.07.2020 21:16

(09.07.2020 11:19)igrik Wrote:  

Дефы снарядов еще установи. В теме UN:C есть нужная функция.
Озвучку ставить не нужно. Вышеуказанная функция копирования это делает сама.

И без проблем призывай монстров 124 или 126.


(09.07.2020 01:21)Zur13 Wrote:  но например в экране потерь после битвы такой стек всё равно будет показан как копейщик перечеркнутый, а с баллистой вообще проблема, так как в битве во всплывающем окне может показываться картинка копейщика перечеркнутого, так как это окошко успевает сгенерироваться до того как срабатывает СМ триггер и я подменяю тип юнита обратно.
Вот тут ты никак не решишь проблему. Только пересобирать файлы twcrport.def и CPRSMALL.def

Спасибо!

(09.07.2020 20:24)Bes Wrote:  
igrik Wrote:Вот тут ты никак не решишь проблему. Только пересобирать файлы twcrport.def и CPRSMALL.def
ну да, собрать свой def и когда надо подменять им оригинальный через SN:R Yes

Я части про SN:R не понял, я сейчас пересобрал 2 деф файла с портретами юнитов, пустым юнитам 124 и 126 заменил портреты копейщика перечеркнутого на мои. Пересобранные дефы с новыми портретами, закинул в .pac файл, который внутри моего мода. Теперь вроде всё верно отображается, потому не очень понял что нужно сделать в SN:R.


RE: Вопросы по моддингу - Bes - 09.07.2020 21:23

ну, я про то, что не обязательно было принудительно файлы twcrport.def и CPRSMALL.def своими подменять в ресурсах, ведь не исключено что выше приоритетом кто-то будет ставить свой мод, где эти же файлы перекроют твои.
куда надёжнее перед боем делать подмену этих файлов через SN:R и быть увереннным, что вновь не будут те же копейщики.

а свои варианты естественно назвать чуть иначе, ztwcrport.def и zCPRSMALL.def (к примеру)


RE: Вопросы по моддингу - Zur13 - 09.07.2020 21:36

(09.07.2020 21:23)Bes Wrote:  ну, я про то, что не обязательно было принудительно файлы twcrport.def и CPRSMALL.def своими подменять в ресурсах, ведь не исключено что выше приоритетом кто-то будет ставить свой мод, где эти же файлы перекроют твои.
куда надёжнее перед боем делать подмену этих файлов через SN:R и быть увереннным, что вновь не будут те же копейщики.

а свои варианты естественно назвать чуть иначе, ztwcrport.def и zCPRSMALL.def (к примеру)

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


RE: Вопросы по моддингу - Bes - 09.07.2020 21:41

Zur13 Wrote:вопрос лишь в том в какой момент это всё сломается
Zur13 вот именно, если ты меняешь сразу через *.pac, то "поломаешь" другой мод изначально. А подменой налету перед боем "испортишь" картинки только в бою, и не более.
имхо, это менее конфликтно


RE: Вопросы по моддингу - Zur13 - 09.07.2020 22:02

(09.07.2020 11:19)igrik Wrote:  Дефы снарядов еще установи. В теме UN:C есть нужная функция.

Снаряды там по умолчанию правильные, но они ориентированны вертикально, и вылетают из под заднего колеса баллисты, незнаю как это починить 105

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

Image: ballista-projectile.jpg

(09.07.2020 21:41)Bes Wrote:  
Zur13 Wrote:вопрос лишь в том в какой момент это всё сломается
Zur13 вот именно, если ты меняешь сразу через *.pac, то "поломаешь" другой мод изначально. А подменой налету перед боем "испортишь" картинки только в бою, и не более.
имхо, это менее конфликтно

Да идею понял, попробую так сделать, спасибо!


RE: Вопросы по моддингу - Raistlin - 09.07.2020 22:26

(09.07.2020 22:02)Zur13 Wrote:  Снаряды там по умолчанию правильные, но они ориентированны вертикально, и вылетают из под заднего колеса баллисты, незнаю как это починить 105
Привет, у меня тоже была эта проблема, и я с ней довольно долго мучался, пока случайно не сообразил, что же я все-таки забыл: оказывается, снаряд всегда летит вертикально, если у стрелка не выставлены параметры в файле cranim.txt.


RE: Вопросы по моддингу - Zur13 - 09.07.2020 22:37

(09.07.2020 22:26)Raistlin Wrote:  Привет, у меня тоже была эта проблема, и я с ней довольно долго мучался, пока случайно не сообразил, что же я все-таки забыл: оказывается, снаряд всегда летит вертикально, если у стрелка не выставлены параметры в файле cranim.txt.

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


RE: Вопросы по моддингу - Raistlin - 09.07.2020 23:16

Через UN:C это должно быть возможно.


RE: Вопросы по моддингу - Zur13 - 10.07.2020 00:29

(09.07.2020 21:41)Bes Wrote:  Zur13 вот именно, если ты меняешь сразу через *.pac, то "поломаешь" другой мод изначально. А подменой налету перед боем "испортишь" картинки только в бою, и не более.
имхо, это менее конфликтно

К сожалению не получилось так, возможно причина в том, что всплывающее сбоку окошко строится HD модом, но в нем перечеркнутый копейщик показывается, не смотря на:

Code:
!?BA52;
!!SN:R^CPRSMALL.def^/^z4CPRSMALL.def^;
!!SN:R^twcrport.def^/^z4twcrport.def^;



RE: Вопросы по моддингу - Bes - 10.07.2020 00:38

Zur13, а без HD, в окне подсказки по стэку картинка уже сменилась?


RE: Вопросы по моддингу - Zur13 - 10.07.2020 01:12

(10.07.2020 00:38)Bes Wrote:  Zur13, а без HD, в окне подсказки по стэку картинка уже сменилась?

Проверил, без HD мода тоже не сменилась...


RE: Вопросы по моддингу - wessonsm - 10.07.2020 01:37

Некоторые ресурсы, в частности объекты карты (но не факт, что только они), загружаются в память один раз при старте игры, и следовательно функция RedirectFile (и обертка !!SN:R) во время игры на них влияния не оказывает.
Где-то feanor об этом говорил здесь на форуме.
Возможно, в этом дело.


RE: Вопросы по моддингу - Berserker - 10.07.2020 01:48

wessonsm, или перед боем, или перед открытием диалога.


RE: Вопросы по моддингу - Zur13 - 10.07.2020 01:52

(10.07.2020 01:37)wessonsm Wrote:  Некоторые ресурсы, в частности объекты карты (но не факт, что только они), загружаются в память один раз при старте игры, и следовательно функция RedirectFile (и обертка !!SN:R) во время игры на них влияния не оказывает.
Где-то feanor об этом говорил здесь на форуме.
Возможно, в этом дело.

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


RE: Вопросы по моддингу - wessonsm - 10.07.2020 02:12

(10.07.2020 01:48)Berserker Wrote:  wessonsm, или перед боем, или перед открытием диалога.

Я пробовал через SN:R менять дефы объектов на карте, ничего не получилось.


RE: Вопросы по моддингу - Berserker - 10.07.2020 02:40

wessonsm, то объекты карты приключений — корневого диалога.


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

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


RE: Вопросы по моддингу - Berserker - 10.07.2020 15:26

feanor, а толку, если где-то сохранены указатель на объект? Или предлагаешь сделать им left node = nil, right node = nil, parent = nil, то есть деревом из одной вершины, после чего вручню удалить из реального дерева без освобождения памяти?


RE: Разные вопросы - Raistlin - 10.07.2020 16:58

(08.07.2020 14:45)igrik Wrote:  
(08.07.2020 01:33)Berserker Wrote:  не выходит преодолеть ограничения. Гильдия магов 4-го и 5-го уровня остаётся недоступной для цитадели.
В коде этот момент жестко зашит.
Но снять ограничение в окне хола можно так
!!UN:C4591530/1/<>6;
Главное, что можно снять ограничение в окне холла, заклинания-то через ERM выставляются... Анимацию можно перед отрисовкой экрана города менять через SN:R, а текущий уровень гильдии пусть сохраняется посредством PO-номера.


RE: Вопросы по моддингу - feanor - 10.07.2020 23:44

Quote:feanor, а толку, если где-то сохранены указатель на объект? Или предлагаешь сделать им left node = nil, right node = nil, parent = nil, то есть деревом из одной вершины, после чего вручню удалить из реального дерева без освобождения памяти?
Так подменить объект по указателю.
Или принудительно выгрузить из кэша, и потом загрузить заново.


RE: Разные вопросы - feanor - 11.07.2020 00:02

(09.07.2020 20:27)Bes Wrote:  feanor, и если улучшал свой chalk плагин, но не публиковал, тож не пожадничай и выложи (хотя бы что есть) пожалуйста Ab
Не, ничо с ним не делал. А что-то надо?
(09.07.2020 13:02)Berserker Wrote:  
(09.07.2020 02:54)feanor Wrote:  Как бы, на минуточку, этот плагин заодно и TSWшный функционал реализует, так что попытки гираически подключить его к эре не приведут ни к чему.
feanor, может откроешь исходники, чтобы можно было закомментировать ненужный функционал. Решило бы это проблему?
Я вспомнил, почему я их не выкладывал
(потому что там ужасная документация, месиво вместо кода, половина строк вфигачена за три недели до релиза, комментарии со смешными шутеечками, а в той части, где реализуется третий грейд, комментарии натащены из всех проектов, которые решали похожие задачи (при том, что код, кажца, по большей части мой). И вообще это и-де-аль-ный говнокод.
Пожалуй, мне даже уже не стыдно, наслаждайтесь.

https://pastebin.com/1cNdDE7Q buildups
https://pastebin.com/Cx9T9wGT towns


RE: Вопросы по моддингу - Bes - 11.07.2020 00:34

(11.07.2020 00:02)feanor Wrote:  
(09.07.2020 20:27)Bes Wrote:  feanor, и если улучшал свой chalk плагин, но не публиковал, тож не пожадничай и выложи (хотя бы что есть) пожалуйста Ab
Не, ничо с ним не делал. А что-то надо?


feanor, он у меня во всех игровых папках (три как минимум: две с эра2,46 и одна сборка с эра2,9,14)... часто пользуюсь, и все пожелания, что высказывали на дф2-теме, тихо покорно ждал, вдруг ты их реализуешь... нужна история введённых команд (хотя бы повтор прошлой команды, как в dos)


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

feanor, большое спасибо за исходники, мне безусловно пригодятся некоторые примеры132

Ну а некоторые комментарии просто сделали мой день)))

Quote://и да, это write-only code
//прости, дяденька будущий я, я больше так не буду

Quote://и, кстати, проверка на c->ecx - фуфло

Quote://0066D03C - таблица количества окошек 0x13 - гнусный хак, и так мы делать не будем



RE: Вопросы по моддингу - feanor - 11.07.2020 01:24

Quote:
Code:
//прости, дяденька будущий я, я больше так не буду
Однажды, когда мне понадобился этот код, я полез в эти исходники, нашел эту строку и понял, что он мне не так уж и нужен. Проронив скупую слезу, потому что я уже успел забыть про эту смердящую капсулу времени.
Иногда одно петросянство вместо тысячи описаний механики реально экономит время.

Quote:
Code:
//0066D03C - таблица количества окошек 0x13 - гнусный хак, и так мы делать не будем
Там есть сиквел, "//не будем, но еретика нет ".

Просто обработчик диалога не умеет в более чем 18 окошек, и попытка вытащить 19ое заставляет его отрисоваться, но не заставляет реагировать на мышку. Здраво рассудив, я решил, что все равно 19 окон (сплошной, 4*3 блок спецстроений) + 7 двеллов внизу) - это реально не оч хорошая идея.

Теперь корочи смотрите.
Как вытащить гильдии 4- и 5-ого уровней для городов, где они заблокированы изначально...
4


RE: Вопросы по моддингу - Berserker - 11.07.2020 01:52

feanor, огромное спасибо за ценную информацию для будущих поколений.
Пост нужно сохранить.

moderator Wrote:сделано, шеф 118



RE: Вопросы по моддингу - Zur13 - 11.07.2020 03:18

Может кто-то подсказать как убрать отряд более правильно? В сейве из 2.9.14 по ссылке ниже второй герой в списке стоит перед Адскими Троглодитами, при атаке на них стек палаток незаконно добавляемых командиром остается видимым пока не походит мой первый юнит, после чего он магически исчезает
https://drive.google.com/file/d/1LxemlYhRixixj6-VU62YUIsnZmhSvqXQ/view?usp=sharing

Стек палаток должен быть удален вот этой функцией:

Code:
** x1 == stack ID 0..41
!?FU(zEwmIV_BFDeleteStack);
!!FU|x1<0/x1>41:E;

!!BMx1:F?y4;                               [y4 stack flags]
!!VRy4:|4194304;                           [y4 set sumonned flag]
*!VRy4:|8388608;                           [y4 set cloned flag]
!!BMx1:Fy4;                                [set set new flag]

*!BMx1:T145;                               [set type catapult]

!!UN:C6919200/4/?y10;                      [y10 combat manager]
!!VRy1:Sx1 *1352 +21708 +y10;              [y1 adddress of x1 stack struct]
!!VRy3:Sy1 +233; !!UN:Cy3/1/1;             [y3 TMP set stack lost at least one creature]
!!VRy3:Sy1 +234; !!UN:Cy3/1/1;             [y3 TMP set stack dead]

!!BMx1:F?y4;                               [y4 stack flags]
!!VRy4:|268435456;                         [y4 set sacrificed flag]
!!BMx1:N0 Fy4;                             [set stack monster count to 0 and set new flag]
!!IF:M^Dead %X1^;

*!SN:E4621680/2/y1/51/1;                   [clear dead body]
*!SN:E4797616/2/y1/0/1;                    [refresh battlefield]
*!BU:R;

Если раскаментить !!BU:R; в последней строке то игра упадет, потому что окно битвы еще не открылось. Функция выше по стеку вызовов относится к такому триггеру:

Code:
!?BR&1000;                                [Every turn of batle]
!!SN:W^zEwmIV_mod_on^/?y1; !!FU&y1<>1:E;  [Exit if mod disabled]

!!FU&v997<>-1:E;                          [Exit if not a turn -1]

вот тут еще родительская функция и вызывается

   Т.е. функция удаления стека срабатывает на !?BR для хода -1.


RE: Вопросы по моддингу - Bes - 11.07.2020 05:02

Quote:остается видимым пока не походит мой первый юнит, после чего он магически исчезает
Zur13, а если ты сам его вернёшь "на свет", сделав вновь видимым?
Quote:Таблица известных значений для BM:G:
-100: Видимость существа (4 - виден, 8 - не виден)



RE: Вопросы по моддингу - Zur13 - 11.07.2020 12:07

(11.07.2020 05:02)Bes Wrote:  Zur13, а если ты сам его вернёшь "на свет", сделав вновь видимым?

Таблица известных значений для BM:G:
-100: Видимость существа (4 - виден, 8 - не виден)

Так мне наоборот нужно чтобы он вообще не появлялся, начинается битва, я на ходу -1 удаляю стек палаток с поля битвы, а он остается видимым с 0 существ пока не походит другой стек, причем пока он видим на него можно навести мышкой, для него работает правый клик, но вот массовые заклинания вроде метеоритного дождя на него не действуют. Но после любого действия выстрела или магиии на поле боя он исчезает, без анимации смерти просто растворяется.

Попробовал сделать его "невидимым", не помогло:

Code:
!!BMx1:G-100/8/d;                          [set stack invisible]



RE: Вопросы по моддингу - Zur13 - 12.07.2020 03:43

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


но это не помогает.


RE: Вопросы по моддингу - Berserker - 12.07.2020 12:18

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


RE: Вопросы по моддингу - Zur13 - 12.07.2020 12:29

(12.07.2020 12:18)Berserker Wrote:  Zur13, странно, сам не проверял, но отрицательная в теории должна была работать. Видимо, в алгоритме прошито при возможности атаковать хоть кого-то нейтралами. Получилось решить вопрос?

Нет, я просто пока поставил делитель, но ситуация осталась таже, когда стек нейтралов просчитывает ходы, для остальных стеков игрока варианты самые разные от -50000 до +5000, сам стек элементалей изначально оценивается в +7000..+10000, я ему принудительно ставил разные значения и +50 и 0 и -5000 и -175000, но нейтралы во всех случаях разворачиваются и бегут бить элементалей.
Правка: в обычных турнирных играх такое поведение используется для отманивания стеков, например выделяется перед битвой единички, которые подставляются таким образом чтобы как можно дольше ИИ стеки не подходили к стрелкам, но баллиста упрощает этот процес, потому хотелось бы как-то на это влиять.


RE: Ошибки, баги и недочёты ERA - Bes - 13.07.2020 00:35

(13.07.2020 00:23)Zur13 Wrote:  я когда эксперементировал с кодом убийстива стека в какой-то момент пробовал поставить ему 0 жизней и забыл, в обычной битве это ни на что не влияло. Странно что в быстрой битве на такой стек кто-то пытается напасть ведь он помечен мертвым через

Code:
!!UN:C6919200/4/?y10;                      [y10 combat manager]
!!VRy1:Sx1 *1352 +21708 +y10;              [y1 adddress of x1 stack struct]
!!VRy3:Sy1 +234; !!UN:Cy3/1/1;             [y3 TMP set stack dead]


Zur13, щас же короче можно делать (era2,9,14+)



RE: Ошибки, баги и недочёты ERA - XEPOMAHT - 13.07.2020 01:17

(13.07.2020 00:35)Bes Wrote:  

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


RE: Ошибки, баги и недочёты ERA - Bes - 13.07.2020 01:20

Stop мы рзные исходники смотрим?
Code:
// +E9 db = 1, если умирал хоть один
// +EA db = 1, если был убит весь стэк
EA = 234


RE: Ошибки, баги и недочёты ERA - XEPOMAHT - 13.07.2020 01:38

(13.07.2020 01:20)Bes Wrote:  Stop мы рзные исходники смотрим?

Конечно разные. У меня ж моповские 148 . По ним как-то так:

;E8 - Флаг_монстра_нужно_ударить_Огненным_Щитом
;E9 - Флаг_если_хоть_раз_монстра_били
;EA - Флаг_если_умирал_хоть_один
;EB - Флаг_если_был_убит_весь_стек

Но по факту в игре там всегда нули 148 , поэтому в MoP оно закомментировано и не используется.

Например на ту же трупность - проверка соответствующего флага монстра (1) + текущее здоровье (0), а совсем не 234-й байт в структуре.


RE: Вопросы по моддингу - Элементалист - 13.07.2020 16:31

Есть ли разница между разломами элементалов и алтарями? т.е. если я к примеру хочу заменить двеллинги элементалов, мне придётся заменять графику обоим жилищам?


RE: Вопросы по моддингу - daemon_n - 13.07.2020 17:08

Элементалист, разница есть. Менять придется оба. Но не только элементали имеют несколько жилищ.
Точно помню гидр и единорогов. Ещё кто-то.


RE: Вопросы по моддингу - wessonsm - 13.07.2020 17:17

Элементалист, ERM Help, таблицы -> жилища существ, подтипы тип 17.
Плюс есть еще сопряжение элементов (19/0), где можно всех элементалей покупать.

А на авторских картах могут любые объекты стоять, включая те, которых нет в редакторе.


RE: Вопросы по моддингу - Элементалист - 13.07.2020 17:48

daemon_n, wessonsm, спасибо)


RE: Вопросы по моддингу - Raistlin - 14.07.2020 01:02

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


RE: Вопросы по моддингу - daemon_n - 14.07.2020 16:54

Raistlin, вот ссылка
на Гугл документ. Там должно быть описание.
Спасибо Dalion'y


RE: Вопросы по моддингу - Raistlin - 14.07.2020 21:36

daemon_n, сердечное спасибо! Честно говоря, мне надоело изобретать велосипеды, потому я все-таки взял и добавил Typhon в era-версию WoG UE96-copy Инструмент это классный, да и недостатки его, как оказалось, можно обойти)


RE: Вопросы по моддингу - Видомина - 15.07.2020 14:03

Здравствуйте при составлении дефа HD почвы инферно я обратил внимание на анимацию почвы такое можно сделать?

Image: d3994d3cf38f51ddddc56dc21613692f.png


RE: Вопросы по моддингу - feanor - 15.07.2020 14:13

Довольно сложно, в основном со стороны графики. Это не анимация в полном смысле этого слова, а циклическая замена цветов палитры кадров.


RE: Вопросы по моддингу - Видомина - 15.07.2020 14:45

В воде много такого очень
Image: c13633a3466ee6e1e5bf188846352fa0.png
Я скинул реализуйте пожалуйста)
https://yadi.sk/d/ruxykEr_lWDnVg
Или тему создать?


RE: Вопросы по моддингу - XEPOMAHT - 15.07.2020 15:42

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

Проще добавить AB и SoD и HoA в HD-переиздание 148 , чем делать что-то наоборот.


RE: Вопросы по моддингу - feanor - 15.07.2020 16:37

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

Не вижу системных требований как к HD, экран карты все равно перерисовывается каждый раз заново.

Делать я это, конечно, не буду (:


RE: Вопросы по моддингу - XEPOMAHT - 15.07.2020 16:58

(15.07.2020 16:37)feanor Wrote:  врезаемся в район смены палитры, в ней вместо крутилки палитры в одном дефе - крутить указатели на деф в адвенчаменеджере.
Ну то есть там еще немного поколдовать, чтобы они загружались/не выгружались, мб еще что-то, но ничего сверхъестественного, ну мб еще что-то вылезет, но вроде должно сработать.

А с перекрашиваемыми диалогами как быть? Городить такой же огород как в HD-переиздании? По самим почвам - куча работы (запитывать в игру свой анимированный деф для каждого типа почв + на межпочвенные переходы + всякие реки и прочий псевдоанимированный стафф). Вряд ли найдётся коддер-псих, чтобы всё это реализовать в игре. Лично я пойду лучше поддержку новых почв добавлю, а лучше просто выпью пива после прочтения всего этого вздора.

(15.07.2020 16:37)feanor Wrote:  Не вижу системных требований как к HD, экран карты все равно перерисовывается каждый раз заново.

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

А вообще, главным противников моддинга добавления таких вещей в игру есть и остаётся HD-мод (абсолютно всё, что связано с графикой, так или иначе завязано на HD-моде, а люди в первую очередь играют именно с HD-модом). Можно было бы сделать HD-мод в качестве плагина для ERA, но это уже другая история...


RE: Вопросы по моддингу - Видомина - 15.07.2020 17:27

Там таких 4 варианта анимации 1 в инферно 3 в воде переходы стандартные, с перекрашиваемыми диалогами всё готовое лежит у меня.


RE: Вопросы по моддингу - wessonsm - 18.07.2020 21:20

Мне понадобилось (для заставки) увеличить размер дефа cssarm.def бинарным патчем.
Проблема в том, что когда я ставлю size y > 7F, кнопка становится неактивной.
До 7F работает, оригинал = 77h, дальше ни в какую.
Вот сам патч:

; Applies to = Memory
; Generator = BinMagic
00456CDF 7F

так работает.

А так нет:

; Applies to = Memory
; Generator = BinMagic
00456CDF A1

это y размер дефа, судя по database.
Мне надо сделать размер y A1h (161), но больше 7F кнопка становится неактивной.


RE: Вопросы по моддингу - XEPOMAHT - 18.07.2020 21:35

(18.07.2020 21:20)wessonsm Wrote:  Проблема в том, что когда я ставлю size y > 7F, кнопка становится неактивной.

Там ограничение в байт. Тебе потребуется уже 4 байта. Т.е. бинарный патч будет длиннее.


RE: Вопросы по моддингу - wessonsm - 18.07.2020 21:42

XEPOMAHT, так 77 и 7F работает.
А 80 уже нет. Или я не догоняю...

Получается 127 (7Fh) максимальный размер кнопки по вертикали..
Но Бараторч как-то это обошел в плагине superpack.rus.

Я хотел портировать заставку на ERA, и из-за такой малости не получилось...

Всё получилось, кроме этого size y для ентого дефа...


RE: Вопросы по моддингу - XEPOMAHT - 18.07.2020 22:08

(18.07.2020 21:42)wessonsm Wrote:  так 77 и 7F работает.
А 80 уже нет. Или я не догоняю...

7F = 127
80 = -128


(18.07.2020 21:42)wessonsm Wrote:  Но Бараторч как-то это обошел в плагине superpack.rus.

Это очень просто делается - бинарным патчем двигается код, чтобы влезло 4 байта вместо одного.


RE: Ваши вопросы по ERM-скриптам - XEPOMAHT - 20.07.2020 23:37

(20.07.2020 22:44)Bes Wrote:  
кстати, может кто из знающих скажет, так правильнее здесь отключать записывая -1 или 255 ?

Если там байт, то разницы нет. И так и так правильно. Для пользователя лучше значение -1.


RE: Ваши вопросы по ERM-скриптам - wessonsm - 21.07.2020 00:04

XEPOMAHT, я всегда думал, что всегда можно поставить от 00 до FF по одному адресу. Оказывается, не всегда.
Это связано с кодами asm? Какая команда стоит перед?
На изучение ассемблера у меня пока не хватает времени. Но в любом случае, спасибо за подсказку.


RE: Ваши вопросы по ERM-скриптам - XEPOMAHT - 21.07.2020 00:51

(21.07.2020 00:04)wessonsm Wrote:  я всегда думал, что всегда можно поставить от 00 до FF по одному адресу. Оказывается, не всегда.

Даже очень не всегда. По-умолчанию знак всегда присутствует, просто дальнейший код может знак не учитывать, получая из байта диапазон значений 0...255 вместо -128...127.

(21.07.2020 00:04)wessonsm Wrote:  Это связано с кодами asm?

Это связано со стандартом хранения данных. Коды могут быть разные, зависящие от архитектуры ЦП, но данные обычно хранятся одинаково как на маках/ведроидах, так и на всяких плейстейшинах/коробоксах.


RE: Вопросы по моддингу - V_Maiko - 22.07.2020 02:41

Is's possible with UN:C to change the sound of a creature? I mean, replace XXXXATTK.wav, XXXDNFD.wav... I want to replace Rogue sounds, for my mod like in HotA, because that sound is wrong in SoD. I don't use Typhon anymore, so asking me to change it with that tool would not be giving me an answer.


RE: Вопросы по моддингу - Zur13 - 22.07.2020 04:46

(22.07.2020 02:41)V_Maiko Wrote:  Is's possible with UN:C to change the sound of a creature? I mean, replace XXXXATTK.wav, XXXDNFD.wav... I want to replace Rogue sounds, for my mod like in HotA, because that sound is wrong in SoD. I don't use Typhon anymore, so asking me to change it with that tool would not be giving me an answer.

Yes you can, here is the code from igrik to do that http://wforum.heroes35.net/showthread.php?tid=5118&pid=97067#pid97067




RE: Вопросы по моддингу - V_Maiko - 22.07.2020 05:38

Thanks 132


RE: Вопросы по моддингу - Bes - 25.07.2020 19:39

(17.07.2020 16:51)XEPOMAHT Wrote:  Попросили выложить сюда и структуру стека - выкладываю.

WoG 3.58f (Click to View)
WoG 3.58f by ??? (Click to View)

XEPOMAHT, а от кого исходники по WoG с дополнительными комментариями и описанием адресов/действий? от ShadowTheAge?


RE: Вопросы по моддингу - XEPOMAHT - 25.07.2020 19:48

(25.07.2020 19:39)Bes Wrote:  а от кого исходники по WoG с дополнительными комментариями и описанием адресов/действий? от ShadowTheAge?

От CoreWoG наверное. Что нашлось в исходниках, то и выложил.


RE: Вопросы по моддингу - Bes - 25.07.2020 20:07

хм, у ZVS свой файл был, а у CoreWoG свой? Unsure
ок, понял, в общем, спасибо


RE: Вопросы по моддингу - Elzivir - 25.07.2020 20:24

Знающие люди, помогите разобраться, пожалуйста.

Сделал замену def'а WoG-объекта "Зеркало пути домой", которое при WoGификации появляется вместо "Школы войны". bmp-картинки подогнаны к одному размеру (обе 128 на 128; выставлены одинаковые клетки проходимости и входа в файлах zaobjts.txt и zobjcts.txt). Проблема в том, что при замене "Зеркало" почему-то сдвигается на одну клетку влево относительно исходного положения "Школы", что на некоторых случайных картах приводит к блокировке прохода, а иногда и к невозможности пройти сценарий). Что необходимо сделать, чтобы синхронизировать положение данных объектов при WoGификации?

И еще пара менее значительных вопросов:
- в каком файле можно изменить кол-во существ, предоставляемых доп. отстройкой двеллинга (например, "Бастион грифонов", дающий +3 к их приросту). Редактирование zcrtrait.txt (колонка Horde Growth) результатов не дало).

- внешние жилища Порождений зла и Ифритов перепутаны на экране Обзора королевства (т.е. при захвате первого отображается второе и наоборот). Пытался восстановить соответствие через "FlagPort.def (поменял двеллинги местами), но не помогло.

P/S: Заранее спасибо всем неравнодушным! Yes


RE: Вопросы по моддингу - daemon_n - 25.07.2020 20:51

Elzivir, настроить проходимость. Тебе заменить надо не только def, но и msk/msg файлы.


RE: Вопросы по моддингу - wessonsm - 25.07.2020 21:07

daemon_n, msk и msg - это только маски квадратов дефа, которые будут отрисовываться на карте, они введены просто для оптимизации. Проходимость в текстовиках.

Elzivir, при вогификации объекты ставятся на карту командой !!UN:I от правого нижнего угла, а не от клетки входа. А !!UN:U дает координаты клетки входа (для объектов с входом)
Поэтому x-координату нужно увеличить на 1.

Стоп, ты используешь стандартный скрипт вогификации?
Там это уже сделано, по идее.
Если стандартный и всё равно смещается, значит у тебя разное расположение клетки входа в старом и новом дефе зеркала.


RE: Вопросы по моддингу - SergOz - 25.07.2020 21:08

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

P.S. Сам не проверял... 112


RE: Вопросы по моддингу - V_Maiko - 26.07.2020 07:49

igrik, I wish you could release wog native dialogs from daemon_n's assembly to work independently, that version has many significant improvements that can help ERA in general, including counting how many creatures can be killed by a unit (feature of yona mod) and quick recruit all creatures into dwellings (missing feature in HC mod for WoG). Ab


RE: Вопросы по моддингу - wessonsm - 26.07.2020 10:39

V_Maiko, это не оно?
http://wforum.heroes35.net/showthread.php?tid=5192&pid=99728#pid99728
Или же можно просто скопировать dll из сборки.


RE: Вопросы по моддингу - daemon_n - 26.07.2020 12:33

wessonsm, V_Maiko, copy dll from assembly and take wog native dialogs.pac from data folder of wog mod - killed creatures described im txt, quick battle by q as well.


RE: Вопросы по моддингу - Elzivir - 26.07.2020 17:57

daemon_n, wessonsm, SergOz, спасибо за советы! Кстати, смещение по x-координате действительно решило проблему.

P/S: остался еще открытым вопрос с правильным отображением жилищ Порождений зла и Ифритов в обзоре королевства (сейчас они почему-то поменяны местами).


RE: Вопросы по моддингу - Bes - 31.07.2020 21:25

(25.07.2020 19:48)XEPOMAHT Wrote:  
(25.07.2020 19:39)Bes Wrote:  а от кого исходники по WoG с дополнительными комментариями и описанием адресов/действий? от ShadowTheAge?

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

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


RE: Вопросы по моддингу - Zur13 - 02.08.2020 21:30

А кто-то сталкивался с тем что !!BA:S?y1; возвращает неправильное значение внутри !?BA триггера? У меня непонятно что происходит в осадах возвращает 0, при битве с монстрами возвращает 1, очень похоже что возвращает значение для предыдущей битвы. Можно ли как-то внутри BA триггера проверить осада или нет?




RE: Вопросы по моддингу - Bes - 02.08.2020 22:08

Zur13, так в справке так и написано, то в !?BA этой командой не проверить, хотя как по мне это баг WoG
ERM-Help Wrote:Правильное значение вы получите в триггере !?BR или позже. В триггере !?BA0 значение не определено.
Надо просто уточнить что во всех !?BA

Как вариант, либо проверять координаты битвы:
1. битва с героем справа - проверять наличие героя в городе по координатам
2. битва без героя справа - просто проверить наличие города в координатах
А если проверять уже в самой битве, до фазы сражения? по наличию слева катапульты? там же уже работает, чёт увлёкся


RE: Вопросы по моддингу - SergOz - 02.08.2020 22:10

Zur13, не знаю как в МП-игре, но в обычной я проверял это значение через !?BR-1;
Выдаёт правильные результаты.


RE: Вопросы по моддингу - Zur13 - 03.08.2020 00:52

(02.08.2020 22:08)Bes Wrote:  Zur13, так в справке так и написано, то в !?BA этой командой не проверить, хотя как по мне это баг WoG
ERM-Help Wrote:Правильное значение вы получите в триггере !?BR или позже. В триггере !?BA0 значение не определено.
Надо просто уточнить что во всех !?BA

Как вариант, либо проверять координаты битвы:
1. битва с героем справа - проверять наличие героя в городе по координатам
2. битва без героя справа - просто проверить наличие города в координатах
А если проверять уже в самой битве, до фазы сражения? по наличию слева катапульты? там же уже работает, чёт увлёкся

BR-1 мне уже слишком поздно откатывать патч. В общем я вроде придумал себе обходной вариант именно для этого случая, но плохо, что тип битвы не проверить в БА, обдумывал другой мод там это нужно. А вообще динамический патчинг кода из ЭРМ открывает столько возможностей, ух, еще бы можно было бы динамически колбеки так же вешать из геройских функций в ЭРМ функции, а то через UN:C много кода не напишешь...

P.S. Наличие города по координатам в ЕРМ не проверишь нормально, если запрашивать объект по координатам, а на желтой клетке города стоит герой, то вернет не ИД объекта город, а ИД объекта герой, я уже попадался на таком. Да и там начинаются танцы если есть и герой в гарнизоне и герой на желтой клетке, то вообще жесть.

P.P.S. я просто русской версией справки почти не пользуюсь неудобно, потому не видел, сейчас проверил там действительно указана эта особенность.


RE: Вопросы по моддингу - Bes - 03.08.2020 01:15

Quote:P.S. Наличие города по координатам в ЕРМ не проверишь нормально, если запрашивать объект по координатам, а на желтой клетке города стоит герой, то вернет не ИД объекта город, а ИД объекта герой, я уже попадался на таком. Да и там начинаются танцы если есть и герой в гарнизоне и герой на желтой клетке, то вообще жесть.
Zur13, так зачем тебе проверять тип объекта по координатам битвы, если сразу проверяй !!CAx/y/l:H0/?$ H1/?$
просто предварительно отключай вывод ошибок через !!UN:P904/1 P905/0; (если города в координатах нет) и проверяй с каким именно героем идёт битва справа... например:
как-то так...


RE: Вопросы по моддингу - XEPOMAHT - 03.08.2020 01:47

(03.08.2020 00:52)Zur13 Wrote:  Наличие города по координатам в ЕРМ не проверишь нормально, если запрашивать объект по координатам, а на желтой клетке города стоит герой, то вернет не ИД объекта город, а ИД объекта герой, я уже попадался на таком. Да и там начинаются танцы если есть и герой в гарнизоне и герой на желтой клетке, то вообще жесть.

Если выдаёт героя на жёлтой клетке вместо города, то (2 способа на выбор):

1. Лезем в структуру героя и читаем там ИД/контрольное слово, в котором стоит герой.
2. Запоминаем героя и вызываем функцию hidehero и читаем заново. После чтения для героя вызываем showhero (но этим способом - в крайнем случае, т.к. кривое использование вызовет любимый воговский баг - раздвоение героя).


RE: Вопросы по моддингу - Bes - 03.08.2020 01:52

XEPOMAHT, а если смотреть тип объекта под героем? или это не сработает для города?
igrik Wrote:



RE: Вопросы по моддингу - XEPOMAHT - 03.08.2020 03:46

(03.08.2020 01:52)Bes Wrote:  а если смотреть тип объекта под героем? или это не сработает для города?

Сработает. Там чтение непосредственно из _MapItem_ (а команду !!OB:Z в ЭРУ так и не добавили, увы... Bad , в MoP же вообще реализовано получение этой штуки ещё мудрёнее и хардкорнее) . ВоГ получает тип/подтип с учётом всех динамических объектов и накладных штук-дрюк - вызовом GetTerrainOverlayType.


RE: Вопросы по моддингу - Bes - 03.08.2020 03:50

(03.08.2020 03:46)XEPOMAHT Wrote:  (а команду !!OB:Z в ЭРУ так и не добавили, увы... Bad
ну так ты ж не ванговал за неё, вот и не добавили
Бери пример с igrik'а - он бензопилой в течение дня и HE:Z/BM:Z и прокачанную UN:C выбил 96


RE: Вопросы по моддингу - XEPOMAHT - 03.08.2020 04:09

(03.08.2020 03:50)Bes Wrote:  ну так ты ж не ванговал за неё, вот и не добавили

Мне не особо было надо (в той же ERA+ я использовал hidehero и showhero для получения типа/подтипа под героем, а переделывать под !!OB:Z наверное не буду). В MoP есть готовая встроенная в exe функция получения _MapItem_, без костылей, там в ERM её добавить - совсем не сложно.

Ложиться костями и ставить ультиматумы не получается (та же просьба с базовыми адресами не нашла отражения в ЭРА) 105 . Берсеркер твёрд как орех.


RE: Вопросы по моддингу - Zur13 - 03.08.2020 12:14

XEPOMAHT, Bes Спасибо!

Я для начала попробую ЭРМ версию, с отключением ошибок.

Просто для полноты картины еще 2 способа как это можно сделать, в ВоГ скрипте улучшенные боевые машины 3, это сделано обходом всех замков в цикле и проверкой соответствия их координат искомым, что для меня было ресурсозатратным, потому я переделал через ОБ но в случае объекта герой, я дополнительно проверяю 3 клетки: 1 сверху и 2 вокруг героя если они имеют объект город то предполагаю что герой стоит в городе, да знаю криво и через редактор можно сделать наложение трех городов которое даст тут ошибку и т.д.


RE: Вопросы по моддингу - wessonsm - 03.08.2020 12:39

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

Да и проверять все города в цикле не так уж ресурсозатратно, это макс 48 итераций.


RE: Вопросы по моддингу - XEPOMAHT - 03.08.2020 13:48

(03.08.2020 12:39)wessonsm Wrote:  Еще один нюанс. Проверка координат не даст правильный тип битвы, если город охраняют два героя (гость и в гарнизоне), так как осада будет только во втором случае, а в первом - нет.

А проверять в комбатменеджере не судьба? Там и структура города, и структуры нападающего/защитника готовые есть. Искать на карте и сравнивать вообще ничего не надо, какие-то либо костыли придумывать тоже. Spiteful


RE: Вопросы по моддингу - igrik - 03.08.2020 14:38

Zur13, используй BF триггер. Он как раз должен тебе подойти 0x4627BC.




RE: Вопросы по моддингу - igrik - 03.08.2020 14:52

(03.08.2020 13:48)XEPOMAHT Wrote:  
(03.08.2020 12:39)wessonsm Wrote:  Еще один нюанс. Проверка координат не даст правильный тип битвы, если город охраняют два героя (гость и в гарнизоне), так как осада будет только во втором случае, а в первом - нет.

А проверять в комбатменеджере не судьба? Там и структура города, и структуры нападающего/защитника готовые есть. Искать на карте и сравнивать вообще ничего не надо, какие-то либо костыли придумывать тоже. Spiteful
Не получится этого сделать.
Триггер BA - это ещё не сама битва, а только "игра понимает, что будет битва". Это значит, что в этот новый бой еще не были переданы текущие и нужные структуры героев/города. Именно поэтому в BA и считываются параметры прошлой битвы.


RE: Вопросы по моддингу - Zur13 - 04.08.2020 20:20

А можно через ЕРМ узнать какой из этих двух типов хижины установлен и поменять один на другой потому что похоже что у них один и тот же тип и подтип объекта? Нужно без подмены содержимого т.е. квеста, просто изменить внешний вид.
Image: seer-huts.jpg


RE: Вопросы по моддингу - wessonsm - 04.08.2020 23:02

(04.08.2020 20:20)Zur13 Wrote:  А можно через ЕРМ узнать какой из этих двух типов хижины установлен и поменять один на другой потому что похоже что у них один и тот же тип и подтип объекта? Нужно без подмены содержимого т.е. квеста, просто изменить внешний вид.
Image: seer-huts.jpg

Проще текстовики поправить.


RE: Вопросы по моддингу - Zur13 - 04.08.2020 23:12

(04.08.2020 23:02)wessonsm Wrote:  
(04.08.2020 20:20)Zur13 Wrote:  А можно через ЕРМ узнать какой из этих двух типов хижины установлен и поменять один на другой потому что похоже что у них один и тот же тип и подтип объекта? Нужно без подмены содержимого т.е. квеста, просто изменить внешний вид.
Image: seer-huts.jpg

Проще текстовики поправить.

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


RE: Вопросы по моддингу - wessonsm - 04.08.2020 23:39

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


RE: Вопросы по моддингу - XEPOMAHT - 05.08.2020 00:54

(04.08.2020 22:40)Raistlin Wrote:  Вообще, если таблицу расширили, то все остальное перестаёт быть проблемой. Или я что-то путаю?

Нет, это вообще ни о чём. Поддержку новых городов легче добавить, чем новые заклинания.

(04.08.2020 23:39)wessonsm Wrote:  Вся проблема в том, чтобы средствами erm отличить одну от другой.
Я не знаю, как это сделать. Вряд ли это вообще возможно.
Вот если бы у них были разные подтипы..

1. Получаем адрес MapItem (!!OB:Z, которого нет)
2. Читаем оттуда адрес objectDrawing.
3. Получаем имя дефа.
4. Сравниваем.
5. Удаляем объект, ставим новый.


RE: Вопросы по моддингу - daemon_n - 05.08.2020 12:01

wessonsm, ну или просто все заменить одним дефом через sn:r


RE: Вопросы по моддингу - Видомина - 09.08.2020 12:10

Всем привет я смог автоматизировать подгонку кадров под нужный размер и размер холста кадров HD Edition
Image: bac1caddbbedc487d982af7368b78dd9.png
Индексацией 24 бит
Фон чёрный

Подскажите может есть какой нибудь софт для пакетной работы?


RE: Вопросы по моддингу - Bes - 09.08.2020 16:00

suftfree, фотошоп?
вообще, почитай, не поленись, тему по работе с графикой - ВОТ 4
там подобные вопросы когда-то поднимались


RE: Вопросы по моддингу - Видомина - 10.08.2020 11:03

нет там уже все готовое в defs собирай и всё просто положение чуть менять надо у одноклеточных существ


RE: Вопросы по моддингу - Bes - 12.08.2020 04:33

Все обсуждения (что видел на сегодня, может позже ещё что найду) по возможности добавления новых заклинаний теперь будут ЗДЕСЬ 4


RE: Вопросы по моддингу - V_Maiko - 12.08.2020 04:55

Bes, and the thread about loop sounds?


RE: Вопросы по моддингу - Bes - 12.08.2020 05:03

V_Maiko, в планах... туда же уйдёт часть твоего поста про loop sounds Yes
дай немного времени...


RE: Вопросы по моддингу - wessonsm - 12.08.2020 14:03

Где-то я видел (скорее всего здесь на форуме) инфу о том, как сделать плавное исчезновение дефа объекта.
Суть в чём, когда мы подбираем героем кучку ресурсов, артефакт, сундук и т.п. на карте, объект не исчезает мгновенно, а плавно "растворяется в воздухе".
Интересует, как такое проделать со своим объектом, так как если удалять объект командой !!UN:O, то он исчезает сразу.


RE: Вопросы по моддингу - XEPOMAHT - 12.08.2020 15:06

(12.08.2020 14:03)wessonsm Wrote:  Интересует, как такое проделать со своим объектом, так как если удалять объект командой !!UN:O, то он исчезает сразу.

Команда !!UN:O$X/$Y/$L/0/2; позволяющая плавно удалять объекты, поддерживается только в MoP. Под ERA нужно портировать (т.е. переписывать на ЭРУ моповскую функцию плавного удаления объектов или как-то прикручивать оригинальную содовскую - но она скорее всего может не подходить, раз Мастер написал собственную функцию).


RE: Вопросы по моддингу - Bes - 12.08.2020 18:46

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


RE: Вопросы по моддингу - feanor - 13.08.2020 00:23

(12.08.2020 14:03)wessonsm Wrote:  Где-то я видел (скорее всего здесь на форуме) инфу о том, как сделать плавное исчезновение дефа объекта.
Суть в чём, когда мы подбираем героем кучку ресурсов, артефакт, сундук и т.п. на карте, объект не исчезает мгновенно, а плавно "растворяется в воздухе".
Интересует, как такое проделать со своим объектом, так как если удалять объект командой !!UN:O, то он исчезает сразу.

При посещении менять тип на сундуковый?)


RE: Вопросы по моддингу - XEPOMAHT - 13.08.2020 01:05

(13.08.2020 00:23)feanor Wrote:  При посещении менять тип на сундуковый?)

Будет выводиться диалог и капать бонус от сундука каждый раз. Костыли же. Не 2004 год же 148 . Проще поставить перехват в конец кода посещения определённого объекта и там уже удалять содовской функцией, вызов который можно скопировать например с посещения стража границы (тем более, для всех объектов функция одна, где на процедуру удаления будут подаваться одни и те же готовые параметры).


RE: Вопросы по моддингу - wessonsm - 13.08.2020 01:11

Попробую неиспользуемые сундуки 101/2 - 101/4, а показ стандартного диалога отменить командой !!UN:B, кажется должно сработать)


RE: Вопросы по моддингу - Archer30 - 16.08.2020 16:24

Is there a tool to open some .def in latest HotA which can't be done with def preview?
twcrport.def for example, nothing is showing...
Image: unknown.png


RE: Вопросы по моддингу - Ivor - 16.08.2020 16:32

(16.08.2020 16:24)Archer30 Wrote:  Is there a tool to open some .def in latest HotA which can't be done with def preview?
twcrport.def for example, nothing is showing...
No, AFAIK. HotA team turn some defs into full-color, so they cann't be open DefPreview


RE: Вопросы по моддингу - XEPOMAHT - 16.08.2020 16:59

(16.08.2020 16:24)Archer30 Wrote:  Is there a tool to open some .def in latest HotA which can't be done with def preview?

Open in hex editor and manually convert to any 32-bit raster format. HotA def format is simple, but no one needs an editor, because is not public modding platform.

Вот программа: https://vk.com/doc-118013293_564232913


RE: Вопросы по моддингу - Archer30 - 16.08.2020 17:33

Thanks Ivor and XEPOMAHT.
Hex editing is totally new to me...going to do some research on this.


RE: Вопросы по моддингу - V_Maiko - 19.08.2020 05:57

Is it possible to create new artifacts for commanders via ERM?


RE: Вопросы по моддингу - Berserker - 20.08.2020 00:22

By manually implementing bonuses.


RE: Вопросы по моддингу - V_Maiko - 25.08.2020 19:51

Can somebody help me? I want mute Mystery.wav sound for a specific object but it silences all objects that have that sound. I want it to only work for the specified object.
   



RE: Вопросы по моддингу - daemon_n - 25.08.2020 19:58

V_Maiko, i-var is local, so you can't set as check in new trigger


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

And what variable can I use so that this does not happen? Silencing a sound is of no use to me if all other objects that have that sound are also silenced. Mystery.wav is a sound that also has visitable objects by default (type 63) and my reason for silencing them is that, and then putting a custom sound (see the case of Creature Banks scripts by PerryR).


RE: Вопросы по моддингу - Berserker - 25.08.2020 21:33

V_Maiko, I didn't check, but



RE: Вопросы по моддингу - ElfbI - 25.08.2020 21:35

V_Maiko, you can use v vars as global. But keep in mind that your global vars must be with unic numbers. You can search inside your .erm files with Total Commander text search engine/


RE: Вопросы по моддингу - Видомина - 29.08.2020 12:29

Здравствуйте а возможна ли поддержка прозрачности в игре?


RE: Вопросы по моддингу - daemon_n - 29.08.2020 12:57

suftfree, где именно и прозрачность чего?
По умолчанию прозрачность это cyan,


RE: Вопросы по моддингу - XEPOMAHT - 29.08.2020 12:57

(29.08.2020 12:29)suftfree Wrote:  возможна ли поддержка прозрачности в игре?

Только плагином alpha.dll. Но работает не у всех (например у меня он в игре ничего не отображает).


RE: Вопросы по моддингу - Bes - 29.08.2020 20:06

suftfree, почитай с конца тему "Полупрозрачность в героях"
Если что, там и дальше по теме прозрачности спрашивай 141


RE: Вопросы по моддингу - V_Maiko - 29.08.2020 20:29

Bes, the topic is outdated to the current ERA topic.


RE: Вопросы по моддингу - wessonsm - 29.08.2020 20:41

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


RE: Вопросы по моддингу - Archer30 - 30.08.2020 17:55

A question from Hawaiing (a mod maker capable with ERM/C++ programming):

Is there away to check what specific def been loaded for an object on the map?

He asked this question since he's making an alternative obelisk function:
Each obelisk now provides a full puzzle map for a small amount of reward.

As he has no idea how to check def, the list of obelisk found is a bit dull:



RE: Вопросы по моддингу - daemon_n - 30.08.2020 18:05

Archer30, you can check type and subtype of objects


RE: Вопросы по моддингу - RoseKavalier - 30.08.2020 19:14

(30.08.2020 17:55)Archer30 Wrote:  A question from Hawaiing (a mod maker capable with ERM/C++ programming):

Is there away to check what specific def been loaded for an object on the map?

He asked this question since he's making an alternative obelisk function:
Each obelisk now provides a full puzzle map for a small amount of reward.

As he has no idea how to check def, the list of obelisk found is a bit dull:

Code:
    P_ResourceManager rm;
    auto it = rm->Find("whatever obelisk def name is");
    if (it != rm->end())
    {
        // found, there may be more than 1 reference so this might not be enough
        rm->RemoveItem(it);
    }
    else
    {
        // not found
    }

Otherwise just use the different obelisk names, they can simply be added during dialog creation.


RE: Вопросы по моддингу - Archer30 - 30.08.2020 19:33

Thanks daemon and Rosekavalier! I would pass these to him.


RE: Вопросы по моддингу - Berserker - 31.08.2020 04:30

RoseKavalier, I think something like MapItem->DefName was required.


RE: Вопросы по моддингу - RoseKavalier - 31.08.2020 05:24

To be honest I am uncertain what the exact request is, if trying to recreate the drawing function then the answer is quite different and a lot longer.
If trying to get the correct def name for the obelisk at (x,y) then that's simpler but a bit of work is needed nonetheless.


RE: Вопросы по моддингу - Zur13 - 31.08.2020 12:22

(31.08.2020 04:30)Berserker Wrote:  RoseKavalier, I think something like MapItem->DefName was required.

Я могу и ошибаться, но если бы была команда OB:Z то с помощью нее можно было бы добираться до имени дефа, мне недавно она очень нужна была в одном месте 118

П.С. если не ошибаюсь тогда можно было бы добираться до имени дефа по вот этим структурам:




RE: Вопросы по моддингу - XEPOMAHT - 31.08.2020 12:38

(31.08.2020 12:22)Zur13 Wrote:  но если бы была команда OB:Z то с помощью нее можно было бы добираться до имени дефа

Уговаривайте Берсеркера, только он может добавить OB:Z в ЭРУ.


RE: Вопросы по моддингу - Berserker - 31.08.2020 14:37

XEPOMAHT, ну что за мания всё тянуть в язык? )

Dword MixPos=GetDinMixPos(sp);
_MapItem_ *mip=GetMapItem2(MixPos);
Сделать обычную ЕРМ функцию GetMapItem (x, y, l: integer) => PMapItem.


RE: Вопросы по моддингу - Zur13 - 31.08.2020 15:23

(31.08.2020 14:37)Berserker Wrote:  Dword MixPos=GetDinMixPos(sp);
_MapItem_ *mip=GetMapItem2(MixPos);

Это какой-то неправильный ERM Ab

По делу, а можно подробнее как я могу в ЕРМ вытянуть указатели на структуру объекта в заданных координатах?


RE: Вопросы по моддингу - XEPOMAHT - 31.08.2020 15:38

(31.08.2020 14:37)Berserker Wrote:  ну что за мания всё тянуть в язык? )

На то он и язык, чтобы в нём были готовые получения полезных скриптёру структур.

(31.08.2020 14:37)Berserker Wrote:  Сделать обычную ЕРМ функцию GetMapItem (x, y, l: integer) => PMapItem.

А это и не MapItem (описатель клетки карты), а H3ObjectAttributes (описатель объекта карты). По первой структуре почти всё есть в ERM, во второй нет почти ничего (а там могут пригодиться получения разных данных, менять - опасно 148 ).

(31.08.2020 15:23)Zur13 Wrote:  По делу, а можно подробнее как я могу в ЕРМ вытянуть указатели на структуру объекта в заданных координатах?

Какая именно структура нужна? Если перерисовать деф без удаления - просите Берсеркера добавить OB:Z.


RE: Вопросы по моддингу - Bes - 31.08.2020 19:25

блин, точно, надо было в донатах чётко указать "на реализацию OB:Z", эх, не догадался



RE: Вопросы по моддингу - V_Maiko - 31.08.2020 19:37

XEPOMAHT, Is implementing a new obelisk receiver easier than adding loop sounds with SN and UN?


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

From H3MapItem you can get a vector of H3ObjectDraw...
Code:
struct H3ObjectDraw
    {
        // * +0
        // index of H3ObjectAttributes
        UINT16 sprite;
        // * +2
        // * reference to which square of the DEF (bottom right = 0, then left to right, down to top. Row 1: 0x10 and so on)
        UINT8 tileID;
        // * +3
        // * 0~6 drawing layer, 6 being top and 0 bottom
        UINT8 layer;

        _H3API_ H3ObjectDraw(UINT16 sprite, UINT8 tile_id, UINT8 layer);
    };
... which leads you to H3ObjectAttributes. However given it's a vector<H3ObjectAttributes> you have to check each element there by type/subtype or you may wind up with the wrong def (e.g. Cursed Ground with Obelisk on top). This is what I meant by
Quote:[...]that's simpler but a bit of work is needed nonetheless.



RE: Вопросы по моддингу - Видомина - 13.09.2020 12:54

(14.05.2020 17:44)Algor Wrote:  
(14.05.2020 13:31)suftfree Wrote:  Получается так?

Нет, не так Sm

Здравствуйте тут не работает оригинальная музыка можно чтобы она тоже работала, дублировать размер лишний только и поменяйте пожалуйста, чтобы в первой строке Ss на Sc.


RE: Вопросы по моддингу - Berserker - 13.09.2020 16:54

suftfree, Sc %2 имелось в виду?


RE: Вопросы по моддингу - daemon_n - 13.09.2020 17:59

Berserker, в коде неверно указана переменная получения номера дня, потому скрипт работает каждый день (значение y1 всегда 0)


RE: Вопросы по моддингу - Berserker - 13.09.2020 18:34

daemon_n, разве? Проблема только в !!VRy1:Ss %2;


RE: Вопросы по моддингу - daemon_n - 13.09.2020 18:53

Berserker, эммм. Так мы об одном и говорим. Ss не получает день, Sc получаетYes
В чём споры?


RE: Вопросы по моддингу - Berserker - 13.09.2020 18:54

daemon_n, всё, понял )


RE: FAQ по моддингу - SergOz - 21.10.2020 16:46

Хорошо, написал бы кто подробную инструкцию как из карты со скриптами сделать карту-мод.
Ну, создал я, допустим, в разных редакторах шрифты, монстров, объекты, а так же написал скрипты...
Шо куда тулить, как активировать и тестить? Можно долго разбираться на чужих примерах, но, вразумительная статейка всё же лучше. Но, только если писать такую статейку, то максимально доходчиво, как для детей. Потому что не все знают даже, казалось бы простые (для знатоков), формулировки.
Вот пример.
В автошколе я учился со своей подружкой. После первого практического занятия она подошла ко мне и спросила:
- У тебя нормальный инструктор?
- Да вроде бы нормальный, - отвечаю я.
- А у меня, б..., дебил озабоченный! Села я в машину, а он вылупился на мои сиськи и со слащавой улыбкой говорит: "Пристёгиваемся, заводим машину, выжимаем сцепление, включаем первую передачу и плавно жмём на газ, так же плавно отпуская сцепление...".
- Ну, так что ж тут такого? - не понял я.
- Та откуда же я знаю где то сцепление?!! Сказал бы просто на какую педальку нажимать!
Очень надеюсь, что кто-то откликнется Telephone


RE: FAQ по моддингу - SergOz - 21.10.2020 19:01

(21.10.2020 16:47)Berserker Wrote:  Извлеки свои скрипты из карты для начала.
https://tools.hmm35.ru/scripts-extractor/

Создай папку Mods\Serg\Data\s, куда и положи их. Готово.
Да, включи свой Serg-мод в менеджере модов.

В Экстракторе скриптов выбрал файл. Нажал "Извлечь".
Не найду куда "извлекло"


RE: FAQ по моддингу - Night - 21.10.2020 19:22

SergOz, у меня в хром внизу архив в загрузках появляется. Вообще он в загрузки падает и в папку по умолчанию.
Архив с названием карты из которой извлекаются скрипты.


RE: FAQ по моддингу - Berserker - 21.10.2020 19:36

Хром скачал файл в папку загрузки?


RE: FAQ по моддингу - SergOz - 21.10.2020 19:46

Хз, почему не хочет... Пробую на другой, маленькой, карте - всё норм: создаёт архив.
А на большой (около 200Кб скриптов) - не хочет. Из-за объёма может быть проблема?
Или ещё из-за чего-то?


RE: FAQ по моддингу - Night - 21.10.2020 19:46

Berserker,
Quote:Хром скачал файл в папку загрузки?
Ну да, куда же ещё? Там же архив выдаёт, а у меня по умолчанию загруженное в хроме кидает в "D:\Firefox", там и обнаружилось.

Забавно выглядит, что все файлы скаченные в Хроме у меня закидывает в папку огненного лиса... Оксюморон что-ль выходит?)

SergOz, Скинь ссылку, я попробую. Может настройки браузера какие.


RE: FAQ по моддингу - SergOz - 21.10.2020 19:49

Night, ссылка на карту у меня в подписи


RE: FAQ по моддингу - Night - 21.10.2020 20:01

SergOz,


Мне всегда казалось, что это ссылка на тему на форуме Sm
Короче тоже не переделывает. Может дело в том, что не находит def'ы?



P.S. Красивая карта и на мини-карте классно смотрится. Всегда обещаю себе поиграть в пользовательские карты в Heroes 3.5, но вот всё никак Bad


RE: FAQ по моддингу - Berserker - 21.10.2020 20:03

Удвоил предел. Карта больше мегабйта в распакованном виде.
https://dropmefiles.com/zPDy1


RE: FAQ по моддингу - SergOz - 21.10.2020 20:14

Berserker, спасибо. Скачал.

Жду дальнейших инструкций Read


RE: FAQ по моддингу - SergOz - 22.10.2020 02:03

В извлечённом и распакованом мною архиве, в папке s скрипты имеют имена типа 388920 script
Могу ли я в произвольном виде переименовать их для понимания где что находится?


RE: FAQ по моддингу - Berserker - 22.10.2020 03:13

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


RE: Вопросы по моддингу - SergOz - 24.10.2020 13:06

Скачал последний Era Erm Framework. Установил в Mods. Включил.
Запускаю Эра3.04 - сразу выдает Error in "9999 era - consts. erm".

Но, у меня уже стоит, в смысле уже лежит уже есть файл 1000 era - consts в Mods/WoG/Data/s/ Его нужно удалять?
В чём может быть причина?


RE: Вопросы по моддингу - wessonsm - 24.10.2020 13:15

SergOz, скорее всего в последнем Era Erm Framework используются возможности ERA, которых ещё не было в 3.0.4.
То есть тебе нужно обновить Эру до последней версии тоже.
Попробуй вот это распаковать в папку с игрой:
https://dropmefiles.com/qz76v
1000 era - consts.erm и 1000 era - stdlib.erm из мода WoG нужно удалить.


RE: Вопросы по моддингу - SergOz - 24.10.2020 13:32

wessonsm, спасибо.
Потому я и задавал вопрос где взять последнюю Эру, если нет доступа к яндексу

P.S. Ща попробую
P.P.S, wessonsm, JC_ThankYou Заработало 120


RE: Вопросы по моддингу - wessonsm - 24.10.2020 13:39

SergOz, в этом посте Берсеркера ссылка (не яндекс):
http://wforum.heroes35.net/showthread.php?tid=5624&pid=117914#pid117914


RE: Вопросы по моддингу - SergOz - 24.10.2020 13:54

Не, там тоже не соединяет. Ну, то такое... Если что, буду кричать о помощи Girl_werewolf
Спасибо!


RE: Вопросы по моддингу - Berserker - 24.10.2020 15:40

SergOz, у тебя антивирус блокирует соединения или на работе фаервол?


RE: Вопросы по моддингу - SergOz - 24.10.2020 16:07

Berserker, антивирус вроде бы
А на работе у меня даже компов нет - одни станки и опилки



RE: Вопросы по моддингу - Berserker - 24.10.2020 16:18

SergOz, отключи этот AVG на время скачивания. Он занёс весь mods.hmm35.ru в чёрный список.


RE: Вопросы по моддингу - Bes - 24.10.2020 16:39

SergOz, уже даже станки на распил с компами давно, ты ж не на ИП-шной лесопилке?



RE: Вопросы по моддингу - SergOz - 24.10.2020 17:12

Berserker, отключил. Скачал. Но эта та же Эра3.1.2, которая получилась, когда я по ссылкам wessonsm'а обновил .dll и DebugMaps.

Игра запускается, но проблема в том, что установив скрипт с !?OB(OBJ_KEYMASTERS_TENT); и прочими константами, она сообщает: Unknown global constant name:"OBJ_KEYMASTERS_TENT" и далее в таком же духе.


RE: Вопросы по моддингу - Berserker - 24.10.2020 17:20

SergOz, то есть говорит, что константы OBJ_KEYMASTERS_TENT не существует. А куда ты свой скрипт вставлял?


RE: Вопросы по моддингу - SergOz - 24.10.2020 17:24

Э-э... в карту 147


RE: Вопросы по моддингу - Berserker - 24.10.2020 17:41

SergOz, скрипты карты грузятся раньше всех. На момент их загрузки скрипты из Era Erm Framework ещё не загружены.
Пока в ЕРМ команды импорта файлов нет, тестируй из папки любого мода, пожалуйста.


RE: Вопросы по моддингу - SergOz - 24.10.2020 17:49

Berserker, YesThank_you


RE: Вопросы по моддингу - SergOz - 24.10.2020 21:27

(28.09.2020 17:41)fatsawhorse Wrote:  Здравствуйте..

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

Отвыкаю писать скрипты прям в карте.
Есть карта "Training" в папке Maps с кучей других карт.
Создал в Mods папку "Training" в ней Data/s/ в ней скрипты написаные в ERM editor. Активировал мод.
1. Как игра понимает, что эти скрипты относятся именно к этой карте?
2. Как я могу отключить вогификацию? Если я пишу UN:P3/1, то перестают работать и мои скрипты.
та вопросов ещё куча, но не всё сразу..



RE: Вопросы по моддингу - Berserker - 24.10.2020 21:45

Все вопросы по делу, многое мало где описано

Quote:1. Как игра понимает, что эти скрипты относятся именно к этой карте?
Никак. Они работают как глобальные. Соответственно, отключение загрузки скриптов отключает всё. И вогификация отключается через UN:P5/0.

Ещё скрипты загружаются из Maps\Resources\Имя карты без h3m\Data\s.
Единственное, что раз карта зависит от Era Erm Framework, ей нужно его загрузить.

Пока что это можно сделать костыльным способом для тестов:
Создаёшь в Maps\Resources\Имя карты без h3m\Data\s файл "load only these scripts.txt"

В нём построчно напиши имена ЕРМ скриптов, которые нужно загрузить. Вогификацию не трогай, другие скрипты грузиться не будут. Только вызови UN:J3/^:clear:^ для сброса вог-опций.

В список скриптов включи 9999 era - consts.erm, 9999 era - stdlib.erm, -9999 era - stdlib.erm, и дальше имена своих скриптов.


RE: Вопросы по моддингу - SergOz - 24.10.2020 22:11

(24.10.2020 21:45)Berserker Wrote:  
Quote:1. Как игра понимает, что эти скрипты относятся именно к этой карте?
Никак. Они работают как глобальные.
А, если из разных модов совпадут скрипты на посещение !?OBx/y/z; с одинаковыми координатами?
Quote:И вогификация отключается через UN:P5/0.
Да, это я копировал, чобы побыстрее было, да не то скопировал


RE: Вопросы по моддингу - Berserker - 24.10.2020 22:19

Quote:А, если из разных модов совпадут скрипты на посещение !?OBx/y/z; с одинаковыми координатами?
Триггеры будут выполняться друг за другом. Хоть по сто обработчиков на одни и те же объекты.


RE: Вопросы по моддингу - SergOz - 24.10.2020 22:31

(24.10.2020 22:19)Berserker Wrote:  Триггеры будут выполняться друг за другом. Хоть по сто обработчиков на одни и те же объекты.
Так это же для сюжетной карты просто 37


Ваши вопросы по ERM-скриптам - RADIOFAN - 04.11.2020 08:56

Здравствуйте, уважаемые форумчане. Столкнулся с интересной проблемой. Хочу ставить леса с помощью UN:I, но ставится только один вид. Тип 135, подтип 0, тип почвы -1..8
Image: image.png
Хотя в редакторе другие формы леса имеют тот же тип и подтип.
Image: 1.png

Так вот назрел вопрос, как с помощью ERM ставить разные формы леса или одиночные деревья?

З.Ы. такая же тема и с травяными холмами.


RE: Ваши вопросы по ERM-скриптам - MOP - 04.11.2020 13:10

А никак.
Как костыль: можно дублировать объекты в текстовиках, назначив клонам разные подтипы. Генератор случайных карт всё равно не будет их ставить.


RE: Ваши вопросы по ERM-скриптам - RADIOFAN - 04.11.2020 13:29

Немного не понял. Как дублировать объекты? Это не для генератора. Хочу карту сделать со сменой времен года.


RE: Ваши вопросы по ERM-скриптам - MOP - 04.11.2020 14:27

Есть в ресурсах игры объектные текстовики zaobjcts.txt, zeobjcts.txt, zobjects.txt. В них данные, какому объекту какой тип и подтип назначен. Дальше дублируем строчки, редактируем и получаем то, что нам нужно. За более подробными объяснениями - не ко мне, меня хватит только на намёк.


RE: Ваши вопросы по ERM-скриптам - RADIOFAN - 04.11.2020 16:04

Не, ресурсы ковырять это не выход( Может с UN:C есть какие костыли?


RE: Ваши вопросы по ERM-скриптам - Bes - 04.11.2020 18:29

RADIOFAN, как вариант, ставить объект с одной красной клеткой, менять через SN:R ему внешний вид и добивать не проходимые месте через TR красными областями 148 но это дичь дикая


RE: Ваши вопросы по ERM-скриптам - Berserker - 04.11.2020 19:14

SN:R не сработает уже после установки дефа и загрузки в память.


RE: Вопросы по моддингу - SergOz - 04.11.2020 21:32

(24.10.2020 21:45)Berserker Wrote:  Создаёшь в Maps\Resources\Имя карты без h3m\Data\s файл "load only these scripts.txt"
В нём построчно напиши имена ЕРМ скриптов, которые нужно загрузить. Вогификацию не трогай, другие скрипты грузиться не будут. Только вызови UN:J3/^:clear:^ для сброса вог-опций.
В список скриптов включи 9999 era - consts.erm, 9999 era - stdlib.erm, -9999 era - stdlib.erm, и дальше имена своих скриптов.
Пожалуйста, подскажите в чём создать файл "load only these scripts.txt" и как прописывать в нём строчки?
Небольшой пример написания очень бы мне помог. Yes


RE: Вопросы по моддингу - Berserker - 04.11.2020 23:00

В блокноте или sublime text.
Пример:
Code:
file 1.erm
file 2.erm
78 wog - wogify.erm



RE: Ваши вопросы по ERM-скриптам - XEPOMAHT - 05.11.2020 00:27

(04.11.2020 08:56)RADIOFAN Wrote:  Хотя в редакторе другие формы леса имеют тот же тип и подтип.
Image: 1.png

Так вот назрел вопрос, как с помощью ERM ставить разные формы леса или одиночные деревья?

UN:I может ставить объекты с учётом почвы, в справке описано с примерами если что.

PS: в справке ещё почему-то написано, что подтип кушает 4 байта, а на самом деле только 2. Тип объекта - это 4 байта.


RE: Вопросы по моддингу - SergOz - 05.11.2020 00:32

Berserker, получилось!!! 120
слоны не бывают так довольны, как я сейчас!



RE: Вопросы по моддингу - Berserker - 05.11.2020 00:40

SergOz, здорово! Yes На 3.3 версию планировал заменить функционал load only these scripts файлов командой импорта скриптов из скриптов, но пока не реализовано.


RE: Вопросы по моддингу - SergOz - 05.11.2020 01:08

Berserker, вот небольшая загвоздка...
При загрузке карты даю игроку выбор: English language/Русский язык.
Потом в событиях: IF&i^language^=1:M^text^; IF&i^language^=2:M^текст^;
Но, это работает когда скрипты в карте. А как лучше сделать, если тексты в sublime зависят от кодировки?


RE: Вопросы по моддингу - Berserker - 05.11.2020 02:44

Quote:File - Save with encoding - Cyrillic (Windows 1251)
Если первый раз открываешь готовый файл, то файл Reopen with encoding - та же кодировка.

Сам редактор по умолчанию работает в кодировке UTF-8, которая нынче стандарт.
Пересохрани скрипты в кодировки Windows-1251.


RE: FAQ по моддингу - SergOz - 05.01.2021 17:59

(21.10.2020 16:47)Berserker Wrote:  Создай папку Mods\Serg\Data\s, куда и положи их. Готово.
Да, включи свой Serg-мод в менеджере модов.
Создал Mods/War on Canvas/Data/s - в ней все скрипты карты. В Мод-менеджере активировал мод.
Запустил игру - скрипты не читаются.


RE: FAQ по моддингу - Berserker - 05.01.2021 22:41

SergOz, загрузи архив, пожалуйста.


RE: FAQ по моддингу - SergOz - 05.01.2021 23:27

Berserker, здесь


RE: FAQ по моддингу - Berserker - 06.01.2021 01:13

Вот времена. Карты стали весить больше, чем вся игра со всеми объектами, картами и кампаниями.

Так, а кто в load only these scripts.txt прописал имена файлов с несуществующим префиксом "file "? В Sublime Text выдели "file ", ALT + F3, DELETE.


RE: FAQ по моддингу - SergOz - 06.01.2021 01:41

Удалил. Ctrl+D, DELETE делает то же смое.
Но, игра всё равно не читает скрипты.


RE: FAQ по моддингу - Berserker - 06.01.2021 03:18

P.S. Осталось ещё два скрипта внутри самой карты.
P.S.S. Плохо, что имена скриптов не латиницей. Если системная кодировка будет не кириллица, не сработают.

Причина проста. :clear: сбрасывает все вог-настройки, включая вогификацию. Без вогификации глобальные скрипты вообще не читаются, load only these scripts игнорируется.
Варианта два:
1) Поместить скрипты в Maps\Resources\[ERA]WAR_ON_CANVAS_v2.3\Data\s
Тогда они будут считаться скриптами карты.

2) Выдернуть оставшиеся два скрипта из карты. Тогда UN:J3^:clear:^ сработает уже на этапе загрузки глобальных скриптов.


RE: FAQ по моддингу - SergOz - 06.01.2021 05:06

Berserker, прошу пояснить.
У меня до этого и были скрипты в Maps\Resources\[ERA]WAR_ON_CANVAS_v2.3\Data\s.
Но, уж не помню кто и где писал, что это костыльный метод, хотя при этом всё прекрасно работало.
Так чем же чреват такой метод?

Выдернул всё с карты перенёс в s. Запустил игру. После вступительных текстов появляется вот это:
и после этого игра зацикливается


RE: FAQ по моддингу - Berserker - 06.01.2021 20:08

SergOz, метод нормальный. Если у тебя карта без pac-архивов и иных ресурсов, что обычно кладутся в папку мода, самое то.
Картинка битая. Загрузи архив чисто карты + папки Maps\Resources, пожалуйста.


RE: FAQ по моддингу - SergOz - 07.01.2021 01:44

Berserker, есть здесь. Та, что 133Мб. Там, правда ещё и mp3.


RE: FAQ по моддингу - Berserker - 07.01.2021 14:40

SergOz, а на 0.5 МБ ничего нет? ) Просто папка Maps, где карта и подпапка Resources. Имена та, с которой у тебя игра зацикливается.


RE: FAQ по моддингу - SergOz - 07.01.2021 15:56

Berserker, сделал - 382 Кб


RE: FAQ по моддингу - Berserker - 07.01.2021 16:41

Карта играется на ура. Проблем не обнаружил после первой битвы. Раненную Горгону убивать не стал. Нужен скрин хотя бы.


RE: FAQ по моддингу - SergOz - 07.01.2021 17:05

Berserker, так в том то и дело, что с папкой Resourses проблем нет, а как только я убираю папку и создаю Mods/War on Canvas/Data/s - и в ней все скрипты карты, происходит
зацикл после таких сообщений



RE: FAQ по моддингу - Berserker - 07.01.2021 19:10

load only these был с двойным расширением.
Кроме этого поправил список скриптов Эры, добавил один скрипт и разместил в верном порядке.
https://dropmefiles.com/O86lv


RE: FAQ по моддингу - SergOz - 07.01.2021 20:42

Berserker, спасибо.
Игра зацикливать перестала, но скрипты по-прежнему читать не хочет.
Я уж пересмотрел другие моды - всё вроде бы так же - а скрипты не работают.
На иконы крестился, Матерь Божью вспоминал - не помогает.
Сборка стоит последняя от daemon_n'а, только обновил .dll до 3.2 и в Game Enhancement Mod/eraplugins переустановил BattleReplay.


RE: FAQ по моддингу - Berserker - 07.01.2021 20:53

В load only these scripts в списке файлов были имени файлов без расширений:
"script 004_Instructions".

Выделил все нужные строки без erm-расширения, CTRL+SHIFT+L для создания по курсору на каждую строку, затем END для перевода курсоров в концы строк и дописать ".erm"

Проделал — работает. Справишься?


RE: FAQ по моддингу - SergOz - 07.01.2021 21:04

Berserker, должен...

P.S. Ес!!! Dance3
Berserker, огромнейшее спасибо! 119


RE: FAQ по моддингу - Berserker - 08.01.2021 04:04

Пожалуйста )


RE: Ваши вопросы по ERM-скриптам - Raistlin - 08.01.2021 22:00

У меня тут тоже возник вопрос по erm, и связан он с автосохранением игры. Можно ли в триггере GM0 узнать, что его вызвало: действие пользователя или autosave? Нужно мне это на самом деле для плагина, так что если вдруг это действие проще выполнить на C++ (или Паскале, я переведу), то с моей стороны это будет только приветствоваться.


RE: Вопросы по моддингу - Berserker - 08.01.2021 23:16

Нет. Вызов функции сохранения может идти из скрипта. На ЕРМ я по нажатию на Конец Хода ставил флаг автосохранения и следующий вызов сохранения считал за авто, но это костыльный способ, не покрывающий возможности такое автосохранение отключить.


RE: Вопросы по моддингу - Raistlin - 09.01.2021 00:00

Berserker, хоть и костыль, но мне подойдёт. Спасибо за идею!
Собственно, нужно мне это для того, чтобы расширить возможности сохранений. У меня имеются двумерные массивы, которые я пока храню в текстовиках (они названы просто числами), которые лежат в отдельной папке. Там ещё есть один файлик с номером последнего сохранения, а с помощью SN:W нужный номер сохраняется для игры. Когда игра сохраняется, это число увеличивается на 1, а в папке генерируется новый текстовик. При загрузке проверяется число, сохраненное с помощью SN:W, а потом считываются данные из файла с соответствующим названием. Способ рабочий, но проблема тут была в том, что из-за автосохранения этих текстовиков накапливалась ну просто тьма. 148
Как мне кажется, решение получилось по-своему интересное, так что я потом этот код опубликую, вдруг кому-то ещё пригодится )


RE: Вопросы по моддингу - Raistlin - 09.01.2021 03:01

Ха-ха, оно все-таки заработало 96-copy
Berserker, еще раз спасибо!


RE: Вопросы по моддингу - SergOz - 09.01.2021 15:21

Нужно что-то делать с модом сохранения перед боем. Он ломает карты. Все карты. Кроме того, что он позволяет пройти мимо монстра, если есть хотя бы одна проходная клетка, так ещё он позволяет пройти сквозь гарнизоны, избегая боя с их охраной. Полная хрень. Я у себя просто удалил сей мод.
В идеале нужно бы "отбрасывать" героя на одну клетку - ту, на которой он был перед нападением на объект.


RE: Вопросы по моддингу - Berserker - 09.01.2021 16:10

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


RE: Вопросы по моддингу - planetavril - 09.01.2021 18:36

Berserker
could create a script like extended dwellings but for horde 3 and 4, I know how to enable them in the towns where they are disabled but don't know how to set the creatures to enlist in the hordes of the 8 towns?


RE: Вопросы по моддингу - Berserker - 09.01.2021 19:11

No, sorry. Extended Dwellings was written in ERM 1, hard to adapt it.


RE: Вопросы по моддингу - planetavril - 09.01.2021 19:20

a simple creed script to set which creature to enlist in horde 3 and 4 of towns?,maybe something like this I don't know if it works:




RE: Вопросы по моддингу - SergOz - 09.01.2021 21:44

(09.01.2021 15:21)SergOz Wrote:  Нужно что-то делать с модом сохранения перед боем. Он ломает карты. Все карты. Кроме того, что он позволяет пройти мимо монстра, если есть хотя бы одна проходная клетка, так ещё он позволяет пройти сквозь гарнизоны, избегая боя с их охраной. Полная хрень. Я у себя просто удалил сей мод.
В идеале нужно бы "отбрасывать" героя на одну клетку - ту, на которой он был перед нападением на объект.
Поможет ли делу вот такая наработка?
Возможно ли этот алгоритм применить к моду сохранения перед боем, с установкой координат перед атакой на объект?


RE: Вопросы по моддингу - wessonsm - 09.01.2021 21:54

(09.01.2021 21:44)SergOz Wrote:  Возможно ли этот алгоритм применить к моду сохранения перед боем, с установкой координат перед атакой на объект?
Возможно и сработает, но вряд ли такой вариант будет хорошим решением, ибо триггер !!HM-1 будет срабатывать на каждом шагу каждого героя, что нехорошо с точки зрения оптимизации - куча лишних операций.
Можно проверку на игрока-человека добавить, но все равно как-то не очень.


RE: Вопросы по моддингу - SergOz - 09.01.2021 22:02

wessonsm, в данном случае, в триггер !?HM-1; фактически добавляется одна команда - !!SN:M1/0/y1M1/1/y2M1/2/y3; так как если этот триггер уже существует на карте/в моде/плагине то там по-любому идёт считывание координат героя, иначе зачем он нужен, этот триггер.
Одна команда никак не повлияет на быстродействие кода.


RE: Вопросы по моддингу - Bes - 09.01.2021 22:15

согласен, это не замедлит игру никак (мс уже не учитываем)
решение выглядит вполне оправданным. Но нужно на практике смотреть, насколько это графически будет смотреться - телепорт перед самим боем.
+ когда герой побеждает, потративший ДО боя mp, которые скрипт последней клетки забирает фактически и это может не понравится игроку. Либо нужно компенсировать те заветные (100/144 или др.) очки хода.
А если это атака с подземных ворот/телепорта? а герой в итоге будет насильно сдвинут?


RE: Вопросы по моддингу - SergOz - 09.01.2021 22:21

Bes, я проверил скрипт на карте: графически никак не изменяется.
Телепорта никакого нет, ну то есть герой "сдвигается" только если загрузить сейв сохранения перед битвой. Нюансы, такие как наличие жёлтой клетки, нужно учитывать уже в самом моде сохранения перед боем.
Возможно в строке
!!HE-1:P?y1/?y2/?y3; получаем координаты героя (до его шага)
нужно добавлять проверку на мувы героя, расширив динамический массив до 4-х ячеек, и возвращать их (мувы) при загрузке сейва.


RE: Вопросы по моддингу - daemon_n - 09.01.2021 22:45

SergOz, а если 2 монстра рядом, и перед нападением на второго не было шага с места - будет нормально?


RE: Вопросы по моддингу - SergOz - 09.01.2021 23:05

daemon_n, насколько я понимаю - нельзя напасть на двух монстров сразу. Идёт очерёдность по кругу. Если клетка атаки принадлежит двум/нескольким монстрам - выбирается только один. Ели игрок, по какой-то причине хочет переиграть последний бой - его атакующего героя героя возвратят на клетку, с которой он атаковал, и повторится та же ситуация, которая была перед первым нападением.
Ещё раз подчёркиваю: возврат атакующего героя на исходную клетку произойдёт только при загрузке сейва BattleSave или как он там называется..

В любом случае это лучше чем то что есть сейчас. Сейчас - просто ... (нет слов)
Или же, как сказал Berserker нужно удалить этот мод со всех сборок


RE: Вопросы по моддингу - wessonsm - 09.01.2021 23:09

SergOz, я вот что подумал только что.
Ты напал на монстра, записался batlesave, после этого походил другой игрок своими героями (или даже этот же игрок другим героем), и в массив записались уже другие координаты.
И после этого ты загружаешь battlesave. Что будет?
Надо для каждого героя делать отдельный массив.

Правильная реализация думаю возможна, но не так проста как кажется.


RE: Вопросы по моддингу - SergOz - 09.01.2021 23:10

wessonsm, ты работал с динамическими массивами?
Туда запишется ход/атака последнего героя. Они не ходят все сразу!
Просто возьмите мой код и проверьте на тестовой карте


RE: Вопросы по моддингу - wessonsm - 09.01.2021 23:16

(09.01.2021 23:10)SergOz Wrote:  wessonsm, ты работал с динамическими массивами?
Туда запишется ход/атака последнего героя. Они не ходят все сразу!
Если ход последнего был без атаки?
В массиве - координаты последнего, а атаковал предпоследний...


RE: Вопросы по моддингу - SergOz - 09.01.2021 23:17

wessonsm, в триггере !?HM-1нет понятия предпоследний. Там только последний


RE: Вопросы по моддингу - wessonsm - 09.01.2021 23:20

(09.01.2021 23:17)SergOz Wrote:  wessonsm, в триггере !?HM-1нет понятия предпоследний. Там только последний
Именно, а в триггере !?OB - есть.

То есть так:
Срабатывает триггер !?HM несколько раз для героя №1,
после этого срабатывает !?OB для героя №1,
после этого несколько раз срабатывает !?HM уже для героя №2.
Еще и GM0 сюда впихнуть, соляночка такая получается.


RE: Вопросы по моддингу - SergOz - 09.01.2021 23:25

wessonsm, в триггере !?OB мы считываем данные с массива, но никак их не меняем. Тем более данные с массива наверняка будут считываться с какого-то OnBeforeBattle или т.п.

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


RE: Вопросы по моддингу - daemon_n - 09.01.2021 23:26

SergOz, я и не говорил о нападении на 2 сразу, но с одной точки можно напасть несколько раз и остаться на месте.


RE: Вопросы по моддингу - SergOz - 09.01.2021 23:31

daemon_n, несколько раз с одной точки можно напасть при нынешнем положении дел. Если в сейве будет реализован возврат на предыдущую, перед нападением, точку карты, то это станет невозможным.


RE: Вопросы по моддингу - wessonsm - 09.01.2021 23:35

SergOz, идея реализуема (я думаю), но реализация не так уж проста.


RE: Вопросы по моддингу - Raistlin - 10.01.2021 00:04

(09.01.2021 22:02)SergOz Wrote:  wessonsm, в данном случае, в триггер !?HM-1; фактически добавляется одна команда - !!SN:M1/0/y1M1/1/y2M1/2/y3; так как если этот триггер уже существует на карте/в моде/плагине то там по-любому идёт считывание координат героя, иначе зачем он нужен, этот триггер.
Одна команда никак не повлияет на быстродействие кода.
У меня в моде имеется этот триггер, и там после него идет 7-8 команд. Он оказывает совершенно жуткое влияние на быстродействие, и этих нескольких команд на самом деле вполне достаточно, чтобы были фризы. На новых версиях Эры они не так сильно заметны, но вот в обычном WoG это была катастрофа... Если такая запись в массив будет находиться сама по себе, это не вызовет беды, но в сочетании с чужим кодом она может стать серьёзным балластом.
И кстати, это не одна, а 3 команды, просто они одинаковые.


RE: Вопросы по моддингу - wessonsm - 10.01.2021 00:12

Угу, после скрипта Разведка II из WoG я вообще стараюсь этот триггер нигде не использовать, потому собственно и написал.
Жуткие были тормоза, как и сказал Raistlin.
И в моде LORD тоже с этим столкнулся.


RE: Вопросы по моддингу - SergOz - 10.01.2021 00:27

Raistlin, wessonsm, вы пытаетесь свалить чужие косяки на мою голову. Я написал о том что мой код никак не тормозит игру. При современных процессорах, выполняюших за секунду миллиарды команд +3 команды ...
P.S. А опция "разведка" - такая же хрень, как и теперешний мод сохранения перед битвой


RE: Вопросы по моддингу - Raistlin - 10.01.2021 00:39

SergOz, я хотел поделиться опытом, только и всего. Ab К тебе лично у меня никаких претензий нет )


RE: Вопросы по моддингу - daemon_n - 10.01.2021 08:59

С разведкой были проблемы именно в коде. Поскольку была часть кода, которая не должна была производиться каждый ход. То ли обновление экрана, то ли что ещё. То же было и с БМ, когда тележка давала очки передвижения каждый ход.

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

Я почти уверен, что так и сделано в hd mod. Обнаружил несколько лет назад, а вы можете проверить (СОД/Хота):
1. Создаём карту побольше (чтобы сейв делался дольше);
2. Вводим чит nwctheone (даёт макс очков хода, открытие карты, архов и полёт активному герою);
3. Выставляем скорость передвижения по карте "мгновенно";
4. Прокладываем путь подлиннее, чтобы на пути были монстры;
5. На каждой "кочке", где через одну клетку будет монстр, игра будет замедляться. Точно не помню, делается ли при этом сейв;
5.1. Для тех, у кого комп ну очень мощный, пусть ставит последние стретч фильтры в hd launcher 118

А что касается боёв "вплотную", там бы и на курсор проверку делать. Я бы туда же и клавиши подключил: стрелочки, в т.ч. и numpad


RE: Вопросы по моддингу - SergOz - 10.01.2021 12:12

С записью данных в массивы нет задержки.
Специально, для теста, создал 10 массивов с 5-ю ячейками и в !?HM-1 в каждый записывал данные.
На глаз вообще не заметно. Комп у меня 10-летней давности - под "Скайрим" покупал.
Проблема в записи сохранения. Вот тут я не понимаю как быть. Был уверен, что в !?GM1 можно будет прочитать название загружаемого сейва и, если это BattleSave, то сдвинуть героя в координаты, полученные из массива. Но, игра при этом крашится.
Если возможно сканирование на монстров, как это предлагает daemon_n, то это, наверное, решит проблему.


RE: Вопросы по моддингу - daemon_n - 10.01.2021 12:32

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


RE: Вопросы по моддингу - SergOz - 10.01.2021 19:12

Вот, сделал костыль костыльный... Может кого натолкнёт на мысль...
главное, чтобы не сбило со здравой мысли
Идея сохранения перед боем очень хороша. Думаю, никто не против такой фишки, но реализация...
Этот мой костыль не позволит пройти мимо монстра и гарнизон насквозь не пройти без боя. Но,
мувы не возвращает (нужно как-то добавлять), да и выглядит не очень...
Вот если бы только при загрузке "отбрасывать" героя Sorry


RE: Вопросы по моддингу - daemon_n - 10.01.2021 19:41

SergOz, хочешь костылей? Да пожалуйста)
После загрузки делай переменную, затем при движении мышкой или нажатием клавиши делай HE:P;132


RE: Вопросы по моддингу - SergOz - 10.01.2021 20:05

daemon_n, я тут подумал113- кода быстрого сохранения мне хватит 96


RE: Вопросы по моддингу - planetavril - 14.01.2021 18:50

does anyone know how to set up terrains in the editor and minimap?


RE: Вопросы по моддингу - Archer30 - 16.01.2021 17:50

Hi! Is there a way to have Vial of Dragon Blood and Armageddon's Blade generated in random maps? I mean, with no erm but plugin way. These two artifacts don't seem to appear in SoD/WoG maps. What code/address should I read? 96-copy


RE: Вопросы по моддингу - daemon_n - 16.01.2021 17:58

Archer30, isnt zeo/zao txt?


RE: Вопросы по моддингу - Archer30 - 16.01.2021 18:13

daemon_n, nope. It's the limit from code that random maps always come with these two artifacts banned by default.



RE: Вопросы по моддингу - daemon_n - 16.01.2021 18:39

Archer30, then better ask RK i think


RE: Вопросы по моддингу - V_Maiko - 16.01.2021 18:45

Archer30, Check artraits.txt and then change "Class R" to a lower one to check if it can appear.


RE: Вопросы по моддингу - RoseKavalier - 16.01.2021 18:54

(16.01.2021 18:13)Archer30 Wrote:  daemon_n, nope. It's the limit from code that random maps always come with these two artifacts banned by default.

There's quite a bit of code missing to properly extend artifacts in the original wog mapeditor for anything over 140, among others default settings.


RE: Вопросы по моддингу - Archer30 - 16.01.2021 19:21

RoseKavalier, thanks. But these 2 artifacts are 127/128, a bit of a distance to reach the 140 limit. Unsure


RE: Вопросы по моддингу - RoseKavalier - 17.01.2021 01:21

I see, probably done so because they were meant to be campaign specials only.


RE: Вопросы по моддингу - Archer30 - 18.01.2021 09:07

RoseKavalier, probably. Limiting them from spawning makes them very unique in the game.

________


Another question about modding.

Is there a way to check whether a scenario is from a campaign and is resumed from another scenario?

I'm trying to make a feature that saves my henchman stats over campaigns, just like heroes and commanders. But it looks impossible without this check.


RE: Вопросы по моддингу - Berserker - 18.01.2021 14:17

Archer30, I don't understand the ide quite well. How to resume savegame from another scenario?


RE: Вопросы по моддингу - Archer30 - 18.01.2021 16:39

Berserker, by using campaign format of savegame?

For example, check this video. This guy wined the first scenario and saved his game as Campaign.cgm. In the next episode, he resumed from the same savegame with keeping his heroes (skills + level). You can check by yourself with the cheat "wogonering" to quickly win a game.


RE: Вопросы по моддингу - Berserker - 18.01.2021 16:45

There is no built-in way except the following:
Quote:Initializing Variables
Like flags, all variables begin the game with an initial value of 0. However, also like flags, certain variable ranges will NOT be reset between maps without restarting the Heroes game. Again, this is to allow those variables to "carry over" their values to another map as part of a multi-map campaign. When you start a new map, the following variables will be reset to zero (0) or a void string "" for z variables: f...t, v1...v500, v1001-v10000, z1...z300, z501-z1000, w1-w50. The following variables will retain their current values between games (unless you quit and restart Heroes): v501-v1000, z301-z500, w51-w100.



RE: Вопросы по моддингу - Archer30 - 18.01.2021 17:07

Thanks. That could help. But still, it's important to check whether a scenario is part of a campaign or just a normal one. Currently, this has to be pointed out by users (to decide whether used the save vars). 102


RE: Вопросы по моддингу - Berserker - 18.01.2021 18:30

Archer30, scenario maker can store unique special value in transitional variable like v501 to mark game as campaign. Like: 1944734709.
Such magic constant may be checked and if found, variables are reused, not cleared.


RE: Вопросы по моддингу - Archer30 - 18.01.2021 18:43

Berserker, mind-blowing 132


RE: Вопросы по моддингу - Raistlin - 20.01.2021 22:14

(20.01.2021 19:29)Raistlin Wrote:  Пораскинул я мозгами и придумал иной, менее замороченный вариант. К сожалению, он тоже не работает, хотя вроде должен...

Code:
Magic->WriteLoHook(0x4C8FBB, (void*)FixRandomMonasterGenerator);

Code:
int __stdcall FixRandomMonasterGenerator(LoHook* h, HookContext* c)
{
    if (*(char*)(c->ebp - 4) == 145)
        *(char*)(c->ebp - 4) = 164;
    if (*(char*)(c->ebp - 4) == 174)
        *(char*)(c->ebp - 4) = 145;

    return EXEC_DEFAULT;
}

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


RE: Вопросы по моддингу - XEPOMAHT - 21.01.2021 00:05

(20.01.2021 22:14)Raistlin Wrote:  Подскажите пожалуйста, почему не работает правка генератора случайных монстров?

Лично я тоже не понял, что делают твои хуки. EBP-4 - счётчик запрещающихся монстров (например память там выделена максимум под 160 монстров, ты зачем-то записываешь туда *(char*)(c->ebp - 4) = 164, что уже будет ошибкой, ну потом зачем-то проверяешь на *(char*)(c->ebp - 4) == 174), что тоже будет на грани утечки памяти).

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

Рекомендую написать собственный генератор случайных монстров, отправив оригинальный СоДовский на заслуженную пенсию (к примеру, в MoP давно присутствует собственный генератор случайного монстра, когда-нибудь и на Тифон его, по слухам, завезут).


RE: Вопросы по моддингу - Raistlin - 21.01.2021 02:00

Боже моой 858585
Я все неправильно понял и подумал, что это массив не ЗАПРЕЩЕННЫХ, а РАЗРЕШЕННЫХ монстров Dash1

XEPOMAHT, спасибо Вам! Я, пожалуй, и вправду напишу собственный генератор, а об этой попытке забуду как о страшном сне...


RE: Вопросы по моддингу - igrik - 21.01.2021 10:16

Raistlin, так чем тебя этот генератор не устроил?
Code:
_int_ __stdcall GameMgr_GetRandMonster_ByLevel(HiHook* hook, _GameMgr_* gm, int mon_lvl_Lo, int mon_lvl_Hi)
{
    // проверка на дурака 1
    if ( mon_lvl_Lo < 0 || mon_lvl_Lo > 6) {
        b_MsgBox("Please use the monster level 0-6", 1);
        return 0;
    }

    // проверка на дурака 2
    if ( mon_lvl_Hi < 0 || mon_lvl_Hi > 6) {
        b_MsgBox("Please use the monster level 0-6", 1);
        return 0;
    }

    // проверка на дурака 3
    if ( mon_lvl_Lo > mon_lvl_Hi ) {
        b_MsgBox("Are you kidding?!", 1);
        return 0;
    }

    // количество монстров в игре
    // тут нужно учесть и Тифон, и Аметист,
    // но и не гонять циклы в пустую (поэтому откуда бы считать?)
    int count = 196;

    // инициализируем массив (в Аметисте 1024)
    char monArray[1024];
    
    // заполняем массив нулями (запрещяем всех монстров)
    for(int i = 0; i < 1024; i++)
        monArray[i] = 0;

    // собираем массив монстров нужного уровня (разрешаем только этих монстров)
    for(int i = 0; i <= count; i++) {
        int lvl = o_CreatureInfo[i].level;

        if (lvl >= mon_lvl_Lo && lvl <= mon_lvl_Hi)
            monArray[i] = 1; // монстр нужного уровня
    }

    // исключаем несуществующих монстров
    monArray[122] = 0;
    monArray[124] = 0;
    monArray[126] = 0;
    monArray[128] = 0;

    // исключаем Драколича
    monArray[196] = 0;

    // исключаем Супер Драконов (так делает SOD)
    for(int i = 132; i <= 135; i++)
        monArray[i] = 0;

    // исключаем Боевые Машины
    for(int i = 145; i <= 149; i++)
        monArray[i] = 0;

    // исключаем Богов
    for(int i = 160; i <= 163; i++)
        monArray[i] = 0;

    // исключаем Командиров
    for(int i = 174; i <= 191; i++)
        monArray[i] = 0;

    // инициализация переменной
    int result;

    do { // ищем доступного монстра из разрешённых
        result = Randint(0, count);        
    } while ( !monArray[result] );

    // возвращаем id найденного монстра
    return result;
}



void StartPlugin()
{
    _PI->WriteHiHook(0x4C8F80, SPLICE_, EXTENDED_, THISCALL_, GameMgr_GetRandMonster_ByLevel);
    return;
}



RE: Вопросы по моддингу - Raistlin - 21.01.2021 13:24

Забыл о его существовании, хотя точно где-то видел... Спасибо Вам, igrik! 132
А мне походу тоже пора на пенсию вслед за СоДовским генератором...


RE: Вопросы по моддингу - Raistlin - 21.01.2021 13:46

Кстати, это ведь код из game bug fixes extended.dll? Я чувствую, мне определенно стоит ознакомиться с исходниками.
P.S. Я работаю в девятнадцатой студии, и мне потребовалось сделать приведение типов при вызове функции b_MsgBox. Это, ясное дело, не проблема, но на всякий случай я Вас уведомляю.


RE: Вопросы по моддингу - XEPOMAHT - 21.01.2021 14:52

(21.01.2021 10:16)igrik Wrote:  так чем тебя этот генератор не устроил?

Жесткая привязка к номерам монстров. Для поддержки Тифона потребуется:

1. получить адрес структуры монстров из эровского RedirectMemoryBlock по идентификатору 7D0C90h (как делается - знает Берсеркер).

2. Если полученный адрес не равен 7D0C90h, значит имеем дело с Тифоном (или с Аметистом, х.з. как проверить конкретную загруженную dll на ЭРЕ), если нет - идут проверки Игрика, п.3 и далее уже пропускаются.

3. Прибавить к адресу структуры её размер (тифоновский: MonNum * sizeof._Creature_). Далее прибавить 56000. Попадаем на тифоновский Ban_Table.

4. Проверяем 1000 байтов на предмет разрешённости 1000 тифоновских монстров:

Code:
do { // ищем доступного монстра из разрешённых
        result = Randint(0, 999);        
    } while ( !monArray[result] );

ну и так далее по коду Игрика.


RE: Вопросы по моддингу - Berserker - 21.01.2021 14:57

Генератор, конечно, не оптимальный по скорости с вечным циклом и дырками. В Mixed Neutrals генерация монстра по уровню — операция O(1) (линейная).
Для этого отсутствующие монстры не попадают в глобальный массив номеров существ вообще + есть отдельные индексированные глобальные массивы по уровням. Не при каждом же вызове делать фильтрацию.


RE: Вопросы по моддингу - Raistlin - 21.01.2021 15:06

А может закинуть вот это все
в OnGameEnter, а массив monArray сделать глобальным?


RE: Вопросы по моддингу - XEPOMAHT - 21.01.2021 15:11

(21.01.2021 14:57)Berserker Wrote:  Для этого отсутствующие монстры не попадают в глобальный массив номеров существ вообще + есть отдельные индексированные глобальные массивы по уровням.

Да, только если памяти не жалко на списки отсортированных монстров. По оптимизации скорости ЦП верхний лимит для выборки случайного монстра можно заранее понизить (например для ERA+ он не 1000, а 221, если скляроз не изменяет, если пройтись по той же таблице запрета - всё что выше 221 байта будет в нулях). Лично я привык экономить память (наследство от консольного моддинга, где её всегда мало).

(21.01.2021 15:06)Raistlin Wrote:  А может закинуть вот это все в OnGameEnter, а массив monArray сделать глобальным?

В Тифоне оно и так глобальное. Смысл в дубликате имеющегося массива?


RE: Вопросы по моддингу - Raistlin - 21.01.2021 15:24

(21.01.2021 15:11)XEPOMAHT Wrote:  В Тифоне оно и так глобальное. Смысл в дубликате имеющегося массива?
igrik пишет универсальный код, который должен работать как с Тифоном, так и без.


RE: Вопросы по моддингу - igrik - 21.01.2021 15:40

(21.01.2021 14:57)Berserker Wrote:  Генератор, конечно, не оптимальный по скорости с вечным циклом и дырками. В Mixed Neutrals генерация монстра по уровню — операция O(1) (линейная).
Для этого отсутствующие монстры не попадают в глобальный массив номеров существ вообще + есть отдельные индексированные глобальные массивы по уровням. Не при каждом же вызове делать фильтрацию.
Этот код практически идентичен коду генератора СОДа, только массив состоит не из битов как СОДе, а из байтов.
С нынешними компами я не вижу проблемы быстродействия массива на 1024+196 итераций. К тому же его сложность так же линейная O(n).

Да, этот код можно хорошенько оптимизировать. Но это был лишь показательный пример.

(21.01.2021 15:06)Raistlin Wrote:  А может закинуть вот это все в OnGameEnter, а массив monArray сделать глобальным?
Ты правильно код прочитал?)) Глобальным делать код не нужно. Таким образом потеряется смысл данного кода.

(21.01.2021 13:46)Raistlin Wrote:  Кстати, это ведь код из game bug fixes extended.dll? Я чувствую, мне определенно стоит ознакомиться с исходниками.
Нет. Этот код вообще отдельно-написанный, и не существует ни в одном из моих плагинов.

(21.01.2021 13:46)Raistlin Wrote:  P.S. Я работаю в девятнадцатой студии, и мне потребовалось сделать приведение типов при вызове функции b_MsgBox. Это, ясное дело, не проблема, но на всякий случай я Вас уведомляю.
Ты используешь заголовочники homm3.h?
Их для 19 студии вообще нужно полностью адаптировать. Правильнее тогда уже использовать заголовочники от Кавалериста (они насыщеннее и работают на новых студиях)


RE: Вопросы по моддингу - XEPOMAHT - 21.01.2021 15:42

(21.01.2021 15:24)Raistlin Wrote:  igrik пишет универсальный код, который должен работать как с Тифоном, так и без.

Ну так без Тифона можно просто добавить готовый массив на 196 монстров. И тогда вообще проверять/вычислять в OnGameEnter ничего не нужно. А в генераторе простая проверка: если есть Тифон, то используется таблица тифона, если нет - используется таблица на 196 монстров. То, что SoD эти данные каждый раз вычисляет - проблема содовского кода генератора монстров (который давно пора отправить на пенсию, что, например, давно сделано в MoP и никак не могут сделать на ERA).

Минусы:
1. на картах старых форматов будут генерироваться новые монстры. Думаю, что это не минус, а даже плюс.
2. не будет действовать запрет фракции Сопряжения (значение из базовой структуры) для определённых кампаний в игре. Но... ВоГ изначально создан как дополнение, вводящее Сопряжение в SoD. Поэтому думаю, что в рамках ВоГа это будет выглядеть нормально, что в каких-нибудь стандартных RoE/SoD-кампаниях сгенерируются, например, Фениксы или Аспиды.


RE: Вопросы по моддингу - Raistlin - 21.01.2021 15:49

(21.01.2021 15:42)XEPOMAHT Wrote:  А в генераторе простая проверка: если есть Тифон, то используется таблица тифона, если нет - используется таблица на 196 монстров
Все, теперь понял. Тут я согласен.


RE: Вопросы по моддингу - Berserker - 21.01.2021 16:37

Quote:Этот код практически идентичен коду генератора СОДа,
Тогда ты прав. Оптимизировать нужно только там, где по тестам реально видна выгода. Иначе чистый и простой код предпочтительнее.


RE: Вопросы по моддингу - Raistlin - 21.01.2021 16:56

(21.01.2021 15:40)igrik Wrote:  Ты правильно код прочитал?)) Глобальным делать код не нужно. Таким образом потеряется смысл данного кода.
Ой 96 Я туда много лишнего закинул, имелось ввиду только это:

Code:
    char monArray[LatestMonID];

    // заполняем массив нулями (запрещяем всех монстров)
    for (int i = 0; i < LatestMonID; i++)
        monArray[i] = 0;
По идее, выбранные в прошлый раз монстры будут просто перезаписываться, если сохранять в отдельную переменную количество отобранных индексов... Выбирать, соответственно, надо случайный элемент массива.
upd. Тогда этот цикл вообще не нужен.

Бред написал... Извиняюсь.
Пусть все остается как есть, я просто опять о разрешенных монстрах стал думать.

Quote:Нет. Этот код вообще отдельно-написанный, и не существует ни в одном из моих плагинов.
Хорошо, я понял.

Quote:Ты используешь заголовочники homm3.h?
Их для 19 студии вообще нужно полностью адаптировать. Правильнее тогда уже использовать заголовочники от Кавалериста (они насыщеннее и работают на новых студиях)
Да... Я что-то слышал о том, что Кавалерист дорабатывает их, но с конечным результатом я не знаком. Можно ссылку пожалуйста?


RE: Вопросы по моддингу - RoseKavalier - 21.01.2021 19:18

This is the api.

This is a set of plugins with a VSIX template project that can be installed to instantly create projects with all proper linkage and settings. The api is not updated often on this repository.


RE: Вопросы по моддингу - Raistlin - 21.01.2021 19:59

RoseKavalier, thank you very much! Thank_you


RE: Вопросы по моддингу - igrik - 21.01.2021 21:34

(21.01.2021 14:52)XEPOMAHT Wrote:  Жесткая привязка к номерам монстров. Для поддержки Тифона потребуется:
Жесткая привязка к номерам монстров приведена для показательного примера. И в этом примере очень легко уменьшить кол-во итераций просто прочитав активное кол-во монстров.
Code:
// количество монстров в игре
// тут нужно учесть и Тифон, и Аметист,
// но и не гонять циклы в пустую (поэтому откуда бы считать?)
// int count = 196;
int count = *(int*)0x<адрес 221 монстра в Тифоне>;
Вот только я никак не пойму откуда прочитать это активное (221) кол-во монстров, а не максимальное кол-во (1000). В Тифоне что, нет простого указателя на текущее кол-во задействованных монстров?


RE: Вопросы по моддингу - XEPOMAHT - 21.01.2021 22:58

(21.01.2021 21:34)igrik Wrote:  В Тифоне что, нет простого указателя на текущее кол-во задействованных монстров?

Нету. Моддер может занять любой доступный слот монстра, хоть 999-й, хоть 666-й, и разрешить его в Ban_Table (или наоборот, если добавляется, например, боевая машина, или переносятся командиры на другие слоты, с добавлением новых).


RE: Вопросы по моддингу - igrik - 21.01.2021 23:23

Ещё интереснее))
А как тогда скриптеру производить цикл по всем монстрам в скрипте?
Как в плагине производить цикл прохода по всем монстрам в плагине?

Возьмём к примеру часто используемый скрипт: "половинная стоимость существ на 7й день". Как организовать цикл? Сколько итераций производить? 1000? Т.е. 778 итераций в пустую? Как скрипту проверять, что монстра (например id 650) вообще нет, если есть активный монстр с id 666?

Вот я щас потихоньку пилю WoG Scripts II и меня этот вопрос более чем интересует.
Скрипт: Половинная стоимость существ на 7й день (Click to View)
Скрипт: существа без вог способностей от опыта (Click to View)



RE: Вопросы по моддингу - daemon_n - 21.01.2021 23:27

igrik, я полностью с тобой согласен. Могу лишь костыль предложить.
Скажем, по проверке цены/FV/AV или иной обязательной характеристики. Может, флаг. 105

P.S.: я бы оставил ИИ возможность иметь половину стоимости каждый день, поскольку они не знают, что к воскресенью надо бежать и задёшево улучшать своих юнитов и покупать только в этот день, экономя в иные дни102

С другой стороны, теоретический откуп в такой день будет дешевле вдвое102


RE: Вопросы по моддингу - igrik - 22.01.2021 00:24

(21.01.2021 23:27)daemon_n Wrote:  igrik, я полностью с тобой согласен. Могу лишь костыль предложить.
Скажем, по проверке цены/FV/AV или иной обязательной характеристики.
Так это не просто костыль, это "возможное" обращение к несуществующему полю, и как следствие вполне ожидаемый вылет из игры.

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


RE: Вопросы по моддингу - XEPOMAHT - 22.01.2021 00:29

(21.01.2021 23:23)igrik Wrote:  А как тогда скриптеру производить цикл по всем монстрам в скрипте?
Как в плагине производить цикл прохода по всем монстрам в плагине?

1. Узнать общее количество монстров в игре (по базовому адресу например).
2. Узнать адрес структуры монстров (можно тоже по базовому адресу).
3. Если монстров более 196, то проверить что загружено: Тифон или Аметист. Если нет ни того, ни другого, то вывести сообщение об ошибке и выйти из функции.
4. Подгрузить заранее индексированный список монстров, которых будем проверять (например нужны все активные монстры, либо только разрешённые, либо только боевые машины, либо командиры, боги, отсортированные по городу, уровню, чётности, флагам монстров, наличию апгрейда, чему-то ещё..). Если оптимизация не требуется, то значит проверяем всех (то, что считали в п.1).
4. Запустить цикл for i=0 to anybody_monster_count do ...
5. По номеру списка получаем номер монстра, по которому получаем адрес в структуре монстра, ну и дальше стандартные операции со структурой монстров. Если нужна проверка на бланковость, то проверяем на наличие имени дефа в структуре (т.е. на 0 по адресу на строку имени дефа) - монстры в списках при их формировании должны быть заранее проверены на бланковость.


(21.01.2021 23:23)igrik Wrote:  Возьмём к примеру часто используемый скрипт: "половинная стоимость существ на 7й день". Как организовать цикл? Сколько итераций производить? 1000? Т.е. 778 итераций в пустую? Как скрипту проверять, что монстра (например id 650) вообще нет, если есть активный монстр с id 666?

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

(22.01.2021 00:24)igrik Wrote:  это "возможное" обращение к несуществующему полю, и как следствие вполне ожидаемый вылет из игры.

Тифон сразу выделяет память под структуру на 1000 монстров. Попадание всегда будет в структуру монстров, если цикл не берёт количество монстров с потолка, а получает его по базовому адресу.

(22.01.2021 00:24)igrik Wrote:  я наоборот пытаюсь понять механику процесса, чтобы знать о существовании подводных камней и/или о том как правильно выстраивать свои действия при работе с монстрами в Тифоне.

Да я на 100% ответить о всех подводных камнях не смогу. В MoP всегда обрабатывается вся структура от 0 до 999, т.к. там чистый Ассемблер, то работает это быстро. Даже в функции получения случайного монстра при выпадении случайных чисел от 0 до 999 и с последующей проверкой в таблице запрета монстров и последующей перерандомизации при попадании на запрещённого монстра всё работает быстро и не заметно для игрока. На ERM будет значительно медленнее, поэтому для скриптов (и скриптёров) будут полезны заранее подготовленные списки монстров, согласно которым их и придётся проверять для увеличения быстродействия в циклах.


RE: Вопросы по моддингу - Berserker - 22.01.2021 01:00

igrik,

!?FU(GetMaxMonsterId);
; Returns ID of the last supported monster in game.
!#VA(result:x);

Из Era Erm Framework. Вариант, выдерживающий эволюцию без замены кода.
На текущий момент мод вида Thirst Upgrades должен делать так:

!?FU(GetMaxMonsterId);
!#VA(result:x);
!!VR(result):S217;


RE: Вопросы по моддингу - igrik - 22.01.2021 01:10

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


UPD: ага, увидел в библиотеке как реализовано. Значит буду использовать твою функцию.
Тогда добавь и получение кол-ва героев!


RE: Вопросы по моддингу - daemon_n - 22.01.2021 08:01

igrik, так в том и замысел, что Тифон выдал бы значение, скажем, -1, где нет монстра.


RE: Вопросы по моддингу - Berserker - 22.01.2021 20:13

(SIZEOF_UINT32) для UN:C не подходят. UNC_INT или UNC_UINT32 или UNC_INT32. Если помнишь, там не просто размер, а размер и знаковость кодируется.

Добавил:



RE: Вопросы по моддингу - Raistlin - 25.01.2021 01:38

Господа, а как быть? Я в триггере BG0 ставлю свою позицию для прямой атаки (цель выбирается по определенному алгоритму, который для данного примера не нужен), но при этом существа после этого иногда могут полететь/пойти к другой цели и просто встать рядом. Что делать?
P.S. Нужно мне это для симуляции действия берсерка. Любые альтернативные решения приветствуются.


RE: Вопросы по моддингу - daemon_n - 25.01.2021 01:43

Raistlin, так ты 2 действия указал.

Тебе надо просканировать ближайшие клетки и просто !!BG:Dy5; в ближайшего монстра

Если точнее, тебе надо сперва узнать, что за действие стак делать хочет !!BG:A?(actionType:y); и уже от этого скакать дальше, что делать при таком то планируемом дейсттвии


RE: Вопросы по моддингу - Raistlin - 25.01.2021 01:50

daemon_n, мне не нужно в ближайшего, все несколько интереснее. Если рядом есть определенное существо, то текущий отряд психует и вместо того, чтобы делать что-то свое, идет бить морду конкретному врагу. Сам принцип выбора цели работает нормально, проблема в !!BG:Dy5; - похоже я нашел баг в ERM. Если что, использую Эру3


RE: Вопросы по моддингу - XEPOMAHT - 25.01.2021 01:57

(25.01.2021 01:38)Raistlin Wrote:  но при этом существа после этого иногда могут полететь/пойти к другой цели и просто встать рядом. Что делать?

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


RE: Вопросы по моддингу - Raistlin - 25.01.2021 01:59

XEPOMAHT, хорошо, а какой функции ее надо скормить?


RE: Вопросы по моддингу - XEPOMAHT - 25.01.2021 02:03

(25.01.2021 01:59)Raistlin Wrote:  XEPOMAHT, хорошо, а какой функции ее надо скормить?

Оригинальной содовской (выдержка из Тифона):

Code:
        push esi ; структура целевого монстра
        mov ecx, dword [699420h] ;CombatManager
        mov eax, 478230h ; Идти_и_атаковать_монстра
        call eax



RE: Вопросы по моддингу - Raistlin - 25.01.2021 02:14

XEPOMAHT, кажется, я знаю, что мне делать. Большое спасибо!


RE: Вопросы по моддингу - Raistlin - 01.02.2021 18:42

К сожалению, у меня ничего не получилось. Через плагин как-то не пошло, потому я вернулся к ERM. Собственно, я даже догадался, в чем заключается проблема, но решить я ее не могу.
Я пробовал заходить с разных сторон:
Проблем с выставлением цели и совершением атаки у меня нет - как оказалось, названные мною способы и даже обычный ресивер !!BG:Dy5 A6 работают нормально, однако сложность заключается в построении маршрута. Одно дело просто узнать расстояние по прямой (это легко можно сделать вот так: !!SN:E4624976/3/y4/y5; Получаем расстояние до цели в v1), другое - учесть стоящие на пути препятствия, а также другие стеки. По идее, в игре должна быть какая-то функция, которая бы за это отвечала.

Кстати, еще такой вопрос: "lea edx, [eax-1]" означает, что в edx запишется адрес из eax, а затем будет забрана единица, или же, что в edx запишется значение по адресу, хранящемся в eax, со смещением в -1? А может это будет значение по адресу eax, уменьшенное на 1? Подскажите пожалуйста, а то непонятно, как данная команда работает.


RE: Вопросы по моддингу - XEPOMAHT - 01.02.2021 21:03

(01.02.2021 18:42)Raistlin Wrote:  Собственно, я даже догадался, в чем заключается проблема, но решить я ее не могу.

Копируй ассемблерный код на берсерк, если не получается написать его самостоятельно.

(01.02.2021 18:42)Raistlin Wrote:     "lea edx, [eax-1]" означает, что в edx запишется адрес из eax, а затем будет забрана единица, или же, что в edx запишется значение по адресу, хранящемся в eax, со смещением в -1? А может это будет значение по адресу eax, уменьшенное на 1? Подскажите пожалуйста, а то непонятно, как данная команда работает.

mov edx, eax
dec edx


RE: Вопросы по моддингу - Raistlin - 02.02.2021 00:38

(01.02.2021 21:03)XEPOMAHT Wrote:  Копируй ассемблерный код на берсерк, если не получается написать его самостоятельно.
Со сменой цели и атакой все нормально, у меня не выходит построить маршрут до цели и вообще узнать, можно ли до нее добраться за определённое количество шагов.

(01.02.2021 21:03)XEPOMAHT Wrote:  mov edx, eax
dec edx
Спасибо 132


RE: Вопросы по моддингу - Raistlin - 03.02.2021 01:45

Подскажите пожалуйста, где содержится указатель на def объекта? В структуре _MapItem_ я что-то данное поле не вижу...


RE: Вопросы по моддингу - XEPOMAHT - 03.02.2021 01:51

(03.02.2021 01:45)Raistlin Wrote:  Подскажите пожалуйста, где содержится указатель на def объекта? В структуре _MapItem_ я что-то данное поле не вижу...

MapItem.H3Vector<H3ObjectDraw> objectDrawing - a vector of DEFs to draw on this tile.

Если нужна загрузка, то уже здесь:

H3ObjectDetails.setup.

Само имя дефа для загрузки - в H3ObjectAttributes.defName.

Точнее лучше спрашивать у Кавалериста (он хорошо в этом разбирается).


RE: Вопросы по моддингу - Raistlin - 03.02.2021 01:54

Извините за глупый вопрос, но как туда добраться? Может быть Вам известен адрес массива соответствующих структур?


RE: Вопросы по моддингу - XEPOMAHT - 03.02.2021 13:50

(03.02.2021 01:54)Raistlin Wrote:  Извините за глупый вопрос, но как туда добраться? Может быть Вам известен адрес массива соответствующих структур?

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


RE: Вопросы по моддингу - Raistlin - 03.02.2021 14:01

Спасибо, я понял.


RE: Вопросы по моддингу - Raistlin - 05.02.2021 15:20

Номер объекта на карте - это ведь последнее поле структуры _MapItem_? Или надо где-то еще смотреть?

Сама структура (Click to View)

Судя по исходникам ERM, _MapItem_ тут как-то используется, но логика мне не совсем понятна. Помогите пожалуйста разобраться Ab
Code:
int  v;
...
_MapItem_ *mip=GetMapItem2(MixPos);
_CMGarden_ *stp=(_CMGarden_ *)mip;
...
case 'N': // N# установить номер (5)
v=stp->Number;
Apply(&v,4,Mp,0);
stp->Number=(Word)v;
break;
...
// первые 4 байта для магического сада - настройка в 4C
struct _CMGarden_{ // type 0x37
  unsigned  Number  :  5;
  unsigned _u1      :  1;
  unsigned  ResType :  4; // всегда = 5
  unsigned  HasRes  :  1; // =1 - есть ресурс
  unsigned _u2      : 21;
};



RE: Вопросы по моддингу - XEPOMAHT - 05.02.2021 15:48

(05.02.2021 15:20)Raistlin Wrote:  Номер объекта на карте - это ведь последнее поле структуры _MapItem_?

Да.

(05.02.2021 15:20)Raistlin Wrote:  Судя по исходникам ERM, _MapItem_ тут как-то используется, но логика мне не совсем понятна. Помогите пожалуйста разобраться Ab

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


RE: Вопросы по моддингу - Raistlin - 05.02.2021 16:42

Я знаю эту статью, но до этого момента я, правда, не знал, что ключевое слово хранится именно в первых четырёх байтах. Спасибо за информацию! Собственно, что делать, мне теперь ясно, однако одну деталь я все-таки хотел бы уточнить: если номер объекта хранится в последнем поле, то почему тогда его нужно считывать из первого байта?


RE: Вопросы по моддингу - XEPOMAHT - 05.02.2021 17:11

(05.02.2021 16:42)Raistlin Wrote:  если номер объекта хранится в последнем поле, то почему тогда его нужно считывать из первого байта?

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

В первом - сетап или по-нашему - ключевое слово, где находятся сами игровые настройки объекта (разработчики пожмотились на них, увы, поэтому там всё жестко лимитировано, но формат вполне изменяем, например в MoP 2.19 некоторые ключевые слова изменены, чтобы хранить в них больше информации).


RE: Вопросы по моддингу - Raistlin - 05.02.2021 17:17

Любопытно Ab

Quote:Внимательнее изучайте структуры (или используйте русские - я пользуюсь русскими).
Русские структуры? А где их можно найти, если не секрет?


RE: Вопросы по моддингу - XEPOMAHT - 05.02.2021 17:26

(05.02.2021 17:17)Raistlin Wrote:  Русские структуры? А где их можно найти, если не секрет?

В исходниках MoP. Например мапитем:

Code:
struct MapItem
      контрольное_слово dd ?    ;0
      тип_почвы db ?        ;4
      подтип_почвы db ?        ;5
      тип_реки db ?        ;6
      подтип_реки db ?        ;7
      тип_дороги db ?        ;8
      подтип_дороги db ?    ;9
      db ?            ;A
      db ?            ;B
      Зеркало db ?        ;C
      маска_доступа db ?    ;D бит 1 - проходимость, 2 - water edge see 0x4FEA32, 10h - вход
      db 16 dup (?); H3Vector<H3ObjectDraw> objectDrawing - a vector of DEFs to draw on this tile
      тип_объекта dd ?        ;1E
      подтип_объекта dw ?    ;22 = _AdvMgr_.monsterCountBattle
      номер_отрисовки dw ?    ;24 = _AdvMgr_.monsterTypeBattle
ends

;Зеркало:
;tileH      0x01 -    tileV    0x02
;riverH        0x04 -    riverH    0x08
;roadH        0x10 -    roadV    0x20
;can dig    0x40
;animated    0x80 (river, water or lava terrain)



RE: Вопросы по моддингу - Raistlin - 05.02.2021 18:53

Благодарю, я понял.


RE: Ваши вопросы по ERM-скриптам - Raistlin - 09.02.2021 19:14

Друзья, подскажите пожалуйста, как можно "триггернуть" определенное место на карте, координаты которого изначально неизвестны? Мне нужно что-то вроде "!?FU(OnLocalEvent %V1024/%V1025/%V1026)", но такой подход, к сожалению не работает, даже несмотря на то, что я заранее создал там событие с помощью UN:I...


RE: Ваши вопросы по ERM-скриптам - SergOz - 09.02.2021 20:38

Raistlin, странно, что не срабатывает генерация ивента. Может нужны дополнительные настройки после UN:I с помощью !!LE#1/#2/#3:XXXX;
Ещё, как вариант, можно попробовать пометить клетку в !!PO и потом через !?HM вызвать код скрипта, если событие активирует герой.


RE: Ваши вопросы по ERM-скриптам - Raistlin - 09.02.2021 21:48

SergOz, я подозреваю, что триггеры регистрируются до инциализации переменных, а потому там происходит интерпретация мусора, которая не ведет ни к чему хорошему. Если же самостоятельно задавать координаты триггера, то все работает нормально, из чего, кстати, можно сделать вывод, что установка события с помощью UN:I работает корректно.

Quote:Ещё, как вариант, можно попробовать пометить клетку в !!PO и потом через !?HM вызвать код скрипта, если событие активирует герой.
Использование !!PO - это так себе вариант, лучше будет координаты проверять. Правда, я бы очень не хотел использовать !?HM, так как он медленно работает. Пару команд повесишь - и все, фризы. Было бы крайне желательно найти альтернативное решение.


RE: Ваши вопросы по ERM-скриптам - Berserker - 09.02.2021 23:46

Raistlin, а что за задача стоит?


RE: Ваши вопросы по ERM-скриптам - Raistlin - 10.02.2021 00:58

После генерации карты специальный алгоритм выберет несколько мест (в зависимости от ландшафта), где должно будет появляться некоторое событие (игроку будет предложено сразиться, и наградой будет особый артефакт). Как это все организовать, я знаю, единственное, что пока непонятно, - это как реализовать срабатывание триггера. Сейчас у меня есть идея, но я не уверен, что она сработает: возможно мне надо в плагине вызвать функцию RegisterHandler внутри "триггера" PI (функции OnAfterErmInstructions), до этого сгенерировав координаты и передав их ей в качестве второго параметра ("OnLocalEvent" + _X "/" + _Y + "/" + _Z). Вы случайно не знаете, будет такой способ работать, или вызывать функцию RegisterHandler на этом этапе уже нельзя?

P.S. Конкатенация строк, разумеется, будет происходить не так, я это для удобства написал 96-copy


RE: Ваши вопросы по ERM-скриптам - XEPOMAHT - 10.02.2021 01:19

(09.02.2021 21:48)Raistlin Wrote:  Правда, я бы очень не хотел использовать !?HM, так как он медленно работает. Пару команд повесишь - и все, фризы. Было бы крайне желательно найти альтернативное решение.

Альтернатива - только встраивание кода на примере триггера вог-функции 30400 из WERD. Либо полностью отказаться от медленного ERM в пользу, например, lua или создания оригинальных игровых событий на карте с последующим их хуком.


RE: Ваши вопросы по ERM-скриптам - Berserker - 10.02.2021 01:25

Raistlin, будет, но это плохая затея. Обработчики глобальные. Здесь скорее нужно мне добавлять глобальный триггер OnLocalEvent, в который параметрами передавать координаты.


RE: Ваши вопросы по ERM-скриптам - SergOz - 10.02.2021 01:28

Raistlin, так а что мешает поместить в эти места арты или другие объекты, взаимодействие с которыми и будет триггером? Или это место должно быть типа тайным?


RE: Ваши вопросы по ERM-скриптам - Raistlin - 10.02.2021 13:46

XEPOMAHT, с хуками я разобрался - раньше тупил, конечно, но сейчас уже понимаю, что к чему. Помните мой бредокод, "добавляющий" Колизей Магов? Глядите, как он похорошел 96-copy
Реализация Колизея Магов в моем плагине (Click to View)

Если Вы знаете, какая функция в WERD способна разрешить мою проблему, то не могли бы Вы прислать ее код прямо сюда, чтобы я не тратил на поиск в три раза больше времени? Кстати, вопрос не по скриптам, мне просто интересно понять стоящую за этим логику: почему код любой функции начинается с команды PUSH? Подскажите пожалуйста. Ab

Berserker, если Вы добавите, будет здорово 132

SergOz, проблема не в помещении объекта, а в создании для него триггера. И, да, такие места действительно должны быть тайными, чтобы игрок в начале игры не знал, где их искать.


RE: Ваши вопросы по ERM-скриптам - XEPOMAHT - 10.02.2021 15:02

(10.02.2021 13:46)Raistlin Wrote:  Помните мой бредокод, "добавляющий" Колизей Магов? Глядите, как он похорошел 96-copy

Стало лучше, но есть что лучше всё-таки доработать:

1. Например избавиться от ExecErmCmd. Считаю, что применение ERM должно быть в ERM-скриптах, но не в коде на Си.
2. Читаемость так же не очень, например не видны проверки на ИИ. Аббревиатуры типа "xyz" тоже не известно о чём.
3. Хук на 49E440 не должен портить регистры оригинального вызова. Т.е. в _MapItem_ должен оставаться _MapItem_ и там не должно быть мусора.

(10.02.2021 13:46)Raistlin Wrote:  Если Вы знаете, какая функция в WERD способна разрешить мою проблему, то не могли бы Вы прислать ее код прямо сюда, чтобы я не тратил на поиск в три раза больше времени?

WERD - хук на все триггеры в WoG с проверкой номера триггера и выполнением ассемблерного кода на его основе. Берсеркер против этого, но в ERA+ уже так сделано (по идее, нужно переделывать под эровские события, но я боюсь, что после этого код сыпанётся, т.к. опыта работе с эровскими событиями у меня нет никакого). Номер триггера на передвижения героя - 30400 (т.е. на ERM это !?FU30400).

(10.02.2021 13:46)Raistlin Wrote:  почему код любой функции начинается с команды PUSH?

Не любой, а только той, в которой используется стек. Если стек функция не меняет, то команды PUSH в ней нет.


RE: Ваши вопросы по ERM-скриптам - Raistlin - 10.02.2021 15:25

(10.02.2021 15:02)XEPOMAHT Wrote:  Стало лучше, но есть что лучше всё-таки доработать:

Хук на 49E440 не должен портить регистры оригинального вызова. Т.е. в _MapItem_ должен оставаться _MapItem_ и там не должно быть мусора.
По идее не должен, но получить данные я не могу... Если бы мог, то конечно отказался бы от ERM'а. Изначально, кстати, его и не было даже, но потом я заметил, что там что-то не клеится...

Quote:Читаемость так же не очень, например не видны проверки на ИИ.
А ведь верно, надо добавить.

Quote:Аббревиатуры типа "xyz" тоже не известно о чём.
Я сам не знаю, что это за параметр, я просто скопировал его из базы для IDA. Ab

Quote:WERD - хук на все триггеры в WoG с проверкой номера триггера и выполнением ассемблерного кода на его основе. Берсеркер против этого, но в ERA+ уже так сделано (по идее, нужно переделывать под эровские события, но я боюсь, что после этого код сыпанётся, т.к. опыта работе с эровскими событиями у меня нет никакого). Номер триггера на передвижения героя - 30400 (т.е. на ERM это !?FU30400).
Я понял, спасибо!

Quote:Не любой, а только той, в которой используется стек. Если стек функция не меняет, то команды PUSH в ней нет.
А что делает эта команда в данном контексте? Служит индикатором по типу "далее идет то, что для каких-то нужд "сохранялось" в функции"?


RE: Ваши вопросы по ERM-скриптам - igrik - 10.02.2021 15:42

(10.02.2021 15:02)XEPOMAHT Wrote:  1. Например избавиться от ExecErmCmd. Считаю, что применение ERM должно быть в ERM-скриптах, но не в коде на Си.
2. Читаемость так же не очень, например не видны проверки на ИИ. Аббревиатуры типа "xyz" тоже не известно о чём.
1. Полностью согласен. Не нужно мешать мухи и котлеты.
2. "xyz" в публичной версии базы это пакованные координаты.


RE: Ваши вопросы по ERM-скриптам - Raistlin - 10.02.2021 16:13

igrik, я тоже согласен, честное слово! Изначально у меня это место вообще вот так выглядело: bool isMagical = obj.os_type; //0 или 1
Когда удастся найти причину проблемы, я, разумеется, все переделаю.

Quote:2. "xyz" в публичной версии базы это пакованные координаты.
Спасибо, буду знать. Кстати, а что Вы подразумевали под публичной версией?


RE: Ваши вопросы по ERM-скриптам - XEPOMAHT - 10.02.2021 16:15

(10.02.2021 15:25)Raistlin Wrote:  По идее не должен, но получить данные я не могу...

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

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

(10.02.2021 15:25)Raistlin Wrote:  Я сам не знаю, что это за параметр, я просто скопировал его из базы для IDA. Ab

Учитесь разбирать код. Всё то, что написано в базе IDA - не всё правда. Т.к. в одну и ту же переменную могут быть записываться совершенно разные данные (т.к. на самом деле это не переменная, а участок стековой памяти). В данном случае никакие пакованные координаты на функцию посещения арены не передаются (они там и не нужны).

(10.02.2021 15:25)Raistlin Wrote:  А что делает эта команда в данном контексте? Служит индикатором по типу "далее идет то, что для каких-то нужд "сохранялось" в функции"?

Пишет что-нибудь в стек. Например содержимое каких-нибудь регистров.


RE: Ваши вопросы по ERM-скриптам - Raistlin - 10.02.2021 17:00

(10.02.2021 16:15)XEPOMAHT Wrote:  Намекаю, что нельзя так бездумно ставить хуки прямо на любой код.
Замётано Ab

Quote:Значит хук установлен неправильно. В таком виде, в, котором он установлен сейчас, он должен находится совсем в другом месте.

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

Quote:Учитесь разбирать код. Всё то, что написано в базе IDA - не всё правда. Т.к. в одну и ту же переменную могут быть записываться совершенно разные данные (т.к. на самом деле это не переменная, а участок стековой памяти). В данном случае никакие пакованные координаты на функцию посещения арены не передаются (они там и не нужны).
Я учусь... Просто в данном случае эта переменная показалась мне неважной, вот я и оставил все как есть...

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


RE: Ваши вопросы по ERM-скриптам - Raistlin - 10.02.2021 17:10

Quote:почему до выполнения кода функции, работающей со стеком, нужно записывать туда какие-то данные, например, из какого-то регистра?
Погуглил и разобрался. Ab


RE: Ваши вопросы по ERM-скриптам - XEPOMAHT - 10.02.2021 17:22

(10.02.2021 17:00)Raistlin Wrote:  Я пользуюсь готовым API, где, по идее, все потенциальные проблемы уже решены.

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

(10.02.2021 17:00)Raistlin Wrote:  Если Вы знаете, куда нужно ставить хук (хотя-бы примерно, я разберусь), то я очень прошу Вас поделиться со мной этой информацией.

На сам вызов функции, чтобы целиком заменить её собственной. На 4A82B7h.

(10.02.2021 17:00)Raistlin Wrote:  почему до выполнения кода функции, работающей со стеком, нужно записывать туда какие-то данные, например, из какого-то регистра?

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


RE: Ваши вопросы по ERM-скриптам - igrik - 10.02.2021 18:08

(10.02.2021 16:15)XEPOMAHT Wrote:  Вообще, установка хуков прямо на начало функций - удел либо профессиональных программистов, либо бессовестных лентяев. Т.к. при этом можно очень легко испортить стек и словить утечки памяти и разнообразные нарушения работы родительских функций.
Конкретно в этом случае установлен HiHook (метод SPLICE_), который и может быть установлен только на начало функции. По другому ставиться он не может, потому что он заточен только на установку на начало функции. Метод CALL_ в HiHook заточен только на установку на вызов геройской функции.
Ты не разбирался в API patcher_x86, но рассказываешь это так, словно твои слова истина в последней инстанции. А больше половины хуков в HD являются HiHook'ами. Я стараюсь использовать именно их в своих плагинах, потому что они предоставляют максимально читаемый и хорошо понимаемый код.
Для сохранения регистров хуки в патчере стаятся через пыжок (JMP), чтобы их можно было наиболее безопасно сохранить, а потом восстановить.

(10.02.2021 17:22)XEPOMAHT Wrote:  Лично я им не доверяю и пользуюсь старыми и проверенными дедовскими методами. Т.к. в готовом API хук ставит программа по своим шаблонам и там совершенно не известно, что при этом, например, происходит с затёртым кодом...
С таким подходом каждый тогда должен изобрести свой велосипед, и вот тогда это будет полное мясо...

В функции посещения Арены последний аргумент это не пакованные координаты, а булева переменная человек или ИИ
Code:
char __thiscall AdvMng_4_Arena(_AdvMgr_ *AvdMgr, _Hero_ *hero, _MapItem_ *object, _bool8_ isHuman)



RE: Ваши вопросы по ERM-скриптам - Raistlin - 10.02.2021 18:13

(10.02.2021 17:22)XEPOMAHT Wrote:  Необходимо сохранять позицию стека в начале функции, чтобы потом возвратиться к нему в конце перед выходом из функции. Как в поговорке: "намусорил в стеке - прибери за собой".
Хорошая поговорка, говорит сама за себя. 132

Quote:Лично я им не доверяю и пользуюсь старыми и проверенными дедовскими методами. Т.к. в готовом API хук ставит программа по своим шаблонам и там совершенно не известно, что при этом, например, происходит с затёртым кодом, куда уезжает при этом стек и где и как произойдёт возврат в оригинальный код. А поддержки нестандартных соглашений и хуков хуков там вообще нет.
Да, Вы правы - за удобство приходится платить контролем и надежностью, но я ведь не единственный, кто это использует, и, вроде как, у всех все работает, а потому в той или иной степени положиться на готовый функционал все-таки можно.

Quote:На сам вызов функции, чтобы целиком заменить её собственной. На 4A82B7h.
Ох, как-то не пошло у меня... Все способы перепробовал: и через API, и напрямую - патчами, но все одно - вылет. Буду думать дальше, вероятнее всего, я просто не знаком с каким-то элементом синаксиса.


RE: Ваши вопросы по ERM-скриптам - Raistlin - 10.02.2021 18:18

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


RE: Ваши вопросы по ERM-скриптам - XEPOMAHT - 10.02.2021 19:34

(10.02.2021 18:08)igrik Wrote:  Ты не разбирался в API patcher_x86, но рассказываешь это так, словно твои слова истина в последней инстанции.

Да, чтобы разобраться в патчере - это как книгу на 100 страниц прочитать, особенно если посмотреть пачтер в отладчике - там суровая жесть, если работу патчей ещё можно без проблем разобрать, то работа хуков патчера - какая-то чёрная магия с кучей разных таблиц и переменных, по которым связать адрес хука с фактическим кодом самого хука вручную выдержит не каждый (т.е. даже наверное антивирусу не подкопаться, что происходит какой-то взлом программы). Теперь знаю что такое SPLICE_, спасибо что объяснили.

(10.02.2021 18:08)igrik Wrote:  А больше половины хуков в HD являются HiHook'ами. Я стараюсь использовать именно их в своих плагинах, потому что они предоставляют максимально читаемый и хорошо понимаемый код.

Не спорю, что удобно, спорю, что непонятно. Особенно мне, когда привык ставить перехват двумя строчками ассемблерного кода, например такого:

Code:
mov [адрес_хука], E8h (или E9h)
mov [адрес_хука+1], адрес_функции

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

(10.02.2021 18:08)igrik Wrote:  С таким подходом каждый тогда должен изобрести свой велосипед, и вот тогда это будет полное мясо...

Да, увы, универсальной dll, которая устраивала бы всех, не существует. Под сугубо личные нужды приходится использовать то, что знаешь/умеешь. Когда я начинал моддить Третьих Героев, первое, что попалось - исходники MoP-а, с которыми было легко втянуться в Ассемблер и начать изменять игру как угодно. На СИ в то время не было в свободном доступе НИЧЕГО, кроме исходников WoG 3.59 (которые ничем не компилировались и были выложены как есть без документации и какой-либо сопроводиловки). Те же слитые структуры вместе со слитыми исходниками феаноровских плагинов появились гораздо позже. В то время уже был патчер, но... я в нём тогда вообще ничего не понял, и сейчас плохо понимаю. Поэтому по-прежнему остаюсь верен тому изобретённому велосипеду, с которого я и начинал этот путь. Пусть сейчас Игрик и другие уважаемые моддеры смотрят на меня как на закоренелого колхозника, не желающего использовать возможности патчера, но я не могу прыгнуть выше головы, увы. Правильное использование вызовов патчера в низкоуровневом коде в каком-нибудь Тифоне - недостижимо для моего низкого уровня. 105


RE: Ваши вопросы по ERM-скриптам - Berserker - 10.02.2021 20:39

igrik всё верно говорит. Стоит по возможности использовать высокоуровневые перехватчики, которые умеют выполнять затёртый код, а также переписывать смещения в прыжках и вызовах. В Эре это функция Splice, которая к тому же быстрее патчеровской и потокобезопасная.


RE: Ваши вопросы по ERM-скриптам - Raistlin - 10.02.2021 22:03

Довел функцию до ума, но работать она все равно не начала... https://pastebin.com/8nGGeUqG

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


RE: Ваши вопросы по ERM-скриптам - Berserker - 10.02.2021 22:30

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


RE: Ваши вопросы по ERM-скриптам - Raistlin - 10.02.2021 23:21

Berserker, да, конечно. Если вдруг я случайно создал впечатление, что функция арены как-то связана с новой механикой, для которой нужен новый "триггер", то прошу прощения, это не так. Сейчас я отложу оба дела и пойду по пути наименьшего сопростивления, у меня в планах есть много чего еще.
Кстати, название OnLocalEvent уже занято стандартным триггером LE, а потому назвать желательно как-то иначе. Может быть, OnMapPointEnter?


RE: Ваши вопросы по ERM-скриптам - Berserker - 11.02.2021 02:24

Raistlin, не занято. Генерируется OnLocalEvent x/y/z событие, а не просто OnLocalEvent.
Тебе нужно и для ЕРМ и для плагинов, так?


RE: Ваши вопросы по ERM-скриптам - Raistlin - 11.02.2021 03:48

Благодарю за содействие! Если честно, лично для меня это не имеет значения - я уже умею и так, и так. Тем не менее, если это не сложно реализовать, то я, конечно же, был бы очень рад иметь обе возможности.


RE: Вопросы по моддингу - Raistlin - 16.02.2021 22:45

Привет, помогите пожалуйста с еще одной задачкой: я убрал из Крепости верфь, но в то же время вытащил спец. строение 23, которое по умолчанию неактивно. Что нужно сделать, чтобы задать ему название и описание? В BLDGSPEC.TXT теперь есть неиспользуемая строчка, можно ли сделать так, чтобы данные брались из нее? Заранее спасибо!


RE: Вопросы по моддингу - XEPOMAHT - 16.02.2021 23:11

(16.02.2021 22:45)Raistlin Wrote:  Что нужно сделать, чтобы задать ему название и описание?

Адрес строки с названием - в таблицу Town_BuildingsNames.
Адрес строки с описанием - в таблицу Town_BuildingsDescriptions.


RE: Вопросы по моддингу - Raistlin - 16.02.2021 23:39

Спасибо, но это, в принципе, мне и так ясно. То, что нужны именно эти таблицы, понятно из функции Load_Bldgspec_TXT (5B9850), весь вопрос в том, как правильно записать туда что-то свое. Вы случайно не знаете, в каком порядке там идут данные?


RE: Вопросы по моддингу - XEPOMAHT - 16.02.2021 23:57

(16.02.2021 23:39)Raistlin Wrote:  Вы случайно не знаете, в каком порядке там идут данные?

В порядке возрастания от первой спецпостройки до последней. Из памяти игры в отладчике эта таблица прекрасно читается, если что.


RE: Вопросы по моддингу - Raistlin - 17.02.2021 00:19

XEPOMAHT, благодарю! Кстати, не могли бы Вы сказать мне, каким отладчиком Вы пользуетесь?


RE: Вопросы по моддингу - XEPOMAHT - 17.02.2021 00:26

(17.02.2021 00:19)Raistlin Wrote:  Кстати, не могли бы Вы сказать мне, каким отладчиком Вы пользуетесь?

OllyDbg


RE: Вопросы по моддингу - Raistlin - 17.02.2021 01:37

XEPOMAHT, я тоже пользуюсь именно им, но как посмотреть содержимое таблиц уже после того, как отлаживаемая программа была запущена, я не знаю. Не могли бы Вы пожалуйста рассказать мне и об этом?


RE: Вопросы по моддингу - Berserker - 17.02.2021 02:39

OllyDbg и x32Dbg.


RE: Вопросы по моддингу - XEPOMAHT - 17.02.2021 11:07

(17.02.2021 01:37)Raistlin Wrote:  но как посмотреть содержимое таблиц уже после того, как отлаживаемая программа была запущена

Вроде просто: получаешь адрес таблицы из кода игры, жмёшь кнопку "open memory map window" (или просто М) и открываешь блок памяти, которому данный адрес соответствует. Далее, переходишь на начало таблицы по адресу и там уже читаешь её в бинарном виде.


RE: Вопросы по моддингу - Raistlin - 17.02.2021 15:33

XEPOMAHT, Berserker, спасибо Вам большое!


RE: Вопросы по моддингу - Archer30 - 01.03.2021 20:29

Hi! I wonder if there is a way to disable the standard action of "Alt+D" in window mode.

Right now if you press "Alt+D", you got this:
Image: zhEEyBC.png


RE: Вопросы по моддингу - Berserker - 06.03.2021 18:33

Archer30, could you tell, for what purpose should this behavior be disabled?
No, currently it's not possible to block any ALT + KEY combination.


RE: Вопросы по моддингу - Night - 06.03.2021 20:53

(06.03.2021 18:33)Berserker Wrote:  Archer30, could you tell, for what purpose should this behavior be disabled?

Я думаю это одно из двух - либо в игре нужна удобная в плане расположения конфигурация клавиш, чтобы повесить какой-нибудь эффект в игре, либо в игре в оконном режиме ALT+D используется ещё какой-то сторонней программой, а игра их перехватывает.

У меня так Hypersnap перехватывается игрой, когда хочу скриншот сделать, не Героями, а другой игрой, да и кнопки переназначил в проге, но это повезло, что есть возможность. В ином случае и не бывает возможности сменить горячие клавиши.
Это всё на первый поверхностный взгляд, как пример, что сразу из личного пришло.


RE: Вопросы по моддингу - Raistlin - 07.03.2021 00:24

Привет, подскажите пожалуйста, как отрисовать рcx с прозрачностью? По идее, это надо делать функцией 0x44DF80, но у меня почему-то не получается... В качестве цвета прозрачности я передаю 0x00FFFF.


RE: Вопросы по моддингу - Archer30 - 07.03.2021 07:32

(06.03.2021 18:33)Berserker Wrote:  Archer30, could you tell, for what purpose should this behavior be disabled?
No, currently it's not possible to block any ALT + KEY combination.

Berserker, Alt+D is supposed to be my hotkey for "All defend". Comparing with three modifiers, Ctrl/Shift/Alt, Alt turns out to be the most comfortable key to use. The only drawback is that it triggers certain window features in window mode


RE: Вопросы по моддингу - RoseKavalier - 07.03.2021 09:47

0x44DF80 has a boolean condition to treat the first color as transparent (ignore it), it does not allow custom transparency.

Menu shortcuts can be disabled by 'hiding' the ampersand (&) in the resources section of the executable.
Image: pXxCeMM.png


RE: Вопросы по моддингу - Raistlin - 07.03.2021 14:07

RoseKavalier, thank you! Do you know where I can find an example of displaying a pcx with transparency outside of all dialogs? Maybe it is possible to build a def right in the code with only one frame that can be drawn with transparency?


RE: Вопросы по моддингу - Night - 07.03.2021 16:26

RoseKavalier, Checked, works.132
Btw, the operand had to score with zero to the address a little excellent than shown in the screenshot, but these are little things.
Image: 1q4TEEb.png
Image: 4EGGY4k.png

The only, sound system signal, when you press the ALT + [KEY] combination, is a little annoying. In Windows, the sounds can be removed, but is there any other way?

Archer30, If you need to check file, you can use this GoogleDrive


RE: Вопросы по моддингу - Archer30 - 07.03.2021 20:06

Thanks RoseKavalier and Night!

Rumour says the alt key issue would be completely resolved in the next ERA release Spiteful


RE: Вопросы по моддингу - daemon_n - 07.03.2021 20:15

After generous tip, the barkeeper whispers:

The alt key issue would be completely resolved in the next ERA release



RE: Вопросы по моддингу - Berserker - 07.03.2021 20:15

Next release:

Code:
// Disable ALT + KEY menu shortcuts to allow scripts to use ALT for their own needs.
if (Msg = WM_SYSCOMMAND) and (wParam = SC_KEYMENU) then begin
  exit;
end;



RE: Вопросы по моддингу - RoseKavalier - 07.03.2021 22:13

(07.03.2021 14:07)Raistlin Wrote:  RoseKavalier, thank you! Do you know where I can find an example of displaying a pcx with transparency outside of all dialogs? Maybe it is possible to build a def right in the code with only one frame that can be drawn with transparency?

I'm only aware of sprite frames (def) having transparency options, otherwise a new drawing format is needed.


RE: Вопросы по моддингу - Raistlin - 07.03.2021 23:45

Ok, I have understood.


RE: Вопросы по моддингу - PerryR - 11.03.2021 12:46

Hi,

maybe someone knows:
How to disable the native effect of the WoG artifacts:

Magic Wand - !!UN:C7661053/4/255; [disable effects of magic wand]
Gate Key ?
Monster's Power ?
Gold Tower Arrow ?

Ab


RE: Вопросы по моддингу - igrik - 11.03.2021 21:34

PerryR,
Code:
; Gate Key (id 160)
!!UN:C7381428/4/160 C7381572/4/160 C7381619/4/160;

; Monster's Power (id 143)
!!UN:C7736062/4/143;

; Gold Tower Arrow (id 142)
!!UN:C7718799/4/142 C7718828/4/142 C7734120/4/142;



RE: Вопросы по моддингу - Raistlin - 12.03.2021 00:44

Круто, надо бы в тему про UN:C кинуть 132 Я, кстати, тоже искал, но Вы меня опередили...


RE: Вопросы по моддингу - Archer30 - 18.03.2021 22:04

Hi! Looking for help with moving buttons on the battlefiled, like in Knightmare Kingdom
Image: L1Sax0H.jpg

My old bin patch no longer works for the latest HD (but still valid w/o HD). Converted to UN:C, no luck. I wonder why and how I can fix? 102

Edit: Done! ERM worked! I got confused with the orders of values



RE: Вопросы по моддингу - daemon_n - 26.03.2021 03:03

Столкнулся с необходимостью уменьшить размер зоны с текстом.
Если точнее, хочу сократить ширину поля "Имя города" в окне города.
Какой адрес у данного объекта и/или как его найти? Бессмысленно зрю в дебаггер...

Мне надо уменьшить зону нажатия до иконки с золотом, скажем:

Image: unknown.png

UPD: не так важно именно это, так как решил немного иначе, но хотелось бы всё равно узнать, как искать подобные вещи и редактировать под себя


RE: Вопросы по моддингу - StasPV - 28.04.2021 21:12

Как правильно подключить dll к SOD экзешнику?Unsure Через Visual c++ нормально все будет или нужно как-то вручную с нюансами? Что в таком случае случится с адресами? Если можно, то распишите поподробней, или ссылку на статью, если есть.


RE: Вопросы по моддингу - XEPOMAHT - 28.04.2021 23:47

(28.04.2021 21:12)StasPV Wrote:  Как правильно подключить dll к SOD экзешнику?Unsure Через Visual c++ нормально все будет или нужно как-то вручную с нюансами? Что в таком случае случится с адресами? Если можно, то распишите поподробней, или ссылку на статью, если есть.

Самое простое - загружаться как asi библиотекой mss32, входящей в состав игры. А что не так должно быть с адресами?


RE: Вопросы по моддингу - igrik - 28.04.2021 23:54

StasPV, если с HD, то самое простое использовать средства HD.
Если без HD то просто переименуй расширение файла в asi и положи в корень игры.

С адресами нюансов не будет. Они такие же как и для Вог. А если быть точным, то это в Вог адреса такие же как и в Сод. Просто в Соде нет Воговской секции.

Image: image.png


RE: Вопросы по моддингу - XEPOMAHT - 29.04.2021 00:02

(28.04.2021 23:54)igrik Wrote:  А если быть точным, то это в Вог адреса такие же как и в Сод. Просто в Соде нет Воговской секции.

Всё-таки версию exe рекомендуется проверять. В версии 4.0 адреса другие, нежели в 3.2, под которую заточены все моды. На ERA понятно всегда будет 3.2, но для SoD... может попасться и версия 3.0.0.0, которая в своё время активно применялась пиратами, т.к. с пропатченной 3.2.0.0 не было особой необходимости снимать защиту. Бука, насколько помню, вообще дистрибьютировала версией exe 3.1.0.0.


RE: Вопросы по моддингу - StasPV - 29.04.2021 20:31

igrik, XEPOMAHT, спасибо за ответ!

Edit 1: Вот блин, оказывается найти SOD версии 3.2 с NoSD задача непростая, подскажите, где можно такой взять? У меня либо 3.1 либо 3.2 без NoSD либо 4.0.

Edit 2 : Фух, на хотовском екзешнике вариант с asi работает, но все равно хочется содовский. А есть все таки вариант с привязкой длл к екзешнику по аналогии с Вогом или Хотой? Хочу чтоб был экзешник со своим именем и грузил свою длл, независимо от других. И будет ли в таком случае работать ХД мод, если в длл изменения по мелочи?


RE: Вопросы по моддингу - XEPOMAHT - 30.04.2021 00:04

(29.04.2021 20:31)StasPV Wrote:  А есть все таки вариант с привязкой длл к екзешнику по аналогии с Вогом или Хотой? Хочу чтоб был экзешник со своим именем и грузил свою длл, независимо от других.

Можно. Из той же HoA можешь скопировать для SoD:


Code:
00639C00  /$  68 F49B6300     PUSH 00639BF4                                           ; /FileName = "hota.dll"
00639C05  |.  FF15 FCA16300   CALL DWORD PTR DS:[<&KeRNeL32.LoadLibraryA>]            ; \KERNEL32.LoadLibraryA
00639C0B  |.  68 209C6300     PUSH 00639C20                                           ; /Procname = "MainProc"
00639C10  |.  50              PUSH EAX                                                ; |hModule
00639C11  |.  FF15 2CA26300   CALL DWORD PTR DS:[<&KeRNeL32.GetProcAddress>]          ; \KERNEL32.GetProcAddress
00639C17  |.  FFD0            CALL EAX
00639C19  \.^ E9 660CFEFF     JMP 0061A884


(29.04.2021 20:31)StasPV Wrote:  И будет ли в таком случае работать ХД мод, если в длл изменения по мелочи?

HD-мод ориентируется по размеру exe. Ничто не мешает создать собственный шаблон загрузки в HD-моде.


RE: Вопросы по моддингу - StasPV - 30.04.2021 13:08

XEPOMAHT, нашел подходящий экзешник СОД-а с NoCD, плагин с расширением asi работает.

Через HEX editor скопировал тот участок что ты указал с экзешника Хоты в Содовский, только начиная с 00239BF4,где объявлена переменная с именем файла. Но в итоге ничего не заработало. Через Олли Дебаггер вроде идентично все в двух экзешниках, а ИДА показывает отличия, вроде как тип переменной отличается, если в Хоте это char, то в том что я правил - dword105 Хотя сделал просто копи-паст. Застрял на этом моменте.

Хотовский exe:
Code:
text:00639BF4 ; CHAR aHota_dll[9]
.text:00639BF4 aHota_dll       db 'hota.dll',0         ; DATA XREF: starto
.text:00639BFD                 align 10h
.text:00639C00
.text:00639C00 ; =============== S U B R O U T I N E =======================================
.text:00639C00
.text:00639C00
.text:00639C00                 public start
.text:00639C00 start           proc near
.text:00639C00                 push    offset aHota_dll ; "hota.dll"
.text:00639C05                 call    ds:LoadLibraryA
.text:00639C0B                 push    offset aMainproc ; "MainProc"
.text:00639C10                 push    eax             ; hModule
.text:00639C11                 call    ds:GetProcAddress
.text:00639C17                 call    eax
.text:00639C19                 jmp     sub_61A884
.text:00639C19 start           endp

Правленый exe:
Code:
text:00639BF4 dword_639BF4    dd 61746F68h, 6C6C642Eh, 0 ; DATA XREF: .text:00639C00o
.text:00639C00 ; ---------------------------------------------------------------------------
.text:00639C00                 push    offset dword_639BF4
.text:00639C05                 call    ds:LoadLibraryA
.text:00639C0B                 push    offset aMainproc ; "MainProc"
.text:00639C10                 push    eax
.text:00639C11                 call    ds:GetProcAddress
.text:00639C17                 call    eax
.text:00639C19                 jmp     start



RE: Вопросы по моддингу - Archer30 - 31.05.2021 20:28

Hi! I wonder if there is a way to remove an item from WoG Options menu without editing zsetup01.txt. something like .ers, but I have no idea how .ers could achieve that


RE: Вопросы по моддингу - Berserker - 31.05.2021 20:41

Archer30, removing is not possible currently. Replacing the whole menu can be done by json. See Mods\WoG\Lang\*.json example for wog native dialogs.


RE: Вопросы по моддингу - Archer30 - 31.05.2021 23:02

Hmm, thanks Berserker. Looks like some improvements are needed 96-copy

You know some "big" mods like ACM/TUM disable some of the options as those interfere with the gameplay more than the mod author expected. It could be good if options can be hidden so players don't get confused.

I'm getting daily questions of "Why Enhanced Artifact doesn't work in TUM" ))))


RE: Вопросы по моддингу - Berserker - 31.05.2021 23:31

It's normal. Just add to FAQ, that TUM and ACM and WoG Campaigns and what so ever can disable options in runtime.


RE: Вопросы по моддингу - V_Maiko - 07.06.2021 21:51

I've been wondering, how is this button used, and how can it be modified? Possibly I will use it in the future. Rolleyes

Image: Screenshot-1.png


RE: Вопросы по моддингу - V_Maiko - 08.06.2021 04:11

No one has answered my question, well I guess it's nothing important for now and I'll find out later Sorry


RE: Вопросы по моддингу - Berserker - 08.06.2021 10:31

This is daemon_n's button and dialog. Ask him in discord.


RE: Вопросы по моддингу - Panda - 08.06.2021 11:30

Бедный Димон, покоя ему не дадут, уже его мод угнать хотят... 3614896-copy


RE: Вопросы по моддингу - Berserker - 08.06.2021 12:52

Panda, он его делал как конструктор, чтобы другие пользователи могли свои кнопки во всплывающий диалог добавлять.


RE: Вопросы по моддингу - Elmore - 08.06.2021 13:22

V_Maiko, Inside the GEM mod, there should be a description of how to add buttons. Apparently he forgot to add it.


RE: Вопросы по моддингу - Archer30 - 13.06.2021 15:08

Hi! Is it possible to prevent a hero from losing a battle after losing all his armies and commander?

The plan is to count henchman as part of the army Rolleyes When henchman is alive, the hero should win the battle, not losing


RE: Вопросы по моддингу - Berserker - 13.06.2021 17:36

Archer30, BM:O controls, to which hero slot stack belongs. -1 means summoned.


RE: Вопросы по моддингу - Raistlin - 15.06.2021 00:53

Подскажите, пожалуйста, как можно порвать связи между зданиями? Орды существ, например, перекрывают собой жилища - как можно это отключить?


RE: Вопросы по моддингу - XEPOMAHT - 15.06.2021 01:20

(15.06.2021 00:53)Raistlin Wrote:  Подскажите, пожалуйста, как можно порвать связи между зданиями? Орды существ, например, перекрывают собой жилища - как можно это отключить?

Сложно, т.к. это часть движка игры, я с этим связываться не стал. Слоты зданий, дающие прирост, автоматически заменят здания, прирост которых они увеличивают. Одновременный рендер смогли сделать только в HoA там, где они добавили Урну в Сопряжение, скорее всего там весь код рендера экрана города заменён полностью. На ERA такую штуку никто не делал. 105


RE: Вопросы по моддингу - Raistlin - 16.06.2021 04:10

Спасибо за ответ. Попробую тогда поэксперементировать самостоятельно.


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

Орды не отключал, но делал, например, Фонтан Удачи не грейдом пруда.

Во-первых, в коде есть описание, какие здания друг другом заменяются, причем в двух вариантах, один изначальный, а другой - таблички, в которые он пакуется сразу после старта. Ну, в таком же формате, в каком в коде хранятся деревья отстройки. Я правил первый.
Code:
int Obsolutions0[] = {
    BLD_ID_SPEC22,    BLD_ID_TAVERN,    -1, //вот тут мы видим, как Братство меча сделано грейдом таверны
    BLD_ID_HORDE1,    BLD_ID_DWELL3,    -1,
    BLD_ID_HORDE1U,    BLD_ID_DWELL3U,    BLD_ID_HORDE1,    -1,
    -100
};


int Obsolutions1[] = {
    //BLD_ID_HORDE1,    BLD_ID_DWELL2,    -1,
    //BLD_ID_HORDE1U,    BLD_ID_DWELL2U,    BLD_ID_HORDE1,    -1,
     BLD_ID_HORDE2,    BLD_ID_DWELL1,    -1,
     BLD_ID_HORDE2U,    BLD_ID_DWELL1U,    BLD_ID_HORDE2,    -1,
    //BLD_ID_SPEC21,    BLD_ID_SPEC17,    -1, //а вот тут мы пидорнули Фонтан
    -100
};


int Obsolutions2[] = {
    BLD_ID_HORDE1,    BLD_ID_DWELL1,    -1,
    BLD_ID_HORDE1U,    BLD_ID_DWELL1U,    BLD_ID_HORDE1,    -1,
    -100
};


int Obsolutions3[] = {
    BLD_ID_HORDE1,    BLD_ID_DWELL1,    -1,
    BLD_ID_HORDE1U,    BLD_ID_DWELL1U,    BLD_ID_HORDE1,    -1,
    BLD_ID_HORDE2,    BLD_ID_DWELL3,    -1,
    BLD_ID_HORDE2U,    BLD_ID_DWELL3U,    BLD_ID_HORDE2,    -1,
    -100
};


int Obsolutions4[] = {
    BLD_ID_HORDE1,    BLD_ID_DWELL1,    -1,
    BLD_ID_HORDE1U,    BLD_ID_DWELL1U,    BLD_ID_HORDE1,    -1,
    -100
};


int Obsolutions5[] = {
    BLD_ID_HORDE1,    BLD_ID_DWELL1,    -1,
    BLD_ID_HORDE1U,    BLD_ID_DWELL1U,    BLD_ID_HORDE1,    -1,
    -100
};


int Obsolutions6[] = {
    BLD_ID_HORDE1,    BLD_ID_DWELL1,    -1,
    BLD_ID_HORDE1U,    BLD_ID_DWELL1U,    BLD_ID_HORDE1,    -1,
    -100
};


int Obsolutions7[] = {
    BLD_ID_HORDE1,    BLD_ID_DWELL1,    -1,
    BLD_ID_HORDE1U,    BLD_ID_DWELL1U,    BLD_ID_HORDE1,    -1,
    -100
};


int Obsolutions8[] = {
    BLD_ID_HORDE1,    BLD_ID_DWELL1,    -1,
    BLD_ID_HORDE1U,    BLD_ID_DWELL1U,    BLD_ID_HORDE1,    -1,
    -100
};


BOOL APIENTRY DllMain( HMODULE hModule,
                       DWORD  ul_reason_for_call,
                       LPVOID lpReserved
                     )
{
    if (ul_reason_for_call == DLL_PROCESS_ATTACH)
    {
        ....

        //кажется, эти таблицы требуются едва ли не сразу, пусть правки будут здесь

        *(int*)0x004EBAC9 = (int)ObsolutionsAll;
        *(int*)0x004EBB04 = (int)ObsolutionsAll;
        *(int*)0x004EBB3F = (int)ObsolutionsAll;
        *(int*)0x004EBB7A = (int)ObsolutionsAll;
        *(int*)0x004EBC74 = (int)ObsolutionsAll;

        *(int*)0x004EBAD8 = (int)Obsolutions0;
        *(int*)0x004EBB13 = (int)Obsolutions1;
        *(int*)0x004EBB89 = (int)Obsolutions2;
        *(int*)0x004EBB4E = (int)Obsolutions3;
        *(int*)0x004EBB98 = (int)Obsolutions4;
        *(int*)0x004EBBA7 = (int)Obsolutions5;
        *(int*)0x004EBBB6 = (int)Obsolutions6;
        *(int*)0x004EBBC5 = (int)Obsolutions7;
        *(int*)0x004EBBD4 = (int)Obsolutions8;

         ...
    }
    return TRUE;
}

А во-вторых, есть всякие побочные эффекты типа подсказок по ПКМ
Code:
*(char*)0x461171 = 0x11; //фонтан удачи - не грейд пруда в экране холла ????
*(char*)0x5D2F5E = 0x55; //фонтан удачи - не грейд холла в хинтах



RE: Вопросы по моддингу - XEPOMAHT - 21.06.2021 17:53

(21.06.2021 17:23)feanor Wrote:  Во-первых, в коде есть описание, какие здания друг другом заменяются, причем в двух вариантах, один изначальный, а другой - таблички, в которые он пакуется сразу после старта. Ну, в таком же формате, в каком в коде хранятся деревья отстройки. Я правил первый.

А я первый не трогал вообще, т.к. там ничего сверхнужного особо и нет: оно там собирается на старте, но в игровом процессе наличие этих таблиц совсем не обязательно. Для добавления новых городов проще и удобнее всего использовать второй вариант: например Тифон в AfterWoG-е подменяет адресацию уже готовых загруженных содовских таблиц городов на собственные готовые таблицы, при этом что там грузиться из самого СоДа - уже совершенно наплевать: с Тифоном эти данные только грузятся, занимая содовскую память впустую. 148 Поэтому моды и скрипты, которые что-либо меняют в этих таблицах, всегда будут несовместимы. 148


RE: Вопросы по моддингу - Raistlin - 21.06.2021 18:53

XEPOMAHT, таблица, которую предложил feanor, оказалась именно тем, чем нужно - здания на экране работают одновременно. Единственное, при постройке орды жилище все-таки разрушается, но его можно вернуть вручную 96-copy Впрочем, я все же попробую найти более цивилизованный путь.


RE: Вопросы по моддингу - Archer30 - 23.07.2021 08:36

Hello, here I come again! Is there a way to unlock the 5th misc slot for RoE campaign?


RE: Вопросы по моддингу - Grossmaster - 23.07.2021 08:54

Archer30, Как вариант - перегнать все экспортированные карты кампаний в формат SoD/WoG.


RE: Вопросы по моддингу - Archer30 - 23.07.2021 08:59

Grossmaster, thanks. That's the last thing I want to try Rolleyes


RE: Вопросы по моддингу - Archer30 - 23.07.2021 09:25

Well, looks like it can be resolved by changing the type of map (credit: Hawaiing)
Not sure if there is any side effect though.


RE: Вопросы по моддингу - Berserker - 23.07.2021 15:55

Nice solution. Maybe maps conversion should be done one day too.


RE: Вопросы по моддингу - daemon_n - 23.07.2021 17:27

Archer30, probably assembling of the artifacts, which was unavailable before, and key tents/guards mechanics changed. Just supposed


RE: Вопросы по моддингу - Archer30 - 23.07.2021 18:17

daemon_n, when you play RoE/AB campaigns, the type of map (the value of y11) is 0 and 1 .
But when you play the same campaign from custom campaign/maps, the type is changed to 2, and you get access to the 5th misc slot/combi arts.

For this behaviour, I believe it's quite safe to change the value to unlock everything


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

Archer30, and then you get all i described above.


RE: Вопросы по моддингу - Archer30 - 24.07.2021 00:19

daemon_n, those all supposed to be bonus, nothing to do with side effect in my dictionary 102


RE: Вопросы по моддингу - SergOz - 25.07.2021 16:14

Хочу чтобы меч брался в обе руки.
Из хелпа !!UN:A#/2/16671 Любая рука - не работает: ставиться в слот левого кольца.
В текстовике artraits.txt ставлю крестики на обе руки - не помогает.
А так хочется крошить врагов в капусту двумя руками Budo


RE: Вопросы по моддингу - Bes - 25.07.2021 17:03

SergOz, в справке опечатка
16771 - любая рука


RE: Вопросы по моддингу - SergOz - 25.07.2021 17:28

Bes, спасибо. А то уже начал писать скрипт... Mail1
А это значение - это биты, или магическое число полученное при помощи философского камня?


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

Магическое число.
Точнее как, значение в UN:A - это индекс таблицы, в которой лежит обычная битовая маска. Изначально таблица предполагает фиксированный набор значений, но никто не мешает выйти за её пределы, и подобрать другое значение из совершенно не относящейся к ней области данных, которое, тем не менее, будет иметь похожий на требуемое набор битов.


RE: Вопросы по моддингу - SergOz - 25.07.2021 17:42

(25.07.2021 17:36)feanor Wrote:  никто не мешает выйти за её пределы, и подобрать другое значение из совершенно не относящейся к ней области данных, которое, тем не менее, будет иметь похожий на требуемое набор битов.
36


RE: Вопросы по моддингу - Bes - 25.07.2021 18:47

вообще, хорошо бы в справке иметь больше таких комбинированных комбинаций, типа "любая рука или кольцо" или "любая голова или плечи" 96-copy но не вижу в них смысла.
Эти "магические" числа легко узнать, просто в текстовике ставить крестики для конкретного арта, и уже в игре через !!UN:A#/2/?(getMask:y) смотреть эти значения... но мне лень.


RE: Вопросы по моддингу - SergOz - 25.07.2021 19:22

Bes, вот теперь я понял эту магию. 145
В дополнительных комбинациях тоже не вижу смысла - в Хелпе их достаточно. Только подправить бы опечатку...

P.S. Кстати теперь и в текстовике получилось установить желаемое... Сила магии! (когда её понимаешь)


RE: Вопросы по моддингу - Archer30 - 12.08.2021 15:21

Hi, anywhere I can find the latest stable Emerald plugin for ERA 3?

Tried the one from ERA+, looks like it has dependancy on Typhon Unsure

The download link from Feanor's thread on DF2 is also dead


RE: Вопросы по моддингу - Raistlin - 12.08.2021 19:10

Подскажите пожалуйста, где производится выбор анимации для стека, который бьют? Это группы кадров 3, 4 и 5.


RE: Вопросы по моддингу - Archer30 - 14.08.2021 16:28

A new question from me. Is it true that there is no way to replace an item from WoG Option menu with .ers if the item no. is -1?
Image: Xcd2CpJ.png


RE: Вопросы по моддингу - Berserker - 14.08.2021 19:23

Archer30, seems so.


RE: Вопросы по моддингу - Archer30 - 15.08.2021 16:58

Berserker, got it. I just replaced all -1 items with their actual numbers to make them editable with .ers Yes


RE: Вопросы по моддингу - daemon_n - 23.08.2021 15:56

Вопросы насчёт случайных карт:

1) Как получить номер зоны на карте?
2) Как получить тип зоны на карте?
3) как получить имя используемого шаблона?

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


RE: Вопросы по моддингу - Raistlin - 23.08.2021 18:27

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


RE: Вопросы по моддингу - Archer30 - 23.08.2021 23:05

Is there a way to set part of an object sprite with player colour in ERA?

I'm talking about "general" objects. Mithril Smelter for example, type 63, subtype 27
How to change the colour of the flag/object?

Or mayber I have to use 9 different sprites? Unsure


RE: Вопросы по моддингу - daemon_n - 23.08.2021 23:55

Archer30, is that gif inside?

Mb just use IF:M^defname.def^;?


RE: Вопросы по моддингу - Archer30 - 23.08.2021 23:57

daemon_n, yes but that's not part of the question


RE: Вопросы по моддингу - daemon_n - 24.08.2021 01:03

Archer30, you can't change that't dialogs -- that are wog dialogs window


RE: Вопросы по моддингу - Archer30 - 24.08.2021 01:34

daemon_n, I'm sorry for placing a picture that are misleading, I will change now. My question is about the player's flag of the object


RE: Вопросы по моддингу - daemon_n - 24.08.2021 02:22

Archer30, just set key color in def


RE: Вопросы по моддингу - XEPOMAHT - 24.08.2021 02:30

(24.08.2021 01:34)Archer30 Wrote:  My question is about the player's flag of the object

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

А вообще, использовать тип 63 - плохое решение, например, в MoP это давным давно было убрано, все новые объекты там со своими типами/подтипами, а сам тип 63 - только пирамида и ничего более.


RE: Вопросы по моддингу - Archer30 - 26.08.2021 11:52

XEPOMAHT, I don't have the knowledge to create new type/subtye in the game 112

I would try to replace one of the unicorn glade (we've got two unicorn dwellings, subtypes 51, 68 for some reasons...) with your advice, thanks!


RE: Вопросы по моддингу - Archer30 - 30.08.2021 16:35

New question:

Is it safe to divide all the AI values by 15? With this, Peasants will have an AI value of 1 (the original is 15).

I want to do that as occasionally we get AI value overflow.
An AI hero with massive troops (2k Azure Dragon or for example) sometimes freezes the game. In another scenario, if a player's hero has massive troops, AI will attack the player's hero no matter what as the AI value of the hero is negative.

Can all these be fixed by just dividing AI values by a number?


RE: Вопросы по моддингу - Berserker - 30.08.2021 18:50

Archer30, it's a workaround, until you have 30k Azure Dragons. Nice approach!


RE: Вопросы по моддингу - Archer30 - 30.08.2021 23:51

And it works well! Thanks, Berserker. Tested on a dead save and magically revived it.

Rescaled AI values.erm



RE: Вопросы по моддингу - Berserker - 31.08.2021 04:00

Fixed script a bit, if you don't mind )


RE: Вопросы по моддингу - Berserker - 31.08.2021 04:10

Anyway, Fight Value may still overflow in battles and quick battles. Maybe changing FV is an option too.


RE: Вопросы по моддингу - Archer30 - 31.08.2021 05:59

Berserker, thanks! Didn't realise d:15 could work.

I wonder what fv overflow would do? Does that interfere AI behaviours?

A fact is that some scripts rely on fv to work, for example, henchmen - the exp per level is calculated by fv. In this case, it's safer only to change fv after entering battle, and restore upon exiting. But the priority of script changing fv needs to be calculated, maybe just execute at !?BR&v997=0 to avoid compatibility issues with other scripts.

But even with both fight value and ai value problems solved, there is still a chance to have damage overflowed with massive troops. Rolleyes


RE: Вопросы по моддингу - Berserker - 31.08.2021 06:43

In battle FV overflow would lead to non optimal decisions. On adventure map it may fully spoil battle results.


RE: Вопросы по моддингу - Archer30 - 31.08.2021 07:01

Quote:In battle FV overflow would lead to non optimal decisions

Do you mean AI hehaves strangely if FV is negative? But why don't they use AI values now?

I always get confused with fight value and AI value, they are very similar - think I have to do some research.

A question is, how do AI treat henchmen? Do the original av/fv of the creaute still be used? If yes - can something be done to improve AI behaviours?


RE: Вопросы по моддингу - Berserker - 31.08.2021 15:18

Archer30, for battle calculations FV value is used. AI value is used to determine which creatures to buy.


RE: Вопросы по моддингу - Archer30 - 01.09.2021 12:27

Thanks.

A concern is that my method of dividing AI values of monster ignores the AI value of Heroes and Commanders (implemented by igrik's bug fix plugin).
A typical scenario - a high level AI hero with few troops will not hesitate fighting again a large army, as he belive his AI value of the hero himself is much greater than the total value of his enemy. But in reality, that's suicide.
I can do nothing with this case Fie No idea about how to define AI value of hero and commanders.

Guess I will make this new AI value method optional, most likely via wog option


RE: Вопросы по моддингу - XEPOMAHT - 01.09.2021 13:43

(01.09.2021 12:27)Archer30 Wrote:  No idea about how to define AI value of hero and commanders.

Реализация командиров лучше всего выполнена на VCMI. Там в скором времени и стоит ожидать корректного поведения ИИ в зависимости от уровня и навыков командиров.

В ERA в данный момент код на командиров целиком и полностью от WoG, поэтому очень устаревший и не поддерживающий ИИ вообще никак. С AI value там большие проблемы, т.к.:

1. Командир призывается перед боем, т.е. физически в армии героя его нет и ИИ его никогда видеть не будет. Возможно, что тут нужно вносить правки в расчёт ИИ-силы самого героя, а не его армии.

2. У командиров динамический AI value, так же неизвестны формулы его расчёта.

3. Опциональность командиров: например, для ERA+ все работы по опциям будут начаты только после готовности самой игры, а это - очень не скоро. Сама опция командиров требует полной замены кода, т.к. там проще всё полностью переписать в нормальном виде, с поддержкой новых героев и городов, чем пытаться исправить текущий код.


RE: Вопросы по моддингу - daemon_n - 02.09.2021 12:19

XEPOMAHT, Archer30,

Wow, guys - what about this?


RE: Вопросы по моддингу - daemon_n - 18.09.2021 14:40

Как добавить кнопку в окно встречи героев?
На "Heroes" не ругается, но не добавляет

Upd: это HD мод удаляет их...

Upd:Upd: HD mod заменяет оригинальное окно встречи и открывает своё в диалоге Карты ПриключенийMad Что и вызывает несколько багов, что есть уже давно во всех играх через HD mod
В общем, это только к Бараторчу - так сделано во всех H3...


RE: Вопросы по моддингу - Archer30 - 18.09.2021 19:41

Hi, is it possible not to skip First Aid Tent's turn when all the creature of one side have full health point?


RE: Вопросы по моддингу - Bes - 22.09.2021 17:30

никто не занималя вопросом генерации препятствий на поле боя?
можно как-то, скажем так, перегенерировать препятствия при неудачном их расположении?
я б такой reset завязал с плагином переигровки, как по мне


RE: Вопросы по моддингу - PerryR - 22.09.2021 17:46

(18.09.2021 19:41)Archer30 Wrote:  Hi, is it possible not to skip First Aid Tent's turn when all the creature of one side have full health point?

Reduce the health point of one stack by 1.


RE: Вопросы по моддингу - Archer30 - 22.09.2021 18:59

(22.09.2021 17:46)PerryR Wrote:  Reduce the health point of one stack by 1.

I thought about the same. Although in the end, I decided to transform First Aid into one creature from unused


RE: Вопросы по моддингу - XEPOMAHT - 22.09.2021 19:59

(22.09.2021 17:30)Bes Wrote:  можно как-то, скажем так, перегенерировать препятствия при неудачном их расположении?

На ERM такое вполне сделать можно сделать:

1. Очистить поле боя
2. Рамдомно выбрать и разместить майнинговое препятствие для выбранного типа почвы или накладного ландшафта (или не разместить, т.к. может выпасть "бой в чисто поле")
3. Рамдомно разместить 1 или несколько мелких препятствий для выбранного типа почвы или накладного ландшафта (или не размещать, т.к. так же может выпасть "бой в чисто поле")


RE: Вопросы по моддингу - Bes - 22.09.2021 20:29

XEPOMAHT, потому и спросил тут, надеясь на более глубокое решение в виде активации встроенного механизма заполнения поля боя

вдруг, кто находил когда


RE: Вопросы по моддингу - igrik - 22.09.2021 20:49

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


RE: Вопросы по моддингу - Berserker - 23.09.2021 01:04

Вот-вот, при чём картоделы за такое поведение грызутся. Оно важно. Помнится, я подменял генератор и каждый раз новые препятствия были.


RE: Вопросы по моддингу - SergOz - 23.09.2021 02:54

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


RE: Вопросы по моддингу - Bes - 23.09.2021 06:02

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


RE: Вопросы по моддингу - Berserker - 23.09.2021 10:28

Попросил бы Берса. Он бы тебе подшаманил ехе 148


RE: Вопросы по моддингу - Bes - 24.09.2021 16:25

спасибо, что подшаманил 132
правда вылезло и другое - предлагаемые навыки после боя при подъёме уроня также стали меняться рандомно после повтора боя Ab пока не знаю, как к этому относиться 102


RE: Вопросы по моддингу - Berserker - 24.09.2021 18:04

Как тестеру — положительно.


RE: Вопросы по моддингу - Archer30 - 25.09.2021 16:02

A question of the animation of arrow tower.
So I tried to change the guards in arrow tower by UN:C, and I immediately notice an imperfection of the change.

Looks like arrow towers has a fixed range of refreshing area. Some creatures with large sprite will display incorrectly.
As you can see in the picture - The hands of the Zealot from top arrow tower are cut.
Is it possible to fix this problem?


RE: Вопросы по моддингу - daemon_n - 25.09.2021 17:27

Archer30, try increase its height (gem_DlgItemSize);


RE: Вопросы по моддингу - Archer30 - 25.09.2021 17:42

daemon_n, thanks, but looks like if I increase the height, he doesn't look as good as he is right now when he's not shooting. 102


RE: Вопросы по моддингу - Raistlin - 02.10.2021 10:53

Как можно получить структуру объекта в позиции? Функция 0x4086D0 стабильно возвращает мусор, что бы я ей не передавал. Координаты клика, фиксированные координаты - все одно и то же.


RE: Вопросы по моддингу - daemon_n - 02.10.2021 11:20

Raistlin, что за объект конкретно интересует?


RE: Вопросы по моддингу - Raistlin - 02.10.2021 11:37

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

ExecErmCmd("CM:P?y1/?y2/?y3");
//Debug(CALL_4(int, __thiscall, 0x4086D0, o_GameMgr, 1, 1, 0)); //Мусор
//Debug(CALL_4(int, __thiscall, 0x4086D0, o_GameMgr, 2, 1, 0));
ExecErmCmd("UN:C6918840/4/?y4");
ExecErmCmd("VRy4:+92");
ExecErmCmd("UN:Cy4/4/?y5");
ExecErmCmd("SN:E4228816/2/y5/x1/x2/x3");

Впервые я с этим столкнулся, занимаясь Колизеем магов. Сейчас по факту проблема решена, но если кто-то знает причину ее возникновения, прошу поделиться.


RE: Вопросы по моддингу - XEPOMAHT - 02.10.2021 19:23

(02.10.2021 11:37)Raistlin Wrote:  Просто структура MapItem по координатам (в моем случае это координаты клика для удобства тестирования). Походу у меня опять сходит с ума компилятор или может быть дело в патчере - точно не скажу, но при использовании ERM возвращается нормальный указатель:

ExecErmCmd("CM:P?y1/?y2/?y3");
//Debug(CALL_4(int, __thiscall, 0x4086D0, o_GameMgr, 1, 1, 0)); //Мусор
//Debug(CALL_4(int, __thiscall, 0x4086D0, o_GameMgr, 2, 1, 0));
ExecErmCmd("UN:C6918840/4/?y4");
ExecErmCmd("VRy4:+92");
ExecErmCmd("UN:Cy4/4/?y5");
ExecErmCmd("SN:E4228816/2/y5/x1/x2/x3");

Впервые я с этим столкнулся, занимаясь Колизеем магов. Сейчас по факту проблема решена, но если кто-то знает причину ее возникновения, прошу поделиться.

Вызов 4086D0h использует пакованные координаты. CM:P?y1/?y2/?y3 выдаст обычные. В MoP например используется переходник, который сам пакует координаты и сразу вызывает 4086D0h.

Второе: CM:P?y1/?y2/?y3 со 100% точностью не выдаст "желтый квадрат" объекта. Получение структуру объекта из CM:P?y1/?y2/?y3 - не очень удачное решение (там кучи проверок, т.к. желтый квадрат могут перекрывать другие жёлтые квадраты).


RE: Вопросы по моддингу - Raistlin - 02.10.2021 20:20

Quote:Вызов 4086D0h использует пакованные координаты. CM:P?y1/?y2/?y3 выдаст обычные. В MoP например используется переходник, который сам пакует координаты и сразу вызывает 4086D0h.
Большое спасибо, этого я не знал.

Quote:Второе: CM:P?y1/?y2/?y3 со 100% точностью не выдаст "желтый квадрат" объекта. Получение структуру объекта из CM:P?y1/?y2/?y3 - не очень удачное решение (там кучи проверок, т.к. желтый квадрат могут перекрывать другие жёлтые квадраты).
Код этот временный, в релиз не пойдёт. Он нужен был только для удобства тестирования, но за советы, разумеется, спасибо 132


RE: Вопросы по моддингу - Raistlin - 29.10.2021 18:19

Уже второй раз сталкиваюсь со странной фигнёй - у меня есть лесенка if-else, заданное условие не выполняется, но код срабатывает! Почему такое происходит? Может быть, это какие-то оптимизации компилятора?

Чтобы удостовериться в том, что нет никакой ошибки, я выводил флаг условия на экран - результат был "0", но блок if все равно выполнялся.


RE: Вопросы по моддингу - SergOz - 29.10.2021 22:33

Raistlin, так ты бы эту лесенку показал - можно было бы на других компах протестить.
У меня бывало такое пару раз, но всегда оказывалось, что где-то не поставил точечкуLupa


RE: Вопросы по моддингу - Raistlin - 29.10.2021 23:17

Без проблем, спасибо за совет! Суть кода заключается в том, чтобы давать Минотаврам блок вне зависимости от системы опыта, но только если урон наносится физический. Работает все, кроме проверки на урон.


UPD. Мистика, да и только! Я поменял кое-какой код, не связанный с этой особенностью, и плагин, очевидно, перестроился - бага больше нет.


RE: Вопросы по моддингу - Archer30 - 02.11.2021 06:32

Hi! I happen to recruit a graphics designer from the Chinese community to join ERA modding, and his first question is already tough enough...

The question: Is it possible to extend the Hero Screen (with whatever way)?
(here we use Sandris's graphcis as an example)

The idea is to include an extra panel for showing more info of the hero (most likely for big portraits, no interaction needed). As I understand, this cannnot be done with DL. When DL dialogues are opened, no interaction is allowed to the original hero screen.

What do you guys think about it? Rolleyes


RE: Вопросы по моддингу - XEPOMAHT - 02.11.2021 07:14

(02.11.2021 06:32)Archer30 Wrote:  The question: Is it possible to extend the Hero Screen (with whatever way)?
(here we use Sandris's graphcis as an example)

Сделать можно, только какой в этом смысл? Всё необходимое для игрока уже есть в окне героя. А ради дополнительных портретов и каких-то иных свистелок и перделок - уже лишняя информация для игрока, которая быстро надоест. Stop


RE: Вопросы по моддингу - Archer30 - 02.11.2021 10:55

XEPOMAHT, well, the actual plan is to completely remake the whole hero screen (reallocating all elements) and extend the resolution of it for more than 800*600. It could be good - many players complain about the hero screen becoming too small (coz the resolution is 800*600) after setting large resolution in HoMM 3 HD.


RE: Вопросы по моддингу - XEPOMAHT - 02.11.2021 11:14

(02.11.2021 10:55)Archer30 Wrote:  well, the actual plan is to completely remake the whole hero screen (reallocating all elements) and extend the resolution of it for more than 800*600. It could be good - many players complain about the hero screen becoming too small (coz the resolution is 800*600) after setting large resolution in HoMM 3 HD.

1. В том же HD-моде (в твиках вроде б) есть опции масштабирования экрана битвы, чтобы оно не выглядело маленьким на высоких разрешениях. Наверное, с окном героя тоже можно сделать масштабирование (стоит написать об этом Бараторчу).
2. От изменения элементов окна героев могут возникнуть несовместимости с тем же HD-модом и плагинами, меняющими окно героя (например, с модом на 10 вторичных навыков в нём и т.д... не говоря уже о ERA+, которое так же подставляет свои данные в окно героя взамен стандартных... 148 ).

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


RE: Вопросы по моддингу - igrik - 02.11.2021 12:44

(02.11.2021 11:14)XEPOMAHT Wrote:  1. В том же HD-моде (в твиках вроде б) есть опции масштабирования экрана битвы, чтобы оно не выглядело маленьким на высоких разрешениях. Наверное, с окном героя тоже можно сделать масштабирование (стоит написать об этом Бараторчу).
Не нужно ничего писать Бараторчу!

Нужно научиться правильно пользоваться стретч фильтрами и разрешение в HD лаунчере ставить в районе 1160х664 или 1260х720.

Уже в стопицотый раз об этом говорю. А тех, кто играет в полном разрешении экрана мне искренне жаль, точнее их глаза...


RE: Вопросы по моддингу - Archer30 - 02.11.2021 16:01

Thanks for the ideas!

I am personally satisfied with 1180*664 and don't think it should go any higher (otherwise there would be a small space at the bottom right), but people have their own opinions. 105

Quote:В общем, без особых жертв возможно только с помощью DL что-то дополнительное отображать слева или справа окна героя, примерно как в Феникс-моде.

DL is the way I guess. From my chat with the guy, he clearly wants to make a complete overhaul to all the Heroes 3 interfaces...Let's see what he would bring us. )


RE: Вопросы по моддингу - Berserker - 03.11.2021 17:23

Archer30, contact Sandris, hei's already making great mod with large heroes portraits in Hero Screen.


RE: Вопросы по моддингу - Raistlin - 03.11.2021 21:13

Подскажите пожалуйста, почему следующий байт-код не работает?

Code:
    // Новые иммунитеты к магии
    Magic->WriteLoHook(0x44A5AC, (void*)MagicImmunities);

    // Убираем воговские проверки ради повышения производительности
    Magic->WriteWord(0x71DEFE, 0xC033); // XOR EAX, EAX вместо вызова функции
    Magic->WriteByte(0x71DECB, 0x32); // Правим адрес для прыжка
    Magic->WriteCodePatch(0x71DEEA, (char*)"%n", 20); // 20 nop - затираем то, что осталось

    Magic->WriteWord(0x75C41D, 0xC033); // XOR EAX, EAX вместо вызова функции
    Magic->WriteByte(0x75C3F4, 0x28); // Правим адрес для прыжка
    Magic->WriteCodePatch(0x75C40E, (char*)"%n", 15); // 15 nop - затираем то, что осталось
    
    Magic->WriteWord(0x75DA58, 0xC033); // XOR EAX, EAX вместо вызова функции
    Magic->WriteByte(0x75D9EC, 0x6B); // Правим адрес для прыжка
    Magic->WriteCodePatch(0x75DA3C, (char*)"%n", 28); // 28 nop - затираем то, что осталось



RE: Вопросы по моддингу - Ethereal - 10.11.2021 06:28

(10.01.2019 13:56)Ethereal Wrote:     можно что то сделать, что бы штурм гарнизонов проходил как штурм замка, со всеми всеми оборонительными причиндалами? Запихать героев в гарнизоны, как в четвёрке, невозможно, так пусть хоть какое то преимущество будет у обороняющийся стороны, да и Баллистика с Землетрясением полезней станет. Такое возможно реализовать?

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


RE: Вопросы по моддингу - XEPOMAHT - 10.11.2021 07:25

(10.11.2021 06:28)Ethereal Wrote:  
(10.01.2019 13:56)Ethereal Wrote:     можно что то сделать, что бы штурм гарнизонов проходил как штурм замка, со всеми всеми оборонительными причиндалами? Запихать героев в гарнизоны, как в четвёрке, невозможно, так пусть хоть какое то преимущество будет у обороняющийся стороны, да и Баллистика с Землетрясением полезней станет. Такое возможно реализовать?

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

Если внимательно прочитать хелп, то это...




RE: Вопросы по моддингу - Ethereal - 10.11.2021 09:30

(10.11.2021 07:25)XEPOMAHT Wrote:  В рамках проекта ERA+ данная команда тоже будет поддерживать установку стен на поле боя, но только в рамках ERA+

Мдя. ERA+ без всякого ДП у меня как-то криво встала, поверх Полного Собрания... но это уже мои проблемы. Как нибудь воткну. Но переносить свой пользовательский винегрет на ERA+ я вряд ли рискну.


[help] UI modification - imswear - 25.11.2021 18:48

OK~

   Another request is to disable the shadow of the dialogue.
(all dialogue have similar shadows)
Because I want flat design style
In the figure below, I highlight this shadow to make it easier for you to understand my question.





---------------------перевод Google --------------------------------
 мне также нужно удалить проекцию этого объекта. 

 (все врезки имеют схожую тень) 

 Потому что я хочу flat design style 

 на следующем рисунке я вывешу эту тень, чтобы вы могли лучше понять мои вопросы. 





RE: [help] UI modification - XEPOMAHT - 25.11.2021 19:43

Без исходных кодов к HD-моду даже не пытайтесь.


RE: [help] UI modification - Berserker - 25.11.2021 20:33

To disable all dialogs shadow drawing patch should be applied after HD mod is loaded:
Image: image.png

Result:
Image: image.png

The 8 pixels offset with remain.


RE: [help] UI modification - imswear - 25.11.2021 22:27

succeed! The shadow was indeed deleted. Thank you.

I use ERM:



However, there is a new problem, that is, any operation on the dialogue will cause the game to exit.

(including mouse click or keyboard press)

What's wrong?


Or do you mean to use assembly language to modify h3era hd.exe directly?
I can't find this line of code in h3era hd.exe.



RE: [help] UI modification - Berserker - 26.11.2021 00:08

I see no crashes and no issues.



RE: [help] UI modification - imswear - 26.11.2021 10:19

OK, it works

Thank you


RE: [help] UI modification - Archer30 - 26.11.2021 10:32

Berserker, UN:C doesn't convert 2416967874 (overflowed) to -1879043902 automatically, right? I had the same crash with 2416967874


RE: Вопросы по моддингу - planetavril - 26.11.2021 13:58

do you know if the obstacles of the grass battlefield can be added and replaced?


RE: [help] UI modification - Berserker - 26.11.2021 18:27

Archer30, right. Valid numbers for ERM are -2^31 .. 2^31 - 1.


RE: Вопросы по моддингу - Bes - 27.11.2021 17:00

planetavril, yes, you can add new obstacles to the battlefield by ERM
see receiver !!BF:O


RE: Вопросы по моддингу - XEPOMAHT - 27.11.2021 17:33

(26.11.2021 13:58)planetavril Wrote:  do you know if the obstacles of the grass battlefield can be added and replaced?

Количество обоих типов препятствий было увеличено в ERA+. 1 тип - до 42, 2 тип - до 128 (лимит 1 байт, который я менять не стал). Новые препятствия используются для новых добавленных почв: высокогорья и пустоши, а так же всех новых накладных в ERA+.


BIN and DLL - imswear - 12.01.2022 07:47

Will the BIN file work on the DLL, that is, use the BIN file to modify the contents of the DLL.
If so, How to do it?
Thank you.


RE: BIN and DLL - XEPOMAHT - 12.01.2022 08:32

(12.01.2022 07:47)imswear Wrote:  Will the BIN file work on the DLL, that is, use the BIN file to modify the contents of the DLL.
If so, How to do it?

No.


RE: BIN and DLL - Berserker - 12.01.2022 12:55

imswear, dll is loaded at random address, thus fixed memory patch is useless in this case.


RE: mapview stretch/ZOOM - imswear - 14.01.2022 09:01

Keep asking for help, can someone help me find the coordinates of these images?
ITPA.def, hero portrait, scnrstar.def,
and the background bar adop%cpnl.pcx
I want to move their positions. how should i find them ?
grateful.


RE: mapview stretch/ZOOM - daemon_n - 14.01.2022 12:44

imswear, check here 0x580180 - address of the "advanced options" Dlg; (get ID's here)

0x57C799 address of the call "Load ITPA.def",

hope you do use IDA too


RE: mapview stretch/ZOOM - imswear - 14.01.2022 16:26

(14.01.2022 12:44)daemon_n Wrote:  imswear, check here 0x580180 - address of the "advanced options" Dlg; (get ID's here)

0x57C799 address of the call "Load ITPA.def",

hope you do use IDA too

Thank you so much.
I have IDA, but most of the time, I can't read it.
maybe i should ask how to move them.


RE: Ваши вопросы по ERM-скриптам - Raistlin - 02.02.2022 21:57

(01.02.2022 19:37)daemon_n Wrote:  
(01.02.2022 19:19)Sashka40 Wrote:  видел в вог скриптах такое, например если убрать мифрил становились неактивные другие скрипты связанные с мифрилом.

Sashka40, это работает не по id опции, а по номеру элемента в таблице. Возможно, не самая удачная реализация, но другой не имеем.

daemon_n, а ты знаешь, где это настраивается? Я бы тоже хотел так сделать.


RE: Ваши вопросы по ERM-скриптам - daemon_n - 02.02.2022 22:15

Raistlin, это просто порядок файлов в zsetup00.txt;


RE: Ваши вопросы по ERM-скриптам - Raistlin - 02.02.2022 22:21

Спасибо, я этого не знал)


RE: Ваши вопросы по ERM-скриптам - wessonsm - 03.02.2022 10:02

(02.02.2022 21:57)Raistlin Wrote:  daemon_n, а ты знаешь, где это настраивается? Я бы тоже хотел так сделать.

(02.02.2022 22:15)daemon_n Wrote:  это просто порядок файлов в zsetup00.txt

Я думал, эти зависимости захардкодены в воговском экзешнике.
Или это не так?
Тоже хотел бы узнать, где (по каким адресам) их можно изменить.
Или если не изменить, то хотя бы убрать вообще.


RE: Ваши вопросы по ERM-скриптам - daemon_n - 03.02.2022 11:25

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


RE: Ваши вопросы по ERM-скриптам - Raistlin - 03.02.2022 11:39

Думаю, зависимости можно найти через поиск по константам (есть в OllyDBG). Надо посмотреть, каким номерам строк они соответствуют в текстовом файле, а потом поискать эти номера.


RE: Ваши вопросы по ERM-скриптам - daemon_n - 03.02.2022 11:55

Raistlin, зачем? ещё раз говорю, номера опций не влияют ни на что.


RE: Ваши вопросы по ERM-скриптам - wessonsm - 03.02.2022 12:19

Raistlin, в воговских исходниках нашел функцию с этими зависимостями, может это поможет. Но я по прежнему не представляю как их в exe найти:
Это в wogsetup.cpp если что.


RE: Ваши вопросы по ERM-скриптам - Raistlin - 03.02.2022 14:18

daemon_n, я имел ввиду не номера опций, а номера номеров в таблице. Сейчас, впрочем, уже не важно, так как адрес найден.


RE: Ваши вопросы по ERM-скриптам - daemon_n - 03.02.2022 14:32

Raistlin, номера номеров в таблице можно получить покликав вручную)


RE: Ваши вопросы по ERM-скриптам - wessonsm - 03.02.2022 15:04

Raistlin, какой адрес, если не секрет?


RE: Ваши вопросы по ERM-скриптам - Raistlin - 03.02.2022 15:07

daemon_n, не важно, откуда номер) Главное - что это константа, по которой можно искать. Хотя, судя по функции, в данном случае это бы не помогло.

wessonsm, его в твоё сообщение дописали.


RE: Ваши вопросы по ERM-скриптам - wessonsm - 03.02.2022 15:14

Увидел, спасибо!


RE: Ваши вопросы по ERM-скриптам - wessonsm - 28.02.2022 11:45

(27.02.2022 23:11)XEPOMAHT Wrote:  Настройка ключевых слов - целиком на совести скриптёра, т.к. вог по-умолчанию всегда пишет туда 0.

XEPOMAHT, верно ли, что контрольные слова для каждого объекта пишутся в какую-то структуру в памяти или выделенную область памяти?
И не может ли случиться так, что выделенной области не хватит?


RE: Ваши вопросы по ERM-скриптам - XEPOMAHT - 28.02.2022 12:30

(28.02.2022 11:45)wessonsm Wrote:  верно ли, что контрольные слова для каждого объекта пишутся в какую-то структуру в памяти или выделенную область памяти?

Контрольное слово пишется в структуру клетки карты, память на которую выделяется исходя из размеров карты.

(28.02.2022 11:45)wessonsm Wrote:  И не может ли случиться так, что выделенной области не хватит?

Лимит контрольного слова - 32 бита памяти. Но там новые данные лучше не хранить, т.к. места там и так кот наплакал. SoD и так сжимает данные для доброй половины объектов, чтобы они туда вошли, а всё что не входит - записывается и храниться в дополнительных структурах, привязанных к индексам объектов на карте. Для новых объектов карты, естественно, могут быть новые форматы контрольных слов (например, в ERA+ данные новых объектов карт без проблем хранятся в контрольных словах и обрабатываются Тифоном). Для воговских объектов так же выделяется соответствующая память, но... она привязана к максимальному размеру карт, в итоге, тонна неиспользованных нулей пишется в сохранения (а Берсеркер пишет в сохранения ЕЩЁ БОЛЬШЕ нулей для совместимости с XXXL-картами), но особо конечно пользователь это не замечает, т.к. данные архивируются (но в памяти при загрузке сохранения так же будет мегабайты помойки из неиспользованных нулей).


RE: Вопросы по моддингу - wessonsm - 28.02.2022 13:21

XEPOMAHT, спасибо за подробное разъяснение!


RE: Вопросы по моддингу - Berserker - 28.02.2022 17:50

XEPOMAHT, да вроде бы давно уже сохраняемые PO-данные под размер карты подстраиваются (но всегда с подземельем).

BasicPoSize := MapSize * MapSize * 2;
SquaresSize := BasicPoSize * sizeof(TSquare);

При старте/загрузке карты происходит пересчёт размера данных PO и соответствующий патчинг.


RE: Вопросы по моддингу - wessonsm - 15.05.2022 21:31

У меня вопрос по заголовочному файлу era.h.
Компилятор (Visual Studio Express 2008) ругается на строку 303:
Code:
std::string tr (const char *key, const std::vector<std::string> params = {}) {
Code:
error C2143: синтаксическая ошибка: отсутствие ")" перед "{"
error C2059: синтаксическая ошибка: )
error C2059: синтаксическая ошибка: )
error C2447: {: отсутствует заголовок функции (возможно, используется формальный список старого типа)

Что здесь может быть не так?
Была еще пара ошибок, но с ними я справился самостоятельно.
Осталась эта. Sorry


RE: Вопросы по моддингу - Berserker - 15.05.2022 22:07

Древний компилятор не понимает то ли C++ 11, то ли 13-ый стандарт, когда можно давать векторам/дин.массивам значения по умолчанию в аргументах и при инициализации. Убери "= {}". Просто при вызове tr (аналог SN:T) нужно будет всегда передавать пустой список параметров, даже если их нет.


RE: Вопросы по моддингу - wessonsm - 15.05.2022 22:20

Спасибо! В таком виде компилируется.
И еще, я правильно понимаю, что в строке 202
"typedef char* (__stdcall *ToStaticStr) (const char* Str);"
- это опечатка и должно быть
"typedef char* (__stdcall *TToStaticStr) (const char* Str);" ?
Просто хочу окончательно развеять сомнения.


RE: Вопросы по моддингу - Berserker - 15.05.2022 22:25

Скорее всего, если остальные типы префиксованы "T"-ой.


RE: Вопросы по моддингу - Evillie - 18.06.2022 00:01

Доброго времени суток!
Я здесь наверное с наиглупейшей миссией, но надеюсь что товарищи из геройского модерского сообщества мне хоть немного подсобят.
Так как Hota Crew очень не любит любых противоправных действий над своим детищем, пишу под страхом быть осмеяным, но выбора особо у меня нет.
Собственно суть проблемы необходимо внести ряд правок в геймплей HotA, хотя тут наверное больше суть модификации чистого SoD.
На данный момент я нашел самые простые вещи, редактирование силы заклинаний через файл SPTRAITS, нашел как в экзешнике можно поменять флаги у монстров для той или иной цели (например дать двойной выстрел, но существ редактировать не вижу смысла, это рушит баланс), и также в экзешнике как сменить стартовые вторичные навыки героев, армию. наличие книги заклинаний и само заклинание (это все в одном месте правится). Возможно нашел как все в том же экзешнике править сами вторичные навыки, но пока что не протестировал. Также знаю что можно добавить артефакты через редактирование hota.dat.
1. Вопрос, возможно ли каким-либо способом в хота изменить специализации героев (уж очень хочется убрать орлоглаз)?
2. Можно ли расширить диапазон удачи и морали с -3..3 до -5..5 (это приведет к тому что специализация на удаче перестанет быть бесполезной)?
3. Возможно ли палатке при экспертном навыке медицины дать возможность воскрешения стеков?
4. К огромному сожалению флаги заклинаний не проставляются в SPTRAITS, возможно ли заклинания сделать массовыми или в области? Главный вопрос касается мин и зыбучих песков, количество располагаемых преград также не настраивается через текстовик. Как их можно отредактировать?
5. Необязательный но интересный вопрос, можно ли каким-то образом сделать копию заклинания молитва, только с обратным эффектом, то есть сразу минус к скорости, защите и атаке (правда судя по всему с реализацией новых заклинаний без платформы МоР все очень грустно)?
6. Скорее всего тоже то что проще реализовать на платформах типа эра (по крайней мере реализовано в Advanced classes mod), но, возможно ли реализовать доп эффекты у заклинаний, типа при экспертной воде, заклинания замедляли бы и т.д. и т.п.?
Как было бы просто будь на платформе эра одновременные ходы.... эхххх...... Advanced Classes mod сделан просто замечательно, как и многие другие моды ><



RE: Вопросы по моддингу - daemon_n - 18.06.2022 00:24

Evillie, для SoD - плагинами и бинарными патчами.
для HotA - ковырянием hota.exe hex-редактором105


RE: Вопросы по моддингу - Raistlin - 18.06.2022 01:38

1. Структура специализации имеет размер в 40 байт (10 dword'ов на каждого героя) и находится в экзешнике в 278420 (если нужен виртуальный адрес, то 678420). Как менять параметры специализации, посмотри справку по ЕРМ HE:X - в случае с патчами там 100% аналогично. Первый dword - тип специализации, у Оррина (первого героя) - это 0 (вторичный навык), следующие 4 байта содержат число 1 (индекс вторичного навыка меткость). Остальные 32 в данном случае не используются.

Структура:
struct _HeroSpecInfo_
{
    _dword_ type;
    _dword_ params[9];
};


2. Я бы не стал в это лезть.
3. Через патчинг - нет.
4. Таблица количества песков: 242224 (виртуальный адрес 642224), таблица количества мин: 242234 (виртуальный адрес 642234). Получается, на каждый спелл 4 dword'а (кол-во в зависимости от уровня навыка (0-3)).
5. К сожалению, грустно. Через простой патчинг точно нельзя.
6. Через патчинг - нет.


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


RE: Вопросы по моддингу - Elmore - 18.06.2022 02:18

Новые заклинания в SoD (hd mod) и ERA уже добавлены плагином от AlexSpl


RE: Вопросы по моддингу - Raistlin - 18.06.2022 02:46

Elmore, если я правильно понял, речь идёт про Хоту. Плагин подгрузить не получится.


RE: Вопросы по моддингу - XEPOMAHT - 18.06.2022 02:59

(18.06.2022 00:01)Evillie Wrote:  1. Вопрос, возможно ли каким-либо способом в хота изменить специализации героев (уж очень хочется убрать орлоглаз)?

Проще добавить плагин, усиливающий орлоглаз. Если так сильно нужно убрать его, то это придётся редактировать exe.

(18.06.2022 00:01)Evillie Wrote:  2. Можно ли расширить диапазон удачи и морали с -3..3 до -5..5 (это приведет к тому что специализация на удаче перестанет быть бесполезной)?

Можно, но тогда придётся основательно перетрясти весь exe (пример есть в МоП, где диапазон расширен до -25...+25)

(18.06.2022 00:01)Evillie Wrote:  3. Возможно ли палатке при экспертном навыке медицины дать возможность воскрешения стеков?

Возможно, но это уже откровенное читерство с затягиванием боёвки до бесконечности.

(18.06.2022 00:01)Evillie Wrote:  4. К огромному сожалению флаги заклинаний не проставляются в SPTRAITS, возможно ли заклинания сделать массовыми или в области? Главный вопрос касается мин и зыбучих песков, количество располагаемых преград также не настраивается через текстовик. Как их можно отредактировать?

На ЭРЕ+ в редаторе заклинаний.

(18.06.2022 00:01)Evillie Wrote:  5. Необязательный но интересный вопрос, можно ли каким-то образом сделать копию заклинания молитва, только с обратным эффектом, то есть сразу минус к скорости, защите и атаке (правда судя по всему с реализацией новых заклинаний без платформы МоР все очень грустно)?

Только плагином и никак не на HoA.

(18.06.2022 00:01)Evillie Wrote:  6. Скорее всего тоже то что проще реализовать на платформах типа эра (по крайней мере реализовано в Advanced classes mod), но, возможно ли реализовать доп эффекты у заклинаний, типа при экспертной воде, заклинания замедляли бы и т.д. и т.п.?

Изучайте ERM и тащите даныую читерскую вещь к себе в мод.

(18.06.2022 02:46)Raistlin Wrote:  Elmore, если я правильно понял, речь идёт про Хоту. Плагин подгрузить не получится.

Да можно, там защита от дурака всего лишь.


RE: Вопросы по моддингу - Evillie - 18.06.2022 07:07

Raistlin, Elmore, XEPOMAHT, daemon_n огромное спасибо за ответы, не ожидал что проснусь утром и уже что-то будет (оказывается геройское модерское коммьюнити еще более живо чем я думал изначально хд)
(18.06.2022 01:38)Raistlin Wrote:  Структура специализации имеет размер в 40 байт (10 dword'ов на каждого героя) и находится в экзешнике в 278420 (если нужен виртуальный адрес, то 678420)
Главное что можно редактировать через exe, боялся что придется лезть в hota.dll, потому что не понятно чем и как его открыть. Пробовал через ИДУ, но внятного кода не увидел
(скорее всего просто потому что неумеючи, на работе приходится работать в основном с кривым java, поэтому спустя столько лет с момента когда я изучал с++ и питон для меня ваш уровень кодинга просто выглядит на уровне небожителей)
(18.06.2022 02:59)XEPOMAHT Wrote:  Проще добавить плагин, усиливающий орлоглаз. Если так сильно нужно убрать его, то это придётся редактировать exe.
Можно и так конечно, либо вообще заменить орлоглаз как навык на что-то другое (правда это тоже посредством прямой правки вряд ли удастся добиться)
Есть конечно более простой вариант, просто отключить орлоглаз и героев с этой специализацией на шаблоне, благо остальным героям у кого был стартовый навык орлоглаза я заменил, но мне в принципе правка специализаций была интересна.
(18.06.2022 02:59)XEPOMAHT Wrote:  Можно, но тогда придётся основательно перетрясти весь exe (пример есть в МоП, где диапазон расширен до -25...+25)
Вообще видел где-то на форумах плагин который делает это, но сейчас вряд ли найду так как было это с полгода назад.
Перетрясти весь exe, потому что функции морали и удачи много где завязаны? В экзешнике МоРа не подскажете как можно нужные строки про удачу отыскать?
На сколько я понял вы же занимаетесь разработкой МоР 2.19?
(18.06.2022 02:59)XEPOMAHT Wrote:  Возможно, но это уже откровенное читерство с затягиванием боёвки до бесконечности.
Почему читерство? В Эре же есть функции с усилением навыков палатки первой помощи\баллисты и т.п. Я так понимаю просто избыточное лечение на отряд должно воскрешать еще единичку или несколько. Или вы имеете в виду что через прямую правку можно только заставить кастовать ее воскрешение вместо лечения отряда (тогда да, это имба та еще)?
(18.06.2022 01:38)Raistlin Wrote:  Таблица количества песков: 242224 (виртуальный адрес 642224), таблица количества мин: 242234 (виртуальный адрес 642234). Получается, на каждый спелл 4 dword'а (кол-во в зависимости от уровня навыка (0-3)).
Спасибо! Попробуем поиграться со значениями, позже дам знать что вышло\не вышло.
(18.06.2022 02:59)XEPOMAHT Wrote:  Изучайте ERM и тащите даныую читерскую вещь к себе в мод.
На сколько я понял из изучения форумов, вроде ЕРМ только для правки ВоГ\ЭРЫ предназначен. Поправьте пожалуйста если я не прав.
Я так думаю сначала нужно посмотреть плагин который посоветовал Элмор.
(18.06.2022 02:59)XEPOMAHT Wrote:  Да можно, там защита от дурака всего лишь.
По-моему писали в разделе Хоты что-то подобное, но:
(02.01.2018 20:11)Berserker Wrote:  можно написать или использовать загрузчик dll и грузить любой файл с ним. У меня похожий был. Запускаешь hota hd.exe через него, а в своей библиотеке грузишь плагины. Запрет не реальный античит, а снижение читов и расхождений в сборках у обычных, далёких от программирования игроков. Всё для онлайна.
Если не сложно, может кто-нибудь пожалуйста поделиться тайным знанием с дураком, как это реализовать, либо дать ссылку на сам загрузчик длл, хотя бы в лс
потому что такую магию вне Хогвартса в свободном распространении я так понимаю разработчики Хота не оценят
?Ab
Вообще теоретически я так понимаю платформу эра можно и на экзешнике хоты запустить, проблема в том что экзешник отличается от СоДовского и соответственно скрипты Эры необходимо править в соответствии с необходимым exe, что является очень долгой, нудной и неблагодарной работой.
Кстати, подскажите, никто не пытался разобраться с одновременными ходами на остальных платформах помимо Хоты? Добились каких либо результатов?



RE: Вопросы по моддингу - igrik - 18.06.2022 13:17

Не выдумывайте велосипед) Все куда проще: создаёшь свой плагин, называешь его hota_update.dll и закидываешь в корень хоты с заменой. Вуаля, плагин и грузится, и работает.


RE: Вопросы по моддингу - Evillie - 19.06.2022 19:48

Доброго времени суток, пришел мой черед отчитаться по всему тому что удалось\неудалось.
(18.06.2022 01:38)Raistlin Wrote:  1. Структура специализации имеет размер в 40 байт (10 dword'ов на каждого героя) и находится в экзешнике в 278420 (если нужен виртуальный адрес, то 678420).
Спасибо! Сама замена работает. Проверил на Оррине, сменил специализацию на спецу Валески, лучники бонус получили, но картинка и описание спецы не изменилось) Теперь видимо создается необходимость заменить описание специализации героя и саму иконку, это я так понимаю уже в lod файлы текстовые и графические менять надо. Жаль конечно что описание и картинка специализаций прикручена конкретно к герою, а не к специализации.
UPD по-моему специализация на заклинании не работает, точно не работает если на заклинание специализации не было (вообще нигде урон не поднимается), да и даже если было вроде не работает, при наведении на цель пишет что нанесет повышенный урон, а в логе боя все равно обычный 112
Также появляется такой вопрос, а % бонуса специализаций для вторичных навыков возможно корректировать? Да и вообще для специализаций.
С песками\минами пока не смотрел, попробовал только найденный плагин от Игрика (нашел несколько разных, но только его работает с Хота), но даже если ошиблись с адресом, постараюсь в базе данных накопать, примерный ориентир вы задали)
Все эти изменения которые я внес в exe, я так понимаю нормальные люди патчами вносят?)
(18.06.2022 01:38)Raistlin Wrote:  И, да, очень важно, чтобы у вас с девушкой были одинаковые версии ехе.
Спасибо за напоминание, уже столкнулся с подобной проблемой когда отличались SPTRAITS, не то что exe. В результате того что расчет урона и стоимости заклинаний в пвп бою отличался через несколько раундов игра попросту зависла)
(18.06.2022 13:17)igrik Wrote:  Не выдумывайте велосипед) Все куда проще: создаёшь свой плагин, называешь его hota_update.dll и закидываешь в корень хоты с заменой. Вуаля, плагин и грузится, и работает.
Спасибо за информацию! Тут возникла только одна проблема, плагин можно таким образом подгрузить только один и многие плагины вообще с Хотой работать не хотят (что очень грустно, но вполне ожидаемо). Это как-то плагины нужно в один скомпилировать чтобы подгрузить все вместе или все же как-то можно несколько сразу подгружать? Пробовал как asi библиотеки подгружать, но Хота их кушать не захотела. Конечно скорее всего я криворучка конечно, но вроде все правильно делал.
В любом случае буду изучать тему построения собственной dll
Elmore Wrote:Новые заклинания в SoD (hd mod) и ERA уже добавлены плагином от AlexSpl
К сожалению и в описании патча сказано что для Хоты не подойдет, и попробовал я подгрузить. Игра запускается через раз и крашится со страшной силой. В гильдии видно иконки новых заклинаний, но я так понимаю что там вообще отображение иконки спеллов перемешались, потому что рядом был взрыв на первом уровне, также все то что не на своих местах не имеет описания и не записывается в книгу героя. Возможно можно попробовать самому реализовать подобный плагин, но мне на данный момент уж точно не хватит на это знаний. Хотя был бы благодарен если бы AlexSpl или кто-то сведущий в том как это реализовать помогли бы с патчем который бы работал на хота на одно заклинание "нечестивое слово" как обратное по свойствам молитве, там бы уже по примеру можно было пытаться реализовать что-то дальше. А пока что сяду разбирать код патча Алекса, потому что большая часть кода будет идентичной скорее всего.
XEPOMAHT Если все таки возможно реализовать на хота, чтобы палатка воскрешала при экспертной "Первой помощи", подскажи пожалуйста как это реализовать или хотя бы направление задай в котором думу думать. Патчи на палатку находил, но они были реализованы как просто усиленный хил, без рандомного значения лечения и второй вариант это +1\2\3 к здоровью существ в зависимости от уровня навыка "Первая помощь".
С моралью\удачей вроде тоже нашел плагин, но нужно разбираться. Ну и понять как подгрузить сразу несколько)


RE: Вопросы по моддингу - wessonsm - 04.08.2022 03:05

Сорри за тупой вопрос, но как загрузить в память свою текстовую таблицу txt в плагине, чтобы потом из нее свободно читать?
Таблица - массив числовых значений M x N, и поэтому удобнее использовать и редактировать именно таблицу, а не json или ini, где значения выстроены в один ряд.


RE: Вопросы по моддингу - XEPOMAHT - 04.08.2022 04:23

(04.08.2022 03:05)wessonsm Wrote:  Сорри за тупой вопрос, но как загрузить в память свою текстовую таблицу txt в плагине, чтобы потом из нее свободно читать?

Зависит от языка программирования, на котором пишешь. Например в Тифоне текстовики (и любые другие файлы ERA+) грузятся так:

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


RE: Вопросы по моддингу - Berserker - 04.08.2022 04:24

LOAD_TXT_FUNC = $55C2B0; // F (Name: pchar): PTxtFile; FASTCALL;
UNLOAD_TXT_FUNC = $55D300; // F (PTxtFile); FASTCALL;

Чтение из загруженной таблицы воговской функцией, iTxt, что ли. Не нахожу быстрым поиском.


RE: Вопросы по моддингу - wessonsm - 04.08.2022 06:00

XEPOMAHT, Berserker, спасибо.

Berserker, я первым делом попытался использовать функцию 0x55C2B0, но получаю сообщение
ResourceManager::GetSpreadsheet could not find the "text" resource "MMT.txt".
Файл лежит уже везде, где только можно.

ХЕРОМАНТ, в общих чертах понял так, что нужно создать буфер (CreateFileA), выделить под него память (MemAlloc), и прочитать в него данные из txt (ReadFile). Попытаюсь.


RE: Вопросы по моддингу - feanor - 04.08.2022 06:00

Quote:Сорри за тупой вопрос, но как загрузить в память свою текстовую таблицу txt в плагине, чтобы потом из нее свободно читать?
Таблица - массив числовых значений M x N, и поэтому удобнее использовать и редактировать именно таблицу, а не json или ini, где значения выстроены в один ряд.

Code:
#define _char_ char
#define _cstr_ _char_*

NOALIGN struct _BinTreeItem_ // size = 28
{
_ptr_* v_table; // + 0
_char_ name[12]; // + 4
_dword_ name_end; // + 16
_dword_ type; // + 20
_int_ ref_count; // + 24


// Удалить ссылку на объект и, если она последняя, уничтотжить его.
void DerefOrDestruct()
{
   CALL_1(void, __thiscall, this->v_table[1], this);
}

};

NOALIGN struct _TxtLine_
{
    //int    Exist;        // 1=выделена память, 0=нет
    //char **Start;
    //char **Stop;
    //char **End;
    _List_<_cstr_> items;
};
#define o_LoadTxt(name) CALL_1(_Txt_*, __fastcall, 0x55C2B0, name)
NOALIGN struct _Txt_ : public _BinTreeItem_
{
    _List_<_TxtLine_*> Lines;
    //_TxtLine_** StartLine;  // +20 ук на первую строку
    //_TxtLine_** StopLine;   // +24 ук на строку за последней


     inline static _Txt_* Load(char* filename) {return o_LoadTxt(filename);}
     inline char* GetString(int index) { return *(char **)(*(_ptr_*)((_ptr_)(this) + 32) + (_dword_)(index)*4);}
};


    _Txt_* txt = o_LoadTxt("magicani.txt");
    if(txt != 0)
    {
        for(int i = 0; i!=127; i++)
        {
            _TxtLine_* corresponding_line = txt->Lines[i+1];

            strcpy((char*)(def_name[i]),corresponding_line->items[1]);
            o_BattleAnimation[i].DefName = def_name[i];
            
            strcpy((char*)(eff_name[i]),corresponding_line->items[2]);
            o_BattleAnimation[i].TouchEffect_Name = eff_name[i];

            o_BattleAnimation[i].Properties =
                atoi(corresponding_line->items[3]) |
                atoi(corresponding_line->items[4]) << 8;

        }

        txt->DerefOrDestruct();
    }



RE: Вопросы по моддингу - XEPOMAHT - 04.08.2022 06:39

(04.08.2022 06:00)wessonsm Wrote:     я первым делом попытался использовать функцию 0x55C2B0, но получаю сообщение
ResourceManager::GetSpreadsheet could not find the "text" resource "MMT.txt".
Файл лежит уже везде, где только можно.

Данная функция грузит текстовый файл из lod-архива (точнее из дерева текстовиков, отсканированных при инициализации игры). Если нужно грузить текстовик по конкретному пути, например, из папки mods или ещё откуда-то, то тут потребуется либо воговский загрузчик (но он не рационален по ресурсам и производительность в нём вялая из-за безпробудных копирований строк из пустого в порожний), либо собственный самопальный, аналогичный от MoP в тифоновских сорцах.

(04.08.2022 06:00)wessonsm Wrote:  в общих чертах понял так, что нужно создать буфер (CreateFileA), выделить под него память (MemAlloc), и прочитать в него данные из txt (ReadFile). Попытаюсь.

Пользуйся исходниками Мастера, там есть примеры (я сам долго не мог разобраться с загрузкой текстовиков, из-за чего все тексты были встроены в сам плагин, но лучше так не делать, либо делать, когда по-другому никак), в исходниках Игрика тоже есть примеры, если нужен СИ.


RE: Вопросы по моддингу - Видомина - 15.08.2022 04:53

Подскажите пожалуйста - может кто знает способ замены Def на произвольный Def не прописанный в текстовиках zeobjts.txt и zeobjects.txt. 119


RE: Вопросы по моддингу - XEPOMAHT - 15.08.2022 05:50

(15.08.2022 04:53)suftfree Wrote:  может кто знает способ замены Def на произвольный Def не прописанный в текстовиках zeobjts.txt и zeobjects.txt. 119

Там сложно, т.к. дефы карты грузятся исключительно по шаблону, кроме дефов городов. Можно так же точно добавить тип объекта, для которого по неким условиям будет грузится и рендерится определённый деф, НО:

1. Маски должны быть идентичны.
2. Имя Деф-а всё равно должно быть где-то прописано в памяти игры, то есть оно должно быть загружено плагином.
3. Только плагином в одном хуке с расширением кейса на кастомные дефы и только под конкретные типы/подтипы объектов с вызовом функции отрисовки дефа в определённой клетке карты. ERM с этим точно не справится.


RE: Вопросы по моддингу - Видомина - 15.08.2022 11:46

XEPOMAHT,Berserker, Спасибо, есть такой плагин Random Skin
Он рандомно меняет файл игры на любой из файлов прописанных в своём текстовике (без конкретной подгрузки игрой) (название файлов для подгрузки задаётся в его текстовике).
Можно ли как то модернизировать этот плагин, чтобы прописать условности для замены файла в зависимости от типа используемой почвы?


RE: Вопросы по моддингу - Berserker - 15.08.2022 19:21

suftfree, нет, суть перенаправлений ресурсов глобальная сама по себе. То есть при запросе «ххх» всегда загружать «ууу». Условия туда никак не добавить.


RE: Вопросы по моддингу - XEPOMAHT - 16.08.2022 01:16

(15.08.2022 11:46)suftfree Wrote:  чтобы прописать условности для замены файла в зависимости от типа используемой почвы?

Чем не нравится ставить объекты на карту с помощью команды !!UN:I, в которой поддерживается почва?


RE: Вопросы по моддингу - Видомина - 16.08.2022 17:33

Всем привет, хочу задать такой вопрос - Есть ли у кого то опыт по созданию боевых полей (как делать равномерные цветовые переходы и как делать равномерный переход почвы в даль (эффект отдаления земли)).119
Исходник
Image: 6d5654219865a4cd31e8e602777e5bac.png
Ваши комментарии!
2 вариант
Image: 1454cb6ded42842fb5a21d586da20e79.png


RE: Вопросы по моддингу - Berserker - 16.08.2022 19:29

Выглядит очень даже неплохо.


RE: Вопросы по моддингу - Видомина - 16.08.2022 19:41

Berserker,Спасибо, Мною сделан лишь фон сзади - почва уже готовая
Тогда начну клепать кучу боевых полей после небольших корректировок этого Dance3


RE: Вопросы по моддингу - XEPOMAHT - 17.08.2022 01:19

(16.08.2022 17:33)suftfree Wrote:  Ваши комментарии!

"волнистость" пейзажа слишком бросается в глаза. Хотя бы пару холмиков выравнить - смотрелось бы намного лучше.


RE: Вопросы по моддингу - Grossmaster - 17.08.2022 02:05

suftfree, фон поля боя по из-за своей светотени выглядит чужеродным. Освещение каждой скалы и самого поля серьезно различается.


RE: Вопросы по моддингу - Видомина - 22.08.2022 07:52

Вопрос - есть такой мод на зимний замок (можно сделать замену графики города и на карте приключений - если замок стоит на снегу)???


RE: Вопросы по моддингу - wessonsm - 22.08.2022 08:03

В моде LORD от totkotoriy есть зимний замок.


RE: Вопросы по моддингу - Видомина - 22.08.2022 11:00

wessonsm, Я его скачал, но наверное это лишнее)))
А вот перерисовка сопряжения очень даже ничего!
Можно использовать для HD Edition часть элементов.


RE: Вопросы по моддингу - Raistlin - 22.08.2022 11:45

suftfree, в сборке WoG UE есть. Заменён замок и карта-загадка, генератор карт также пропатчен. Работает отдельно от мода, нужно лишь минимум правок.


RE: Вопросы по моддингу - major - 26.08.2022 10:20

Такой вопрос возник, не могу никак разобраться.
Суть вопроса - чтобы палатка лечила не только тех, у кого есть потерянные хп (воскрешала).
Есть функция 0x4784C0 - для собственно выбранного действия игрока о лечении. Но она не работает на тех, у кого нет потерянных хп. Я так понял, срабатывает уже именно после обработки выбранного действия.
Есть функция ИИ 0x4737D0 - для выбора цели ИИ, здесь все срабатывает как положено. Если ходит ИИ (например, нет навыка первой помощи, или автобитва), то он может лечить полностью здоровый стек. Для игрока же такое лечение недоступно. Где еще идет проверка для выбора игрока, не могу найти.
Может уже кто-нибудь разбирал, или есть время глянуть?


RE: Вопросы по моддингу - daemon_n - 26.08.2022 12:31

major, в опции "болевые машины 3" я реализовал нужный тебе функционал и без un:c.


RE: Вопросы по моддингу - major - 26.08.2022 21:55

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


RE: Вопросы по моддингу - XEPOMAHT - 27.08.2022 03:16

(26.08.2022 21:55)major Wrote:  Мне бы хотелось найти содовскую функцию, для своего плагина, а не ерм.

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


RE: Вопросы по моддингу - major - 27.08.2022 08:05

XEPOMAHT, мне надо, чтобы лечение палаткой так и осталось лечением палаткой, просто с воскрешением. В нужных местах я это поправил. Осталась одна проблема, что лечение не работает на тех, у кого нет повреждений. Там всего-то надо добавить проверку на кол-во существ, просто не могу по коду найти это место. Выше написал, в каких местах внёс изменения.

P.S. Всё, отбой Sm Нужная проверка нашлась в функции по адресу 0x475DC0.
Просто несколько дней не мог найти подход к ней, а тут можно сказать, случайно попалась.


RE: Вопросы по моддингу - wessonsm - 08.11.2022 12:13

Большие картинки кампаний, разрешением 400x232, с именами Csl2BBa.pcx, Csl2BBb.pcx и так далее (имя начинается на Csl, их много, 101 штука)
в игре где-то используются?


RE: Вопросы по моддингу - XEPOMAHT - 08.11.2022 16:20

(08.11.2022 12:13)wessonsm Wrote:  Большие картинки кампаний, разрешением 400x232, с именами Csl2BBa.pcx, Csl2BBb.pcx и так далее (имя начинается на Csl, их много, 101 штука)
в игре где-то используются?

В игре есть список данных имён с базовым адресом, но отладчик не показывает, что кто-то пытается читать базовый адрес. Скорее всего, остаток какого-то вырезанного диалога, показывающий картинку кампании по идентификатору видеоролика из формата кампании. Возможно, данные картинки должны показываться при остутствии в архивах самих видеороликов кампаний или с флагом, означающим остутствие поддержки bik/smk (когда видео-тест выдаёт отрицательный результат при первом старте игры), но соотвествующего кода в самой игре на это я не видел - движок игры всегда просто отрисовывает чёрный фон. В кастратной версии Героев от Чёрного Фантома эти ролики удалены - никто вроде за 10 лет и не жаловался на их отсутствие.


RE: Вопросы по моддингу - wessonsm - 09.11.2022 00:42

XEPOMAHT, спасибо.


RE: Вопросы по моддингу - ArKan - 21.01.2023 05:35

Alternative town screens для некоторых зданий добавляет английские названия

https://heroes3wog.net/new-town-screens-mod-download/

Как это можно исправить?


RE: Вопросы по моддингу - XEPOMAHT - 21.01.2023 09:42

(21.01.2023 05:35)ArKan Wrote:  Alternative town screens для некоторых зданий добавляет английские названия

https://heroes3wog.net/new-town-screens-mod-download/

Как это можно исправить?

Перевести на русский в текстовиках. Или поставить русскоязычную версию LoRD, откуда всё это было скопировано.


RE: Вопросы по моддингу - ArKan - 22.01.2023 03:04

Не нашёл ни текстовики, ни русскую версию.


RE: Вопросы по моддингу - XEPOMAHT - 22.01.2023 08:23

(22.01.2023 03:04)ArKan Wrote:  Не нашёл ни текстовики, ни русскую версию.

BldgSpec.txt в арживе или удали NTSfL_eng.pac с английским текстом целиком.


RE: Вопросы по моддингу - ArKan - 22.01.2023 08:45

Спасибо!

Это и есть архив NTSfL_eng.pac ?

Какой прогой он открывается?


RE: Вопросы по моддингу - daemon_n - 22.01.2023 20:46

ArKan, MMArchive


RE: Вопросы по моддингу - ArKan - 23.01.2023 07:33

Еще раз спасибо!


RE: Вопросы по моддингу - wessonsm - 24.03.2023 12:27

Какой софтиной можно собрать деф без изменения палитры,
если есть набор bmp с индексированными цветами, палитра у всех одинаковая?
H3DefTool меняет палитру по своему усмотрению.
Вычитал на df2, что старые версии DefMaker'а это могут, но нигде не могу их найти, везде лежит версия 8.5, которая тоже меняет палитру.
Может у кого-то есть?


RE: Вопросы по моддингу - XEPOMAHT - 24.03.2023 16:15

(24.03.2023 12:27)wessonsm Wrote:  Какой софтиной можно собрать деф без изменения палитры,
если есть набор bmp с индексированными цветами, палитра у всех одинаковая?
H3DefTool меняет палитру по своему усмотрению.

Если палитра у всех 8-битных bmp одинаковая, байт в байт, то H3DefTool палитру не меняет. Создавать новые bmp с платрой такой же как у распакованных 8-битных можно с помощью стандартного виндовозного паинта. Естественно, что при распаковке def-ов и обратной запаковке из bmp оригинальную палитру лучше сохранять для того, чтобы не было искажений в оригинальных спрайтах.


RE: Вопросы по моддингу - wessonsm - 24.03.2023 18:24

(24.03.2023 16:15)XEPOMAHT Wrote:  Если палитра у всех 8-битных bmp одинаковая, байт в байт, то H3DefTool палитру не меняет.

Возможно, я что-то не так делаю, может галочки какие-то надо снять/поставить, или какой-нибудь другой секрет здесь есть, но мне никак не удается сделать так, чтобы сохранялась оригинальная палитра.
Палитра у исходных bmp 100% одинаковая, я ее фотошопом сохранял и загружал из одного и того файла для каждого bmp при переводе в индексированные цвета.

Для эксперимента берем кнопку, например iokay.def, распаковываем с помощью DefPreview (в опциях необходимо снять галочку "extract in 24 bits"), получаем 4 bmp с правильной геройской палитрой.
А теперь пытаемся собрать обратно в деф.
У меня ни разу не получилось это сделать без изменения палитры (палитру можно посмотреть в фотошопе, опять распаковав полученный деф).


RE: Вопросы по моддингу - XEPOMAHT - 24.03.2023 19:20

(24.03.2023 18:24)wessonsm Wrote:  Для эксперимента берем кнопку, например iokay.def, распаковываем с помощью DefPreview (в опциях необходимо снять галочку "extract in 24 bits"), получаем 4 bmp с правильной геройской палитрой.
А теперь пытаемся собрать обратно в деф.
У меня ни разу не получилось это сделать без изменения палитры (палитру можно посмотреть в фотошопе, опять распаковав полученный деф).

В хелпе к программе написано:

Quote:TUTORIAL 3: Создание Дефов Интерфейса
   1) Цвета игрока - это синие цвета, которые заменяются цветом конкретного игрока в игре. Учтите, что если у оригинального дефа интерфейса присутствуют цвета игрока, Вы должны поставить галочку перед Цветами Игрока в Особых Цветах.
   2) Если Вы что-то рисовали не в точности цветами игрока (скажем, с анти-алиасингом), но хотите, чтобы это были цвета игрока, нажмите на иконку Цветов Игрока и задайте Чувствительность. Чем больше Чувствительность, тем больше цветов будут приравнены к цветам игрока. Чувствительность меняется от 0 до 442, в отличии от большинства графических редакторов. Например, если у Вас есть два красных цвета с красными компонентами 140 и 150, Вы должны поставить Чувствительность 10 (150-140=10) и более, чтобы эти два цвета считались одинаковыми.

Спецсвета для перекраски программа должна брать из ColorsBox.PlayerColors в вашем созданном *.hdl-файле.


RE: Вопросы по моддингу - wessonsm - 24.03.2023 21:58

В общем, с некоторым трудом, но я все-таки нашел DefMaker версии 3.5 кажется (так написано в шапке программы).
Вот здесь, может кому надо:
https://v1.archangelcastle.com/download/logh3index.php
Работает хорошо, палитру не портит.
Один нюанс: нужно обязательно ставить галочку "fixed size", иначе при создании дефа программа зависает.
Второй нюанс: нужно следить за именами pcx внутри дефов, чтобы они не повторялись.
Для интерфейсных дефов подходит хорошо, с другими типами дефов не пробовал.

_______________________________________________________________________________
Upd: К сожалению, мои эксперименты с DefMaker в конечном итоге тоже закончились неудачей.
Таким образом, вопрос остается открытым: как собрать интерфейсный def без изменения палитры исходных 8-битных bmp.


RE: Вопросы по моддингу - Raistlin - 24.03.2023 22:29

wessonsm, большое спасибо за ссылку и описание нюансов!


RE: Вопросы по моддингу - Berserker - 25.03.2023 00:35

Да, спасибо. Но правильный ответ — использовать png.


RE: Вопросы по моддингу - Raistlin - 30.03.2023 21:54

Привет, кто-нибудь знает, каким образом ИИ колдует заклинания командирами?


RE: Вопросы по моддингу - XEPOMAHT - 30.03.2023 23:03

(30.03.2023 21:54)Raistlin Wrote:  кто-нибудь знает, каким образом ИИ колдует заклинания командирами?

Точно так же как колдуют сказочные драконы. Т.е. ИИ просто видит, что отряд колдует наступательную магию и пользуется этим стандартным содовским кодом.


RE: Вопросы по моддингу - Raistlin - 30.03.2023 23:20

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


RE: Вопросы по моддингу - XEPOMAHT - 31.03.2023 18:31

(30.03.2023 23:20)Raistlin Wrote:  У меня есть сильное подозрение, что это происходит без использования содовского кода - в большинстве ситуаций это совершенно бессмысленно, и игра бы их отсеяла. К примеру, у меня Суккуб каждый раунд накладыват огненный щит на Баллисту.

В содовском коде ИИ при выборе цели для колдовства монстра - рамдом. Командиры выбирают цель точно так же как это делают, например, Огромаги. ВоГ там совершенно ничего не меняет. А это по сути недоработка от NWC, которую за 20 лет так и не исправили в ERA.


RE: Вопросы по моддингу - Raistlin - 31.03.2023 18:46

Несовсем. Я посмотрел функцию 420EA0 - если есть альтернативное действие, то в 30% случаев ИИ даже не пытается рассчитать ценность колдовства и не будет колдовать. Больше рандома я не вижу. Потом для огра-мага, например, есть рассчет эффективности колдовства, и только если колдовство эффективнее альтернативного действия, оно будет применено.


RE: Вопросы по моддингу - Ethereal - 07.04.2023 16:21

Столкнулся с неожиданной проблемой, героев при старте портует в ближайший город. В сингловых картах меня это не сильно напрягало, но тут решил в компанию... и понеслись нежданчики. На подозрении HD-mod, но там чёрт ногу сломит в этих твиках, к которым описания так и не нашел, но может быть дело в чём-то другом? Случалось ли подобное у кого и как вы с этим боролись?


RE: Вопросы по моддингу - igrik - 08.04.2023 08:22

Я же решал эту проблему. В gamebugfixes.dll
Хотя там может быть при рестарте карты решал. Не помню уже


RE: Вопросы по моддингу - Algor - 08.04.2023 17:45

(07.04.2023 16:21)Ethereal Wrote:  Столкнулся с неожиданной проблемой, героев при старте портует в ближайший город.
В Era Scripts раньше был фикс (не знаю как сейчас), который при старте карты перемещал героев в города, соответствующей расы, если у них такие имелись. Это решало проблему, когда на шаблонах с 2+ стартовыми городами герой спавнился в городе, не соответствующем его расе, чтобы можно было нормально использовать стартовую армию. Но в скрипте я делал проверку на рандомность карты. Для не-рандомок опция не запускалась. Может сломали?


RE: Вопросы по моддингу - Ethereal - 09.04.2023 20:13

(08.04.2023 17:45)Algor Wrote:  В Era Scripts раньше был фикс (не знаю как сейчас), который при старте карты перемещал героев в города, соответствующей расы, если у них такие имелись.

Спасибо! Фикс нашел и удалил нафиг, поскольку не использую рандомный генератор карт. Нежданчики исчезли. На самом деле его нужно было изначально сделать опцией, которую можно отключить при необходимости, но вам виднее.


RE: Вопросы по моддингу - Видомина - 02.05.2023 20:35

Здравствуйте! - я сделал 3 грейда ко всем городам (добавил рвы и пришлось увеличить размеры дефа) - можно ли увеличить радиус отрисовки дефа - который по умолчанию 192х192 - параметры .msk стоят максимальные!


RE: Вопросы по моддингу - Ethereal - 03.05.2023 18:04

(02.05.2023 20:35)suftfree Wrote:  Здравствуйте! - я сделал 3 грейда ко всем городам (добавил рвы и пришлось увеличить размеры дефа) - можно ли увеличить радиус отрисовки дефа - который по умолчанию 192х192 - параметры .msk стоят максимальные!

В ЭРА+ всё это реализовано. Сборки ещё экзатичней.


RE: Вопросы по моддингу - major - 07.01.2024 18:17

Подскажите, как можно изменить ссылку на свою таблицу. Точнее как правильно это сделать. Ну к примеру на хранилище ресурсов.
Достаточно создать массив условно
int* resource_silo = new int[84] {значения_ресурсов};
и затем записать при вызове патчера
*(_ptr_*)0x5BFA94 = (_ptr_)resource_silo_list + 24;
*(_ptr_*)0x5C1690 = (_ptr_)resource_silo_list;
или
_PI->WriteDword(0x5BFA94, ((char*)resource_silo_list) + 24);
_PI->WriteDword(0x5C1690, (char*)resource_silo_list);

Или так вообще делать не надо и есть другой вариант?


RE: Вопросы по моддингу - Berserker - 07.01.2024 18:29

Лучше второе, так как запись в код.


RE: Вопросы по моддингу - XEPOMAHT - 07.01.2024 20:15

(07.01.2024 18:17)major Wrote:  *(_ptr_*)0x5BFA94 = (_ptr_)resource_silo_list + 24;
*(_ptr_*)0x5C1690 = (_ptr_)resource_silo_list;
или
_PI->WriteDword(0x5BFA94, ((char*)resource_silo_list) + 24);
_PI->WriteDword(0x5C1690, (char*)resource_silo_list);

В Тифоне сделано так:

Code:
    mov dword [5C1690h], Town_ResourceSilo
    mov dword [5BFA94h], Town_ResourceSilo+18h



RE: Вопросы по моддингу - Berserker - 07.01.2024 21:36

Патчер не видит такие патчи, а значит не обнаружить два мода, что заменили там данные.


RE: Вопросы по моддингу - ArKan - 12.01.2024 15:05

Как добавить свои существа для 3.5x WOG ?


RE: Вопросы по моддингу - XEPOMAHT - 13.01.2024 09:35

(12.01.2024 15:05)ArKan Wrote:  Как добавить свои существа для 3.5x WOG ?

В чём смысл использовать для поддержки новых существ старьё 2004 года? Если нужны новые существа - используй платформу ЭРА с выбором из 2 или более плагинов, поддерживающих новых существ для игры.


RE: Вопросы по моддингу - ArKan - 13.01.2024 09:42

Какие нужны плагины для ЭРА?


RE: Вопросы по моддингу - XEPOMAHT - 13.01.2024 11:15

(13.01.2024 09:42)ArKan Wrote:  Какие нужны плагины для ЭРА?

Например: http://wforum.heroes35.net/showthread.php?tid=4945


RE: Вопросы по моддингу - ArKan - 16.01.2024 12:22

Существа с уровнями этот плагин позволяет делать?


RE: Вопросы по моддингу - Видомина - 16.01.2024 13:17

Не подскажете - заменил картинку запаковал винрар - всё равно показывает в игре старую картинку - перепаковал тоже самое - все проверил и опять в игре показывает старую картинку.
Решил проблему вытащив деф из архива и отображает нормально.


RE: Вопросы по моддингу - Berserker - 16.01.2024 15:34

В каком формате в каком архиве? zip?


RE: Вопросы по моддингу - Видомина - 16.01.2024 15:56

Berserker, зип - пнг файлы


RE: Вопросы по моддингу - Berserker - 16.01.2024 17:53

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


RE: Вопросы по моддингу - major - 09.02.2024 17:02

Как можно вывести изображение и текст, например количество опыта, в окно состояния на карте приключений, как это делает HD мод?


RE: Вопросы по моддингу - XEPOMAHT - 09.02.2024 19:08

(09.02.2024 17:02)major Wrote:  Как можно вывести изображение и текст, например количество опыта, в окно состояния на карте приключений, как это делает HD мод?

Проще всего - хакнуть эту функцию в HD-моде, т.к. Бараторч готовый код не отдаст. Сложнее - написать самому, т.к. оригинальная выводит только ресурсы. Под MoP эта функция была целиком переписана - выводила любые картинки и любой текст, но исходники не сохранились - можно только реверсом достать.


RE: Вопросы по моддингу - igrik - 10.02.2024 19:54

(09.02.2024 17:02)major Wrote:  Как можно вывести изображение и текст, например количество опыта, в окно состояния на карте приключений, как это делает HD мод?
HD-mod делает так:
Code:
int __stdcall sub_10086090(const char *text, int type, int subtype, int deley)
{
  *(_DWORD *)(MEMORY[0x6992B8] + 920) = 6;
  v4 = (_DWORD *)(MEMORY[0x6992B8] + 924);
  *v4 = deley + MEMORY[0x4F8970]();
  *(_DWORD *)(MEMORY[0x6992B8] + 928) = type;   // type смотри !!IF:N
  *(_DWORD *)(MEMORY[0x6992B8] + 932) = subtype;// subtype смотри !!IF:N
  MEMORY[0x404180](MEMORY[0x6992B8] + 936, text, strlen(text));
  return MEMORY[0x415D40](MEMORY[0x6992B8], 1, 1, 1);
}



RE: Вопросы по моддингу - major - 13.02.2024 04:36

(10.02.2024 19:54)igrik Wrote:  HD-mod делает так:
Жаль, что я так не могу 96

(10.02.2024 19:54)igrik Wrote:  
Code:
int __stdcall sub_10086090(const char *text, int type, int subtype, int deley)
{
  *(_DWORD *)(MEMORY[0x6992B8] + 920) = 6;
  v4 = (_DWORD *)(MEMORY[0x6992B8] + 924);
  *v4 = deley + MEMORY[0x4F8970]();
  *(_DWORD *)(MEMORY[0x6992B8] + 928) = type;   // type смотри !!IF:N
  *(_DWORD *)(MEMORY[0x6992B8] + 932) = subtype;// subtype смотри !!IF:N
  MEMORY[0x404180](MEMORY[0x6992B8] + 936, text, strlen(text));
  return MEMORY[0x415D40](MEMORY[0x6992B8], 1, 1, 1);
}

Я так понимаю, нельзя просто так взять и вызвать эту функцию?
У меня AdvMgr (MEMORY[0x6992B8]) по этим смещениям не разобран. Ок, добавил ему в структуру
Code:
_dword_ info_type; // +920
_dword_ info_delay; // +924
_dword_ info_pic_type; // +928
_dword_ info_pic_subtype; // +932
_dword_ info_text; // +936

и переписал функцию
Code:
int test_message(const char* text, int type, int subtype, int deley)
{
    //*(_DWORD*)(MEMORY[0x6992B8] + 920) = 6;
    o_AdvMgr->info_type = 6;

    //*(_DWORD*)(MEMORY[0x6992B8] + 924) = deley + MEMORY[0x4F8970]();
    o_AdvMgr->info_delay = deley + CALL_0(_dword_, __cdecl, 0x4F8970);

    //*(_DWORD*)(MEMORY[0x6992B8] + 928) = type;   // type смотри !!IF:N
    o_AdvMgr->info_pic_type = type;

    //*(_DWORD*)(MEMORY[0x6992B8] + 932) = subtype;// subtype смотри !!IF:N
    o_AdvMgr->info_pic_subtype = subtype;

    //MEMORY[0x404180](MEMORY[0x6992B8] + 936, text, strlen(text));
    CALL_3(void, __thiscall, 0x404180, &o_AdvMgr->info_text, text, strlen(text));

    //return MEMORY[0x415D40](MEMORY[0x6992B8], 1, 1, 1);
    return CALL_4(int, __thiscall, 0x415D40, o_AdvMgr, 1, 1, 1);
}

Ну и при вызове test_message(o_TextBuffer, 17, experience, 5000); очевидно получаю краш.


RE: Вопросы по моддингу - XEPOMAHT - 13.02.2024 08:01

(13.02.2024 04:36)major Wrote:  Жаль, что я так не могу 96

Так и я не могу. Моддерам к интерфейсу окна приключений закрыт из-за совместимости с HD-модом (даже радар не перекрасить в цвета радуги).

(13.02.2024 04:36)major Wrote:  Я так понимаю, нельзя просто так взять и вызвать эту функцию?

Функция полностью перехвачена HD-модом. Библиотекой _HD3_.dll, насколько помню. Адрес функции - там же можно накопать, если диассемблировать HD-мод. Лично я давно забил на вывод информации в окно состояния в рамках ERA+, т.к. писать собственные функции, с дублированием кода HD-мода на Ассемблере с сохранением обратной совместимости, чтобы работало и с HD-модом, и без него, поленился.

(13.02.2024 04:36)major Wrote:  MEMORY[0x6992B8] + 936, text, strlen(text)

Там крошечный текстовый буфер, ты зачем туда пытаешься строку пропихнуть??? Текст туда надо копировать и не забыть записать и размер строки тоже (функция FMes_ExpandAndCopy). Если буфер забит мусором - почистить перед копированием (функция FMes_Clean). И то, и то лучше делать содовскими функциями. Наколько помню, в MoP я выводил текст в окне напрямую из воговской Z-переменной в обход копирования текста в _AdvMng_ + 936, т.к. работать с этим буфером у меня тоже тогда не получалось. А там самое главное, чтобы текст во время показа не менялся, т.е. текстовая переменная была уникальная. Помню, была такая фича в MoP - бегущая строка с анимированным def и музыкальным сопровождением в этом окне, но пришлось всё это убрать из MoP, т.к. вело к хаотическим утечкам памяти.


RE: Вопросы по моддингу - igrik - 13.02.2024 09:11

Вот оригиальная функция по показу кол-ва ресурсов (и только ресурсов!)
Code:
sprintf(o_TextBuffer, "AdvMgrInfo: %d", 666);
o_AdvMgr->Field<_dword_>(+940) = 0; // очищаем длину строки
CALL_4(void, __thiscall, 0x415FC0, o_AdvMgr, o_TextBuffer, 6 (Золото), 5000);

UPD: А вылетает не из-за размера текста и буфера, а потому что базово "окно состояния на карте приключений" может показывать только типы 0-8.
Code:
enum AdvManager::EBottomViewType
{
  BVTYPE_NONE             = 0,
  BVTYPE_NEW_TURN         = 1,
  BVTYPE_KINGDOM          = 2,
  BVTYPE_HERO             = 3,
  BVTYPE_TOWN             = 4,
  BVTYPE_ENEMY_TURN       = 5,
  BVTYPE_RESOURCE_MESSAGE = 6,
  BVTYPE_MESSAGE          = 7,
  BVTYP

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


RE: Вопросы по моддингу - major - 14.02.2024 12:37

igrik, спасибо за структуры, помню, что видел твой пост, но потом забыл про него.

В общем, поковырявшись ещё час-полтора, понял, что IF:L не такой уж плохой вариант. 96
Ну, а серьезно, там ограничение не только в показе определенных типов. Ничто же не мешает воспользоваться старыми-добрыми костылями и запихать нужную картинку в деф к ресурсам и показывать её. Но проблема-таки в том, что нельзя показать картинку за мифрилом, игра крашится.
По коду так и не смог понять, почему. Там дальше и деф погружается и нужный кадр должен отрисовываться, а почему краш не понятно.
Хотя мне достаточно того, что мифрил отображается, мне он все равно не нужен, можно смело поменять на опыт.


RE: Вопросы по моддингу - Berserker - 14.02.2024 16:46

В IF:L можно выводить любые изображения

Code:
[+] Added support for displaying inline def-images right in texts as a part of Era Markup Language (EML).

  To embed image in text use the following tags:
  {~>def_name.def}                          Will display the first frame from the first group of def_name.def image in place of text cursor.
  {~>def_name.def:frame_index}              Will display specified frame from the first group of def_name.def image or nothing if index is invalid.
  {~>def_name.def:group_index:frame_index}  Will display specified frame from specified group of def_name.def image or nothing if index is invalid.

  Frames and frame groups are counted from 0. Frames are automatically trimmed.
  By default images are rendered "inline". It means, that they are treated as non-wrapping sequence of white space characters. Images do not allocate
  vertical space except the height of current font. But they automatically allocate necessary width.

  Images can be aligned vertically using the following attribute: valign=top|middle|bottom.
  Examples:
    {~>ava0037.def valign=bottom}
    {~>smalres.def:5}

  Vertical alignment modes:
  - 'top'.    Image is drawn from the top left pixel of current character box.
  - 'middle'. Image is vertically centered relative to current text line height. This is the default mode for inline images.
  - 'bottom'. Image is drawn so, that it's bottom edge matches current text line bottom edge.

  It's possible to display image in a horizontally mirrored form. Just add "mirror" attribute.
  Example: {~>ava0037.def mirror}

Тегами ставим нужный цвет текста, полупрозрачность и картинку.