Current time: 29.11.2024, 21:38 Hello There, Guest! (LoginRegister)
Language: english | russian  

Post Reply 
Threaded Mode | Linear Mode
ERA II
» WoG Era 2: Русская и Английская версии
Author Message
Berserker Offline
Administrators

Posts: 16657
Post: #3601

daemon_n, SN:H^secskill^/skill 0..27/0 (name) or skill level/new hint.
SN:H^secskill^/0/3/^Экспертный Поиск Пути^;


Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов
Поддержать проект
14.12.2019 14:22
Find all posts by this user Quote this message in a reply
XEPOMAHT Offline
Moderators

Posts: 2356
Post: #3602

(14.12.2019 12:52)daemon_n Wrote:  тогда ещё надо для редактора карт совместимость сделать.

Во-первых, базы от GrayFace для редактора карт в свободном доступе нет. Во-вторых, XXL-мод и так содержит патч, позволяющий редактору открывать карты 252х252 (просто на новой ЭРА он может и не работает - проверять надо).
14.12.2019 16:38
Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16657
Post: #3603

XEPOMAHT, на английском форуме ERA+ заинтересовались. Дал ссылку. Сегодня меня снова пригласили на китайский форум. Там мод бы стал просто бомбой. На заходить нужно через переводчик. wakeofgods.com/forum.php. Если нужна регистрация (он платная), могу попросить код.


Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов
Поддержать проект
14.12.2019 17:02
Find all posts by this user Quote this message in a reply
PerryR Offline

Posts: 460
Post: #3604

Yes it's about time that ERA+ becomes more attention 4 it's the best motivation.
(This post was last modified: 14.12.2019 17:32 by PerryR.)
14.12.2019 17:31
Find all posts by this user Quote this message in a reply
XEPOMAHT Offline
Moderators

Posts: 2356
Post: #3605

(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.

Гугл вроде туда не пускают. А на китайском не понятно ничего (как впрочем и на английском).

Image: 3a0146e23a24.png

(14.12.2019 17:31)PerryR Wrote:  Yes it's about time that ERA+ becomes more attention 4 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.
15.12.2019 00:45
Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16657
Post: #3606

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


Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов
Поддержать проект
15.12.2019 02:08
Find all posts by this user Quote this message in a reply
XEPOMAHT Offline
Moderators

Posts: 2356
Post: #3607

(15.12.2019 02:08)Berserker Wrote:  а есть смысл хранить в DLL?

1. У меня не выходит корректно загружать строки из текстовиков в память ассемблером (почему-то игра при рестарте карты всё время пытается что-то с ними делать, то-ли перезагрузить, то-ли переписать в другую область памяти, в итоге происходит вылет).

2. Сам геройский формат загруженных строк не очень годится для прямой адресации на них - там ещё создаются какие-то то-ли описатели строк, то ли ещё что-то непонятное (а полного описания формата загруженных строк у меня нет и его я так и не разбирал - там чертовщина какая-то...). Мне же нужна просто голая строка в памяти с адресом на неё без всяких лишних таблиц - знаю, что такое можно только через dll напрямую без лишних хлопот.

(15.12.2019 02:08)Berserker Wrote:  Осилишь вызов tr из era.dll + динамическое выделение памяти через что угодно вроде VirtualAlloc для сохранения строки у себя?

Сложно. Увы, этому ещё нужно как-то научиться.
15.12.2019 03:05
Find all posts by this user Quote this message in a reply
igrik Offline

Posts: 2819
Post: #3608

(15.12.2019 03:05)XEPOMAHT Wrote:  2. Сам геройский формат загруженных строк не очень годится для прямой адресации на них - там ещё создаются какие-то то-ли описатели строк, то ли ещё что-то непонятное (а полного описания формата загруженных строк у меня нет и его я так и не разбирал - там чертовщина какая-то...)
Code:
struct H3String // размер 13 байт
{
    BOOL init; // +0 используется ли
    PCHAR str; // +1 указатель на строку
    INT32 length; // +5 длина сроки
    INT32 capacity; // +9 максимальная вместимость строки
}


game bug fixes extended.dll || My Plugins || My GitHub
15.12.2019 03:32
Visit this user's website Find all posts by this user Quote this message in a reply
RoseKavalier Offline

Posts: 118
Post: #3609

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 максимальная вместимость строки
}
15.12.2019 05:46
Find all posts by this user Quote this message in a reply
PerryR Offline

Posts: 460
Post: #3610

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 16:56
Find all posts by this user Quote this message in a reply
igrik Offline

Posts: 2819
Post: #3611

(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 байт.
Спасибо.


game bug fixes extended.dll || My Plugins || My GitHub
15.12.2019 17:49
Visit this user's website Find all posts by this user Quote this message in a reply
Reinc Offline

Posts: 145
Post: #3612

Увидел проблему с Некромантией и опытом армий. Если у моего героя с навыком Некромантия во время битвы убивают всех скелетов, но он выигрывает битву, то новые скелеты будут обладать рангом опыта старых скелетов.
15.12.2019 18:58
Find all posts by this user Quote this message in a reply
daemon_n Offline
Administrators

Posts: 4343
Post: #3613

Скинули как-то баг в тему Advanced Classes Mod. Думал, дело в моде, но вот встретил и на чистой англ Эре 2.8.8. Случайно.
Собщение на ходу ИИ. Предумотрено для ИИ
Сейв и лог На ЯД


Image: widget.png?style=banner2

Новейший Heroes Launcher
16.12.2019 06:07
Visit this user's website Find all posts by this user Quote this message in a reply
XEPOMAHT Offline
Moderators

Posts: 2356
Post: #3614

(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 он никогда не ругался.
16.12.2019 14:03
Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16657
Post: #3615

Аваст — днище 85. Зацени код библиотеки:
Code:
library Angel;

uses SysUtils, Windows;

var
  EventParams:             array [0..23] of integer;
  DeprecationMessageShown: boolean = false;

procedure ShowDeprecationMessage (const Mes: string);
begin
  if not DeprecationMessageShown then begin
    DeprecationMessageShown := true;
    Windows.MessageBoxA(0, pchar(Mes), 'DEPRECATED', 0);
  end;
end;

procedure SaveEventParams;
begin
  ShowDeprecationMessage('Angel.SaveEventParams is DEPRECATED. Use Era.GetArgXVars and assign arguments any time');
end;

procedure RestoreEventParams;
begin
  ShowDeprecationMessage('Angel.RestoreEventParams is DEPRECATED. Use Era.GetRetXVars and obtain arguments right after event is over');
end;

exports
  EventParams,
  SaveEventParams,
  RestoreEventParams;

end.


Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов
Поддержать проект
16.12.2019 14:31
Find all posts by this user Quote this message in a reply
« Next Oldest | Next Newest »
Post Reply 


Forum Jump:

Powered by MyBB Copyright © 2002-2024 MyBB Group