Перейти к контенту

AI-Map в X-Ray: теория, практика, ошибки


HellRatz

Рекомендуемые сообщения

Подскажите пожалуйста какой утилитой можно убрать АИ-связь между локациями в глобальном графе, БЕЗ перекомпиляции оного ?

В данный момент у меня есть 2 одинаковых связи 

atp_for_test22 (2793) --  970.637390136719  --> l07_military (1848)
atp_for_test22 (2793) --  970.637390136719  --> l07_military (1848)

и я не знаю, повлияет ли как то этот дубликат на хождение мобов между этими двумя локациями.

 

Есть утилита GGRC, которая позволяет добавлять добавлять АИ-связи для оФфлайного перехода мобов между локами. 

Но нигде не нашёл утилиты, которая делает обратное, увы (((

 

Может кто-то знает как это сделать, без компиляции game.graph, прошу поделиться методикой или утилитой.

Спасибо.

 

Изменено пользователем BFG

"Кругом зомби.....у меня кончаются патроны...."

Ссылка на комментарий

@BFG, попробуй программу из этого поста. Должна в том числе и удалять переходы.

 

Ты же вроде в сдк спавн делаешь, гейм.граф и алл.спавн быстро же пересобираются.

 

И задвоенная связь никак не повлияет на хождение мобов - будут пользоваться одной из них.

  • Спасибо 1
Ссылка на комментарий

@abramcumner, Хорошая прога. Но почему то именно мой текущий геймграф она не открыла.

See the end of this message for details on invoking 
just-in-time (JIT) debugging instead of this dialog box.
 
************** Exception Text **************
System.IO.IOException: The process cannot access the file 'G:\game.graph' because it is being used by another process.
   at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
   at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
   at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy)
   at System.IO.FileStream..ctor(String path, FileMode mode)
   at StalkerLib.GameGraph2.GameGraph2..ctor(String file)
   at gui_edge_editor.Form1.OpenFile(String fileName)
   at gui_edge_editor.Form1.button5_Click(Object sender, EventArgs e)
   at System.Windows.Forms.Control.OnClick(EventArgs e)
   at System.Windows.Forms.Button.OnClick(EventArgs e)
   at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
   at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.ButtonBase.WndProc(Message& m)
   at System.Windows.Forms.Button.WndProc(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
 
 
************** Loaded Assemblies **************
mscorlib
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.19408 built by: FX451RTMLREL
    CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll
----------------------------------------
gui_edge_editor
    Assembly Version: 1.0.0.1
    Win32 Version: 1.0.0.1
    CodeBase: file:///C:/Users/f2/Downloads/EdgeEditor_01/EdgeEditor.exe
----------------------------------------
System.Windows.Forms
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.19408 built by: FX451RTMLREL
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System.Drawing
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.19408 built by: FX451RTMLREL
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
System
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.36250 built by: FX452RTMLDR
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
 
************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.
 
For example:
 
<configuration>
    <system.windows.forms jitDebugging="true" />
</configuration>
 
When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the computer
rather than be handled by this dialog box.

Никакими процессами этот геймграф не занят, что странно, но открывать не хочет. Попробовал другой - открыл без проблем.
Странно конечно. На всякий случай вот мой текущий - http://rghost.ru/7SpXMXYlr

"Кругом зомби.....у меня кончаются патроны...."

Ссылка на комментарий

System.IO.IOException: The process cannot access the file 'G:\game.graph' because it is being used by another process.

Это странно.

 

На всякий случай вот мой текущий - http://rghost.ru/7SpXMXYlr

У меня твой файл не открылся - не смог прочитать level_point`ы. Байт 350 не хватает. Может неправильно скачивается у меня?

У тебя размер game.graph 11 369 299? Должно быть минимум 11 369 635.

Graph Viewer тоже не открыл.

 

В твоем гейм.графе вообще все левел-поинты прописаны с ошибкой.

Изменено пользователем abramcumner
  • Спасибо 1
Ссылка на комментарий
У тебя размер game.graph 11 369 299?

Угу. Он самый.

Походу ГГРЦ, таки вносит какие то непоправимые изменения, хотя в игре всё работает. Откажусь пока от него.

Вот - http://rghost.ru/8HGxX5Vhv здесь геймграф, который послужил основой, для того что кидал выше.

Он открывается нормально твоей прогой. Значит буду с ней работать и добавлять АИ-переходы, согласно той таблице что мне надо.

 

Тогда такой ещё вопрос. В логе игры у меня есть вот такое

! Cannot build GAME path! (object bloodsucker_strong20305)
! CURRENT LEVEL : l10u_bunker
! CURRENT game point position : [18.198198][-8.989326][10.488535]
! TARGET LEVEL : l08u_brainlab
! TARGET  game point position : [112.756302][4.750167][-16.100883]
! Target point mask [11][0][0][0]
! Object masks (1) :
!   [255][0][255][255]

Насколько я понял, здесь кровосос пытается перейти с Х-10 в Х-16, но почему то не может этого сделать. 

1. Это как раз связано с тем что нет АИ-связи ?

2. Что означают цифры Target point mask [11][0][0][0] и [255][0][255][255]

=======================================

По твоей утилите:

- А как узнать "Расстояние" между граф-пойнтами на разных локах, чтобы вбить его в поле ? 

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

Но расстояние.... ???

Изменено пользователем BFG

"Кругом зомби.....у меня кончаются патроны...."

Ссылка на комментарий

! Target point mask [11][0][0][0]

! Object masks (1) :

!   [255][0][255][255][/code]

Насколько я понял, здесь кровосос пытается перейти с Х-10 в Х-16, но почему то не может этого сделать. 

1. Это как раз связано с тем что нет АИ-связи ?

2. Что означают цифры Target point mask [11][0][0][0] и [255][0][255][255]

АИ-связь скорее всего есть, но где-то ему запрещено ходить его конфигом.

Цифры - это поле Location у graph-point`ов в сдк. НПЦ и монстры могут передвигаться только по граф-поинтам, которые соотвествуют прописанному террейну в поле terrain конфига.

Здесь по идее граф-поинт подходит. Но может быть путь проходил через вертекс который помечен как опасное место(второе число не 0).)

 

По твоей утилите:

- А как узнать "Расстояние" между граф-пойнтами на разных локах, чтобы вбить его в поле ? 

 

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

Но расстояние.... ???

Можно оставить поле пустым и программа сама рассчитает расстояние(как расстояние между двумя точками). Просто иногда это расстояние может оказаться слишком большим и мобы будут долго идти по этому пути. Если задать меньшее число, то оффлайновое перемещение будет гораздо быстрее.
  • Спасибо 1
Ссылка на комментарий

Всё-таки хотелось бы поставить жирную точку в том, что касается "островков" АИ-сетки. Могут они быть или надо их слинковывать? Например, переносил Путепровод Припяти на ТЧ. Есть там в куполе 1 островок, на нём стоит графпойнт. При компиляции - сетка валидная. Всё собирается без ошибок. Если убрать оттуда графпойнт - компилятор напишет о невалидности сетки. Так в конце-то концов - допустимы ли в ТЧ островки АИ-сетки (при наличи графпойнта) или нет? 

banner_2.jpg

 

Ссылка на комментарий

@sneik, я конечно могу сделать ещё и скрин. Прямо сейчас смотрю на это место. В 100-й раз. Неслинковано там. 

Скрин: https://yadi.sk/d/9Y39GDxfsbqut

banner_2.jpg

 

Ссылка на комментарий

@mauvais, я бы на твоём месте не был так уверен, что сетка такая уж валидная. Уже на твоём скрине видны косяки (неправильно слинкованные ноды), там тебе всю сетку лопатить надо, ибо я уверен, что там еще много чего найдется. Остров должен быть связан с сеткой. С граф-поинтом всё нормально, потому что нпс в оффлайне по ним ходят, а в онлайне туда никто не сможет залезть, так что линкуй, и граф-поинт тоже оставь.

 

Мой музыкальный аддон для ОП-2 + Музыкальные флешки для плеера - для тех, кому не нравится оригинальная музыка. Более 150 новых треков различных направлений и исполнителей, каждый найдёт музыку на свой вкус. Апдейт 1.1 от 30.03.2015 - в плеер добавлены записи реальных радиостанций + наиболее подходящие миксы. Торрент.
Пак измененных локаций из ОГСЕ 0.6.9.3 для ОП-2. Скачать можно здесь.

Ссылка на комментарий

@mauvais, На твоем скрине видно, что АИ сетка слинкована с нижней. С правой стороны ближе к центру. Посмотри внимательнее.

Добавлено  Murarius,

OFF: Приятно видеть, что динозавры моддинга и форума живы-здоровы. :)

  • Согласен 1

Кто весел - тот смеется, кто хочет - тот добьется, кто ищет - тот всегда найдет!

Ссылка на комментарий

Решил оживить снайперов(охранников) на 4-х вышках базы бандитов в ТД(ориг. ТЧ). Собрал их в один гулаг, прописал им работы(кэмперы), все как должно быть. При тесте выявил такое - все четверо напрочь игнорируют прописанные им walk-пути. Тупо стоят на первой точке walk-пути, но прописанное(по флажку синхронизации) для look-путей выполняют - отыгрывают анимации, вертят стволами куда положено. Битый час долбаюсь, не могу понять - что не так ? Думал, с AI-сеткой на этих вышках проблема, но у меня с ней вроде все нормально. Как-то давно, помню, что-то я уже ковырял, связанное с этими вышками - может AI-сетку добавлял, а прогнать через xrAI забыл ? У кого есть возможность, сравните мою AI-сетку на этих вышках с чистым оригиналом и отпишитесь. А то уже не знаю что делать...

Ссылка на комментарий

Что насчет вылета при создании AI-сетки в LE:

Please notify AlexMX!!! Critical error has occured in render routine!!! [Type B] - Tools: 'ai_map'
 
FATAL ERROR
 
[error]Expression    : assertion failed
[error]Function      : I:\xray-svn\xr_3da\R_DStreams.cpp
[error]File          : I:\xray-svn\xr_3da\R_DStreams.cpp
[error]Line          : 38
[error]Description   : 0==dbg_lock
? Изменено пользователем aka_sektor

Discord-сервер modfaq.ru: https://discord.gg/9j42BXwB

Ссылка на комментарий

Ни у кого не встречался сей баг, когда после переноса локации из ТЧ на ЗП некоторые монстры (в основном собаки) могут начинать ни с того ни с сего бежать на одном месте, как-будто упираются в преграду в чистом поле? Не могу понять в чем причина, в АИ-сетке или же какие-то движковые траблы. Лока, например, Кордон, перенесена из ТЧ без изменений, т.е. все родное. Использовался простой метод подключения лок при помощи ggRC или ggEditor.

Ссылка на комментарий

@sneik, я так же думаю, что сетка. А вообще проблема глубже однако. Это движковый баг. Если бы только в сетке дело, то монстр бы по идее должен крутится на одном месте исполняя поставленный сценарий, как бы описывая путь виртуально на одном месте. Здесь явное незаконченное действие, то есть этот баг можно было бы предугадать и заложить сценарий на этот счёт, для завершения пути от предположительного времени на исполнение.

 

Вот это я выдал, что сам ничего понять не могу, что написал. Короче - примерно так.

 

А возможно это баг анимации, то есть играет не та анимка.

Изменено пользователем Дизель

andreyholkin.gif

rod_cccp.gif

 

Ссылка на комментарий

 

 

Это проблемы с аи сеткой,

 

я так же думаю, что сетка.

АИ-сетка здесь абсолютно не при чём. И никакой движок править тоже не надо.

Решается данная проблема в конфиге. Уже не вспомню щас, что там правится, но в Новой Солянке этот баг исправлен. Выйдет - можете глянуть как оно исправлено.

  • Полезно 1

"Кругом зомби.....у меня кончаются патроны...."

Ссылка на комментарий

@BFG, Я пушу только то что знаю. Была у меня такая лока, аи-сетка кривая, монстры застревали. Поправил сетку и все нормально бегают. Ни в каких конфигах я не лазил и тем более не исправлял.

  • Согласен 1
Ссылка на комментарий

Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

Создать аккаунт

Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!

Зарегистрировать новый аккаунт

Войти

Есть аккаунт? Войти.

Войти
  • Недавно просматривали   0 пользователей

    • Ни один зарегистрированный пользователь не просматривает эту страницу.
×
×
  • Создать...