Wake of Gods Forum | Форум Во Имя Богов
New Era Of Heroes - Printable Version

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


New Era Of Heroes - Berserker - 22.08.2009 15:25

Image: original.png

Название: WoG 3.58f + Era 1.81 Установщик всё-в-одном v3"
Требования: SoD или Complete Edition
Размер: 64.7 (англ) + 15.28 (русификация) МБ.
Автор: Berserker.
Благодарности: baratorch, GrayFace, Horn, itsjustme, MoP, Black Phantom, Sir Four и др.
Скачать основной архив: WoGArchive Link
Скачать русификацию: WogArchive Link
Особенности:
  • WoG 3.58 полная версия.
  • Era 1.81 Русская версия.
    • Убрана защита от изменений в исполняемом файле
    • Заплатка на низкое потребление ресурсов процессора (до 2-3%)
    • Отключено авто-выключение скриптов ЕРМ при ошибках
    • Исправлено несколько ЕРМ багов
    • Мост между ЕРМ и внешним миром в виде команд для загрузки dll и выполнения машинных функций
    • Автоматическая подгрузка плагинов (dll) и динамическая установка заплаток
    • Новые ЕРМ команды и события
    • Расширенный ЕРМ (Основанные на TE: диалоги, заклинания, синтаксис "если-то")
    • Цветные тексты и другое...
  • Плагины для Эры:
    • ArtMerFix (исправляет баги у торговца артефактами)
    • ExecErm (позволяет выполнять команды ЕРМ из dll)
    • WhipSplash (убирает чёрные сплошные экраны-затемнения перед диалогами)
    • Multithread (исправляет вылеты на процессорах с несколькими логическими/физическими ядрами)
  • GrayFace Map Editor Patch (патч для редактора карт).
  • Baratorch HiRes Mod (2.92u) (мод на высокое разрешение).
  • Последнее ЕРМ Руководство 2.81d.
  • Heroes III Руководство в pdf.
  • h3sprite и LodExtract утилиты в папке Data (импорт/экспорт для lod-архивов).
  • dpwsockx.dll для игры по сети.
  • Набор программ:
    • - Color Converter (перевод 32-битного цвета в 16-ный)
    • - DEE v0.6 alpha (редактор ЕРМ скриптов в памяти игры)
    • - DEFka v1.0 (за один щелчок мыши заменяет деф любого монстра)
    • - DefPreview (просмотрщик дефов)
    • - Erm Editor (патченный редактор ЕРМ)
    • - EVME 1.0 (прототип ЕРМ отладчика)
    • - ExeBuilder (позволяет собрать монолитный ехе вашей мечты)
    • - Font Editor (редактор шрифтов)
    • - H3DefTool (создаёт дефы)
    • - MMArchive (редактор геройских архивов)
    • - RSBinkPlayer (проигрыватель bik-файлов)
  • Скрипт "Быстрые сохранения" ("S" сохраняет в [день недели], F5 для быстрого сохранения, "Конец хода" создаёт сохранение [день недели]_Конец).
  • Ускорение боя (убрана предбитвенная музыка, ускорена анимация)
  • Исправлено зависание палатки.
  • Пропатченный инсталлятор ВоГ
  • Простой и дружелюбный установщик
  • Отсутствуют мусорные файлы
Инструкция по установке:
1. Запустите WoGEra 1.81 RUS.exe
2. Укажите папку с игрой
3. Следуйте инструкциям
4. Наслаждайтесь игрой!

ПОДСКАЗКА ДЛЯ WINDOWS-7 ПОЛЬЗОВАТЕЛЕЙ: изменение языка на английский (Click to View)
Первоначальная идея предложена Valery Rogacev.


RE: New Era Of Heroes - fireman - 30.08.2009 14:38

У меня появилось пару вопросов

1)Почему в ExeBuilder нет бат файла для патчинья
2)ангел.длл должен быть в корне героев 3 или в папке для плагинов эра


RE: New Era Of Heroes - MOP - 30.08.2009 15:08

1)Почему нет? Era 1.6.BAT.
Батники копируют определённый для каждого ехе набор bin-файлов из LIB и ExeBuilder патчит ими экзешник.
2)В корне.


RE: New Era Of Heroes - fireman - 30.08.2009 16:22

1)То есть я имел ввиду для вог


RE: New Era Of Heroes - Berserker - 30.08.2009 16:52

На ВоГ и ставится Эра. Скрипты вога продолжают работать.


RE: New Era Of Heroes - fireman - 30.08.2009 17:04

В вог++ был бат файл для вог, а в эра только для сод и те. Как мне патчить вог.

Вообще я не до конца с установкой эра разобрался


RE: New Era Of Heroes - Berserker - 30.08.2009 18:46

Установки как таковой нет, а она уже вызывает проблемы, ну дела...

Для игры в обновлённый вог нужно:
1) Распаковать архив в папку с игрой, заменяя файлы
2) Запустить Era Soft\ExeBuilder\Era 1.6.bat
3) Запускать игру через Era 1.6.exe


RE: New Era Of Heroes - fireman - 30.08.2009 19:41

Чего то я ступил. Спасибо.
Добавлено:
Ктати что в вог++,что в эра ,когда запускаешь СОД значок рейтинг смещён влево


RE: New Era Of Heroes - fireman - 30.08.2009 20:10

Как я понял надо h3wog.exe предварительно кинуть в папку Era Soft\ExeBuilder\ и переименовать в in.exe .Если сделать так ,то создастся в корне эра1.6.эксе ,но игра не будет запускаться .

После я попробовал так: нажал на Phoenix III.5.BAT и через появившейся в корне Phoenix III.5.exe запустилась игра. Он весит столько сколько и вог++(ExeBuilder) .Как я понял разницы в ExeBuilder'е по сравнению с вог++ нет. Если это так, то есть ещё баг когда нажимаешь по окну состояния ничего не просходит, информация в нём менятся при поднятие ресурса и т.п,но самому менять нельзя.


RE: New Era Of Heroes - Berserker - 30.08.2009 20:49

Моя ошибка, пропущена строка в батнике Эра 1.6. Нужно скопировать TE.exe >> In.exe до запуска.
Quote:Он весит столько сколько и вог++
Весь всегда один. Патчи меняют логику (содержимое), а не размер файла.


RE: New Era Of Heroes - fireman - 30.08.2009 21:28

Quote:Нужно скопировать TE.exe >> In.exe до запуска.
Имееся в виду, надо создать копию те.ексе и переименовать её?


RE: New Era Of Heroes - Berserker - 30.08.2009 22:11

Это операция называется копированием. Потому что нельзя создать временно два файла с одним именем в одной папке.


RE: New Era Of Heroes - Berserker - 30.08.2009 23:05

Вышло обновление. См. первый пост.


RE: New Era Of Heroes - Qwertyus - 30.08.2009 23:09

Вкусьненькая добавка! Ab


RE: New Era Of Heroes - gamecreator - 30.08.2009 23:18

а для сода этот патч подходит?


RE: New Era Of Heroes - Berserker - 31.08.2009 00:01

Да. Там патч в один байт = изменение имени dll, а сама Борновская dll прилагается. Написал он её уже давно, вог-тим (серж) трудится над инсталлятором и скоро закончат. Ну а я не сторонник инсталляторов, где всё решает однобайтовый патч.


RE: New Era Of Heroes - gamecreator - 31.08.2009 15:34

отлично.


RE: New Era Of Heroes - fireman - 31.08.2009 18:20

Если кому удобно качать с торента, то http://tfile.ru/forum/viewtopic.php?t=230810


RE: New Era Of Heroes - GORynytch - 03.09.2009 15:54

Берс, а можно выложить этот архив в подфорум Хоты на ДФ2?

Добавлено позже:
Хех, оказывается я уже опоздал. Qwertyus уже выложил...


RE: New Era Of Heroes - fireman - 08.09.2009 19:28

При попытке войти в оконный режим всё происходит как раньше.Bad


RE: New Era Of Heroes - Berserker - 10.09.2009 20:57

Можно экспериментально попробовать сделать поддержку диалогов с прокруткой.
UExports.PAS:

Quote:PROCEDURE Hook_ParseText_End; ASSEMBLER; {$FRAME-}
CONST
C_SIZEOF_TOPTION = SIZEOF(General.TOption);

ASM
// Установили опцию цветных диалогов в False
PUSH EAX
MOV EAX, DWORD [General.Options]
LEA EAX, [EAX + C_ERA_OPTION_COLORFUL_DIALOGS * C_SIZEOF_TOPTION + 4]
MOV DWORD [EAX], 0
Заменить выделенное на DEC DWORD [EAX] и перекомпилировать Angel.PAS (Build в меню VP.EXE)

Теперь для диалогов с прокруткой нужно установить значение опции в 2000000000. Важно не забыть обнулить его сразу же после показа.


RE: New Era Of Heroes - fireman - 13.09.2009 23:06

Quote:При попытке войти в оконный режим всё происходит как раньше.
И не только у меня


RE: New Era Of Heroes - FCst1 - 13.09.2009 23:11

Аналогично Bad


RE: New Era Of Heroes - gamecreator - 13.09.2009 23:54

как раньше - это как?


RE: New Era Of Heroes - FCst1 - 14.09.2009 06:39

Пишет, что игра не поддерживает режим монитора. Используйте режим в 65...тыс. цветов, т.е. 16bit Bad


RE: New Era Of Heroes - fireman - 14.09.2009 19:53

FCst1, именно так.То есть, самое лакомое и не действует Bad


RE: New Era Of Heroes - fireman - 17.09.2009 16:49

Может кто подправит?


RE: New Era Of Heroes - Berserker - 01.10.2009 18:51

Исправил.
; НАЗВАНИЕ: Оконный 32-битный цветовой режим
; ВЕРСИЯ: 1.0
; АВТОР: Bourn
; ОПИСАНИЕ: Позволяет играть в оконном режиме при глубине цвета в 32 бита
; EXE: TE, SOD

; DATA "DDRAW.dll" => "ZDRAW.dll"
25C7D8 5A


RE: New Era Of Heroes - Berserker - 02.10.2009 15:29

Работа игры при хранении pcx-ов в отдельной папке, а не лоде замедляется по субъективным оценкам в 8 раз. Нужно ли такое удобство???


RE: New Era Of Heroes - fireman - 02.10.2009 17:16

А нельзя дать выбор?


RE: New Era Of Heroes - Berserker - 02.10.2009 17:56

Нет. Одна архитектура исключает другую.
Дополнение: подобная проблема только у файловых систем FAT32, которая и у меня.


RE: New Era Of Heroes - fireman - 02.10.2009 20:13

Quote:Исправил.
; НАЗВАНИЕ: Оконный 32-битный цветовой режим
; ВЕРСИЯ: 1.0
; АВТОР: Bourn
; ОПИСАНИЕ: Позволяет играть в оконном режиме при глубине цвета в 32 бита
; EXE: TE, SOD

; DATA "DDRAW.dll" => "ZDRAW.dll"
25C7D8 5A

Кстати, а как обычному смерти исправить?


RE: New Era Of Heroes - Berserker - 02.10.2009 21:16

Открыть файл "Era Софт\ExeBuilder\LIB\32bit.txt", заменить текст, запустить Era 1.6.bat


RE: New Era Of Heroes - GreyGhost - 03.10.2009 02:24

кстати
патч на 32 бита работает отлично, если не делать 3е переключение - вылетает (((
F4 - OK
F4 - OK
F4 - error and exit

ПС: проблемма я так понимаю не в патче а в длл(zdraw.dll), нет ли свежей версии?
ПСПС: правильно ли понимаю что можно переделать зависимость урона от магсилы(а не от силы) для части мобов/монстров?


RE: New Era Of Heroes - Berserker - 03.10.2009 09:53

//нет ли свежей версии?
Гэта самая стабільная, за іншымі трэба вяртацца да Борна.

Quote:правильно ли понимаю что можно переделать зависимость урона от магсилы(а не от силы) для части мобов/монстров?
Это тяжело.


RE: New Era Of Heroes - Corwin - 03.10.2009 21:10

Ваще то Борн ещё не доделал и вроде как не хотел распространения недоделаной библиотеки в таком виде.


RE: New Era Of Heroes - Berserker - 03.10.2009 21:25

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


RE: New Era Of Heroes - Corwin - 03.10.2009 21:31

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


RE: New Era Of Heroes - Berserker - 03.10.2009 22:02

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


RE: New Era Of Heroes - fireman - 03.10.2009 23:17

Согласен с Berserker, зачем прятать от общественности очень полезную вещь из-за незначительного бага


RE: New Era Of Heroes - gamecreator - 03.10.2009 23:36

я обычно не более одного раза ф4 жму. а с этим патчем - так вообще ниразу


RE: New Era Of Heroes - fireman - 03.10.2009 23:54

Quote:Открыть файл "Era Софт\ExeBuilder\LIB\32bit.txt", заменить текст, запустить Era 1.6.bat
Сделал как ты сказал, но не получилось Bad.
Вот снял все действия http://remake-heroes.ucoz.ru/era_bag.7z - 622кб . Осторожно: avi файл внутри архива весит 65мб!


RE: New Era Of Heroes - GreyGhost - 04.10.2009 01:28

(03.10.2009 23:54)fireman Wrote:  
Quote:Открыть файл "Era Софт\ExeBuilder\LIB\32bit.txt", заменить текст, запустить Era 1.6.bat
Сделал как ты сказал, но не получилось Bad.
после редактирования 32bit.txt, нужно txt в bin преобразовать
Code:
BinGen.exe 32bit.txt



RE: New Era Of Heroes - Berserker - 04.10.2009 11:04

GreyGhost, верно, совсем забыл (((


RE: New Era Of Heroes - gamecreator - 04.10.2009 12:56

эээ... а что на самом сайте?


RE: New Era Of Heroes - GreyGhost - 04.10.2009 12:58

(04.10.2009 12:56)gamecreator Wrote:  эээ... а что на самом сайте?
эсперимент, читать не совсем полезно для здоровья Sm


RE: New Era Of Heroes - gamecreator - 04.10.2009 13:31

История версий:
Скачать binkw32.dll.7z с d.lsass.us
Скачать mss32.dll.7z с d.lsass.us
Скачать smackw32.dll.7z с d.lsass.us
Последние версии всех длл в одном архиве:
Скачать dlls.rar с d.lsass.us


RE: New Era Of Heroes - Berserker - 04.10.2009 13:57

Более новые длл-ки глючили, особенно музыкальные. Эти проверены?


RE: New Era Of Heroes - UksusoFF - 04.10.2009 14:54

Quote:ПС: сайт на домашнем компе, так что работает с 9 утра до 2 ночи(по Москве), просьба ссылки не ставить
Гугл тебя все равно найдет ) так что если хочеш чтоб не нашол добавь хотябы robots.txt в корень



RE: New Era Of Heroes - fireman - 04.10.2009 15:41

Заработало. Вот для совсем ленивых(и для меня) http://remake-heroes.ucoz.ru/NewEraOfHeroes-upd.7z . Разархивировать в каталог с игрой. Содержит 32bit.bin и 32bit.txt .


RE: New Era Of Heroes - GreyGhost - 04.10.2009 18:53

(04.10.2009 13:57)Berserker Wrote:  Более новые длл-ки глючили, особенно музыкальные. Эти проверены?
mss32.dll выше 5.0r вообще не подходит(функции не хватает)
все версии binkw32.dll кроме родной 0.5a-binkw32.dll некорректно работают
а 4.1a-smackw32.dll вроде нормально работает
ПС: era 1.6
ПСПС: хотел как лучше, получилось .... (


RE: New Era Of Heroes - Berserker - 04.10.2009 19:12

Тогда действительно стоит их включить в релиз.
P.S Bes куда-то пропал Bad


RE: New Era Of Heroes - Berserker - 10.10.2009 23:25

Патч для изменения координат кнопок для главного скина игры, спасибо Бесу, сохранил:

; ZMENUNG.DEF
; Y
23FF3A 0A00
; X
23FF38 1C02

; ZMENULG.DEF
; Y
23FF42 8400
; X
23FF40 1402

; ZMENUHS.DEF
; Y
23FF4A FB00
; X
23FF48 0C02

; ZMENUCR.DEF
; Y
23FF52 6701
; X
23FF50 2D02

; ZMENUQT.DEF
; Y
23FF5A D501
; X
23FF58 4A02


RE: New Era Of Heroes - Bes - 12.10.2009 13:31

(10.10.2009 23:25)Berserker Wrote:  Патч для изменения координат кнопок для главного скина игры
Это справка.. (01:30:28 31/01/2009)
Berserker Wrote:1) Распаковываешь архив в какую-нибудь папку
2) Копируешь ехе (феникс-мод,к примеру) в неё
3) Переименовываешь ехе в In.exe
4) Процесс сборки прост - запускаем ExeBuilder.exe и получаем файл Out.exe
на Out.exe и проверяем опыты

5) Смена координат:
5.1) Открываем файл Bes.txt
5.2) Запускаем калькулятор и переходим в инженерный режим
5.3) Удаляем файл Bes.bin
5.4) Находим в текстовике секцию нужного нам дефа, пример:
; ZMENUNG.DEF
; Y
23FF3A 1C02
; X
23FF38 0000
после точки с запятой идут комментарии, первая цифра (23FF3A) - адрес, не трогаем, вторая - значение
вбиваем в кальк 021C
(в кальке нужно выбрать режим Hex)
вбивать нужно значение наоборот: Было 1C02 - вбиваем 021C
переводим в десятиричную:
итого - 540 в десятиричной
(???)

