daemon_n, SN:H^secskill^/skill 0..27/0 (name) or skill level/new hint.
SN:H^secskill^/0/3/^Экспертный Поиск Пути^;
(14.12.2019 12:52)daemon_n Wrote: [ -> ]тогда ещё надо для редактора карт совместимость сделать.
Во-первых, базы от GrayFace для редактора карт в свободном доступе нет. Во-вторых, XXL-мод и так содержит патч, позволяющий редактору открывать карты 252х252 (просто на новой ЭРА он может и не работает - проверять надо).
XEPOMAHT, на английском форуме ERA+ заинтересовались. Дал ссылку. Сегодня меня снова пригласили на китайский форум. Там мод бы стал просто бомбой. На заходить нужно через переводчик. wakeofgods.com/forum.php. Если нужна регистрация (он платная), могу попросить код.
Yes it's about time that ERA+ becomes more attention

it's the best motivation.
(14.12.2019 17:02)Berserker Wrote: [ -> ]на английском форуме ERA+ заинтересовались. Дал ссылку.
Спасибо. Правда ERA+ только на русском, переводом на английский заниматься не кому, поэтому не знаю, как они будут в него играть (да и перевод можно сделать только через меня, т.к. тексты городов зашиты в dll), возможно, что лучше выложить там ERA+ после того, когда у меня всё-таки дойдут руки переписать патч на новых героев с MoP на ERA.
(14.12.2019 17:02)Berserker Wrote: [ -> ]Там мод бы стал просто бомбой.
Мега-бомбой бы там мог стать MoP, содержащий 2 добавленных города. Но китайцы наверное и про оригинальный MoP никогда не слышали.
(14.12.2019 17:02)Berserker Wrote: [ -> ]заходить нужно через переводчик. wakeofgods.com/forum.php.
Гугл вроде туда не пускают. А на китайском не понятно ничего (как впрочем и на английском).
(14.12.2019 17:31)PerryR Wrote: [ -> ]Yes it's about time that ERA+ becomes more attention
it's the best motivation.
All my work is focused on Heroes 3: Master of Puppets 2. ERA+ - in my free time from MoP development.
XEPOMAHT, а есть смысл хранить в DLL? Осилишь вызов tr из era.dll + динамическое выделение памяти через что угодно вроде VirtualAlloc для сохранения строки у себя?
function tr (const Key: pchar; Params: pointer; LastParamsIndex: integer): pchar; stdcall;
Первый параметр — составной ключ из языковых json-файлов. Например, 'era+.griffin_desc'. Затем ссылка на массив строк-параметров (строка — указатель на цепочку символов). Третий параметр — число параметров в массиве - 1. У тебя строки без подстановок, второй параметр можно null, третий — -1.
Итого:
push -1
push 0
push offset 'era+.griddin_desc'
call era_dll.tr
; в eax — указатель на строку, длину которой можно получить через lstrlen, скопировать через lstrcpy, выделить память через VirtualAlloc.
В Mods\Era+\Data\Lang\era+.json
{
"era+": {
"griffin_desc": "Моё описание северного Гриффона"
}
}
http://www.wakeofgods.com/forum.php
Эта ссылка работает в Хроме с расширение Google Translate. Возможно, заработает у тебя просто через translate.google.com
(15.12.2019 02:08)Berserker Wrote: [ -> ]а есть смысл хранить в DLL?
1. У меня не выходит корректно загружать строки из текстовиков в память ассемблером (почему-то игра при рестарте карты всё время пытается что-то с ними делать, то-ли перезагрузить, то-ли переписать в другую область памяти, в итоге происходит вылет).
2. Сам геройский формат загруженных строк не очень годится для прямой адресации на них - там ещё создаются какие-то то-ли описатели строк, то ли ещё что-то непонятное (а полного описания формата загруженных строк у меня нет и его я так и не разбирал - там чертовщина какая-то...). Мне же нужна просто голая строка в памяти с адресом на неё без всяких лишних таблиц - знаю, что такое можно только через dll напрямую без лишних хлопот.
(15.12.2019 02:08)Berserker Wrote: [ -> ]Осилишь вызов tr из era.dll + динамическое выделение памяти через что угодно вроде VirtualAlloc для сохранения строки у себя?
Сложно. Увы, этому ещё нужно как-то научиться.
struct H3String // размер 16 байт
{
BOOL init; // +0 используется ли ~ 4 bytes here, 1 byte for init, 3 bytes for alignment, sizeof(BOOL) == sizeof(int) == 4
PCHAR str; // +4 указатель на строку
INT32 length; // +8 длина сроки
INT32 capacity; // +12 максимальная вместимость строки
}
In ERA2.9 when using the function
!?FU77004; Open Hero Screen
!!HE-1:N?y1;
and the map just started and you press "Enter" to open the Hero window, without moving the hero first, there will be ERM error that tells you hero is out of range.
This does not happen in 2.88
(15.12.2019 05:46)RoseKavalier Wrote: [ -> ]struct H3String // размер 16 байт
{
BOOL init; // +0 используется ли ~ 4 bytes here, 1 byte for init, 3 bytes for alignment, sizeof(BOOL) == sizeof(int) == 4
PCHAR str; // +4 указатель на строку
INT32 length; // +8 длина сроки
INT32 capacity; // +12 максимальная вместимость строки
}
Да. Я все время забываю, что BOOL = 4 байта, а BOOL8 = 1 байт.
Спасибо.
Увидел проблему с Некромантией и опытом армий. Если у моего героя с навыком Некромантия во время битвы убивают всех скелетов, но он выигрывает битву, то новые скелеты будут обладать рангом опыта старых скелетов.
Скинули как-то баг в тему Advanced Classes Mod. Думал, дело в моде, но вот встретил и на чистой англ Эре 2.8.8. Случайно.
Собщение на ходу ИИ. Предумотрено для ИИ
Сейв и лог На ЯД
(12.12.2019 03:51)Berserker Wrote: [ -> ][+] Era 1.9 was fully ported to Delphi. Angel.dll is left as deprecated stub only. Antiviruses no longer complain on angel.dll.
У меня получилось наоборот: Аваст блокирует эту новую версию angel.dll. Пришлось добавить в исключение. На предыдущие версии angel.dll он никогда не ругался.