Объявления |
---|
Друзья, если не получается зарегистрироваться, напишите на почту vdv_forever@bk.ru. Я оторву свою задницу от всех дел и обязательно Вас активирую! Добро пожаловать на геройский форум! |
Re: RMG SODAlexSpl писал(а): Вот вот это я и не знаю как сделать. |
Re: RMG SODУзнайте адрес RMG_MapItem.RMG_GroundTile.landType для начала. Он вычисляется.
Т.е. возьмите конкретный тайл конкретного объекта и поставьте брейкпоинт по этому адресу. Другими словами, расшифруйте RMG_MapItem.RMG_GroundTile.landType. Получится что-то вроде сложения адресов. За адресами - в код H3API. |
Re: RMG SODВам нужно понять, как вычисляется &((xyz)->tile.landType). Посмотрите H3API. Это будет сумма значений, записанных по другим адресам (например, GameMgr) и оффсета landType в структуре тайла. Адрес тайла находится по координатам. Т.е. получаете адрес карты, прибавляете к нему смещение конкретной структуры tile и оффсет поля landType внутри это структуры. 0x0f5e53c8 - это и есть такая сумма. Только она меняется каждый раз, когда Вы перезапускаете игру. Но этот адрес всё равно можно найти, т.к. адреса основных переменных фиксированны (тот же GameMgr).
|
Re: RMG SODКак вариант, попробуйте поиск по сигнатуре. Т.е. запишите последовательность байтов конкретной структуры тайла (адрес вы видите) и найдите такую же последовательность при следующей генерации (seed должен быть одинаковым).
|
Re: RMG SODAlexSpl писал(а): Мне бы хоть вот этот, начальный кусок, скорее всего именно он делает проходы между зонами:
Кстати sub_0054D4E0 одна из самых страшных функций, которые мне встречались. Хоть бы примерно понимать что она делает. По структурам, там все очень просто. Один из самых маленьких наборов в игре: https://github.com/RoseKavalier/H3Plugi ... /H3RMG.hpp Это все что есть и ничего более. RMG_Main(_RMGStruct_) - Главная точка входа, в которой хранятся все основные параметры создаваемой карты. Основные атрибуты: RMG_Map map; - структура всей создаваемой карты. H3Vector<RMG_ObjectProps>(_RMGObjectPrototype_) objectsTxt; - свойства всех объектов из одноименного txt файла. H3Vector<RMG_Object*>(_RMGObject_) positions; - все созданные на карте объекты. H3Vector<RMG_ZoneGenerator*> zoneGenerators; - вектор создаваемых зон. RMG_Map map(_RMGMapItems_) -вся карта состоит из: RMG_MapItem(_RMGMapItem_) *mapItems; - одна клетка карты RMG_ZoneGenerator(_RMGGenZone_) - создаваемая зона карты, ключевой атрибут: RMG_Zone *zoneInfo; - содержит всю информацию по зоне, загруженную из шаблона rmg.txt RMG_Zone(_RMGZone_) H3Vector<RMG_ZoneConnection> connections; - по сути содержит вектор зон, с которыми должна соединяться текущая зона, эти данные также загружаются из rmg.txt и упакованы в отдельную структуру |
Re: RMG SODА как можно по RMG_Object выйти на его RMG_ObjectGenerator?
Мне нужно получить value хижины провидца. |
|
Re: RMG SODMaybe by virtual table comparison?
I have this static-analysis of RMG_Object_Seer, really not certain it's accurate.
|
Re: RMG SODI don't know how to work with virtual tables.
RMG_Object_Seer - very useful, now i can get seer's reward. And calculate it's values, there is a little problem, with army - i cant't repeat original formula cause it rather complicated. Here is a little analyze of 6 Seer's Hut:
So, here is the correct names:
Question, what is "base"? |
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 11