Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
Генерация методом buildzone
#81
спасибо, я натыкался на эти файлы, если они для эпилога то я был мальца не внимателен ))
#82
Прочитай мануал, там всё доступно описано Smile Поймёшь, сделаешь билдер, сбилдишь квадрат.
Сразу говорю, квадраты с водой он не любит.
P.S зачем это кстати нужно, если в шаре та же гео от стазиса, она = билду что ты хочешь Smile
#83
это нужно для себя, для опыта
#84
Подниму что-ли тему Smile Может все-таки кто-то понял, что нокнуть надо в енжайне, чтобы подружить генерацию квадрата с водными участками?
#85
Все дружно просим дядю Дизера раскрыть все тайны и подводные камни, хотябы в приват Smile))))
ДЯДЯЯЯЯЯЯЯЯЯЯ раскаивайся!!!))
#86
Хотя бы намек куда копать Smile
#87
Поделитесь кто нить билдером который выкладывал Дизер в посте
http://forum.zone-game.info/showpost.php...stcount=53
Ссылка сдохла Sad
[Изображение: 61b684.png]
#88
Смотрю тема умерла окончательно видимо в связи с тем что в нете валяется чертова туча гео под разные хроники. Но разве не интересно разобраться в процессе билда гео?
Собственно сам продвинулся не так далеко, но некоторые идеи все же есть.
Всем известный мануал от Фьюри можно похоронить т.к. нету его старых дллок на основе которой писался мануал, мануал который написан на mmocore жалкое подобие сделать билдер и сделан совершенно бездумно на скорую руку, отсюда (как многие думают) время билда, хотя если смотреть через дебагер то билдер похоже уходит в бесконечный цикл при построении мира.
Хочу поделиться своими мыслями, ну и просто для единомышленников т.к. застрял на важном в билдере - это работа с ослоями.

1. Метод разлочки билда: Билдим в ручную с указанием width и top, определяет кол-во слоев корректно но билдит всего 1н уровень. (Часто пре билде "виснет", процесс l2 не завершается просто нет никакой активности, на разных картах по разному бывает билдит бывает нет, не смог понять почему)
2. Метод разлочки билда: Билдим в ручную с указанием width и top, определяет кол-во слоев корректно билдит вроде все слои. (Часто пре билде "виснет", процесс l2 не завершается просто нет никакой активности, на разных картах по разному бывает билдит бывает нет, не смог понять почему)

Эти два метода не очень удобны т.к. билд происходит от точки где стоит "чар" по направлению вниз и вправо, да и вменяемого билда где width больше чем 22000 я не смог добиться, на разных картах по разному, видно из за слоев он на них похоже запинается.

