Wake of Gods Forum | Форум Во Имя Богов

Full Version: Вопросы по моддингу
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Думаю, зависимости можно найти через поиск по константам (есть в OllyDBG). Надо посмотреть, каким номерам строк они соответствуют в текстовом файле, а потом поискать эти номера.
Raistlin, зачем? ещё раз говорю, номера опций не влияют ни на что.
Raistlin, в воговских исходниках нашел функцию с этими зависимостями, может это поможет. Но я по прежнему не представляю как их в exe найти:
Это в wogsetup.cpp если что.
daemon_n, я имел ввиду не номера опций, а номера номеров в таблице. Сейчас, впрочем, уже не важно, так как адрес найден.
Raistlin, номера номеров в таблице можно получить покликав вручную)
Raistlin, какой адрес, если не секрет?
daemon_n, не важно, откуда номер) Главное - что это константа, по которой можно искать. Хотя, судя по функции, в данном случае это бы не помогло.

wessonsm, его в твоё сообщение дописали.
Увидел, спасибо!
(27.02.2022 23:11)XEPOMAHT Wrote: [ -> ]Настройка ключевых слов - целиком на совести скриптёра, т.к. вог по-умолчанию всегда пишет туда 0.

XEPOMAHT, верно ли, что контрольные слова для каждого объекта пишутся в какую-то структуру в памяти или выделенную область памяти?
И не может ли случиться так, что выделенной области не хватит?
(28.02.2022 11:45)wessonsm Wrote: [ -> ]верно ли, что контрольные слова для каждого объекта пишутся в какую-то структуру в памяти или выделенную область памяти?

Контрольное слово пишется в структуру клетки карты, память на которую выделяется исходя из размеров карты.

(28.02.2022 11:45)wessonsm Wrote: [ -> ]И не может ли случиться так, что выделенной области не хватит?

Лимит контрольного слова - 32 бита памяти. Но там новые данные лучше не хранить, т.к. места там и так кот наплакал. SoD и так сжимает данные для доброй половины объектов, чтобы они туда вошли, а всё что не входит - записывается и храниться в дополнительных структурах, привязанных к индексам объектов на карте. Для новых объектов карты, естественно, могут быть новые форматы контрольных слов (например, в ERA+ данные новых объектов карт без проблем хранятся в контрольных словах и обрабатываются Тифоном). Для воговских объектов так же выделяется соответствующая память, но... она привязана к максимальному размеру карт, в итоге, тонна неиспользованных нулей пишется в сохранения (а Берсеркер пишет в сохранения ЕЩЁ БОЛЬШЕ нулей для совместимости с XXXL-картами), но особо конечно пользователь это не замечает, т.к. данные архивируются (но в памяти при загрузке сохранения так же будет мегабайты помойки из неиспользованных нулей).
XEPOMAHT, спасибо за подробное разъяснение!
XEPOMAHT, да вроде бы давно уже сохраняемые PO-данные под размер карты подстраиваются (но всегда с подземельем).

BasicPoSize := MapSize * MapSize * 2;
SquaresSize := BasicPoSize * sizeof(TSquare);

При старте/загрузке карты происходит пересчёт размера данных PO и соответствующий патчинг.
У меня вопрос по заголовочному файлу era.h.
Компилятор (Visual Studio Express 2008) ругается на строку 303:
Code:
std::string tr (const char *key, const std::vector<std::string> params = {}) {
Code:
error C2143: синтаксическая ошибка: отсутствие ")" перед "{"
error C2059: синтаксическая ошибка: )
error C2059: синтаксическая ошибка: )
error C2447: {: отсутствует заголовок функции (возможно, используется формальный список старого типа)

Что здесь может быть не так?
Была еще пара ошибок, но с ними я справился самостоятельно.
Осталась эта. Sorry
Древний компилятор не понимает то ли C++ 11, то ли 13-ый стандарт, когда можно давать векторам/дин.массивам значения по умолчанию в аргументах и при инициализации. Убери "= {}". Просто при вызове tr (аналог SN:T) нужно будет всегда передавать пустой список параметров, даже если их нет.
Спасибо! В таком виде компилируется.
И еще, я правильно понимаю, что в строке 202
"typedef char* (__stdcall *ToStaticStr) (const char* Str);"
- это опечатка и должно быть
"typedef char* (__stdcall *TToStaticStr) (const char* Str);" ?
Просто хочу окончательно развеять сомнения.
Reference URL's