Ru-MaNGOS

Ru-MaNGOS (http://mangos.ytdb.ru/index.php)
-   Отвергнутые патчи (http://mangos.ytdb.ru/forumdisplay.php?f=50)
-   -   mmaps redux (http://mangos.ytdb.ru/showthread.php?t=2209)

KiriX 22.08.2010 14:56

mmaps redux
 
Вложений: 2
Автор: faramir118
Оригинальная тема: http://getmangos.com/community/showthread.php?t=13557

В общих словах - реализует поиск пути мобами, что делает их движение более реалистичным.
Наглядно можно посмотреть тут: http://www.youtube.com/watch?v=Vm3Fo1Pfed4

Репозиторий тут: http://github.com/faramir118/mangos/tree/mmaps_rewrite

Компилируем мангос. Перекомпилируем экстрактор карт (ad.exe), и экстрактор и ассемблер для vmaps (vmapExtractor3.exe и vmap_assembler.exe). Переизвлекаем maps и vmaps. Перемещаем их в папку с сервером. Компилируем экстрактор mmaps (MoveMapGen.exe), кидаем его в папку с сервером (куда уже поместили свежеизвлечённые maps и vmaps), создаём папку mmaps и запускаем MoveMapGen.exe.
Ждём (!!!очень долго!!!) - должна получится очень внушительная по объёму папка.

Давно не обновлялось, я тут соорудил патчик, но там есть пара ошибок, которые я правил потом уже непосредственно в компиляторе. Для тех, у кого в голове находится то, что должно находиться - проблемы поправит не составит. Остальные пусть ждут - позже может поправлю...
И ещё, до кучи выложу новые экстаркторы, чтоб вам не надо было их перекомпилировать самим.

Патч под 11408 в аттаче.

Пост с ссылками на уже извлечённые карты.

KiriX 22.08.2010 19:55

Вложений: 1
Ага... Протестировал =)
Видео на YouTube не врёт =) Правда? клёво получается и красиво всё выглядит =)
У меня ушло 2-3 часа, т.к. я извлекал, как оказалось, версию по умолчанию, которая не содержит данных об континентах - только инсты и арены. Если использовать только инсты и арены - это вообще мелочи, т.к. папка в таком случае весит всего 262Мб, что совершенно не напряжно.
Сейчас переизвлекаю "полную" версию... Кстати, прилагаю к аттачу скомпилированный MaveMapGen + батник к нему, который будет генерить полную версию mmaps.

srv38 23.08.2010 10:53

У меня часов 5 считал потом вывалился с ошибкой!



В log.txt следующее

Konctantin 23.08.2010 10:59

эта ошибка присутствует давно, кстати, она должна выскакивать при обработке карты калимдора (001), можно ее пропустить и пойти дальше, насколько мне не изменяет память, этот участок не критичен, так как это пустая карта.

KiriX 23.08.2010 11:08

Цитата:

Сообщение от Konctantin (Сообщение 12938)
эта ошибка присутствует давно, кстати, она должна выскакивать при обработке карты калимдора (001), можно ее пропустить и пойти дальше, насколько мне не изменяет память, этот участок не критичен, так как это пустая карта.

Дак дело в том, что экстрактор после этого закрывается...

tester20 23.08.2010 11:11

Цитата:

Сообщение от Konctantin (Сообщение 12938)
эта ошибка присутствует давно, кстати, она должна выскакивать при обработке карты калимдора (001), можно ее пропустить и пойти дальше, насколько мне не изменяет память, этот участок не критичен, так как это пустая карта.

незнаю связано ли, но в калимдоре,
если сагрить в пещере моба(например http://ru.wowhead.com/npc=2038) и взлететь моб будет судорожно искать путь до меня пока серв не упадет с http://getmangos.com/community/showt...l=1#post119526

в эльвине также есть места которые крашат

Konctantin 23.08.2010 11:22

Цитата:

Дак дело в том, что экстрактор после этого закрывается...
ем, запустить его с параметрами: карта Х У

Цитата:

незнаю связано ли, но в калимдоре,
Я тестировал еще до того как были старые вмапсы. и при извлечении была такая проблема. Но так как я не извращался:
Цитата:

если сагрить в пещере моба(например http://ru.wowhead.com/npc=2038)
поэтому не видел, чтоб моб судоржно искал путь и крашил сервер

KiriX 23.08.2010 14:39

Вложений: 1
Нормально извлеклось всё без дополнительного улучшающего ключа.
Батник второй версии в аттаче.

srv38 23.08.2010 15:48

Какой объем папки "mmaps" получился в итоге?, в байтах если можно :).

BombermaG 23.08.2010 20:15

Памяти, наверно, ого-го кушает?

KiriX 23.08.2010 20:19

Вложений: 1
Сейчас доделываются без ключа.
Пообщались неного на гетмангос с фарамиром - нашли два бага и утечку памяти =)
Сейчас перекомпилю и выложу новый экстрактор mmaps =)
Нет, памяти кушает весьма скромно =)