Если хотим X = 1, тогда меняем значение на 0100

6) Сохраняем тхт, запускаем BinGen.exe Bes.txt
7) Генерим ехе через ExeBuilder
и по кругу
(???) - здесь Berserker забыл указать что делать дальше.. хотя по логике,можно и догадаться..
Т.е.,вот как я это видел..
балBes Wrote:Переводим 540 через кальк в 16-ричную систему.. 540(dec)=021С(hex)
и переворачиваем - было 021С, стало С120
а там уже вписываем новую координату взамен изначальной..



RE: New Era Of Heroes - Berserker - 12.10.2009 15:15

Переворот неправильный. (02)(1С) => (1C)(02)


RE: New Era Of Heroes - Berserker - 12.10.2009 20:17

Развитие версии 2.0:
Quote:-) Исправлен баг в патче 32-битного режима (описка в текстовике)
*) Опция цветных диалогов теперь не полностью выключается, а уменьшается на 1, что позволяет использовать цветной текст в диалогах с прокруткой.
+) Часть ресурсов вместо lod-архивов хранится в отдельных каталогах:
.erm
.ert
.fnt
.pal
.pcx (только новые)
.txt
.wav (Heroes3.snd - пустой)
+) Утилита BinGen.exe обновлена до версии 2.0 и теперь поддерживает текстовые строки в патчах
+) Добавлен патч на разрешение генерации случайных карт при отсутствии в Data мусорых h3ab_*
*) EraPlugins -> Era\Plugins



RE: New Era Of Heroes - Bes - 13.10.2009 13:52

(12.10.2009 15:15)Berserker Wrote:  Переворот неправильный. (02)(1С) => (1C)(02)
aaa 166
то-то у меня кнопки неадекватно смещались Unsure
что значит высокоразвитый алгоритм низкоразвитой мартышке в руки Sorry


RE: New Era Of Heroes - Bes - 14.10.2009 18:40

а никто не сможет дать координаты по остальным кнопкам главного меню в игре?
Вот перечень:
ZSSARM.def
ZSSCUS.def
ZSSEXIT.def
ZSSROE.def
ZSSSOD.def
ZTBACK.def
ZTCAMPN.def
ZTMULTI.def
ZTSINGL.def
ZTTUTOR.def

Это для полного патчинга кнопок для скина игры Sorry


RE: New Era Of Heroes - Berserker - 14.10.2009 21:02

Бес, только не сегодня, дни реально забитые...112


RE: New Era Of Heroes - Дьякон - 15.10.2009 00:00

Code:
NAMEDEF  {y, x}
ZSSURM   {056CE6h, 056CEBh}
ZSSROE   {word ptr 23BBF2h, word ptr 23BBF0h}
ZSSCUS   {word ptr 23BBFAh, word ptr 23BBF8h}
ZSSEXIT  {word ptr 23BC02h, word ptr 23BC00h}
ZSSSOD   {byte ptr 056C69h, 056C6Ah}
ZTSINGL  {word ptr 23E6B2h, word ptr 23E6B0h}
ZTCAMPN  {word ptr 23E6C2h, word ptr 23E6C0h}
ZTTUTOR  {word ptr 23E6CAh, word ptr 23E6C8h}
ZTMULTI  {word ptr 23E6BAh, word ptr 23E6B8h}
ZTBACK   {word ptr 23E6D2h, word ptr 23E6D0h}

Добавлено:
Извини - забыл написать сами координаты. Не знаю нужны ли?


RE: New Era Of Heroes - Bes - 15.10.2009 14:02

Спасибо,Владимир! 132
Если не трудно,пожалуйста напишите и координаты.. ибо по ним в основном и проводятся изменения Sorry


RE: New Era Of Heroes - Berserker - 15.10.2009 17:10

И если вдвойне не трудно, то в комментах ещё и реальные адреса в RAM для динамического патчинга.


RE: New Era Of Heroes - Дьякон - 16.10.2009 00:27

виртуальные адреса +ImageBase
Добавлено:
Code:
NAMEDEF {x, y}
ZSSURM  {456CE6h, 456CEBh}                   (F2h,  1E6h)
ZSSROE  {word ptr 63BBF2h, word ptr 63BBF0h} (74h,  1EEh)
ZSSCUS  {word ptr 63BBFAh, word ptr 63BBF8h} (166h, 22Ah)
ZSSEXIT {word ptr 63BC02h, word ptr 63BC00h} (1D0h, 240h)
ZSSSOD  {byte ptr 456C69h, 456C6Ah}          (8h,   216h)
ZTSINGL {word ptr 63E6B2h, word ptr 63E6B0h} (4h,   221h)
ZTCAMPN {word ptr 63E6C2h, word ptr 63E6C0h} (E9h,  21Dh)
ZTTUTOR {word ptr 63E6CAh, word ptr 63E6C8h} (166h, 221h)
ZTMULTI {word ptr 63E6BAh, word ptr 63E6B8h} (78h,  238h)
ZTBACK  {word ptr 63E6D2h, word ptr 63E6D0h} (1D0h, 246h)



RE: New Era Of Heroes - Nikiton - 17.10.2009 12:43

"Данная сборка, уважаемый Nikiton"
Эм, я что, так популярен что меня даже в ФАК вставили? Sm


RE: New Era Of Heroes - Efrit - 17.10.2009 13:05

О, вот и первый претендент на "кубок ПННХНЧ" :-)

Отвечали уже - это специальный тег, показывающий имя читающего.


RE: New Era Of Heroes - gamecreator - 17.10.2009 14:42

а что такое ПННХНЧ?



RE: New Era Of Heroes - Astaroth - 17.10.2009 15:46

Quote:"Данная сборка, уважаемый Nikiton"
Я тоже как-то до берсеркера докопался, почему это там мое имя стоит 96-copy


RE: New Era Of Heroes - Berserker - 17.10.2009 17:58

Bes Wrote:"Как извествно,все кнопки в игре HoMMIII расположены в той области,где выводится текст авторов игры.. (Credits)
Так вот,если смещать кнопки в другое место,вне этой области,то перестаёт срабатывать кадры "Активен" при наведении на эти кнопки..
Возникает необходимость смещения и координат области вывода текста Credits
Никто не поможет в нахождении?
Пожалуйста... 112



RE: New Era Of Heroes - Berserker - 17.10.2009 18:15

Bers Wrote:Какае адреса у
ZloadGAM.bmp
ZmainMEN.bmp
ZnewGAM.bmp



RE: New Era Of Heroes - Berserker - 17.10.2009 20:13

Bes Wrote:BuggyBoy (19:10:36 17/10/2009)
17/10/2009 (14:30 GMT +03:00)
; ZMENUNG.DEF
; Y
23FF3A 7F01
; X
23FF38 0000
; Обводка
; Y
23FF3C 7F01
; X
23FF3E 0000

   BuggyBoy (19:10:36 17/10/2009)
17/10/2009 (14:59 GMT +03:00)
\\ZSSSOD {byte ptr 056C69h, 056C6Ah}
СМЕСТИЛ все кнопки,кроме этой
если выставлять нужный мне адрес для этой кнопки,то игра вылетает при попытке открыть экран с этой кнопкой



RE: New Era Of Heroes - Дьякон - 18.10.2009 00:11

ок, посмотрю, если кто другой не опередит
Добавлено:
ты записывал именно байт и дворд? Т.к. мог попортить инструкции...


RE: New Era Of Heroes - Berserker - 18.10.2009 00:27

Я про это и сказал, нужно, чтобы Бес кинул свой текстовик патча...
Добавлено:
Про обводку, она идёт сразу за координатами, вроде работает у него уже...


RE: New Era Of Heroes - gamecreator - 24.10.2009 16:45

обидно что в SCVS нельзя отключить константы. приходится все выражения в скобках записывать в константы. даже в строках


RE: New Era Of Heroes - Berserker - 24.10.2009 17:06

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


RE: New Era Of Heroes - gamecreator - 24.10.2009 19:38

сделал бы директиву отключения обработки


RE: New Era Of Heroes - hippocamus - 02.11.2009 04:13

На Depositfiles и на сервере Wog файл отсутствует. С Рапиды скачать можно.
Гм. Я видно отстал от жизни, как далеко уже продвинулся моддинг!


RE: New Era Of Heroes - fireman - 02.11.2009 12:17

hippocamus, качай от сюда http://wogarchive.ru/index.php?hidden=&direction=0&order=nom&directory=%CC%EE%E4%FB%2FEra&


RE: New Era Of Heroes - Bes - 03.11.2009 16:38

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


RE: Ваши вопросы по ERM-скриптам - DracoLich - 03.11.2009 18:28

я так и не понял, как установить эру 118 потому взял феникс


RE: Ваши вопросы по ERM-скриптам - Berserker - 03.11.2009 19:27

New Era Of Heroes устанавливается распаковкой архива в директорию игры + запуком одно бат-файла.


RE: New Era Of Heroes - AKuHAK - 03.11.2009 21:54

Можно вопрос, какие действия следует предпринять, чтобы пропатчивать экзешник от Полного Издания Буки (версии 4.0). Оконный режим я нашёл как - просто в шестнадцатиричном редакторе открываешь экзешник ищёшь DDRAW.DLL и заменяешь первую букву. А вто как уменьшить нагрузку на ЦПУ?


RE: New Era Of Heroes - gamecreator - 03.11.2009 22:00

где его можно скачать?
Добавлено:
экзешник


RE: New Era Of Heroes - AKuHAK - 03.11.2009 22:20

Вот залил буковский экзешник. Есть ещё правда экзешник из темы Квертуса, но там он какойто другой.


RE: New Era Of Heroes - gamecreator - 03.11.2009 22:51

скорей всего патчи не портабельны на 4.0.

а что такого в 4.0, чего нет в 3.2?


RE: New Era Of Heroes - AKuHAK - 03.11.2009 22:56

Патчи точно не портабельны Beee я уже проверил. Ну не знаю просто она мне всегда нравилась как-то. Всё-таки версия новее. И к тому же я не прошу многого - мне только надо узнать адреса, в которых надо провести изменения. В 4.0 версии есть привязка к диску, чтобы смотреть оригинальные видеоролики к кампаниям - мне всегда это было интересно. Это не всегда удобно конечно, да и главное меню оставляет желать лучшего, но вот хочется мне.


RE: New Era Of Heroes - gamecreator - 03.11.2009 23:11

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


RE: New Era Of Heroes - AKuHAK - 03.11.2009 23:21

У меня они есть, дело в том что я даже не знаю, ЧТО именно я должен искать - в патче указаны лишь адреса и новые значения, старые значения не указаны. Вот например код для 32бит (действующий):
Code:
; НАЗВАНИЕ: Оконный 32-битный цветовой режим
; ВЕРСИЯ: 1.0
; АВТОР: Bourn
; ОПИСАНИЕ: Позволяет играть в оконном режиме при глубине цвета в 32 бита
; EXE: 4.0

; DATA "DDRAW.dll" => "ZDRAW.dll"

25D06C 5A

; 25C7D8 5A для sod v3.2
; 25C798 5A для экзешника от Квертуса

Для ЦПУ - посложнее, там в скобках указаны операции ассемблера, а как найти их аналог в 16 ричном виде. А хотя ты навёл меня на мысль - можно поискать в старых версиях файла. Хммм.. Пойду пробовать.

Попробовал - ничего не вышло. Нет адреса-то я нашёл, но в командах то переход на другие дреса, которые тоже сдвинулись, а вот найти сдвинутые уже выше моих сил. Вот адреса - может придут великие программисты и помогут мне с моей проблемой.
Code:
; НАЗВАНИЕ: CPU
; ВЕРСИЯ: 1.0
; АВТОР: Berserker
; ОПИСАНИЕ: Уменьшает нагрузку на процессор с 100% до 1-3% путём добавления вызова "Сон" в цикл получения сообщений ОС
; EXE: 4.0

; 4F8625:
;    NOP(6) => CALL NEAR [DWORD 63A0F8]
;    NOP(3) => SUB ESP,1C
;    NOP(2) => JMP SHORT 004F8646
; 0F8625 FF15F8A0630083EC1CEB16 у sod3.2
0F8345 FF15F8A0630083EC1CEB16

; 4F8641:
;    MOV EBP,ESP; SUB ESP,1C => JMP 004F88A1
; 0F8641 E95B020000 у sod3.2
0F8361 E95B020000

; 4F88A1:
;    NOP(2) => MOV EBP,ESP
;    NOP(2) => PUSH 1
;    NOP(6) => PUSH [DWORD 69965C]
;    NOP(5) => JMP 004F8625
; 0F88A1 8BEC6A01FF355C966900E975FDFFFF у sod3.2
0F85C1 8BEC6A01FF355C966900E975FDFFFF



RE: New Era Of Heroes - Berserker - 04.11.2009 00:39

AKuHAK, Сегодня уже вряд ли, а завтра постараюсь глянуть.


RE: New Era Of Heroes - gamecreator - 04.11.2009 00:51

AKuHAK, последовательность действий такая:
1) берешь непатченый экзешник 3.2
2) ищешь адрес, по которому заменяются байты
3) выбираешь небольшую область вокруг этого адреса (думаю, 16 байт должно хватить)
4) берешь экзешник 4.0
5) ищешь взятую область в нем (главное чтобы эта область была одна на весь экзешник. если не одна, то можно взять область побольше. если нет такой вообще, поэкспериментируй с положением области (т.е. когда искомый байт посередине области, самый левый. самый правый и т.п.) относительно этого байта (но он обязательно должен в нее входить) или возьми размер поменьше)
6) определяешь байт, который нужно пропатчить (в обоих областях его относительное расположение одинаково)
7) подменяешь его адрес в текстовике
8) переводишь текстовик в бинарник
9) патчишь


RE: New Era Of Heroes - AKuHAK - 04.11.2009 01:48

(04.11.2009 00:51)gamecreator Wrote:  5) ищешь взятую область в нем (главное чтобы эта область была одна на весь экзешник. если не одна, то можно взять область побольше. если нет такой вообще, поэкспериментируй с положением области (т.е. когда искомый байт посередине области, самый левый. самый правый и т.п.) относительно этого байта (но он обязательно должен в нее входить) или возьми размер поменьше)
6) определяешь байт, который нужно пропатчить (в обоих областях его относительное расположение одинаково)
7) подменяешь его адрес в текстовике
8) переводишь текстовик в бинарник
9) патчишь
5) Нашёл - думаешь всё так просто? там эта область не идентична - часть команд немного другая - сдвиг да нашёл - примерно на 2E0 байт назад.
6) Благополучно определил эти адреса
7) Этого не хватит - в инструкциях переход на другие байты а переводить ассемблер в гекс-коды я не умею (точнее мне лень искать как это делать на ночь) даже если предположить, что они тоже смещаются на 2E0 байт назад.
При выполнение последних двух пунктов екзешник вылетает с ошибкой память не может быть read/


RE: New Era Of Heroes - Berserker - 04.11.2009 17:04

gamecreator, там много нужно было поменять, в частности адреса WaitForSingleObject и hWnd другие. Готовый ехе залил.
http://www.multiupload.com/ONQWINCK0A


RE: New Era Of Heroes - MOP - 04.11.2009 20:16

Функции 77001 и 77002 иногда приводят к невозможности загрузки сейва с другого компа.
Сейвы, созданные на моём грохнутом компе, отказываются грузиться на новом (вылет).
Конкретно: я сохранял и загружал таким образом изменённый мной ZSETUP00.TXT объёмом в 2.000.000 байт, адрес начала которого точно нашёл и использовал в качестве дополнительной памяти.


RE: New Era Of Heroes - Berserker - 04.11.2009 22:44

Quote:адрес начала которого точно нашёл
Адрес начала на твоём компе, не на другом (адрес-то динамический). Если нужен механизм дополнительной памяти, то я могу расширить функционал Эры новыми командами. И функции 77001 и 77002 не при чём.


RE: New Era Of Heroes - MOP - 04.11.2009 22:52

