Цитата:
Bad news for me, I'm stuck on getting a list of towns.
Объявления |
---|
Друзья, если не получается зарегистрироваться, напишите на почту vdv_forever@bk.ru. Я оторву свою задницу от всех дел и обязательно Вас активирую! Добро пожаловать на геройский форум! |
Re: RMG SODЦитата: Bad news for me, I'm stuck on getting a list of towns. |
Re: RMG SODНевозможность получения списка городов, обошел изменением алгоритма.
Теперь мучусь с ГО, как получить список координат охран проходов? Создаются они здесь - RMG_MonsterGenerationZoneBlocks_00541630:
Но проблема в том, что здесь v48 это созданный монстр, но у него пустые координаты x,y:
Ставил точку останову на изменение v48->x, попадаю сюда: sub_00533700 Здесь есть координаты, но сюда попадают все монстры, а мне нужно только ГО. |
|
Re: RMG SODAs far as I could tell and remember, there is no distinction between generated monsters.
What you could do is hook RMG_MonsterGenerationZoneBlocks_00541630, and add the result to a global vector. Then at a later point you inspect the contents of the vector (remember to empty it afterwards). In fact, same thing can be done for towns, look into RMG_PlaceTown_00545740. |
Re: RMG SODThanks, it works:
But how to delete monster from the tile, it doesn't work:
And cann't find where is the town at RMG_ToPlaceTowns_00544F40. |
Re: RMG SODЕсли изменить координаты монстра за границы карты, то он естественно исчезает.
Например ставим x=200 и y=200. Игра при этом запускается и все работает. Могут ли быть побочные последствия у такого способа удаления монстров? |
|
Re: RMG SODWhen the game loads adventure map objects from the h3m format, basic checks are performed for every single one of them, including whether they have at least 1 tile of presence on the map; if not, they're thrown out.
It's not only safe but also probably the easiest way to 'remove' these The RMG_MapItem::object vector doesn't "contain" objects itself, it's just a list of objects that show up here. |
Re: RMG SODКто нибудь понимает как работает "RMGMapItems_00531D80_CantPlace"?
Я использую ее чтобы отодвинуть шахты и города от границы зон, это прекрасно работает и позволяет избежать проходов на смежные зоны. Однако, иногда появляется абсолютно необъяснимый побочный эффект - на некоторых генерациях, центр становится более разряженным по объектам. Вот пример: Без HiHook на RMGMapItems_00531D80_CantPlace: С HiHook на RMGMapItems_00531D80_CantPlace: Вот код:
Я так понимаю что RMGMapItems_00531D80_CantPlace, для каждого объекта строит маску размещения по всем клеткам карты. Но как, код выше может влиять на размещение объектов в центре, вдалеке от смежных зон? |
Re: RMG SODПоменял местами генерацию дорог и объектов.
И теперь при генерации объекта я всегда могу знать есть ли рядом дорога. Т.о. появляется возможность красиво решить проблему блоков вдоль дорог. Надо всего лишь найти функцию которая размещает объект на карту и в ней проверять есть ли рядом дорога и если есть то не размещать там объект. Судя по всему эта функция "RMGMapItems_00531D80_CantPlace". Использую ее и получаю нужный результат - блоков вдоль дорог нет! Однако, вылезает та же самая проблема, что постом выше - плотность объектов в центральной зоне значительно уменьшается. Вот по сути весь код в HiHook на RMGMapItems_00531D80_CantPlace:
Почему так происходит? |
|
Re: RMG SODSwapping generation order is an interesting idea.
You could try to dump the information to a text file (std::ofstream) of failed items to double-check that road detection is correct. |
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8