added Подправленный "извлекатор" и батник к нему (для извлечения полных ммапсов) в аттаче.

added2 Батником из 8 поста извлеклись все карты. Всего файлов в папке: 3814; Общий размер: 1,08Гб Сегодня ночью поставлю на извлечение с доп.параметром... Карты эти, кстати, хорошо жмутся 7z'ом...

added3 Работает отлично. Увеличения нагрузки не заметил (естественно... для проверки этого требуется большой онлайн...). Минус пока один - моб на игрока бежит как надо, но если включить ГМ режим - возвращается сквозь все препятствия тупо по прямой в точку спавна...

evilstar 24.08.2010 01:08

Цитата:

Сообщение от KiriX (Сообщение 12975)
Минус пока один - моб на игрока бежит как надо, но если включить ГМ режим - возвращается сквозь все препятствия тупо по прямой в точку спавна...

И при обычных спеллах вроде фд тоже также?

KiriX 24.08.2010 01:18

Цитата:

Сообщение от evilstar (Сообщение 12985)
И при обычных спеллах вроде фд тоже также?

О! Интересный момент - не тестировал =) Завтра скажу =)
Да, при ФД будет тот же случай, ведь суть в обоих одна - моб уходит в эвейд.
Ф мне напомнило, что будет интересно зафирить моба =)
Пояснение дал Фарамир. В случаях когда путь невозможно найти (по каким-то причинам) - моб будет вести себя также как и при стандартной мангос-системе.

brainreaver 24.08.2010 01:32

в этих ммапах хоуммовементгенератор работает по старому принципу - без поиска пути. Надо переписывать. Так же как и вейпойнт и поинт.

что касается нагрузки на проц\память, то она незначительна :)

вообще, это однозначно прорыв в эмуляции :)

KiriX 24.08.2010 12:26

Цитата:

Сообщение от brainreaver (Сообщение 12987)
в этих ммапах хоуммовементгенератор работает по старому принципу - без поиска пути.

Видео на ютубе свидетельствует об обратном =) Скорее всего отключили и включат позже.

srv38 24.08.2010 12:43

У меня карты извлекаются уже 7-й час :), и вот такие вещи норма?
Код:

Building map 558:
We have 4 tiles.
ERROR:StaticMapTree::UnloadMapTile(): Trying to unload non-loaded tile. Map:558
X:31 Y:31
ERROR:StaticMapTree::UnloadMapTile(): Trying to unload non-loaded tile. Map:558
X:31 Y:32
ERROR:StaticMapTree::UnloadMapTile(): Trying to unload non-loaded tile. Map:558
X:32 Y:31
ERROR:StaticMapTree::UnloadMapTile(): Trying to unload non-loaded tile. Map:558
X:32 Y:32
Complete!


Konctantin 24.08.2010 12:45

это нормально, означает что тайлы пустые или что-то в этом духе...

NeatElves 24.08.2010 12:46

Вы бы оригинал тему почитали - http://getmangos.com/community/showt...l=1#post122847 )

brainreaver 24.08.2010 13:00

Цитата:

Сообщение от KiriX (Сообщение 12992)
Видео на ютубе свидетельствует об обратном =) Скорее всего отключили и включат позже.

в данный момент поиск пути написан только для таргетет мовемент генератор. Видео на ютубе слишком устарело.

KiriX 24.08.2010 13:58

Ошибки нормальны. 7 часов - тоже нормально - у меня приблизительно столько же, но в дневное время - с загруженным компом. + вышла обнова - там оптимизирован экстрактор и убрано большое количество утечек памяти в нём.
brainreaver, я об этом и говорил - это было реализовано, но в последних ревах по какой-то причине отключено. Как я понял позицию автора, в будущем mmaps будет возможно вообще отключать как и vmaps, а возврат домой явно будет сделан с использованием паффайндера.

brainreaver 24.08.2010 14:02

оно отключено не в последних ревизиях :)
я mmaps использую уже давно, и реализации возвращения с поиском пути в этой версии ммапов не было.
Но ее очень легко прикрутить самому.

KiriX 24.08.2010 14:31

Цитата:

Сообщение от brainreaver (Сообщение 13000)
Но ее очень легко прикрутить самому.

Я тоже уже об этом думал, но если ты поделишься, уверен, получишь глубочайшую благодарность и признательность =)

brainreaver 24.08.2010 17:47


KiriX 24.08.2010 19:41

Цитата:

Сообщение от brainreaver (Сообщение 13006)

Дак давай - буду признателен. Всё же не с нуля.

brainreaver 24.08.2010 23:12

вот ссылка на архив с homeMovementGenerator
там же пример, как можно сделать ммапы отключаемыми через конфиг :)
Скрытый текст (вы должны войти под своим логином или зарегистрироваться и иметь 300 сообщение(ий)):
У вас нет прав чтобы видеть скрытый текст, содержащейся здесь.

KiriX 24.08.2010 23:32

Отлично - автору не хочешь предложить? Отключаемость в конфиге он 100% делать собирается.

brainreaver 24.08.2010 23:37