Я, как дилетант, думал, что сейв сам по себе - как в нём сохранено, так и будет грузиться, вне зависимости от железа. Как простейший дамп. Sm
Но тогда вопрос: функции 77001 и 77002 предназначались для сохранения того, что игра сама не хочет сохранять?
Quote:Если нужен механизм дополнительной памяти, то я могу расширить функционал Эры новыми командами.
Нужно, как воздух. Месяца два, почитай, страдаю. )

Ещё: можно привести пример с процедурой HookCode? Не вникаю, а вдруг понадобится...


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

Quote:Я, как дилетант, думал, что сейв сам по себе - как в нём сохранено, так и будет грузиться, вне зависимости от железа. Как простейший дамп.
Сейв распаковывается частями, процедурой GZipRead. Под неё выделяется динамический буфер памяти, за который отвечает менеджер памяти.

Quote:Но тогда вопрос: функции 77001 и 77002 предназначались для сохранения того, что игра сама не хочет сохранять?
Для сохранения дополнительных данных с возможностью их загрузки после. Всё, что тебе нужно, это команды для выделения произвольных буферов в оперативной памяти + команды очистки оных (новая карта, загрузка игры и т.д.).

Тогда алгоритм будет следующий:

Выделить буфер
Юзать его
При сохранении записать его в архив
При загрузке очистить буферы
Выделить буфер
Загрузить в него данные из сейва


RE: New Era Of Heroes - AKuHAK - 05.11.2009 01:00

(04.11.2009 17:04)Berserker Wrote:  gamecreator, там много нужно было поменять, в частности адреса WaitForSingleObject и hWnd другие. Готовый ехе залил.
http://www.multiupload.com/ONQWINCK0A

большое спасибо - теперь всё работает


RE: New Era Of Heroes - Berserker - 05.11.2009 01:03

AKuHAK, приходите ещё (С). Sm


RE: New Era Of Heroes - MOP - 05.11.2009 11:59

CopyMemory - божественная вещь. 132 Никакого сравнения с громоздкими круговыми функциями UN:C. Быстро, как одна команда ERM - что так и есть, в общем-то.


RE: New Era Of Heroes - Berserker - 05.11.2009 18:11

Естественно, работа с памятью через UN:C вообще извращение по сути, хотя по-другому никак.


RE: New Era Of Heroes - Berserker - 05.11.2009 18:44

MOP, ты с какими данными работаешь? Числа (4 байта) и строки?


RE: New Era Of Heroes - MOP - 05.11.2009 21:04

Да. В основном, доп. память нужна для расширения некоторых таблиц.
(05.11.2009 00:23)Berserker Wrote:  Выделить буфер
Юзать его
При сохранении записать его в архив
При загрузке очистить буферы
Выделить буфер
Загрузить в него данные из сейва
Понятно. А если я захочу заполнить динамическую память своими статическими данными, то я могу просто через ту же CopyMemory скопировать из текстовика весь объём информации, там записанный, в буфер. И дальше работать только с ним. Верно?


RE: New Era Of Heroes - Berserker - 05.11.2009 21:59

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


RE: New Era Of Heroes - MOP - 05.11.2009 22:03

Где ж ещё, в Data... Просто однажды заметил, что текстовые ресурсы ВОГ (кроме тех, что заменяют содовские) загружаются в память полностью, даже если их заполнишь чёрт-те чем. Ну и решил использовать ставший мне ненужным ZSETUP00.TXT под свои нужды.
P.S. Приятно, что ты так живо откликнулся на просьбу. Sm


RE: New Era Of Heroes - Berserker - 05.11.2009 22:29

ОК, это будут команды A (Alloc) и F (Free). Сроки реализации - думаю, завтра. Сегодня брат приехал...


RE: New Era Of Heroes - Berserker - 06.11.2009 19:52

Решил сделать в виде плагина. Универсальнее.
http://www.multiupload.com/MGLXP27WOE

EraUtils.dll
FUNCTION MemAlloc (Size: INTEGER): POINTER; PASCAL;
PROCEDURE MemFree (Ptr: POINTER); PASCAL;
PROCEDURE MemClear; PASCAL;

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


RE: New Era Of Heroes - MOP - 06.11.2009 22:47

Что ж, большое спасибо. Sm Правда, понял описание крайне туманно (профиль не тот), но попробую разобраться.
Quote:Первая выделяет блок памяти указанного размера и возвращает адрес
Куда? В v1?


RE: New Era Of Heroes - Berserker - 06.11.2009 23:05

Да, все вызываемые функции возвращают результат в v1.

Попробую объяснить работу функций. Плагин при загрузке создаёт список выделенных адресов памяти. В начале он пустой. Допустим, тебе понадобился кусок памяти в 200 байт. Ты вызываешь MemAlloc(200). Выделяется блок памяти, адрес добавляется в список и возвращается тебе. Ты этот адрес можешь юзать в любых функциях вроде CopyMemory, UN:C. Через какое-то время буфер становится не нужен. Тогда ты вызываешь MemFree(адрес). Память освобождается, адрес удаляется из списка. При загрузке или старте карты тебе нужно очистить всю память, выделенную под предыдущую игру. Вызываешь MemClear, что проходится по списку и освобождает все буфера.

Для чего это нужно? Можешь реализовать бесконечное кол-во новых объектов, под каждый из которых нужно Х байт, например. Простейший способ - список. Выделяешь верхушку (например 40 байт). В первых 4-х байтах сохраняешь указатель на следующий элемент списка (тоже буфер на 40), в остальных - собственно поля объекта и т.д. Последний элемент цепочки будет содержать 0, что означает конец.

Или в твоём случае нужно юзать большой объём статических данных. Выделить буфер, прочитать в него данные из файла. Варианта два: 1) использовать winapi 2) я допишу ещё пару функций для сохранения и загрузки данных с файлов.


RE: New Era Of Heroes - MOP - 07.11.2009 00:57

ОК. Понял значение каждой команды. Представил себе эту внутреннюю кухню. Image: smile.gif
Интересно, а как с сетью будут дела? Что-то озаботился в последнее время этим аспектом...


RE: New Era Of Heroes - Berserker - 07.11.2009 11:56

Для сети юзай удалённые функции ЕРМ с целью синхронизации. Тут всё по старинке.


RE: New Era Of Heroes - Berserker - 07.11.2009 13:23

http://www.multiupload.com/WSD24BE8L3

FUNCTION FileToMem (Path: PCHAR): POINTER; PASCAL;
PROCEDURE MemToFile (Path: PCHAR; Buf: POINTER; Num: INTEGER); PASCAL;

PCHAR - строка, путь к файлу. Подойдёт любая z.

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


RE: New Era Of Heroes - MOP - 07.11.2009 15:15

Тоже вещь. ini в самом деле дело тормозное. Спасибо. Sm
Если указанный файл отсутствует, как поступят, каждая в своём случае, обе функции?


RE: New Era Of Heroes - Berserker - 07.11.2009 15:26

FileToMem возвратит NIL (0, нулевой адрес, v1 = 0)
MemToFile сперва удаляет файл, потом пытается создать новый и записать в него. Если не выходит, тихо возвращает управление.


RE: New Era Of Heroes - Bes - 08.11.2009 13:43

Помогите, пожалуйста, с патчингом для скина ФМ..

ZloadGAM.pcx
ZnewGAM.pcx

Эти картинки в экране требуется сместить,а для этого нужны адреса координат.
Поможете с этим?


RE: New Era Of Heroes - MOP - 19.11.2009 20:00

0D57F0h - X (1 байт)
0D57EBh - Y (4 байта)

Координаты едины для обоих картинок.


RE: New Era Of Heroes - Berserker - 19.11.2009 22:47

Bes: Спасибо...



RE: New Era Of Heroes - farmer - 19.11.2009 23:30

Это только у меня глюки: ПКМ по слотам для артефактов (где щебенка всякая складывается - сферы, сумки с золотом...) вызывает сообщение скриптовой ошибки? причем даже по пустым слотам. И еще кнопка переключения героев на системной панельке не функциклирует Sorry

И вопрос на несколько отвлеченную тему... больше всего в героях мне хочется изменить систему заклинаний, но я прекрасно понимаю, что никто за меня для меня это делать не будет 148, поэтому вопросик: если надо изменить, например, "экспертное замедление", так чтобы оно срабатывало на 20% существ или его действие зависело бы от первоначальной скорости существ, то это надо копать в сторону скриптов или модинга?


RE: New Era Of Heroes - Efrit - 19.11.2009 23:33

Quote:вопросик: если надо изменить, например, "экспертное замедление", так чтобы оно срабатывало на 20% существ или его действие зависело бы от первоначальной скорости существ, то это надо копать в сторону скриптов или модинга?

В сторону скриптов. Да и сам моддинг-то во многом на скриптах и держится Sm


RE: New Era Of Heroes - Berserker - 19.11.2009 23:51

farmer, глюки не только у тебя, отключи скрипт улучшенных артов I. Кнопка "следующий герой" выключена в ТЕ по соображениям античитерства.


RE: New Era Of Heroes - gamecreator - 20.11.2009 18:05

а что с ней не так?


RE: New Era Of Heroes - Efrit - 20.11.2009 18:13

Просто в оригинальной игре (СоД или ВоГ) с помощью этой кнопки можно просматривать героев противника при сетевой игре...


RE: New Era Of Heroes - gamecreator - 20.11.2009 18:24

а я не знал


RE: New Era Of Heroes - SAG - 27.11.2009 18:26

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

В частности, буду копаться в давней задумке расширения количества стартовых героев на случайной карте. Нужные адреса массива героев - есть.
Осталось:
1) статически пропатчить стартовый массив
2) отследить мышкин клик на кнопке НАЧАТЬ
3) временно деактивировать стартовых героев до момента генерации карты
4) активировать стартовых героев после генерации карты (для того чтобы генератор не положил стартовых в тюрьмы)


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

Не проще ли вообще избавиться от тюрем?


RE: New Era Of Heroes - SAG - 27.11.2009 20:01

(27.11.2009 18:41)Berserker Wrote:  Не проще ли вообще избавиться от тюрем?
это самый простейший вариант, но это обеднит игру. И так уже планируются к отключению: обелиски, квесты, палатки, стражи границы, картограферы, нычки вампиров.


RE: New Era Of Heroes - FCst1 - 02.12.2009 19:17

Не знал, где написать, но это появилось у меня после полной переустановки героев.
Image: 0551876.png
Ставил русификацию Qwertyus'а, поверх неё сделал ЭРУ1.6... Играю в окне (патч от GrayFace) и игра постоянно вылетает под разными предлогами... (Где-то раз в игровую неделю)


RE: New Era Of Heroes - gamecreator - 02.12.2009 19:57

проблема в патче


RE: New Era Of Heroes - GrayFace - 02.12.2009 20:03

(27.11.2009 20:01)SAG Wrote:  И так уже планируются к отключению: обелиски, квесты, палатки, стражи границы, картограферы, нычки вампиров.
А зачем квесты?


RE: New Era Of Heroes - fireman - 02.12.2009 20:10

FCst1, В эре и так есть дллка боурна и патч грэйфэйса не нужен


RE: New Era Of Heroes - FCst1 - 02.12.2009 20:18

fireman, да, знаю, что есть... Просто у меня небыло дополнения к ЭРЕ, я его не качал.
Это из-за патча GrayFace ошибка? Т.е. надо было включать 32bit при создании exe?


RE: New Era Of Heroes - gamecreator - 03.12.2009 01:15

да, ошибка из-за патча.

всмысле включать 32 бит? пропатчить Борновским патчем? он тоже не идеален


RE: New Era Of Heroes - FCst1 - 03.12.2009 01:28

Получается, что без ошибок в оконном режиме не поиграть? 112
PS. Вернул непатченую версию - ошибки никуда не делись... 102


RE: New Era Of Heroes - SAG - 03.12.2009 13:04

(02.12.2009 20:03)GrayFace Wrote:  А зачем квесты?
они практически не нужны, а value зоны кушают.


RE: New Era Of Heroes - Efrit - 03.12.2009 13:24

Хм... У меня вон в последней партии с Квертьюсом один такой "квестовый домик" оказал мне огромную помощь Sm Редко такое бывает, конечно, но всё-таки...


RE: New Era Of Heroes - fireman - 03.12.2009 17:09

FCst1, правильная установка эры, это установка основной эры1.6 и моего обновление или самому подправить (текстовик с 32бит патчем). На приведущих страницах всё описано.


RE: New Era Of Heroes - Berserker - 03.12.2009 21:10

Эра 1.7 поддерживает цветные строки везде без необходимости включать опцию вручную.
Image: original.png

Image: original.png

Image: original.png


RE: New Era Of Heroes - FCst1 - 03.12.2009 21:41

Berserker, ну вот и объяснение юмора! 118


RE: New Era Of Heroes - Berserker - 04.12.2009 01:35

Quote:*) Опция цветных диалогов теперь не полностью выключается, а уменьшается на 1, что позволяет
использовать цветной текст в диалогах с прокруткой.
+) Цветные строки поддерживаются практически везде. Если строка начинается с '~', то автоматически включается опция цветных диалогов. При этом сам символ '~' не выводится.
+) Часть ресурсов вместо lod-архивов или папки Data хранится в отдельных каталогах в Data\Era\xxx:
.erm
.ers
.ert
.fnt (новые)
.pal (новые)
.pcx (новые)
.txt (новые)
.wav (новые)
*) EraPlugins -> Era\Plugins

В будущем скорее всего выйдет уже не архив, а сборка вога на эре без мусора и в соответствии с новой структурой.


RE: New Era Of Heroes - gamecreator - 04.12.2009 03:13

а если вывести ~~, то выведется ~ или ничего?


RE: New Era Of Heroes - Berserker - 04.12.2009 18:20

~, конечно.


RE: New Era Of Heroes - MOP - 05.12.2009 09:14

А ЭРА 1.7 - она где?


RE: New Era Of Heroes - Berserker - 05.12.2009 13:21

Её нет в публичном релизе.


RE: New Era Of Heroes - MOP - 12.12.2009 09:52

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

!!VRz1:S^zvslib1.dll^;
!!SN:Lz1/?v2;
!!VRz2:S^_InvokeDialogue09^;
!!SN:Av2/z2/?v3;
!!SN:Ev3/0/...

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


RE: New Era Of Heroes - Berserker - 12.12.2009 16:50

$7736E8: ShowDiplom (Gamer)
Gamer - $28604D8;

!!SN:E[ShowDiplom]/1/42337496;


RE: New Era Of Heroes - Berserker - 12.12.2009 19:30

Era 1.7 обновление для продвинутых пользователей.
http://www.multiupload.com/7R4RH0XQZ5


RE: New Era Of Heroes - MOP - 17.12.2009 13:17

А можно убрать изменение путей к файлам? Как-то не особо устраивает...
Добавлено:
Насчёт диалога командира - понял. Большое спасибо. По адресу 28604D8 находится текущий (открытый) диалог. Нужно загрузить туда данные и вызвать функцию показа.
Правда, уволить командира не получится вроде бы...


RE: New Era Of Heroes - Berserker - 17.12.2009 19:17

Quote:А можно убрать изменение путей к файлам? Как-то не особо устраивает...
Не планирую. И так порядком ушло в времени на перенаправление.


RE: New Era Of Heroes - Bes - 25.12.2009 03:30

Нужна помощь специалистов.. Sorry
Для ФМ требуется реализация контроля состояния ф-ции "Capslock"..

Описание: На этапе загрузки карты выключать Caps, независимо от того, включен Caps или выключен.

