Если с вами поделились, то может поделитесь со мной?Остался у кого pdf? ссылка битая
Ну лучше наверное сделать 1 раз и чтобы оно работало как задумано, чем вручную переписывать аи каждого моба и нпс по эмпирическому анализуСорян за некропост.
Ну декомпилировать ai.obj это 20% работы, на самом деле.
1) Сама структура ИИ в Java, как овероподобных, так и лыжных, чутка отличается от структуры ПТС ИИ.
Если в Java сборках в большинстве случаев(я не видел обратного), все ИИ являются наследниками низкоуровневых ИИ, вроде NpcAI, CreatureAI, где есть часть базовой логики, то в ПТС, как правило, ниже default_npc вызовы уже не уходят. Т.е порядок обработки действия идет от низкоуровневого ИИ в ai.obj, а не наоборот. Ну и + движок Desire, который отличается от простых тасков довольно сильно.
2) Для огромной кучи функций в ai.obj нет явной логики в самом ai.obj Т.е для всех базовых функций эту логику нужно будет создать или откуда-то вытащить. Для какой-то части это очевидно, например GetMyMaker() или Suicide(), но есть функции, которые довольно тяжело правильно воплотить, например ShowTelPosListPage() или TeleportFStr(), не имея возможности залезть под капот ПТСке.
3) Сами ИИ далеко не автономные и их правильная реализация требует кучи других рабочих механизмов и инфы из скриптов ПТС. Например ИИ не будут корректно работать без полной реализации ПТС спавна + мейкеров, зон и кучи еще мелких параметров из ПТС скриптов.
4) ПТС ИИ неплохо так конфликтуют с квестами на яве, т.к квестовый движок в ПТС описан прям в самих ИИ, которые обрабатывают события и переключают стадии квеста. Кроме кучи неявных функций, там еще есть конфликты во внезапных местах(например я столкнулся с небольшими проблемами, когда например Java движок квеста ждет смерти квестового моба, а в ПТС ии он внезапно бессмертный и деспавнится при >30% ХП. Это порождает проебы в квестах в рандомных местах.
5) Наличие ОГРОМНЫХ и сложных ИИ, типа "chamberlain", довольно большая часть функций которого завязана на функциях замка и манора.
К чему я это все написал? К тому, что простым декомпилом ai.obj не получится решить проблему подключения ИИ к сборке. Там еще сопутствующих работ по сборке до усрачки много.
Согласен. Я поделился подводными камнями, которые мне встретились при порте ИИ с ПТС на мою сборку.Ну лучше наверное сделать 1 раз и чтобы оно работало как задумано, чем вручную переписывать аи каждого моба и нпс по эмпирическому анализу
Ну ты же не будешь вручную для ХФ мониторить 12к+ ИИ, на предмет того, что какие-то выключены, какие-то поправлены и прочее.Зачем декомпилить, если слили сорс? Правда новых хроник, как и компилятор и не только.
Посмотреть вложение 44056
Посмотреть вложение 44057
Это не под каждую конкретную версию ИИ, а ИИ разбитые по группам(хроникам). Все равно там совокупно актуальная версия ИИ для того протокола, которому соответствует сервер.Там под каждую предшествующую версию выходившую с ct2.6.1 в сливе есть аи, насколько помню
сурсы аи в шаре для хф, так же есть декомпилятор под всех хроники)))а под какие нет, есть сурсы с репо кореяк.Это не под каждую конкретную версию ИИ, а ИИ разбитые по группам(хроникам). Все равно там совокупно актуальная версия ИИ для того протокола, которому соответствует сервер.
Вот cкрин ИИ ai_valley_necro. Он идентичен в Essence и Homunculus скриптах.
Закомменчены строки с вызовом миньонов, которые работают на ХФ. В более старших хрониках их нет. Там таких сюрпризов много. Для построения Эссенц сервака они подходят, а вот младшие хроники с них парсить опрометчиво, на мой взгляд)
Честно сказать я так и не уловил идеи сказанного. Какое заключение? Какие альтернативы?Сорян за некропост.
Ну декомпилировать ai.obj это 20% работы, на самом деле.
1) Сама структура ИИ в Java, как овероподобных, так и лыжных, чутка отличается от структуры ПТС ИИ.
Если в Java сборках в большинстве случаев(я не видел обратного), все ИИ являются наследниками низкоуровневых ИИ, вроде NpcAI, CreatureAI, где есть часть базовой логики, то в ПТС, как правило, ниже default_npc вызовы уже не уходят. Т.е порядок обработки действия идет от низкоуровневого ИИ в ai.obj, а не наоборот. Ну и + движок Desire, который отличается от простых тасков довольно сильно.
2) Для огромной кучи функций в ai.obj нет явной логики в самом ai.obj Т.е для всех базовых функций эту логику нужно будет создать или откуда-то вытащить. Для какой-то части это очевидно, например GetMyMaker() или Suicide(), но есть функции, которые довольно тяжело правильно воплотить, например ShowTelPosListPage() или TeleportFStr(), не имея возможности залезть под капот ПТСке.
3) Сами ИИ далеко не автономные и их правильная реализация требует кучи других рабочих механизмов и инфы из скриптов ПТС. Например ИИ не будут корректно работать без полной реализации ПТС спавна + мейкеров, зон и кучи еще мелких параметров из ПТС скриптов.
4) ПТС ИИ неплохо так конфликтуют с квестами на яве, т.к квестовый движок в ПТС описан прям в самих ИИ, которые обрабатывают события и переключают стадии квеста. Кроме кучи неявных функций, там еще есть конфликты во внезапных местах(например я столкнулся с небольшими проблемами, когда например Java движок квеста ждет смерти квестового моба, а в ПТС ии он внезапно бессмертный и деспавнится при >30% ХП. Это порождает проебы в квестах в рандомных местах.
5) Наличие ОГРОМНЫХ и сложных ИИ, типа "chamberlain", довольно большая часть функций которого завязана на функциях замка и манора.
К чему я это все написал? К тому, что простым декомпилом ai.obj не получится решить проблему подключения ИИ к сборке. Там еще сопутствующих работ по сборке до усрачки много.
Ну вот мы и пошли по пути того, что реализовываем инсты и скиллы, строго по ПТС, остальное по техоньку, не спеша, от большего к меньшему, по степени важности. Как будто игроку не пофиг на AI рядового моба, которых он убивает пачками в час)Честно сказать я так и не уловил идеи сказанного. Какое заключение? Какие альтернативы?
Работа с явой в любом случае предполагает кучу жопочасов, если пытаться довести ее до состояния ПТС платформы.
Как по мне - шило на мыло, либо ты городишь полу-самопал, либо получаешь код, который родной ПТС, но перед тобой встаёт вопрос реализации движка под этот код, его функций и т.п.
Но может я неверно понял посыл вышесказанного.
А как же чувство собственного удволетворения? )Я может выскажу непопулярное мнение, но стремиться во всем сделать "по оффу" по моему не имеет смысла - это дай бог оценят доли процента игроков, а остальным глубоко похрену на то как это реализовано если в итоге по сути работает так же...
Трахать себя в жопу дрыном, такое себе удовольствие... Хотя есть любители.А как же чувство собственного удволетворения? )
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?