да можно в принципе, но я хочу сначала сделать PF для PointMG и WaypointMG

srv38 25.08.2010 07:46

Если кому лень генерить выложил для 3.3.5а:

KiriX 29.08.2010 13:37

Обновил под 10420 (теперь всё включено, самому править ничего не надо - всё и так должно нормально скомпилироваться).
Во второй архив включены перекомпилированные экстракторы maps и vmaps + сам экстрактор mmaps с батником в трёх исполнениях:
1) Полное извлечение
2) Полное извлечение без улучшающего параметра
3) Простое извлечение (только арены и интсы) без улучшающего параметра.

В новой версии патча улучшено нахождение пути, оптимизации, убраны утечки памяти в экстракторе mmaps.
Всё в первом посту!

tempura 29.08.2010 17:31

сорри... а результаты тестов последней версии есть? :)

KiriX 29.08.2010 18:23

Цитата:

Сообщение от tempura (Сообщение 13205)
сорри... а результаты тестов последней версии есть? :)

Собираются =) Хуже во всяком случае точно не стало =)))

rsa 29.08.2010 18:54

Стало. Я бросил пока эту идею, ядро с ботами больше 3 часов с ним не стоит...

brainreaver 31.08.2010 06:15

а крашдампов нет?

brainreaver 31.08.2010 07:42

в pathfinder.cpp похоже ошибка
вместо
Код:

    if(!m_navMeshQuery)
    {
        m_navMeshQuery = dtAllocNavMeshQuery();
        m_navMeshQuery->init(m_navMesh, 2048);

        if(!m_navMesh)
        {
            shortcut();
            return;
        }
    }

должно быть по идее
Код:

    if(!m_navMeshQuery)
    {
        m_navMeshQuery = dtAllocNavMeshQuery();
        m_navMeshQuery->init(m_navMesh, 2048);

        if(!m_navMeshQuery)
        {
            shortcut();
            return;
        }
    }


LordJZ 31.08.2010 08:57

Если у вас (!m_navMeshQuery) то до if(!m_navMeshQuery) исполнение кода не дойдет. Если, конечно, функция init не удаляет результат dtAllocNavMeshQuery(), что, конечно, крайне нелогично

brainreaver 31.08.2010 09:59

PHP код:

    if(!m_navMesh)
    {
        
m_navMesh m_sourceObject->GetMap()->GetNavMesh();

        if(!
m_navMesh)
        {
            
shortcut();
            return;
        }
    }

    if(!
m_navMeshQuery)
    {
        
m_navMeshQuery dtAllocNavMeshQuery();
        
m_navMeshQuery->init(m_navMesh2048);

        if(!
m_navMesh)
        {
            
shortcut();
            return;
        }
    } 

по идее, если !m_navMesh, то до if(!m_navMeshQuery) дело не дойдет, и нам не нужно второй раз проверять if(!m_navMesh)

BloodWarrior 01.09.2010 05:56

KiriX как понимаю вы давно собираете и тестите у себя ммапы.
Сам хотел на них посмотреть, но сейчас собрать не могу, мощный комп сгорел а на этом дереве п4-2ггц и 768 оперы они собираться будут только незнаю сколь а потом еще и не запустится вся конструкция.


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

Если не трудно в виде видео, буду очень благодарен)
Все таки неписей много и интересна система их поведения при такой кучности.

Скажем первая одна или 2 комнаты - лево право + аое скилл, чтобы сбить хп сразу у большого количества нпс на значение активации скрипта.

KiriX 01.09.2010 08:51

Т.е. интересует работа скрипта, когда НПС спасается бегством?
Код:

25  ACTION_T_FLEE_FOR_ASSIST              No Params                      Causes the creature to flee for assistence (often at low health).

BloodWarrior 01.09.2010 09:08

Да именно она и интересует.
Лучший пример для этого и есть Тюрьма Штормграда))

Интересно было бы понаблюдать поиск пути убегающих неписей, целого табуна, при условии что они не просто возвращаются на свое место, а ищут близлижащих союзников своей фракции, для передачи агро на игрока.

Прям интересно было бы пронаблюдать этот момент но собрать сейчас не могу))
Или ждать пока новую машину соберу - до зарплаты или попросить здесь сидящих и тестящих.

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

Нанести им положенно урона чтоб за ассистами побежали, и собственно пронаблюдать работу как оное будет происходить.
Ведь на выборе стоят 3 комнаты рядом, в каждой из которых достаточно таких-же нпс.

Ну в общем поведения данного скрипта в условиях этого участка на ммап интересует)

Буду благодарен)

brainreaver 01.09.2010 11:51

Цитата:

Сообщение от BloodWarrior (Сообщение 13399)
Интересно было бы понаблюдать поиск пути убегающих неписей, целого табуна, при условии что они не просто возвращаются на свое место, а ищут близлижащих союзников своей фракции, для передачи агро на игрока.

это PointMovementGenerator, в данное время не реализовано никак.


Текущее время: 01:59. Часовой пояс GMT +3.

ru-mangos.ru - Русское сообщество MaNGOS