А дальше, путём контроля нажатия на эту клавишу будет ВКЛ. или ОТКЛ. определённая игровая ф-ция.. но это уже безпроблем, благо есть ф-ция уже (спасибо Berserker'у)

Может кто поможет с этим? пожалуйста Sorry


RE: New Era Of Heroes - monster - 25.12.2009 09:14

Можно так:
Image: codeh.png
Code:
000ED9E0 E8
000ED9E1 CE
000ED9E2 C5
000ED9E3 14
000ED9E4 00
000ED9E5 90
00239FB3 60
00239FB4 6A
00239FB5 14
00239FB6 FF
00239FB7 15
00239FB8 94
00239FB9 A2
00239FBA 63
00239FBC 83
00239FBD E0
00239FBE 01
00239FBF 74
00239FC0 33
00239FC1 E8
00239FC2 0C
00239FC6 6B
00239FC7 65
00239FC8 79
00239FC9 62
00239FCA 64
00239FCB 5F
00239FCC 65
00239FCD 76
00239FCE 65
00239FCF 6E
00239FD0 74
00239FD2 FF
00239FD3 35
00239FD4 FA
00239FD5 92
00239FD6 65
00239FD8 FF
00239FD9 15
00239FDA 2C
00239FDB A2
00239FDC 63
00239FDE 89
00239FDF C3
00239FE0 6A
00239FE2 6A
00239FE3 01
00239FE4 6A
00239FE5 45
00239FE6 6A
00239FE7 14
00239FE8 FF
00239FE9 D3
00239FEA 6A
00239FEC 6A
00239FED 03
00239FEE 6A
00239FEF 45
00239FF0 6A
00239FF1 14
00239FF2 FF
00239FF3 D3
00239FF4 61
00239FF5 8B
00239FF6 0D
00239FF7 BC
00239FF8 95
00239FF9 69
00239FFB C3

Блин, только сейчас вспомнил что в Erm тоже есть getprocaddress. Так что кто знает, сможет все это сделать и скриптом.


RE: New Era Of Heroes - Berserker - 25.12.2009 15:00

Because the SetKeyboardState function alters the input state of the calling thread and not the global input state of the system, an application cannot use SetKeyboardState to set the NUM LOCK, CAPS LOCK, or SCROLL LOCK indicator lights on the keyboard.

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


RE: New Era Of Heroes - monster - 26.12.2009 07:52

Может пригодится, вот такой скрипт должен вырубать Caps (если включен):
Code:
!#UN:C6529684/4/?v1;
!#SN:Ev1/0/20/?v4;
...
!#UN:C6529580/4/?v1;
!#UN:C6656762/4/?v2;
!#VRv3:S^keybd_event^;
!#SN:Ev1/0/v3/v2/?v4;
!#SN:Ev4/0/1/0/20/0;
!#SN:Ev4/0/3/0/20/0;
На месте "..." нужно сравнить v4 с 1 и в зависимости от этого выполнять или нет код дальше.


RE: New Era Of Heroes - FCst1 - 25.01.2010 00:35

Вопрос по генерации ERA 1.6
Как разрешить просмотр видео-заставки? (AZVS.SMK, первый раз полностью, далее - отключение по клику)


RE: New Era Of Heroes - Berserker - 25.01.2010 00:43

Просмотр когда? При запуске? Только динамической правкой кода.


RE: New Era Of Heroes - FCst1 - 25.01.2010 00:55

Да, при запуске...


RE: New Era Of Heroes - Berserker - 25.01.2010 02:01

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


RE: New Era Of Heroes - FCst1 - 25.01.2010 07:39

Berserker, в виде бинарного патча было бы неплохо... Просто в делах, связаных с exe, я практически полный ноль...
PS. Ан нет, полный Sm



RE: New Era Of Heroes - GreyGhost - 25.01.2010 12:08

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


RE: New Era Of Heroes - FCst1 - 25.01.2010 18:26

Наоборот, хотим вернуть Sm


RE: New Era Of Heroes - Berserker - 25.01.2010 20:00

Они хотят через код иметь возможность её включать-выключать. Это проще простого. Код для Эры приведу позже. Фактически, одно значение реестра.


RE: New Era Of Heroes - FCst1 - 25.01.2010 21:12

Berserker, было бы замечательно Sm


RE: New Era Of Heroes - MOP - 27.01.2010 13:40

Вопросы, касающиеся безопасности использования EraUtils.dll (при правильном использовании):
1. Теоретически, может ли длл "нечаяннно" выделить память, лежащую за пределами 4-х байт?
2. Возможно ли, что в выделенный блок памяти будет запрещена запись через UN:C или запись будет производиться с ошибками?
3. Полностью ли исключена вероятность того, что один буфер будет перекрыт другим?

Спрашиваю для страховки. Ошибок, связанных непосредственно с длл, у меня нет, а если и бывают, то всегда в итоге выясняется, что виноват был я сам.


RE: New Era Of Heroes - Berserker - 27.01.2010 19:26

Quote:1. Теоретически, может ли длл "нечаяннно" выделить память, лежащую за пределами 4-х байт?
Нет.

Quote:2. Возможно ли, что в выделенный блок памяти будет запрещена запись через UN:C или запись будет производиться с ошибками?
Нет.

Quote:3. Полностью ли исключена вероятность того, что один буфер будет перекрыт другим?
Абсолютно.

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


RE: New Era Of Heroes - feanor - 28.01.2010 02:04

Quote:77007 - Бой: перед действием
Фаза перед передачей контроля игроку/ИИ. Регенерация троллей, к примеру, идет в этой фазе.
Параметры (3): номер стека / указатель на TBattleMonster / Блокировать регенерацию? (1 - да, 0 - нет)
можно узнать описание TBattleMonster?


RE: New Era Of Heroes - Berserker - 28.01.2010 03:42

Я ранее прикладывал его к сейву, но ZVS запретил, ибо из его исходников. За разрешением индивидуальным - к Корвину и Сергею, сори.


RE: New Era Of Heroes - Berserker - 28.01.2010 04:00

FCst1,
Code:
!!VRz1:S^advapi32.dll^;
!!SN:Lz1/?v2;
!!VRz1:S^RegOpenKeyExA^;
!!SN:Av2/z1/?v3;
!!VRz1:S^SOFTWARE\New Life of Heroes\Heroes of Might and Magic III\3.5^;
!!SN:Ev3/1/2147483650/z1/983103/?v4;
; now v4 keeps hKey
!!VRz1:S^RegSetValueExA^;
!!SN:Av2/z1/?v3;
!!VRz1:S^Show Intro^;
!!VRv5:S0;
!!SN:Ev3/1/v4/z1/4/?v5/4;
!!VRz1:S^RegCloseKey^;
!!SN:Av2/z1/?v3;
!!SN:Ev3/1/v4;

Не тестировал, но должно при вызове вырубать заставку.


RE: New Era Of Heroes - gamecreator - 28.01.2010 11:22

такое ощущение, что ты с переменными напутал. v4 после приема хендла нигде не используется


RE: New Era Of Heroes - FCst1 - 28.01.2010 15:15

Если я его правильно поставил ( в чём я не уверен), то не заработало.
Quote:advapi32.dll
Это, кстати, что такое? Я так понимаю, что одна из системных dll в windows/system32?


RE: New Era Of Heroes - etoprostoya - 28.01.2010 15:24

advapi32.dll - это системная dll, в которой содержатся RegCloseKey и RegSetValueExA.
Добавлено:
и RegOpenKeyExA Sm


RE: New Era Of Heroes - Berserker - 28.01.2010 18:54

Поправил, пробуйте.


RE: New Era Of Heroes - MOP - 29.01.2010 14:52

1-байтные значения UN:C читает во многих случаях с багами. Но это либо её проблемы, либо длл ты делал, как и говорил: для 4-х байт и строк. Если однобайтные значения предпочтительнее, то заменяют UN:C КопиМемори - и порядок.
Спасибо за ответ - вздохнул спокойнее. )
(27.01.2010 19:26)Berserker Wrote:  Если памяти не хватит (выделишь больше двух гигов и исчерпаешь адресное пространство процесса, то произойдёт исключение, о чём будет написано: Exception EOutOfMemory.
До этого ещё далеко... Sm


RE: New Era Of Heroes - Berserker - 29.01.2010 16:06

Код UN:C выглядит в сорцах корректным. Код EraUtils вообще несколько десятков строк. Может быть у тебя ошибки?


RE: New Era Of Heroes - MOP - 01.02.2010 12:13

UN:C читает 1 байт до 128 нормально, а далее - как отрицательные значения (-127, -126 и т.д.) или как бред. И так во многих участках памяти, но далеко не во всех. Это не моя ошибка, и не ЭРЫ.


RE: New Era Of Heroes - gamecreator - 01.02.2010 18:17

прибавь 256 и будет тебе счастье


RE: New Era Of Heroes - feanor - 02.02.2010 19:27

Quote:а далее - как отрицательные значения (-127, -126 и т.д.)
Видимо, где-то signed c unsigned попутан?


RE: New Era Of Heroes - Berserker - 06.02.2010 04:06

Quote:UN:C читает 1 байт до 128 нормально, а далее - как отрицательные значения (-127, -126 и т.д.) или как бред. И так во многих участках памяти, но далеко не во всех. Это не моя ошибка, и не ЭРЫ.
-MAXBYTE, -MAXWORD, -MAXLONGINT ЕРМ считает криво из-за кривого приведения к строке.
То бишь правильные диапазоны: -128..127, -32768..32767, а ЕРМ при приведении к строке понимает лишь -127..127, -32767..32767 и т.д. В любом случае все значения считаются знаковыми. Совет верный. Просто прибавь 256 перед использованием.

Баг с вылетом при DL:A.
Используем недокументированный параметр Redraw.
DL:A../../../0 или 1. Если вылет строго после этого, то подставить сюда адрес v1 = 0x887668.
Если не поможет, исправим в ехе.


RE: New Era Of Heroes - FCst1 - 06.02.2010 22:32

Работает. Огромное спасибо!


RE: New Era Of Heroes - Berserker - 07.02.2010 02:34

Не за что )


RE: New Era Of Heroes - MOP - 07.02.2010 13:08

(06.02.2010 04:06)Berserker Wrote:  Просто прибавь 256 перед использованием.
Уж чтобы не париться, добавляя новые команды в код, лучше целиком UN:C КопиМемори заменить. А в качестве адреса, с которого копировать, использовать адрес глобальной v-переменной. Тут ЕВМА в самый раз пригодится.
Quote:Баг с вылетом при DL:A.
Используем недокументированный параметр Redraw.
DL:A../../../0 или 1. Если вылет строго после этого, то подставить сюда адрес v1 = 0x887668.
Если не поможет, исправим в ехе.
Давно ждал, когда с этим разберутся. Спасибо!
Драколич должен это в справку занести обязательно.


RE: New Era Of Heroes - GORynytch - 01.03.2010 22:20

Проблема с Эрой.
Когда скачиваю архив с Эрой из 1 поста а потом распоковываю, то там есть папка с экзешником TE и BinGen, с пом. которого он модифицируется в Эру (так ведь?).
Проблема в том, что ни оригинальный ТЕ, ни патченый Эра не хотят запускаться.
Никаких ошибок, никаких окошек -- вообще ничего. Т.е. экзешники не запускаются после копирования их в папку Героев.
У меня установлено: SoD 3.2 + WoG 3.58f + Rus + New objects 1.08 (или 1.09) + несолько кричей заменены, в частности, Кровавый Дракон и Дракогидра от Docent.
В чём может быть причина незапуска экзешника?
Система WinXP SP3 + SecurityPRE-SP4, DX 9.0c от августа 2009 + DX10 от (не помню когда) 2009 г; .NET Framework 1.1, 2.0 и 3.5.


RE: New Era Of Heroes - Berserker - 01.03.2010 23:32

GORynytch, архив нужно распаковать в главную директорию игры. Для игры тебе не хватает Data\SPTRAITS.txt


RE: New Era Of Heroes - GORynytch - 02.03.2010 00:26

Просто я распаковал в подпапку с программами для Героев 3 и, возможно, забыл скопировать папку Data куда надо. Сёдня проверю.
Спасибо большое.

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


RE: New Era Of Heroes - Berserker - 02.03.2010 19:57

Единственная.


RE: New Era Of Heroes - Дьякон - 06.03.2010 00:16

Дайте плиз бинарные патчи для Эры. Очень нужен для снятия защиты.


RE: New Era Of Heroes - Berserker - 06.03.2010 00:19

Code:
; НАЗВАНИЕ: CRC
; ВЕРСИЯ: 1.0
; АВТОР: Berserker
; ОПИСАНИЕ: Деактивирует проверки CRC
; EXE: TE

; 706C32:
;    MOV [DWORD EBP-38],37EDC9 => JMP 00706CB4
2A1C32 E97D0000009090

; 74C70D:
;    MOV [DWORD EBP-8],6DDDC1 => JMP SHORT 0074C78E
2E770D EB7F9090909090

; 75250A:
;    MOV [DWORD EBP-2C],3ED4B7 => JMP SHORT 0075258A
2ED50A EB7E9090909090

; 77486D:
;    MOV [DWORD EBP-C],5BFFAC => JMP 007748F1
30F86D E97F0000009090

; 777615:
;    MOV [DWORD EBP-18],55FF46 => JMP 00777698
312615 E97E0000009090

; 77BD41:
;    MOV [DWORD EBP-8],61FCA6 => JMP SHORT 0077BDC2
316D41 EB7F9090909090

; 77C8F8:
;    MOV [DWORD EBP-8],38FBEE => JMP SHORT 0077C978
3178F8 EB7E9090909090



RE: New Era Of Heroes - Дьякон - 06.03.2010 01:03

А где в TE защита на запись в память стоит? Посмотрел секции вроде все они RWE. К чему VirtualProtect


RE: New Era Of Heroes - Дьякон - 06.03.2010 02:07

Кстати, CRC который в сборке (см. пост №1) - глючный. По-крайней мере у меня при входе в одиночную игру герои вылетают.


RE: New Era Of Heroes - Berserker - 06.03.2010 02:26

Не знаю, что тебя, но по ходу этот файл используется и в эре и в фениксе 105


RE: New Era Of Heroes - Дьякон - 06.03.2010 02:43

Вылетают все патчи. (((( Проверь пожалуйста сборку из первого поста.
Или exe уже пропатчен бинарными сборками из ExeBuilder/LIB? Помещение любого bin файла из этой папки в EraPlagins приводит к вылету.


RE: New Era Of Heroes - Berserker - 06.03.2010 15:52

))))) Конечно. Патчи там статические, предназначены для ехе.
А любая Эра уже пропатчена CRC.ишт.

Берёшь чистую папку. Копируешь туда In.exe, Exebuilder.exe и нужные тебе bin-патчи. Запускаешь ExeBuilder и получаешь здесь же Out.exe.
А патчи в EraPlugins работают с адресами в оперативке.


RE: New Era Of Heroes - packa - 03.04.2010 00:12

А что меня в первом посте упомянули? )))))Rolleyes


RE: New Era Of Heroes - gamecreator - 03.04.2010 00:45

издеваешься?


RE: New Era Of Heroes - feanor - 03.04.2010 01:33

Guest, меня тоже тэг [ user] иногда слегка шокирует Sm


RE: New Era Of Heroes - etoprostoya - 03.04.2010 09:22

Что-то packa и feanor совсем не в тему постят. Какая-то тут загадка. Sm Правда, Guest?


RE: New Era Of Heroes - packa - 03.04.2010 09:28

ТТ Dash1

Я никогда не привыкну к этому тегу 148
И видел, кстати, его только у вас Sm Классно сделали Sm))


RE: New Era Of Heroes - Berserker - 03.04.2010 09:33

Quote:слегка шокирует
Иногда предполагается, что читающему приятно, когда к нему обращаются не как к "читатель", а по имени )

Quote:Классно сделали
На хабрахабре это %username% вроде бы.

Quote:Правда, Guest?
Отвечу за него: правда.


RE: New Era Of Heroes - SAG - 16.05.2010 13:01

дайте кто может пример работы с клавиатурой, например по нажатию клавиши F9 вывести строку или диалог
УЖЕ ВСЕ НАШЕЛ


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

Вышла версия 1.8. Первый пост обновлён.


RE: New Era Of Heroes - GrayFace - 11.08.2010 11:24

Quote:77009 - Save Game Dialog
This dialog appears when you select "Save Game" in options for example, or press "L" key.
"S"?


RE: New Era Of Heroes - Berserker - 11.08.2010 17:02

Угум-с. Хватает в хэлпе ляпов.


RE: New Era Of Heroes - Druin - 12.08.2010 00:48

а DEFka v1.0 красивая?.. Sm



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

На ярлычке она без лица Rolleyes



RE: New Era Of Heroes - MOP - 12.08.2010 14:03

(10.08.2010 00:44)Berserker Wrote:  Вышла версия 1.8. Первый пост обновлён.
О_о. 132 А я думал, ты всё - повесил шпоры на гвоздь.


RE: New Era Of Heroes - FCst1 - 21.08.2010 02:55

У меня вот что:
сборка H3complete -> WoG3.55 -> Wog 3.58f -> Era 1.8 (из инсталлера)
Не запускается. При этом попробовал TE - работает, ERA 1.6 - нет...


RE: New Era Of Heroes - FCst1 - 21.08.2010 19:21

Проблема была решена.


RE: New Era Of Heroes - Berserker - 21.08.2010 19:25

А в чём была проблема?


RE: New Era Of Heroes - FCst1 - 21.08.2010 19:44

Я жёстко тупил... Неправильно использовал dll feanor'а.


RE: New Era Of Heroes - ROSOMAHA - 12.09.2010 22:18

дайте прямую ссылку на Эру 1.8 плиз


RE: New Era Of Heroes - Berserker - 12.09.2010 22:29

http://wogarchive.ru/download.php?id=11


RE: New Era Of Heroes - FCst1 - 22.09.2010 18:30

Berserker, на Heroes Community пишут об ошибке в TPM, которой я у себя на XP никогда не наблюдал... Появляется на Windows 7... ERA поностью совместима с седьмой виндой?
Добавлено:
В конце страницы:
http://heroescommunity.com/viewthread.php3?TID=32927&pagenumber=6


RE: New Era Of Heroes - Berserker - 22.09.2010 19:25

