Current time: 20.09.2024, 04:50 Hello There, Guest! (LoginRegister)
Language: english | russian  

Post Reply 
Threaded Mode | Linear Mode
ERA III
Author Message
Archer30 Offline
Moderators

Posts: 1170
Post: #2581

Hi, I mean the "latest loaded save game" should be saved in debug folder.

When the game crashes, the latest loaded save game filename can be 2 types of values:
- Null, if there was no save game loaded in the current game, the game was started fresh.
- Latest loaded save game. This is unique to the current game. I don't see a way of false positives.

We don't need the latest save game in date.

At the moment I suffer from players being too passive on feedback. I asked them to provide 3 things when they report:
- debug folder (after crash or manually generated by F11)
- Save game to reproduce the issue
- Info on how to reproduce the issue with the given save game

If the first and second can be merged, it can potentially reduce the amount of work for players, making them more actively reporting issues.

______


Btw, there is another thing to improve the debug system.

Could you export the text "game crashes, info in debug\era" to json so it can be localised?


Latest ERA mods and scripts in development - My GitHub
(This post was last modified: 07.07.2024 08:48 by Archer30.)
05.07.2024 09:14
Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16624
Post: #2582

Archer30, ok, I'll try to include all the changes in the next release. For new map we should save at least map name, perhaps or even map file. I'll see what can be done.


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

Posts: 16624
Post: #2583

Ввод текста в чате генерирует событие щелчка левой кнопкой мыши на карте приключений с ИД = 38. Кто-нибудь знает причину и источник этой генерации?


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

Posts: 16624
Post: #2584

Готовится к выходу версия 3.9.15 и мод на удобные читы и работу с ЕРМ в консоли.


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

Posts: 146
Post: #2585

Berserker, а можно попросить немного обновить ELM, если конечно не сильно заморочено?
Суть вопроса: чтобы изменение цвета {~colour} с каким-нибудь тегом игнорировало другие изменения цвета, пока не встретит свой тег {~}.

Пример, есть такая строка:
Code:
Здесь идет описание предмета с {некоторыми} функциями.

И если написать так:
Code:
{~grey}Здесь идет описание предмета с {некоторыми} функциями.{~}
то "некоторыми" все равно будет выделено другим цветом.

Хотелось бы добавить какой-нибудь тег, например
Code:
{~grey!}Здесь идет описание предмета с {некоторыми} функциями.{~}
чтобы все слова отображались одним, в данном примере серым, цветом.
14.07.2024 19:57
Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16624
Post: #2586

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


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

Posts: 146
Post: #2587

Ок, если муторно, то конечно не надо. Просто буду держать дубликаты строк для обоих вариантов.
14.07.2024 21:50
Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16624
Post: #2588

По сути это аналог !important в css, и есть, где применить, просто сейчас ресурсы идут на другие задачи. 3.9.15 на подходе.


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

Posts: 146
Post: #2589

Berserker, как сохранить нужные данные в сейв?

Как я понял, нужны две процедуры для сохранения и чтения.
Code:
Era::RegisterHandler(Global_Vars_Save, "OnSavegameWrite"); // запись в сохранение
Era::RegisterHandler(Global_Vars_Load, "OnSavegameRead"); // чтение из сохранения

И нужно в событии записать и прочитать данные в/из секции.
Code:
_word_ town_vars[48] = { 0 };

// Запись глобальных переменных в сохранение.
void __stdcall Global_Vars_Save(Era::TEvent* e)
{
    Era::WriteSavegameSection(96, town_vars, "town_vars");
}

// Чтение глобальных переменных из сохранения.
void __stdcall Global_Vars_Load(Era::TEvent* e)
{
    Era::ReadSavegameSection(96, town_vars, "town_vars");
}

Только у меня при сохранении игра крашится. Где-то что-то не так делаю?
Code:
HOMM3 HD version: 5.4 R87
Time {   27.07.2024    17:17:25 }

GUN:  [ZZ79779073039T645247MVGZX HHW 039TY]