3. Метод разлочки билда: Билдим автоматом всю карту сразу достаточно команды buildzone map=X_Y без width и top, "чар" выставляется в блок [0:0] и билдит до блока [2047:2047], определяет кол-во слоев корректно но опять таки билдит только 1н уровень. (Пока остановился на этом варианте т.к. билдит всю карту сразу но подходит больше для мест где нету закрытых мест откуда "чар" не сможет выбраться, если "чар" попадает в такого рода место билд либо прерывается не закончив билд карты до конца или вылетает крит. Но опять таки билдит не все карты, карты где есть возвышающиеся острова например деревня светлых эльфов он тоже впадает в какой-то своего рода ступор, не вылетает не критует, но и не билдит ждал довольно продолжительное время и без результатов.

4. Метод такой же как и 3й только только билдит все слои куда может добраться "чар". (Не применим т.к. почти на всех картах впадает в ступор), прокатило только на карте 25_21 (ЛОА) но тоже через жопу, т.к. везде где "чар" смог беспрепятственно передвигаться сбилдилось нормально, а вот в само логово "чар" попасть не смог и в итоге само (ЛОА) не билдся.

Вывод, возможно 4й метод верный, но я не смог дождаться времени билда, но также возможно метод не верный в корне и рыть нужно куда-то еще.

Провел очень много времени с дллкой, но так раскрыть и понять все не смог, почему чар отказывается билдить карты некоторые, почему отказывается билдить карты почти всегда с включенной генерацией всех слоев, как заставить чара проникать в те места куда не попасть допустим без ТП на примере (ЛОА), это те вещи над которыми я думаю по сей день.
P.S. Тему развиваю ради интереса т.к. порой такие загадки очень затягивают ну и увлекают до жути Big Grin

Теперь от слов к практике.
Рассматривать все мои методы не буду, рассмотрю только 3й т.к. отличия между ними минимальны, отличаются только переходы от одного участка кода к другому etc.

За основу была взят faq с ммокора только доработана и без дурацкого "нупа", хроники HF.
Скажу прямо в асме не силен и как работают некоторые блоки не разобрался да и какое несут значение тем более, все познавалось методом проб и ошибок, угробив очень много времени и бессонных ночей.

1. Сразу разлочим вывод x_path.txt дабы потом туда не возвращаться:
Код:
.text:201B19FA                 cmp     dword ptr [ebx+4], 0
.text:201B19FE                 jnz     loc_201B1BA0 (Изменяем на jz)
.text:201B1A04                 lea     edx, [ebp+64h+var_638]
.text:201B1A0A                 push    edx
.text:201B1A0B                 push    offset aS_path_txt ; "%S_path.txt"

2. На сколько я понял это переход на метод который как раз и билдит т.е. строит NSWE.
Код:
.text:201B08BF loc_201B08BF:                           ; CODE XREF: FWorldBuilder::buildWorldStructure(ULevel *,wchar_t *,UViewport *,int,int)+9B9j
.text:201B08BF                 cmp     [ebp+64h+var_C8], 0
.text:201B08C3                 jz      loc_201B10C2
.text:201B08C9                 cmp     dword ptr [ebx+4], 0
.text:201B08CD                 jz     loc_201B0C32 (Изменяем на jnz)
.text:201B08D3                 xor     esi, esi

3. Если правильно понял этот переход на метод который строит карту высот.
Код:
.text:201B0339                 mov     [eax+8], esi
.text:201B033C                 cmp     dword ptr [ebx+4], 0
.text:201B0340                 jz     short loc_201B035A (Изменяем на jnz)
.text:201B0342                 mov     esi, [ebp+64h+arg_4]
.text:201B0345                 push    esi

4. Переход не маловажный, если его не менять то билдить нужно будет задавая width и top, если делаем джамп то билдить будет автоматом с блока [0:0]
Код:
.text:201AFD45 loc_201AFD45:                           ; CODE XREF: FWorldBuilder::buildWorldStructure(ULevel *,wchar_t *,UViewport *,int,int)+224j
.text:201AFD45                 cmp     dword ptr [ebx+4], 0
.text:201AFD49                 jz     loc_201AFE0E (Изменяем на jnz)
.text:201AFD4F                 fstp    st
.text:201AFD51                 fld     dword ptr [edi+1B4h]

Допустим все это мы сделали, теперь тестим что у нас вышло т.к. мы сделали некоторые финты билдит карту от 5 минут до 20, если не зависает, если висит долго без изменений то можно завершать процесс т.к. он не сгенерит мапу (Хотя я могу ошибаться, ведь все карты различаются как по уровням(слоям) так и по сложности в связи с кучей разных объектов которые ему нужно "обрисовать", но я вроде оставлял на сутки когда билд подвисал и ничего в итоге не выходило, процесс так и висел.)

Сделал для примера карту 18_21 и вот что вышло: _http://file.karelia.ru/4rtdsg/

Как мы можем заметить есть огромный косяк с билдом, бросается в глаза что сбилден только 1н уровень если не видите сравните с гео из пака pts фреи который выкладывали в шару.
По идее переход который вроде как отвечает за многослойность:
Код:
.text:201B01D1 loc_201B01D1:                           ; CODE XREF: FWorldBuilder::buildWorldStructure(ULevel *,wchar_t *,UViewport *,int,int)+6B3j
.text:201B01D1                 cmp     dword ptr [ebx+4], 0
.text:201B01D5                 jnz     loc_201B0285 (Меняем на jz)
.text:201B01DB                 mov     eax, ds:?GWarn@@3PAVFFeedbackContext@@A ; FFeedbackContext * GWarn
.text:201B01E0                 mov     eax, [eax]
.text:201B01E2                 mov     ecx, [eax]
.text:201B01E4                 push    offset aSettingInitial ; "Setting Initial Points"

Но тогда мапы при билде просто в какой-то момент замирают, и походу перестают билдиться, трудно сказать т.к. с таким методом у меня сбилдилась только одна мапа 25_21 и то криво, на других мапах либо начинает билдить и зависает, либо просто процесс умирает с завершением.

Вообще мб есть кто продвинулся в этой теме дальше? И кому не жалко хотя дать совет что не так делаю или куда копать дальше.

P.S. На очепятки не смотреть т.к. в лом было проверять и так 2е недели над билдером просидел.
P.S.S. За основу брал Engine от HF которую выложила в своем блоге Фьюри за что ей огромное спасибо.

Добавлено через 23 часа 30 минут
Пичаль.
Что никто больше не заморачивается на тему билда? Килрой, Вистал...
[Изображение: 61b684.png]
#89
Кто нить разобрался что есть top и с чем его едят?

Добавлено через 23 часа 13 минут
Вода не панацея, а вот с билдом многослойки косяк.
[Изображение: 61b684.png]
#90
Вода панацея на самом Sad
Про многослойность, гоу изучать дллку епилога-фреи Wink
---
П.С Не забываем про двери (Вырезать Wink ) ну и не начинаем билдить из крытых мест (каты, скрытые комнаты и т.д)... <--- вот это проблема на самом деле...


Возможно похожие темы ...
Тема Автор Ответы Просмотры Последний пост
  Buildzone - нужна помощь Registered User 1 3,719 03-29-2016, 01:27 PM
Последний пост: Registered User
  Генерация квадрата Antonio 2 4,126 11-14-2015, 07:50 PM
Последний пост: Antonio
  Генерация Lindvior promailer 7 4,183 03-19-2014, 05:27 AM
Последний пост: darkevil
  buildzone HF5 moveton 0 1,807 11-05-2013, 08:47 PM
Последний пост: moveton
  BuildZone ct1.5 KilRoy 3 2,453 08-01-2013, 08:52 AM
Последний пост: KilRoy
  Генерация pathnode krisadr 9 4,503 04-07-2013, 04:47 PM
Последний пост: qweqwe1

Перейти к форуму:


Пользователи, просматривающие эту тему: 8 Гость(ей)