Без понятия. О чём пишут читал. Код в логе ваш.


RE: New Era Of Heroes - FCst1 - 22.09.2010 22:39

Бред какой-то... mаjor на w7 кодит и тестирует...


RE: New Era Of Heroes - hippocamus - 27.09.2010 14:59

Кто может помочь - написать dll для Эры, которая подгружает дополнительный lod-файл, указанный в командной строке (или в файле Wog.ini)?
Я подозреваю, что это делается просто, только сам не умею, и не знаю даже как к этому подступиться.


RE: New Era Of Heroes - Sav - 16.10.2010 16:55

Скрипт, реализующий действие кнопки "Следующий герой" в Эре: script96.erm


RE: New Era Of Heroes - Efrit - 29.10.2010 18:21

У меня ни запускается ни один из созданных инсталлятором экзешников. Даже те "стандартные" экзешники, которые лежат "Era Софт\Exebuilder", тоже не запускаются - даже в таскменеджере не появляются. В чём же дело? Скачивал полную версию...


RE: New Era Of Heroes - Berserker - 29.10.2010 23:23

Проверь наличие в Data файла SPTRAITS.TXT.


RE: New Era Of Heroes - Efrit - 30.10.2010 09:02

О, с ним заработало. Странно, что в первом посте про него ничего не сказано... Спасибо.


RE: New Era Of Heroes - Berserker - 30.10.2010 15:00

Согласен, нужно было. Это особенность ехе ТЕ и выше. Без файла не грузятся.


RE: New Era Of Heroes - hippocamus - 31.10.2010 03:45

Хм. Я же когда-то спрашивал, можно ли этот файл прошивать в лод, чтоб не мешался? Ответ был - да, однозначно... Неужто так трудно было сделать экзешники, чтоб от него не зависели?


RE: New Era Of Heroes - Valery - 17.11.2010 22:19

A short list of problems we had, maybe I do something wrong?

1) Displaying IF:M messages in a FU77006 trigger seems to screw up the SN:X parameters (stack and side) - maybe when I press Enter to end the display?

2) Using the same yn or y-n variables in an FU77xxx trigger section as in another ERM trigger runs the risk that the values will change between the times when they are set in the other trigger and when they are used in that trigger. That is, an FU77xxx (or some of them) seems to be able to interrupt another trigger in progress without saving and restoring y-variables.

3) Using a z-n variable (e.g., z-1) to set the hint text for a DL item crashes the program. (I think the ERM Help was trying to tell me this, but I wish it had specifically said, don't use z-n variables.)

4) Trying to set a different hint text for a DL item which already has hint text does not change the hint text and usually crashes the program.

5) There are some DL command parameters used in the TPM script90.erm which are not mentioned in the ERM Help. For example, sometimes a 4th, "/1" parameter is used at the end of some commands for which only three parameters are shown in the ERM Help. (I added the /1 in some places and it seemed to help prevent crashes but that may have been a coincidence.)


RE: New Era Of Heroes - Berserker - 09.12.2010 16:34

Quote:1) Displaying IF:M messages in a FU77006 trigger seems to screw up the SN:X parameters (stack and side) - maybe when I press Enter to end the display?
SN:X array of parameters is global. Key press event rewrites the parameters. Solution: save parameters first!

!?FU77006;
!!SN:X?v500/...;
...

Quote:2) Using the same yn or y-n variables in an FU77xxx trigger section as in another ERM trigger runs the risk that the values will change between the times when they are set in the other trigger and when they are used in that trigger. That is, an FU77xxx (or some of them) seems to be able to interrupt another trigger in progress without saving and restoring y-variables.
Valery, remember. Triggers don't save y-vars. Example:

!?CM2;
!!VRy1:S777;
!!HE0:Ed999999/d0; // trigger Level-up
!!IF:M^%Y1^;

!?HL-1;
!!VRy1:S666;

You should not include actions in triggers or your code is not safety. The solution:
!?...;
!!FU@My trigger handler@;

Functions have separate local vars and they are saved.

Quote:5) There are some DL command parameters used in the TPM script90.erm which are not mentioned in the ERM Help. For example, sometimes a 4th, "/1" parameter is used at the end of some commands for which only three parameters are shown in the ERM Help. (I added the /1 in some places and it seemed to help prevent crashes but that may have been a coincidence.)
Once MOP asked about the reasons of DL crash. I found out unmentioned parameter /1, which should always be used. Don't remember that command, but you'll find it, I think.


RE: Exec Erm ERA Plugin - Berserker - 09.12.2010 16:37

SAG Wrote:можно узнать подробности про Exec Erm ERA Plugin?
Можно. Позволяет без накладных расходов выполнять ЕРМ из DLL. Для этого должен быть создан ЕРМ-файл с одной функцией и серией пронумерованных команд.

!?FU80000;
!!IF:Mz1; #0 показ сообщения
!!UN:R3/-1; #1 обновление окна
...

Нумерация сугубо добровольная, ибо для вызова команды нужно знать её номер. Вызов ЕРМ кода состоит из двух этапов:
1) На этапе загрузки или старта карты получить адрес функции своей (в примере - 80000).
2) Вызывать в любое время команду по адресу функции и номеру.

Асм мог бы использовать, кстати.


RE: Exec Erm ERA Plugin - SAG - 10.12.2010 12:46

Гм. пока сложно мне представить зачем нужно вызывать ERM из DLL когда обычно процесс обратный...подумаю где это может пригодиться


RE: Exec Erm ERA Plugin - Sav - 10.12.2010 13:36

Например, если тебе надо вызвать только одну erm-команду, вставлять вызов своей функции - слишком громоздко.


RE: Exec Erm ERA Plugin - Berserker - 10.12.2010 17:25

Асм почти весь мод пишет в кодах насколько я помню. Пытаться дублировать ЕРМ неразумно, проще его вызывать. У меня была идея писать мод целиком на паскале, вызывая лишь нужные ЕРМ-команды.


RE: New Era Of Heroes - Valery - 24.12.2010 15:04

Berserker, thanks, it helped.


RE: New Era Of Heroes - Berserker - 24.12.2010 21:03

(11.12.2010 20:45)MOP Wrote:  Разбираться с WT и патчем к нему мне обойдётся дорого по деньгам.

За деньги гораздо честнее, согласен.

Valery, glad to hear that Sm


RE: New Era Of Heroes - Valery - 25.12.2010 09:57

Berserker, any plans in the future to make DL support gifs, as regular dialogs do?


RE: New Era Of Heroes - Berserker - 25.12.2010 16:48

DL is wog part. I don't handle it.


RE: New Era Of Heroes - Valery - 26.12.2010 14:41

Is it possible to include ERA in WoG 3.58 package and release a stand alone download? I guess it is the last version of WoG so we could use it without joining two files, therefore making it more practical and official.


RE: New Era Of Heroes - Berserker - 26.12.2010 16:20

Yes, it is possible. I'll think about it. But if I forget, please, remind me of it)


RE: New Era Of Heroes - Valery - 27.12.2010 14:39

Actually the best way would be to release a new install version including:

WoG 3.58
ERA 1.8
Grayface last editor patch (it corrected a lot of bugs triggered when mouse dragging objects. Before its last editor, it was very hazardous to be able to keep a map clean.)
ERM help 2.8.1 (where is the english version link, I can't find it anymore)
DEFka
HD resolution patch
1.08 and 1.09 patch in wog files format, in update folder, not installed. The snow underground gate from 1.08/09 patches needs subtype fix, as it crashes the game.

Atm, one needs to download all those from different links, which are hard to find, scattered in two languages forums often . And they all are very precious.

If there is any routine work to do, I will help gladly, just let me know.


RE: Exec Erm ERA Plugin - SAG - 27.12.2010 22:26

АСМ чересчур увлекся покером и ничего не пишет Bad



переместить в "New Era Of Heroes" - gamecreator - 02.01.2011 17:32

Berserker Wrote:Нужно убрать лимит на 14 навыков, он не
Универ на карте лично у меня не пашет, если навыков уже 8
ну на универ тоже можно найти бинарный патч на количество навыков. могу поискать.


RE: Феникс Мод - Berserker - 02.01.2011 17:48

gamecreator, я твой юзал. Но он не подействовал на Фениксе. Может быть папку нужно было по-старому назвать Era Plagins.


RE: Феникс Мод - gamecreator - 02.01.2011 18:38

если что, я для сода смотрел. возможно, в воге стоят перенаправления.


RE: Феникс Мод - Berserker - 02.01.2011 18:41

Да нет, на Эре 1.8 всё было пучком.


RE: Феникс Мод - gamecreator - 02.01.2011 18:47

тогда хз. но для универа все равно надо будет глянуть.


RE: Феникс Мод - gamecreator - 03.01.2011 15:22

хм, проверил - для универа мой патч тоже работает


RE: Феникс Мод - Berserker - 03.01.2011 15:29




RE: Феникс Мод - gamecreator - 03.01.2011 15:33

попробуй записать его прямо в ехе


RE: Феникс Мод - Berserker - 03.01.2011 16:37

Отладчик говорит, что всё и так пропатчено в памяти. Проверил все три адреса.

В хотсите ни одна из трёх веток управления не получает.

4E256A - патч левый. Абсолютно сторонняя константа.


RE: Феникс Мод - gamecreator - 03.01.2011 17:05

все адреса я вручную находил и проверял. все правильно и нужно.

насчет хотсита хз


RE: Феникс Мод - Berserker - 03.01.2011 17:16

Угу. Только патч в итоге не полный. Ещё три места нужно было. Пропатчил - ок стало )


RE: Феникс Мод - Berserker - 03.01.2011 17:23

На вскидку:
744AAE
5F0F4A
574179
5F0C81


RE: Феникс Мод - Berserker - 03.01.2011 17:34

4A7DD0 1C
4DAFCE 1C
4E256A 1C
744AB4 1C
5F0F50 1C
57417F 1C
5F0C87 1C


RE: New Era Of Heroes - asilak1 - 06.01.2011 17:17

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


RE: New Era Of Heroes - Sav - 06.01.2011 17:51

1. Качаем архив.
2. Распаковываем в папку с Героями с заменой.
3. Заходим в Era Софт\ExeBuilder, запускаем Era 1.8.bat.
4. В корневой папке Героев появляется файл Era 1.8.exe, через который и надо запускать
5. Радуемся стабильности, уменьшенной загрузке процессора, возможности использовать разные моды и куче средств для того, чтобы их самому делать.

Заставка и сама игра внешне не поменяется, но при клике правой кнопкой мыши на титры можно будет увидеть "Tournament Edition: 1.03" и "ERM: 3.0.0".


RE: New Era Of Heroes - Valery - 12.01.2011 05:27

I installed Sagamosa AL over the latest WoG package but I can't find how to get the mod working. Sagamosa provided his zsetup01.txt, which should place the "activate AL" at the end of "artefacts and spell banning", but there is nothing.

[...]
Enabling this option stops Combination Artifacts from being assembled in the game. The parts that make up a Combination Artifact may still appear on maps but they can't be assembled into a Combo.
Activate Advanced Levels 118 6 1 -1 0 0 118

Activate Advanced Levels



Does not show.

After that I downloaded the WogSagamosa.exe posted by Berserker some time ago and started from it after checking the activate option. Only errors when map loads.


RE: New Era Of Heroes - asilak1 - 25.01.2011 16:30

Sav спасибо, что уделили мне внимание. Все получилось.


RE: New Era Of Heroes - GhostManSD - 26.01.2011 02:57

Огромная просьба: скиньте кто-нибудь справку по Эре (chm, что входит в комплект). Я каким-то образом ухитрился ее пох(т)ери(я)ть...


RE: New Era Of Heroes - etoprostoya - 26.01.2011 03:01

http://zalil.ru/30404310


RE: New Era Of Heroes - GhostManSD - 26.01.2011 03:08

etoprostoya, спасибо огромное!


RE: New Era Of Heroes - Valery - 26.01.2011 03:23

Someone knows how to change the fog frame in def with another? The original is so crap looking, it needs just a small letter in the middle, so the map is not affected. But any manual changes to the frame will cut the fog in game, so I guess there is something transparent behind.


RE: New Era Of Heroes - MOP - 26.01.2011 09:17

Berserker:
Всё же, как насчёт того, чтобы сделать для SN:G относительность прыжка? Команда эта мне категорически нравится, и я использую её чаще, чем if-else. Но при добавлении даже одной строки в триггер приходится менять номера строк, на которые прыгают все SN:G в этом триггере. А это очень муторно и возможны не сразу обнаруживаемые ошибки.
Я думаю, это скорее предложение по улучшению не ЭРЫ, а SCVS. Использовать произвольные метки строк, как в компиляторах. Типа того:
!?FU666;
!!VRy1:S155;
@@LoopHeroes: !!IF:Wy1;
!!VRw77:S0;
!!VRy1:-1;
!!SN&y1>-1:G@@LoopHeroes;
А при компиляции SCVS пусть сама считает, какая в триггере по счёту строка, у которой стоит метка, и заменяет макросы на целые числа.
Можно даже сделать два типа меток – локальные (для SN:G) и глобальные (для SN:C). Вторую команду я тоже довольно часто использую – в основном, для создания некого подобия ERM-свитчей.
Имхо, было бы круто. Думаю, тебе эта мысль тоже не раз в голову приходила.


RE: New Era Of Heroes - Berserker - 26.01.2011 17:27

Хорошо. Поддержим отечественных производителей Rolleyes


RE: New Era Of Heroes - MOP - 05.02.2011 19:36

Спасибо за поддержку. Sm За ПОСТОЯННУЮ поддержку. Sm
Как успехи? Надеюсь, исходники SCVS не потеряны?


RE: New Era Of Heroes - Berserker - 05.02.2011 19:51

Нет, к сожалению исходники давно утеряны. Новая реализация займёт время.


RE: New Era Of Heroes - MOP - 05.02.2011 20:00

Эх... Но зато, гляди, при работе и другие идеи по улучшению появятся. Sm


RE: New Era Of Heroes - Berserker - 07.02.2011 22:38

Хочу сменить в кое-каких местах синтаксис, не важно?


RE: New Era Of Heroes - GhostManSD - 07.02.2011 22:47

Названия переменных, констант? Мне кажется, неважно: я, например, скопировал из исходников Эры адреса для v1, z1, y1, x1 и сохранил их как константы под другими именами (более удобными для меня).

Берс, а если не секрет, можешь приоткрыть покровы над тем, что будет в новой Эре? Ab Кроме 64-х параметров.


RE: New Era Of Heroes - Berserker - 07.02.2011 22:52

Речь шла об SCVS 2 )


RE: New Era Of Heroes - Berserker - 08.02.2011 02:57

МОР, в общем писать начал, over 200 строк уже накатал. Посмотрим, как там со временем будет. Новые плюшки должны порадовать.


RE: New Era Of Heroes - SAG - 08.02.2011 12:15

Берс, может сделаешь нормальное отображение и обработку нажимаемых Button и Label в Эре? Бараторч сделал полдела и забросил.


RE: New Era Of Heroes - Berserker - 08.02.2011 13:16

Нет, это не моя сфера.


RE: New Era Of Heroes - MOP - 12.02.2011 17:05

(07.02.2011 22:38)Berserker Wrote:  Хочу сменить в кое-каких местах синтаксис, не важно?
Не знаю, смотря что именно поменять... У меня сейчас код, как бы сказать... очень под SCVS заточен. Номера функций (ERM и внутреигровых), соглашений вызова, адреса экзешника, номера артефактов, монстров, типов городов, id клика, id DL-диалогов и куча других вещей - всё константами, всё задокументировано.
Хотя неважно. Делай, не обращая внимания на обратную совместимость, как считаешь нужным. Если будет больше плюшек, я с радостью соглашусь переписать все свои исходники на новый лад. Даже одного усовершенствования для SN:G мне хватит как стимула.
Жду с нетерпением.


RE: New Era Of Heroes - Bes - 15.02.2011 17:58

Цветные слова в 1.8..
Sorry
есть переменная с текстом (в ert-файле)
Code:
199001 Здесь сейчас будет ~{1234}цветной{/} текст
и есть код в erm-файле,который вызывает диалог с этим текстом
Code:
!!F:M1/z199001;

Проблема: активация "цвета" не происходит.

решается только так:
Code:
!!F:M^~%Z199001^;

Однако, если пользовать ручную активацию "цвета", а не через "тильду", то всё отлично работает:
Code:
199001 Здесь сейчас будет {1234}цветной{/} текст
Code:
!!FU50006:P1; активация цвета
!!F:M1/z199001;

Вот.Sorry
Berserker, ответь пожалуйста в "аську"



RE: New Era Of Heroes - Sav - 20.02.2011 22:52

Исправленный скрипт банка для Эры: больше не будет ошибок со взятием неправильного числа денег или ресурсов, а так же будет обновление строки ресурсов.
http://narod.ru/disk/6027325001/script05_bank.erm.html. Переименовать в script05.erm и заменить соответствующий в Data\s.


