Berserker
Posts: 16647
|
|
05.07.2024 17:35 |
|
Berserker
Posts: 16647
|
|
07.07.2024 04:43 |
|
Berserker
Posts: 16647
|
|
09.07.2024 16:42 |
|
major
Posts: 146
|
Berserker, а можно попросить немного обновить ELM, если конечно не сильно заморочено?
Суть вопроса: чтобы изменение цвета {~colour} с каким-нибудь тегом игнорировало другие изменения цвета, пока не встретит свой тег {~}.
Пример, есть такая строка:
Code:
Здесь идет описание предмета с {некоторыми} функциями.
И если написать так:
Code:
{~grey}Здесь идет описание предмета с {некоторыми} функциями.{~}
то "некоторыми" все равно будет выделено другим цветом.
Хотелось бы добавить какой-нибудь тег, например
Code:
{~grey!}Здесь идет описание предмета с {некоторыми} функциями.{~}
чтобы все слова отображались одним, в данном примере серым, цветом.
|
|
14.07.2024 19:57 |
|
Berserker
Posts: 16647
|
|
14.07.2024 20:16 |
|
major
Posts: 146
|
Ок, если муторно, то конечно не надо. Просто буду держать дубликаты строк для обоих вариантов.
|
|
14.07.2024 21:50 |
|
Berserker
Posts: 16647
|
|
15.07.2024 01:36 |
|
major
Posts: 146
|
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 |
|
Berserker
Posts: 16647
|
|
27.07.2024 18:43 |
|
major
Posts: 146
|
Игра стала крашиться при запуске. Видимо из-за того, что у меня 3.9.4. Подожду последнюю версию, потом проверю.
|
|
27.07.2024 20:20 |
|
Berserker
Posts: 16647
|
|
27.07.2024 23:40 |
|
XEPOMAHT
Posts: 2351
|
(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 |
|
major
Posts: 146
|
(27.07.2024 23:40)Berserker Wrote: Да, 3.9.4 уже давно была. А с этим обновлением?
https://dropmefiles.com/An8ut
Тоже крашится.
Там же ничего менять не надо? Подключить era.cpp вместо era.h и все?
|
|
28.07.2024 09:57 |
|
Berserker
Posts: 16647
|
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 |
|