Exception
{
   Module:     
   Adress:      [ 0x00000000 ]
   Code:        EXCEPTION_ACCESS_VIOLATION
   Flags:       0x00000000
   Information: read of address: 0x00000000
}

Context { EAX: 0x6D3E15B0, ECX: 0x02D37428, EDX: 0x00000000, EBX: 0x0AF551A0, ESP: 0x02D3741C, EBP: 0x02D37474, ESI: 0x00000001, EDI: 0x00000004 }

Call stack
{
                           ? called from before    [ 0x00000030 ]
                           ? called from before    [ 0xCCCCCCCC ]
}
27.07.2024 17:20
Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16624
Post: #2590

Привет. Внешне код выглядит корректно. Тут скорее API Эры не доподключилось.

https://dropmefiles.com/NZU0r

Обязательно добавь era.cpp в проект как компилируемый модуль.


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

Posts: 146
Post: #2591

Игра стала крашиться при запуске. Видимо из-за того, что у меня 3.9.4. Подожду последнюю версию, потом проверю.
27.07.2024 20:20
Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16624
Post: #2592

Да, 3.9.4 уже давно была. А с этим обновлением?
https://dropmefiles.com/An8ut


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

Posts: 2332
Post: #2593

(27.07.2024 17:20)major Wrote:  Как я понял, нужны две процедуры для сохранения и чтения.
Code:
Era::RegisterHandler(Global_Vars_Save, "OnSavegameWrite"); // запись в сохранение
Era::RegisterHandler(Global_Vars_Load, "OnSavegameRead"); // чтение из сохранения

Запись в файл перед запаковкой в воговский участок сохранения - вызов функции 704062h
Чтение из файла после распаковки воговского участка сохранения - вызов функции 7040A7h

Естественно, очень важна последовательность чтения и записи, иначе прочитаются чужие данные либо игра вылетит при попытке прочитать молоко (или другой плагин воспримет твои записи за свои и сохранение будет испорчено), поэтому с установкой хуков на чтение и запись сохранений нужно быть крайне осторожным. Например ВоГ страхуется с помощью ключевых слов, в MoP и ERA+ подстраховки нет, т.к. авторы этих модов положили болт, а как защищены данные в событиях "OnSavegameWrite" и "OnSavegameRead" - только одному Берсеркеру известно.
(This post was last modified: 28.07.2024 02:14 by XEPOMAHT.)
28.07.2024 02:11
Find all posts by this user Quote this message in a reply
major Offline

Posts: 146
Post: #2594

(27.07.2024 23:40)Berserker Wrote:  Да, 3.9.4 уже давно была. А с этим обновлением?
https://dropmefiles.com/An8ut
Тоже крашится.

Там же ничего менять не надо? Подключить era.cpp вместо era.h и все?
28.07.2024 09:57
Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16624
Post: #2595

Quote:Запись в файл перед запаковкой в воговский участок сохранения - вызов функции 704062h
Чтение из файла после распаковки воговского участка сохранения - вызов функции 7040A7h

Естественно, очень важна последовательность чтения и записи, иначе прочитаются чужие данные либо игра вылетит при попытке прочитать молоко (или другой плагин воспримет твои записи за свои и сохранение будет испорчено), поэтому с установкой хуков на чтение и запись сохранений нужно быть крайне осторожным. Например ВоГ страхуется с помощью ключевых слов, в MoP и ERA+ подстраховки нет, т.к. авторы этих модов положили болт, а как защищены данные в событиях "OnSavegameWrite" и "OnSavegameRead" - только одному Берсеркеру известно.
Всё уже гораздо прогрессивнее лет 15. Можно писать в именованные секции по частям. Данные объединяются автоматически. Количество прочитанных байт в секции возвращается. Никакого молока и костылей. Тут скорее вопрос в API/заголовчниках.

major, era.cpp подключить к проекту как отдельно компилирующий модуль. era.h include в файле, где будешь использовать.
Вызвать Era::ConnectEra().

Скинь, если что плагин сюда.


Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов
Поддержать проект
28.07.2024 12:23
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