RE: New Era Of Heroes - Berserker - 20.02.2011 23:17

А в чём была ошибка там?


RE: New Era Of Heroes - ROSOMAHA - 20.02.2011 23:33

супер! sav благодарю за исправление


RE: New Era Of Heroes - Sav - 21.02.2011 00:00

В процессе займа использовалась переменная v1, которая в Эре каким-то образом изменяется, из-за чего занималось всегда 13 золота/ресурсов.


RE: New Era Of Heroes - Berserker - 21.02.2011 02:02

Не верю я в чёрную магию. В v1 возвращаются результаты вызова функций через SN:E.


RE: New Era Of Heroes - Sav - 21.02.2011 10:28

Тем не менее, когда я заменил v1, всё стало работать нормально.

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


RE: New Era Of Heroes - Berserker - 27.05.2011 21:26

МОР, синтаксис вроде такого:
Image: original.png


RE: New Era Of Heroes - Berserker - 27.05.2011 21:34

Альтернативу предлагает этопростоон. Доллары убрать, все переменные и константы маленькими буквами.


RE: New Era Of Heroes - etoprostoya - 27.05.2011 21:46

этопростоон не авторитет в этой области и вполне может нести всякую ересь Sm

Но изобилие долларов и амперсендов, думаю, мало кому понравится. Разве что ПХП-программерам)


RE: New Era Of Heroes - Berserker - 03.06.2011 18:57

Название: Multithread
Описание: Исправляет вылеты на процессорах с hyper-threading или несколькими ядрами.
Размер: 7 кб.


RE: New Era Of Heroes - MOP - 03.06.2011 20:08

Для человека, начинавшего с ERM, а затем освоившего асм (иными словами – едящего колбасу с другого, ненормального конца), такой синтаксис, можно сказать, пугающ, ибо, как я понимаю, уподобляется языкам высокого уровня. То есть, проблема не в синтаксисе, а во мне.
Ну да я какашки и в первую SCVS кидал, а сейчас без неё работу не представляю. Так что, думаю, понимание придёт с опытом. А если что, можно ведь будет писать часть скриптов на старой версии, а часть на новой, пока к последней не прикипишь окончательно.

У меня на форуме ты упомянул о программах. Число множественное. Будет что-то ещё, помимо SCVS? Ибо по недолгому опыту наблюдений за Берсеркером-программистом сложилось ощущение, что чем длительнее затишье – тем громче будет взрыв.
А что насчёт английского/русского интерфейсов… у меня не очень с английским в том смысле, что я не умею нормально составлять выражения (поэтому ничего не пишу на английских форумах, чтоб не позориться). А с чтением более или менее хорошо.


RE: New Era Of Heroes - Berserker - 03.06.2011 20:43

MOP, спасибо за ответ.


RE: New Era Of Heroes - Berserker - 03.06.2011 22:04

Image: original.png

Name: WoG 3.58f + Era 1.81 All-in-one installer v3
Requirements: SoD or Complete Edition.
Size: 64.7 MB.
Author: Berserker.
Credits: baratorch, GrayFace, Horn, itsjustme, MoP and others.
Download: WogArchive Link
Features:
  • WoG 3.58 full.
  • Era 1.81 English version.
    • Executable file protection from modifications removed
    • Low CPU patch (CPU load drops to several %)
    • ERM scripts turning off at every error disabled
    • A few ERM bugs fixed
    • ERM to outer world bridge (commands for loading dlls and calling binary functions)
    • Automatic plugins (dlls) loading and dynamic patching
    • New ERM receivers and triggers
    • Extended ERM (TE-based: dialogs, spells, if-else syntax)
    • Colorful texts, etc.
  • Era plugins:
    • ArtMerFix (fixes artifact merchant bugs)
    • ExecErm (allows execution of ERM commands in dlls)
    • WhipSplash (removes black splash screens)
    • Multithread (fixes crashes on CPU's with hyber-threading or several cores)
  • GrayFace Map Editor Patch.
  • Baratorch HiRes Mod (2.92u).
  • Latest ERM Help.
  • Heroes III pdf Manual.
  • h3sprite and LodExtract utilities in Data.
  • dpwsockx.dll for playing online.
  • A set of tools, including:
    • - Color Converter (convert rgb-32 colors to rgb-16)
    • - DEE v0.6 alpha (RUS, ERM scripts in-memory editor)
    • - DEFka v1.0 (replace creature defs in one click)
    • - DefPreview (def viewer)
    • - Erm Editor (patched ERM IDE)
    • - EVME 1.0 (ERM debugger prototype)
    • - ExeBuilder (apply various patches to build exe of your dreams)
    • - Font Editor
    • - H3DefTool (def maker)
    • - MMArchive (hmm3 resource editor)
    • - RSBinkPlayer (bik player)
  • Script "Quick savings" ("S" saves game to [week day], F5 is quick save, "End Turn" makes [week day]_End save).
  • Battle speeding (pre-battle music removed, animation speeded up)
  • Fixed first aid tent hang.
  • Patched WoG updater
  • Simple user-friendly installer.
  • Garbage files removed.
Install steps:
1. Run WoG3.58_plus_Era1.81.exe
2. Choose game directory
3. Follow setup instructions.
4. Profit!

The original idea was proposed by Valery Rogacev.


RE: New Era Of Heroes - Berserker - 05.06.2011 22:49

Image: original.png

Название: Русификация пакета "WoG 3.58f + Era 1.81 All-in-one installer v3"
Требования: SoD или Complete Edition + английская WogEra 1.81.
Размер: 15.28 МБ.
Автор: Berserker.
Соавторы: Black Phantom, Sir Four (99% материалов для русификации из их работ).
Скачать: WogArchive Link
Особенности:
  • WoG 3.58 полная версия.
  • Era 1.81 Русская версия.
    • Убрана защита от изменений в исполняемом файле
    • Заплатка на низкое потребление ресурсов процессора (до 2-3%)
    • Отключено авто-выключение скриптов ЕРМ при ошибках
    • Исправлено несколько ЕРМ багов
    • Мост между ЕРМ и внешним миром в виде команд для загрузки dll и выполнения машинных функций
    • Автоматическая подгрузка плагинов (dll) и динамическая установка заплаток
    • Новые ЕРМ команды и события
    • Расширенный ЕРМ (Основанные на TE: диалоги, заклинания, синтаксис "если-то")
    • Цветные тексты и другое...
  • Плагины для Эры:
    • ArtMerFix (исправляет баги у торговца артефактами)
    • ExecErm (позволяет выполнять команды ЕРМ из dll)
    • WhipSplash (убирает чёрные сплошные экраны-затемнения перед диалогами)
    • Multithread (исправляет вылеты на процессорах с несколькими логическими/физическими ядрами)
  • GrayFace Map Editor Patch (патч для редактора карт).
  • Baratorch HiRes Mod (2.92u) (мод на высокое разрешение).
  • Последнее ЕРМ Руководство 2.81d.
  • Heroes III Руководство в pdf.
  • h3sprite и LodExtract утилиты в папке Data (импорт/экспорт для lod-архивов).
  • dpwsockx.dll для игры по сети.
  • Набор программ:
    • - Color Converter (перевод 32-битного цвета в 16-ный)
    • - DEE v0.6 alpha (редактор ЕРМ скриптов в памяти игры)
    • - DEFka v1.0 (за один щелчок мыши заменяет деф любого монстра)
    • - DefPreview (просмотрщик дефов)
    • - Erm Editor (патченный редактор ЕРМ)
    • - EVME 1.0 (прототип ЕРМ отладчика)
    • - ExeBuilder (позволяет собрать монолитный ехе вашей мечты)
    • - Font Editor (редактор шрифтов)
    • - H3DefTool (создаёт дефы)
    • - MMArchive (редактор геройских архивов)
    • - RSBinkPlayer (проигрыватель bik-файлов)
  • Скрипт "Быстрые сохранения" ("S" сохраняет в [день недели], F5 для быстрого сохранения, "Конец хода" создаёт сохранение [день недели]_Конец).
  • Ускорение боя (убрана предбитвенная музыка, ускорена анимация)
  • Исправлено зависание палатки.
  • Пропатченный инсталлятор ВоГ
  • Простой и дружелюбный установщик
  • Отсутствуют мусорные файлы
Инструкция по установке:
1. Запустите WoGEra 1.81 RUS.exe
2. Укажите папку с игрой
3. Следуйте инструкциям
4. Наслаждайтесь игрой!

Первоначальная идея предложена Valery Rogacev.


RE: New Era Of Heroes - izrukvruki - 06.06.2011 14:25

а "WoG 3.58f + Era 1.81 All-in-one installer v3" и "Русификация пакета "WoG 3.58f + Era 1.81 All-in-one installer v3"
совместить нельзя? для совсем уж ленивых...


RE: New Era Of Heroes - Berserker - 06.06.2011 14:36

Подобные сборки муторно обновлять. А соединения сборок съедают ещё столько же места в архиве + их вдвойне муторно обновлять.


RE: New Era Of Heroes - farmer - 10.06.2011 20:54

Спасибо за удобный продукт. Полгодика уже не гамал в героисов, но тут опять накатило118)
Только возникла тут одна непонятка с script05 (банк), а скорее даже не с ним. Итак, по порядку:
1) стоят герои полное собрание (русск, носд)
2) эра 1.81 + руссификация
3) пробовал также менять пятый скрипт на правленный от Dracolich'a - ничего не изменилось
Проблема в том, что если ввод количества ресурсов/денег которые берем взаймы завершить с клавиатуры enter'ом, а не мышкой по кнопке с галочкой, то мы получим ресурс/деньги в подарок. Т.е. откроется окошко, что с нами прияно иметь дело... дадут деньги... но потом их никто не будет забирать и причем процедуру заема можно совершать в день неограниченное число раз, зато с мыши все срабатывает как надо.
Раньше (с годик назад) вроде такой проблемы не было, кажись... правда и версия героев была другая.

Небольшая хотелка:
(09.06.2011 23:09)Berserker Wrote:  
MoP Wrote:Активация кнопки "Следующий герой", отключенной в ТЕ.

Для патчинга экзешника:
9CE9 84D275768B
можно внести в следущей версии в hirez.ini? и файл h3wupd.bak удалять при установке?


RE: New Era Of Heroes - Berserker - 10.06.2011 22:37

   Спасибо за отзыв.
   Понял вашу проблему и, наконец-то, понял проблему Sav! Дело в том, что Эра добавила новое событие: нажатие клавиши. Как только оно происходит, в v1 скорее всего попадает номер нажатой клавиши (#13 = Enter). Старые скрипты на это не рассчитывали. Где-то Сав выкладывал исправление банка. Подождём, пока он напишет.
Quote:Активация кнопки "Следующий герой", отключенной в ТЕ.

   http://www.multiupload.com/KES2ZNHT91

Quote:файл h3wupd.bak удалять при установке?

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


RE: New Era Of Heroes - izrukvruki - 12.06.2011 01:07

а где моно достать Complete Edition?


RE: New Era Of Heroes - AKuHAK - 12.06.2011 16:00

(12.06.2011 01:07)izrukvruki Wrote:  а где моно достать Complete Edition?
новогоднее издание качай. Вот скажем когда-то очень давно я выкладывал. А если ты про английскую версию, то это будет посложнее, на FTO точно есть, но там надо регится.


RE: New Era Of Heroes - izrukvruki - 12.06.2011 23:38

а это что за штука?
http://rutor.org/torrent/105732/geroi-mecha-i-magii-kollekcionnoe-izdanie-ogranichennaja-serija_heroes-of-might-and-magic-i-v-2010-pc


RE: ERA II - Дьякон - 16.06.2011 00:08

ХМ, я думал ты завязал с героями. Привет!


RE: ERA II - gamecreator - 16.06.2011 00:12

(15.06.2011 23:00)Berserker Wrote:  Ограничения: не работает GE/CЕ команды, привязанные к карте. Их поддержка требует некоторого усложнения в силу того, что ЕРМ запоминает указатели на структуры этих событий.
Но FU ведь работает, а оттуда можно уже и GE, и CE.


RE: New Era Of Heroes - Berserker - 16.06.2011 00:26

Дьякон, привет. Как видишь, иногда возвращаюсь Sm

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


RE: New Era Of Heroes - AKuHAK - 17.06.2011 09:35

(12.06.2011 23:38)izrukvruki Wrote:  а это что за штука?
http://rutor.org/torrent/105732/geroi-mecha-i-magii-kollekcionnoe-izdanie-ogranichennaja-serija_heroes-of-might-and-magic-i-v-2010-pc
Quote:Язык интерфейса: Только русский



RE: New Era Of Heroes - MATRASUS - 19.06.2011 01:03

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


RE: New Era Of Heroes - Berserker - 19.06.2011 02:26

Попробуйте заменить файл в Data: onedayfiles.com/e5YB46/


RE: New Era Of Heroes - MATRASUS - 19.06.2011 04:54

(19.06.2011 02:26)Berserker Wrote:  Попробуйте заменить файл в Data: onedayfiles.com/e5YB46/
На пустой файл? Не запускается - http://picsave.in/images/gpg.jpg


RE: New Era Of Heroes - MATRASUS - 19.06.2011 11:17

Ход мысли я понял, поменял в файле - всё получилось, большое спасибо.


RE: New Era Of Heroes - Berserker - 19.06.2011 15:08

Не за что. Это моя ошибка, что в руссификацию попал файл из ТЕ.


RE: New Era Of Heroes - Sav - 20.06.2011 13:48

Berserker Wrote:Понял вашу проблему и, наконец-то, понял проблему Sav! Дело в том, что Эра добавила новое событие: нажатие клавиши. Как только оно происходит, в v1 скорее всего попадает номер нажатой клавиши (#13 = Enter). Старые скрипты на это не рассчитывали. Где-то Сав выкладывал исправление банка. Подождём, пока он напишет.
Очень похоже на правду. И в SN:X тоже заносится. Тогда всё ясно. Я-то всегда энтером жму галки. Вечером, скорее всего, смогу проверить.
В таком случае этика использования такова: заносить обратно данные из SN:X следует после последнего диалога в триггере.
Поправленный скрипт банка там.

Berserker, нажатия клавиш вызывают триггер всегда или только в определённые моменты? Нажатие не может "разорвать" скрипт, внеся свои изменения в переменные и параметры, после чего скрипт продолжится (не считая случаев с диалогами)? Если может - это может оказаться неприятной проблемой.


RE: New Era Of Heroes - Berserker - 20.06.2011 16:53

Разорвать не может.

Решение не совсем верно. Правильное решение в Фениксе. Самый первый триггер сохраняет параметры события в глобальные v-переменные.

!?FUxxx;
!!SN:X?v2000;

!?FUxxx&v2000=13;
!!IF:M^Вы нажали Ентер^;

В Фениксе помимо прочего есть флаг запрета клавиатурного триггера. Его нужно устанавливать до показа диалога и снять после.

!?FUxxx&@Flag@;
!!SN:Q; прекратить ЕРМ-обработку события

Если говорить в общем, то виноват неправильный код (нельзя писать команды в телах любых тригеров, кроме функций) и общая временная память (например, v1..v10). Один триггер запускает другой, другой - третий, и все используют одни и те же переменные.


RE: New Era Of Heroes - Sav - 21.06.2011 14:44

Berserker Wrote:Решение не совсем верно.
А в чём оно проигрывает, кроме своего внешнего вида?

Berserker Wrote:Самый первый триггер сохраняет параметры события в глобальные v-переменные.
Так другие триггеры всё равно не смогут брать из SN:X. А значит, скрипт несовместим со скриптами других авторов, использующими эти же триггеры.

Berserker Wrote:В Фениксе помимо прочего есть флаг запрета клавиатурного триггера. Его нужно устанавливать до показа диалога и снять после.
Что-то я не понял, как этим пользоваться. Так и писать @Flag@? Или это есть только в ФМ?

Кстати, проверил, действительно, 13 появляется именно при нажатии клавишей.


RE: New Era Of Heroes - Berserker - 21.06.2011 19:57

Quote:А в чём оно проигрывает, кроме своего внешнего вида?
Если у тебя помощь по F1, то многократное нажатие F1 будет вызывать диалог на диалоге. Ну и порча временных v-переменных в обработчиках. Хм, кстати, дельная заметка для Эры 2. Каждое событие может иметь свой локальных набор параметров SN:X.

Quote:Так и писать @Flag@?
Нет, это синтаксис SCVS. Флаги в ЕРМ - просто цифры.
!?FUxxx&777;


RE: New Era Of Heroes - Berserker - 23.06.2011 15:06

   Устали ждать 6 секунд до появления окна Героев? Попробуйте тогда Мгновенную загрузку!


RE: New Era Of Heroes - FallenAngel - 23.06.2011 16:29

Berserker, мог бы сразу тогда в url указать сам файл. Вот это уже мгновенная загрузка)


RE: New Era Of Heroes - gamecreator - 23.06.2011 16:59

Это в хайрез надо для опции работы без диска.


RE: New Era Of Heroes - Al_Mualim - 25.06.2011 18:34

Does anyone know that in what part of exe are coordinates of secondary skill pictures in hero screen. I want to change it148

Or, please, tell me at least in what part of exe is file version(UN:V)Mail1


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

Al_Mualim, download OllyDebugger, open exe file, right click -> search for all referenced text strings -> right click - find string - "enter def name" and you'll find the code address. Try to experiment.


RE: New Era Of Heroes - Berserker - 25.06.2011 18:49

Центрирование DL-диалогов для высоких разрешений
Image: original.jpg


RE: New Era Of Heroes - Al_Mualim - 26.06.2011 01:58

(25.06.2011 18:41)Berserker Wrote:  Try to experiment.
Thanks a very very lotGamer1


RE: ERA II - gamecreator - 26.06.2011 03:26

А как насчет поддержки 32-битных вариантов?


RE: New Era Of Heroes - Berserker - 26.06.2011 03:54

Так код указывается 32-битный и автоматически переводится в 16-битный.
И да, та тема закрыта. цитируй сюда.


RE: New Era Of Heroes - gamecreator - 26.06.2011 12:48

Нет, я про случай когда игра работает в 32битном режиме.
(26.06.2011 03:54)Berserker Wrote:  И да, та тема закрыта.
Ой 147


RE: New Era Of Heroes - Berserker - 26.06.2011 14:09

Так для текста хватит 32768 цветов. Тем более, что 32-битные режимы идут модами.
Quote:Ой 147
Застукал второй раз 166


RE: New Era Of Heroes - MOP - 27.06.2011 14:31

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


RE: New Era Of Heroes - MOP - 27.06.2011 15:00

(23.06.2011 15:06)Berserker Wrote:     Устали ждать 6 секунд до появления окна Героев? Попробуйте тогда Мгновенную загрузку!
Расковырял патч.
В моём whiplash2.bin вся эта огромная функция просто не вызывается. У Бараторча тоже. Она не нужна, и я спокойно всю её сначала занопил, а потом и свой код туда написал.
Нужно просто в 0x6995CC занести определённое значение. В зависимости от этого игра будет говорить об отсутствии диска SoD/диска RoE или AB/идти без диска.


RE: New Era Of Heroes - Berserker - 27.06.2011 15:01

Quote:Патч для памяти, позволяющий выбирать кампанейских героев стартовыми на случайной карте
А тхт есть? Большой какой-то. В чём было ограничение?

Quote:Расковырял патч.

В моём whiplash2.bin вся эта огромная функция просто не вызывается. У Бараторча тоже. Она не нужна, и я спокойно всю её сначала занопил, а потом и свой код туда написал.

Нужно просто в 0x6995CC занести определённое значение. В зависимости от этого игра будет говорить об отсутствии диска SoD/диска RoE или AB/идти без диска.
Спасибо за наводку. Интересно, 3 секунды интервал чтения с СД - эвристикой подобранное значение?


RE: New Era Of Heroes - MOP - 27.06.2011 15:03

Трудность состоит в том, что список героев создаётся прямо в стеке и всё оттуда берётся вместе с прочим. Помещалось там только 16 (два класса на город) двордов. Я уплотнил структуру списка до байтов, так что теперь можно приписать к одному городу до 64 героев, и все они в списке будут.
Объёмный из-за того, что я сокращал содовский код, чтобы втиснуть правки. Писать длл было неохота.
Исходник без комментариев:



RE: New Era Of Heroes - Berserker - 27.06.2011 16:50

Нужно будет оптимизатор bin-файлов написать, а то не эффективно копирование с оли + ещё сделать обратный перевод bin - тхт.


RE: New Era Of Heroes - AKuHAK - 11.07.2011 21:28

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


RE: New Era Of Heroes - hippocamus - 12.07.2011 01:11

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


RE: New Era Of Heroes - feanor - 12.07.2011 01:41

Quote:В Эре 1.8 невозможно править данные, использующиеся до загрузки карты.
?????
Нельзя врезаться в самые первые моменты после старта - до хуков вога.
После этого - вполне.


RE: New Era Of Heroes - Berserker - 12.07.2011 03:20

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


RE: New Era Of Heroes - hippocamus - 12.07.2011 21:24

Да, не хочу отвечать (тебе виднее), хочу спросить: экзешник t1 wog 3.59 (я знаю, что называю его неправильно, но такое уж название у него сложилось) - чем он хуже te-шного? На него можно повесить Эру? Если да - то нет проблем в подгрузке нового лода, и даже в его выгрузке, да?
Почему тогда его никто не использует?


RE: New Era Of Heroes - Berserker - 12.07.2011 21:45

Есть проблема. У него адреса поменялись. Вся воговская часть изменилась. А весь сегодняшний мир мидификаций рассчитан на фиксированные адреса. Кажется, МОР сделал подгрузку любых лодов, можно у него попросить рецепт. Ещё один в исходниках вога, но мне они не импонируют в плане доступности.


RE: New Era Of Heroes - hippocamus - 13.07.2011 00:41

Что, прямо так в разброс стали все адреса? Или смещение изменилось? Если смещение - то разве это трудно поправить?


RE: New Era Of Heroes - feanor - 13.07.2011 00:48

Quote:Что, прямо так в разброс стали все адреса? Или смещение изменилось? Если смещение - то разве это трудно поправить?
Сравни 358 и ТЕ.
Вот тут примерно такая же разница в адресах будет.

А для того, чтоб поправить - надо знать, что править, на что править, где править и иметь возможность поправить.

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


RE: New Era Of Heroes - Berserker - 13.07.2011 02:53

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


RE: New Era Of Heroes - MOP - 13.07.2011 13:11

(12.07.2011 21:45)Berserker Wrote:  Кажется, МОР сделал подгрузку любых лодов, можно у него попросить рецепт.
Не, я пока этого не делал - просто смысла не вижу. Отдельному мододелу достаточно пары-тройки лодов, а они уже есть в виде мусорных файлов от Клинка. Так что проще будет, если каждый мододел будет переименовывать их названия в памяти "под себя" - и всё. Так сделал ВОГ, так сделал и я.


RE: New Era Of Heroes - Berserker - 13.07.2011 15:05

Нужен просто нормальный инсталлятор и один lod, зарезервированный за вогом (я предлагаю h3wog.lod). Смотрите, сколько их всего:

Code:
h3ab_bmp.lod
h3ab_spr.lod
h3abp_bm.lod
h3abp_sp.lod
h3pbitm.lod
h3psprit.lod



RE: New Era Of Heroes - hippocamus - 13.07.2011 19:10

А последние 2 - это что вообще?
А хрониковские не подгружаются?


RE: New Era Of Heroes - Sav - 13.07.2011 19:20

Quote:h3pbitm.lod
h3pbitma.lod.

Последние 2 заменяются на H3wog.lod и H3custom.lod.


RE: New Era Of Heroes - izrukvruki - 22.07.2011 22:22

Quote:ПОДСКАЗКА ДЛЯ WINDOWS-7 ПОЛЬЗОВАТЕЛЕЙ: изменение языка на английский (Click to Hide)
1) Запустите редактор реестра (regedit.exe), нажмите на кнопку Пуск -> Выполнить и введите команду "regedit" + "Enter".
2) Перейдите в следующий раздел реестра: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ControL\MUI\UILanguages\хх-YY.
где хх-YY - это оригинальная строка языка системы. Например, "en-US" для английского.
3) Переименуйте хх-YY в en-US.
4) Внутри переименованного ключа реестра en-US, создайте новое строкове значение (string value) под именем DefaultFallback.
5) Установийте значение параметра Назначение DefaultFallback оригинальное значение xx-YY.
6) Может потребоваться перезагрузка, прежде чем изменения вступят в силу.
Первоначальная идея предложена Valery Rogacev.

А это для чего надо делать?


RE: New Era Of Heroes - gamecreator - 23.07.2011 00:49

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


RE: New Era Of Heroes - Berserker - 23.07.2011 18:45

Украл из dll бараторча:
IsNetworkGame (69959C) dword
GameType (698A40) dword (hotseat = 3)


RE: New Era Of Heroes - FallenAngel - 26.07.2011 02:26

MOP, странно, у меня ЭРА ненавидит все твои dll и bin, кроме AllStartHeroes. Встречалось такое? Как только любой из них оказывается в папке с плагинами, при нажатии на кнопку "Сценарии" игра вылетает сразу после того, как прочтет карты.


RE: New Era Of Heroes - Berserker - 26.07.2011 04:38

Как применялись заплатки?


RE: New Era Of Heroes - FallenAngel - 26.07.2011 10:07

Berserker, все лежит в своих фолдерах. В частности, в EraPlugins. Честно говоря, куда я их только ни кидал.


RE: New Era Of Heroes - MOP - 29.07.2011 08:57

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

P.S. Обновил Battery.dll. Исправил одну ошибку (спасибо Майору за тестинг) и добавил триггер на клики к окне Форта (по его же предложению).


RE: New Era Of Heroes - Berserker - 29.07.2011 23:44

http://zalil.ru/31485326
Две главы из руководства по Эре. Если есть замечания - пишите сейчас. Осталась глава для программистов/скриптописцев, самая объёмная.
MOP, а где сам майор-то?


RE: New Era Of Heroes - FallenAngel - 30.07.2011 16:12

Berserker, MOP, прошу прощения. Я не очень то и внимателен в таких вещах.


RE: New Era Of Heroes - Berserker - 01.08.2011 17:49

+) В ядро Эры 1.9 добавлен контроль выполнения ЕРМ кода, так что F12 не действует больше во время выполнения ЕРМ.
+) Добавлены события OnBeforeTrigger/OnAfterTrigger для универсального отлова вызова любого ЕРМ триггера. Эра использует их для сохранения y-переменных.
-) Исправлена критическая ошибка в движке Эра 1.9- (не сохранялись локальные y-переменные для всех триггеров с ID > 30000).


RE: New Era Of Heroes - MOP - 01.08.2011 18:01

(29.07.2011 23:44)Berserker Wrote:  MOP, а где сам майор-то?
Это и для меня загадка. Когда-то был частым гостем, а теперь даже если на форум зайдёт - ничего не пишет.


RE: New Era Of Heroes - GreyGhost - 02.08.2011 19:59

немного не скромный вопрос, Берс - на сколько ты знаешь внутряк ERM, можешь прицепить lua.dll к era.dll
ждать 3.59 можно бесконечно, а реализовать частичное LUA-програмирование можно и сейчас.
если мне не изменяет восприятие (не совсем трезвого мозга), то:
инструкции - STANDART function с обязательным вызовом при старте
триггеры - CALLBACK function
ресиверы - STANDART function
вроде вся эта ахинея доступна для реализации на lua.

с учётом сколько всего нагородили, очень странно что до сих пор луа не фурычит


RE: New Era Of Heroes - Berserker - 02.08.2011 20:25

   GreyGhost, ЕРМ я знаю настолько, насколько могу знать из случайных вылазок в отладчик и поиска нужных вещей в исходниках. Lua может кто хочет добавлять, Эра всё для этого даёт: секции в сохранённом файле, подписку на события, выполнение команд ЕРМ на лету. Если не ошибаюсь, были попытки на heroescommunity.
   Мне это просто не интересно, а мало кто из нас делает то, что неинтересно.


RE: New Era Of Heroes - gamecreator - 02.08.2011 22:10

луа уже добавлено в 3.59, можно выпросить у корвог Sm


RE: New Era Of Heroes - Berserker - 02.08.2011 22:38

Там через исходники. Здесь нужно самим. Главное найти энтузиаста.


RE: New Era Of Heroes - gamecreator - 03.08.2011 00:03

вот если бы герои были на .NET... тогда бы они страшно тормозили и грузили проц тогда легко можно было бы сделать что угодно.


RE: New Era Of Heroes - Berserker - 03.08.2011 00:33

Пописал немножко, отдаю на рецензирование:

Quote: I. Новые команды.
    Новые команды были введены при помощи расширения стандартной операции "SN". Все команды Эры могут работать со следующими элементами ЕРМ:
    - Числовыми положительными и отрицательными константами;
    - Синтаксисом установки (без модификатора "d") и получения ("?") значений;
    - Переменными y+, v, w, x, z+, f..t, e;
    - Строковыми константами в виде ^...^.
    Ядро Эры передаёт командам набор целых чисел (4 байта каждое). В случае строк или синтаксиса получения значения, эти числа представляют собой адреса переменных. Адрес переменной - числовое значение, описывающее местоположение данных в оперативной памяти. Максимальное количество параметров команды: 64.
    Примеры:
    !!SN:Xv1; передать число в v1
    !!SN:X?v1; передать адрес переменной v1
    !!SN:Xz1; передать адрес переменной z1
    !!SN:X^text^; сохранить текст и передать его адрес
   
    << Подгрузка динамической библиотеки (DLL) >>
    !!SN:L[путь к библиотеке]/?[описатель загруженной библиотеки];
   
    Пример:
    !!SN:L^kernel32.dll^/?y1;
   
    << Получить адрес машинной функции из библиотеки >>
    !!SN:[описатель загруженной библиотеки]/[название функции]/?[адрес функции];
   
    Пример:
    !!SN:L^kernel32.dll^/?y1 Ay1/^lstrcpyA^/?y2;
   
    << Выполнить машинную функцию >>
    !!SN:E[адрес функции]/[соглашение о вызове]/аргументы...
   
    Соглашение о вызове:
    - 0 (PASCAL)
    - 1 (CDECL или STDCALL)
    - 2 (THISCALL)
    - 3 (FASTCALL)
   
    По умолчанию от функции ожидается целочисленный результат, который будет помещён в переменную v1. Если же функция возвращает вещественный результат, то к номеру соглашения нужно прибавить 4. Все системные библиотеки используют соглашение STDCALL.
   
    Пример:
    !!SN:L^kernel32.dll^/?y1;
    !!SN:Ay1/^lstrcpyA^/?y2;
    !!SN:Ey2/1/z1/z2; Скопировать содержимое z2 в z1. Аналог !!VRz1:Sz2;
   
    << Переход на определённую команду текущего триггера >>
    !!SN:G[номер команды, начиная с 0];
   
    Пример:
    !?CM0; правая кнопка мыши на карте приключений
    0; !!SN:G2; перейти на команду №2
    1; !!IF:M^данный текст никогда не покажется^;
    2; !!IF:M^покажется этот текст^;
   
    Примечание: нумерация команд приведена сугубо для примера.
   
    << Получение адреса ЕРМ функции >>
    !!SN:C0/[номер функции]/?[адрес функции];
   
    Адрес ЕРМ функции используется для перехода на её любую команду.
   
    << Переход на команду ЕРМ функции >>
    !!SN:C[адрес ЕРМ функции]/[номер команды, начиная с 0];
   
    Функция, получившая управления, использует те же локальные переменные, что и вызывающая. В этом её плюс. Обычный вызов функции (!!FU:P) - весьма дорогостоящая операция, а переход происходит почти мгновенно, при этом Эра запоминает адрес возврата.
   
    << Возврат из перехода к ЕРМ функции >>
    !!SN:R;
   
    Пример:
    !?FU40000;
    0; !!IF:M^пока^;
    1; !!IF:M^привет^;
    2; !!SN:R;
   
    !?CM0; правая кнопка мыши на карте приключений
    !!SN:C0/40000/?y1; y1 - адрес ЕРМ функции 40000
    !!SN:Cy1/1; Выполнить переход на 40000:1
    !!IF:M^мир^;
   
    Будет показано два сообщения: "привет" и "мир".

    ! Внимание ! Очень важно, чтобы количество переходов совпадало с количеством возвратов.
   
    << Прервать обработку текущего события >>
    !!SN:Q;
   
    Команда отличается от !!FU:E тем, что прерывает всю цепочку однотипных триггеров.
    Пример:
    !?FU40000;
    !!SN:Q; покинуть цепочку триггеров FU40000
   
    !?FU40000;
    !!IF:M^это сообщение никогда не будет показано^;
   
    !?CM0;
    !!FU40000:P; вызвать функцию 40000
   
    << Доступ к параметрам новых событий >>
    !!SN:X[до 16 параметров]...
   
    Новые события Эры (о которых речь пойдёт ниже) и добавляемые модулями события нуждаются в возможности обмениваться данными со скриптами. Эту возможность обеспечивает команда X, выступающая в качестве хранилища значений. Тип значений определяется способом работы с ними. Так, можно установить в слот 0 значение 5, а потом получить его в вещественную e-переменную. Поскольку работа происходит на машинном уровне, то в "e" окажется вовсе не 5, а неопределённый мусор. В случае получения строки, команда трактует значение в слоте как адрес. Поэтому "!!SN:X0; !!SN:X?z1;" приведёт к вылету, так как по адресу 0 нет никакой строки.
   
    Пример:
    !!SN:X?y1/?y2; получить первых два параметра события
    !!SN:Xz1; первый параметр - адрес строки z1
    !!SN:X?y1; y1 - адрес строки z1
   
    << Работа с дополнительной памятью >>
    !!SN:M[...];
   
    ЕРМ переменные статичны и ограничены в количестве. Статичность приводит к невозможности организовывать динамические структуры данных (например, списки), для которых нужны функции выделения и освобождения памяти, а ограниченное количество ведёт к необходимости строгого учёта индексов без возможности выйти за их пределы. Более того, ЕРМ строки в виде z-переменных занимают ровно 512 байт каждая в независимости от размера их содержимого. Эра предоставляет программисту до 2 млрд. слотов под массивы новых переменных (числовых или строковых). Размер массивов может изменяться средствами ЕРМ. Поскольку работа с динамическими структурами предполагает автоматическое выделение номеров слотов, то такая возможность присутствует. Слоты с положительными индексами принадлежат пользователю, а с отрицательными используются при автовыделении памяти.
   
    << Удаление слота памяти >>
    !!SN:M[номер слота, начиная с 0];
   
    Пример:
    !!SN:M5; удалить слот 5
   
    << Получение/установка размера слота >>
    !!SN:M[номер слота]/[?][количество элементов];
   
    Размер слота - это количество элементов в массиве. Команда возвращает -1, если слот не существует.
    Пример:
    !!SN:M2/5; установить количество элементов в слоте 2 равное 5.
    !!SN:My1/?y2; получить размер слота y1 в переменную y2.
   
    << Работа со значениями элементов слотов >>
    !!SN:M[номер слота]/[номер элемента, начиная с 0]/[?][значение];
   
    Пример:
    !!SN:M1/3; размер слота 1 - 3 элемента
    !!SN:M1/0/111 M1/1/222 M1/2/333; содержимое слота 1: 111, 222, 333
    !!SN:M1/1/?y5; y5 - содержимое 1-го элемента слота 1
    !!IF:M^%Y5^; выведет: "222"
   
    << Получение адреса элемента слота >>
    !!SN:M[номер слота]/?[адрес элемента]/[номер элемента];
   
    ! Внимание ! При удалении слота или изменении его размера адрес станет недействительным!
   
    Пример:
    !!SN:M1/?y1/2; y1 содержит адрес 2-го элемента слота 1
   
    << Создание нового слота >>
    !!SN:M[номер слота]/[количество элементов]/[тип элементов]/[запоминать ли значения в сохранёнках];
   
    Старое содержимое слота, если оно было, уничтожается.
    *номер слота* - "-1" для автовыделения свободного номера и помещения его в v1.
    *тип элементов*:
    - 0 (число)
    - 1 (строка)
    *запоминать ли значения в сохранёнках*
    - 0 (нет, при загрузке игры содержимое элементов будет представлять собой случайный мусор)
    - 1 (да, содержимое нужно сохранять как есть)
    Примечание: при 0 экономится место в файле и возрастает скорость сохранения.
   
    Пример:
    !!SN:M0/4/1/1; выделить массив из 4-х строк в слоте 0. Сохранять их содержимое при загрузке
    !!SN:M0/2/^привет^; установить значение 2-й строки слота 0
    !!SN:M0/3/^мир^; установить значение 3-й строки слота 0
    !!SN:M0/2/?z1 M0/3/?z2; получить значения 2-й и третьей строк в z1, z2
    !!IF:M^%Z1 %Z2^; выведет "привет мир"
    !!SN:M0; удалить слот 0
    !!SN:M-1/0/0/0; выделить пустой слот под временный массив чисел
    !!VRy1:S1 R6; сгенерировали случайное число 1..6
    !!SN:Mv1/y1; установили размер нового слота в это число
    !!VRy1:-1; y1 - индекс последнего элемента в слоте
    !!SN:Mv1/y1/777; значение последнего элемента слота - 777
   
    << Получение размера строки >>
    !!SN:K[строка или её адрес]/?[размер строки];
   
    Пример:
    !!VRz1:S^123^;
    !!SN:Kz1/?y1; y1 = 3
   
    << Работа с символами строки >>
    !!SN:K[строка или её адрес]/[номер символа, начиная с 0]/[?][значение символа];
   
    Пример:
    !!VRz1:S^abc^;
    !!SN:Kz1/2/^d^; установить 2-й символ строки z1 в "d"
    !!IF:M^%Z1^; выведет "abd"
   
    << Копирование блока памяти >>
    !!SN:K[кол-во байт]/[адрес источника]/[адрес приёмника]/[произвольное значение];
   
    Пример:
    !!SN:K12/?v1/?y1/1; скопировать 12 байт (3 числа по 4 байта) из v1, v2, v3 в y1, y2, y3
    !!VRv1:C1/2/3; v1 = 1, v2 = 2, v3 = 3
    !!SN:K12/?y1/?v1/1; восстановить значения v1, v2, v3
   
   
    II. Новые события (триггеры).
    Новые события вводятся в игру не в виде привычных ЕРМ триггеров в виде !?XX, а в виде нестандартных номеров функций > 30000. Эра резервирует для своих нужд функции с номерами 77000..77999. Скриптописцы и создатели плагинов могут использовать значения в диапазоне 40000..134217727. Была убрана привязка к диапазону 0..30000 для ЕРМ функций.
    Все новые события обладают набором из 16 локальных (неизменяемых повторно генерируемыми событиями) параметров. Доступ к параметрам осуществляется посредством команды SN:X.
   
    << Расширенные стандартные события >>
    Расширенные стандартные события также обладают собственными SN:X параметрами и дополнительными возможностями.
   
    << !?GM1 >>
    Параметры: Имя сохранения.
   
    Пример:
    !?GM1;
    !!SN:X?z1; получили имя сохраняемой игры
    !!VRz1:+^_%Gc^; добавили к нему цвет текущего игрока
    !!SN:Xz1; установили новое имя сохранения
   
    Если красный игрок выбрал newgame, то игра будет сохранена в файл: "newgame_Красный.gm1".
   
    << !?MM0 >>
    Параметры:
    1: Номер текущего отряда или -1.
    2: Номер отряда, на который наведён курсор или -1.
    3: Минимальный урон.
    4: Максимальный урон.
   
    Триггер удобен для замены стандартной подсказки на расширенную с указанием, сколько единиц противника будут убиты при ударе.
   
    Пример:
    !?MM;
    !!SN:X?y1/?y2/?y3/?y4; получили параметры события
    !!FU&y2=-1:E; вышли, если это не подсказка об уроне
    !!BMy2:H?y5 L?y6 N?y7; y5 - жизнь, y6 - потерянное здоровье, y7 - кол-во единиц противника
    !!VRy8:Sy5-y6; y8 - здоровье последней единицы отряда
    !!VRy9:Sy3:y5; y9 - мин. кол-во умрут
    !!VRy10:Sy3%y5; y10 - урон по последней единице в худшем случае
    !!VRy9&y10>=y8:+1; y9 - мин. кол-во умрут
    !!VRy11:Sy4:y5; y11 - макс. кол-во умрут
    !!VRy12:Sy4%y5; y12 - урон по последней единице в лучшем случае
    !!VRy11&y12>=y8:+1; y11 - макс. кол-во умрут
    !!VRy13:Sy5*y7-y6; y13 - общее кол-во здоровья отряда
    !!VRy9&y9>y7:Sy7; y9 - мин. кол-во умрут
    !!VRy11&y11>y7:Sy7; y11 - макс. кол-во умрут
    !!IF:V2/0;
    !!IF&y9=y11:V2/1; флаг 2 говорит о том, что мин. и макс. уроны совпадают
    !!IF:V3/0;
    !!IF&y9=y7:V3/1; флаг 3 говорит о том, что весь отряд по-любому умрёт
    !!VRz2:S^%Y3-%Y4^; урон в формате "мин - макс"
    !!VRz2&y3=y4:S^%Y3^; урон в формате "урон"
    !!VRz3:S^Damage:^;
    !!if&3:; если весь отряд умрёт
    !!VRz1:S^%Z3 %Z2. {~Yellow}FATALITY{~}^;
    !!el:;
    !!VRz1:S^%Z3 %Z2. Kills: {~Yellow}%Y9-%Y11{~}^; урон с разбросом
    !!VRz1&2:S^%Z3 %Z2. Kills: {~Yellow}%Y9{~}^; урон без разброса
    !!en:;
    !!MM:Mz1; установить новую подсказку



RE: New Era Of Heroes - gamecreator - 03.08.2011 00:38

а почему cdecl и stdcall совмещены? Эра запоминает указатель стека перед вызовом?


RE: New Era Of Heroes - Berserker - 03.08.2011 02:29

Да.


RE: Феникс Мод - MOP - 22.08.2011 18:32

(17.08.2011 19:54)Sav Wrote:  18. Невозможно объединить последний отряд одного героя с отрядом дргугого в окне города.
5C7821 B800000000


RE: Феникс Мод - Berserker - 22.08.2011 19:05

MOP, ты не смотрел проблему потери опыта, если передаётся последний отряд?


RE: New Era Of Heroes - feanor - 25.08.2011 01:43

Имеется:
   - программа BinGen
   - патч вида 678948 06000000100000009090909090909090909090001C000000C5000000 (замена специальности Тана)
   - необходимость сгенерить бинарник.

Бинарник генерится, но в память пишет не
Code:
06000000 10000000 90909090 90909090
90909000 1С000000 С5000000
, а какую-то фигню вида

Code:
06000000 10000000 90909090 90909090
90909000 B1000000 15000000

А, да, и 678948 - это не ошибка, с 278948 игра вылетает на кнопке "Новая игра"
Не, сам патч-то я в редакторе подправил, но что за ерунда такая?

Подопытные:
http://zalil.ru/31603412


RE: New Era Of Heroes - Berserker - 25.08.2011 02:22

Буква "С" русская. BinMagic сразу ругнётся и кажет название символа и его позицию.


RE: New Era Of Heroes - feanor - 25.08.2011 02:36

:facepalm: Я идиот.
Ненавижу эту клавишу.

Но BinMagic не ругнулся, кстати.


RE: New Era Of Heroes - Berserker - 25.08.2011 03:51

Image: original.png
BinGen может быть не ругнулся?


RE: Феникс Мод - MOP - 29.08.2011 19:22

(22.08.2011 19:05)Berserker Wrote:  MOP, ты не смотрел проблему потери опыта, если передаётся последний отряд?
Посмотрел, но ни черта не понял. Бряк на вог-хук срабатывает в любом случае, последний это отряд или нет. Какая такая проверка может стоять в ВОГе и зачем она нужна - ума не приложу.
(27.08.2011 17:17)Berserker Wrote:  Патчит Arsenal.dll - плагин Мора, позволяющий в кузнице нанимать все три машины войны.
Посмотрел - у меня нет его исходников.
Кое-как откопал. Моя самая первая длл:
Code:
LIBRARY Arsenal;
{!INFO
MODULENAME = 'Arsenal'
VERSION = '1.0'
AUTHOR = 'Master Of Puppets'
}

USES Win, Utils, SysUtils, VPUtils;

//PROCEDURE HookCode(P: POINTER; NewAddr: POINTER; UseCall: BOOLEAN); external 'angel' name 'HookCode';

CONST
(* HookCode constants *)
C_HOOKTYPE_JUMP = FALSE;
C_HOOKTYPE_CALL = TRUE;
C_OPCODE_JUMP = $E9;
C_OPCODE_CALL = $E8;
C_UNIHOOK_SIZE = 5;

TYPE
(* Caienu, iaiaoiaeiay aey ?aaiou n ooieoeyie iao?eiaa *)
THookRec = RECORD
Opcode: BYTE;
Ofs: INTEGER;
END; // .record THookRec

VAR
Temp: INTEGER; // Oieaa?naeuiay a?aiaiiay ia?aiaiiay

PROCEDURE WriteAtCode(P: POINTER; Buf: POINTER; Count: INTEGER);
BEGIN
Win.VirtualProtect(P, Count, PAGE_READWRITE, @Temp);
Win.CopyMemory(P, Buf, Count);
Win.VirtualProtect(P, Count, Temp, NIL);
END; // .procedure WriteAtCode

PROCEDURE HookCode(P: POINTER; NewAddr: POINTER; UseCall: BOOLEAN);
VAR
HookRec: THookRec;
BEGIN
IF UseCall THEN BEGIN
HookRec.Opcode:=C_OPCODE_CALL;
END // .if
ELSE BEGIN
HookRec.Opcode:=C_OPCODE_JUMP;
END; // .else
HookRec.Ofs:=INTEGER(NewAddr)-INTEGER(P)-C_UNIHOOK_SIZE;
WriteAtCode(P, @HookRec, 5);
END; // .procedure HookCode

// Функция показа диалога Арсенала (работает лишь в городе):
PROCEDURE ARSENAL_FUNCTION; ASSEMBLER; {$FRAME-}
ASM
PUSH EBP
MOV EBP,ESP
MOV ECX,DWORD PTR DS:[$69954C]
PUSH -1
PUSH $63656B
MOV EAX, LARGE FS:0
PUSH EAX
MOV LARGE FS:0, ESP
PUSH ECX
PUSH ESI
MOV ESI,ECX
MOV ECX,DWORD PTR DS:[ESI+$38]
CMP DWORD PTR DS:[ECX+$3C],-1
JNZ @@No_call
MOV EAX, $5BDB50
CALL EAX
@@No_call:
MOV EAX,DWORD PTR DS:[ESI+$38]
PUSH EDI
MOV EAX,DWORD PTR DS:[$69CCFC]
MOV EDX,DWORD PTR DS:[$69CCF4]
IMUL EDX,EDX,$168
SUB EAX,EDX
MOV EDX,DWORD PTR SS:[EBP+8]
IMUL EDX,EDX,$492
ADD EDX,EAX
ADD EDX,$0B50
MOV DWORD PTR SS:[EBP+8],EDX
PUSH $4AA2F5
END;

//Вклиниваемся в адрес, откуда начинается вызов диалога Кузницы
PROCEDURE HOOK_Blacksmith; ASSEMBLER; {$FRAME-}
ASM
PUSH 0
PUSH ESI
CALL ARSENAL_FUNCTION
PUSH $5D22E1
END;

//Вырубаем все функции обновления экрана мира при входе в город
PROCEDURE Disable_Redraw_Map; ASSEMBLER; {$FRAME-}
ASM
PUSH EBP
MOV EBP, ESP
PUSH -1
MOV DWORD PTR DS:[$415D44],$114E9
MOV BYTE PTR DS:[$415D48],0
MOV DWORD PTR DS:[$4032E5],$124E9
MOV BYTE PTR DS:[$4032E9],0
MOV DWORD PTR DS:[$403423],$123E9
MOV BYTE PTR DS:[$403427],0
PUSH $5C6C75
END;

//Врубаем все функции обновления экрана мира при выходе из города
PROCEDURE Enable_Redraw_Map; ASSEMBLER; {$FRAME-}
ASM
MOV DWORD PTR DS:[$415D44],$BE83F18B
MOV BYTE PTR DS:[$415D48],$98
MOV DWORD PTR DS:[$4032E5],$0D8BF18B
MOV BYTE PTR DS:[$4032E9],$38
MOV DWORD PTR DS:[$403423],$8B565351
MOV BYTE PTR DS:[$403427],$0F1
MOV EAX,2
PUSH $5D4C74
END;

BEGIN
HookCode(POINTER($5D21A4), @HOOK_Blacksmith, C_HOOKTYPE_JUMP);
HookCode(POINTER($5C6C70), @Disable_Redraw_Map, C_HOOKTYPE_JUMP);
HookCode(POINTER($5D4C6F), @Enable_Redraw_Map, C_HOOKTYPE_JUMP);
END.
(22.08.2011 19:05)Berserker Wrote:  Пока что удали его лучше, а потом нужно выловить Мора и поругать.
Пусть лучше мир прогнётся под нас...


RE: Феникс Мод - gamecreator - 29.08.2011 19:32

(29.08.2011 19:22)MOP Wrote:  Пусть лучше мир прогнётся под нас...
для этого не надо динамические патчи делать. а то мир потом обратно выгнется.


Era 1.81 - hippocamus - 20.02.2019 17:22

Уже забыл, а вот теперь надо вспоминать.
В состав входит обновлённый h3wog.exe (видимо, добавлена подгрузка angel.dll и больше никаких изменений?), библиотека angel.dll (видимо, ранняя версия era.dll?) и папка с плагинами.
Моды не поддерживаются? Начиная с какой версии поддерживаются?


RE: Era 1.81 - Berserker - 22.02.2019 05:37

Моды с версии 2.0.