Вопрос тем кто писал сервер бот систему...

Mostick

Знаменитый
Участник
Сообщения
22
Розыгрыши
0
Репутация
0
Реакции
1
Баллы
1 235
Хроники
  1. Chaotic Throne: High Five
Исходники
Отсутствуют
Сборка
MostoffLineage2
Пишу свою бот систему...

Уже реализован фарм, поиск пути до фарм точки либо телепортация через ГК. Сбор Лута... Тестировал одновременно с 2000+ рабочими ботами, полет нормальный.

Файт систему готова, ну я задумываюсь о глобальном. (Боты с волками, Некры с скелетами, спойлеры)...

Хочу спросить у людей которые подобным занимались. Как лучше всего реализовывать атаки? Создать некий абстрактный класс с ротацией для каждого класса?

Или же создавать xml файл доступными скиллами для каждого класса, делать им приоритет и условия использования?

 
Создать некий абстрактный класс с ротацией для каждого класса?
Не совсем понятно что за ротация, но для хорошей архитектуры так и так придется делать абстрактные классы (интерфейс)
к примеру base->classType(Fighter, Mystic, Priest...)->ProffType(bounty_hunter,artisan...) скиллы все равно придется хранить где то в xml, не лазить же все время в код что бы удалить или добавить какой то скил
 
Пишу свою бот систему...

Уже реализован фарм, поиск пути до фарм точки либо телепортация через ГК. Сбор Лута... Тестировал одновременно с 2000+ рабочими ботами, полет нормальный.

Файт систему готова, ну я задумываюсь о глобальном. (Боты с волками, Некры с скелетами, спойлеры)...

Хочу спросить у людей которые подобным занимались. Как лучше всего реализовывать атаки? Создать некий абстрактный класс с ротацией для каждого класса?

Или же создавать xml файл доступными скиллами для каждого класса, делать им приоритет и условия использования?

Sarcasm:

А можешь запилить, что бы каждый 20-й бот, еще и донатил?

Норм так караван, хоть ивенты делай)
 
Я написал простой эвристический анализатор для скиллов, который исходя из весов эффектов и окружающей обстановки, позволяет боту быстро выбрать наиболее подходящий под ситуацию скилл. Т.е все скиллы используют динамически на основе оценки.
Плюсы: боты сразу принимают в работу всякие временные скиллы, ЛСы, скиллы от итемов, скиллы с заточкой, саб-скиллы, донат-скиллы и прочую мультипрофу, полностью скипая потребность описывать все это вручную каким-то образом.
Минусы: Нагрузка на CPU выше, т.к часть весов высчитывается в рантайм, но это частично решается кешированием.
Посмотреть вложение -1951030216481941960.mp4
Посмотреть вложение -3519159809757477284.mov
Посмотреть вложение -3519159809757477284.mov
 
Последнее редактирование:
Я написал простой эвристический анализатор для скиллов, который исходя из весов эффектов и окружающей обстановки, позволяет боту быстро выбрать наиболее подходящий под ситуацию скилл. Т.е все скиллы используют динамически на основе оценки.
Плюсы: боты сразу принимают в работу всякие временные скиллы, ЛСы, скиллы от итемов, скиллы с заточкой, саб-скиллы, донат-скиллы и прочую мультипрофу, полностью скипая потребность описывать все это вручную каким-то образом.
Минусы: Нагрузка на CPU выше, т.к часть весов высчитывается в рантайм, но это частично решается кешированием.
Посмотреть вложение 87984
Посмотреть вложение 87986
Посмотреть вложение 87985

Конечно судя по видео, можно охренеть..... Очень очень очень круто!
 
Я написал простой эвристический анализатор для скиллов, который исходя из весов эффектов и окружающей обстановки, позволяет боту быстро выбрать наиболее подходящий под ситуацию скилл. Т.е все скиллы используют динамически на основе оценки.
Плюсы: боты сразу принимают в работу всякие временные скиллы, ЛСы, скиллы от итемов, скиллы с заточкой, саб-скиллы, донат-скиллы и прочую мультипрофу, полностью скипая потребность описывать все это вручную каким-то образом.
Минусы: Нагрузка на CPU выше, т.к часть весов высчитывается в рантайм, но это частично решается кешированием.
Посмотреть вложение 87984
Посмотреть вложение 87986
Посмотреть вложение 87985

Есть подозрение, что эти боты в пвп поимеют большую часть игроков л2)) надо турнир устроить)
 
Я написал простой эвристический анализатор для скиллов, который исходя из весов эффектов и окружающей обстановки, позволяет боту быстро выбрать наиболее подходящий под ситуацию скилл. Т.е все скиллы используют динамически на основе оценки.
Плюсы: боты сразу принимают в работу всякие временные скиллы, ЛСы, скиллы от итемов, скиллы с заточкой, саб-скиллы, донат-скиллы и прочую мультипрофу, полностью скипая потребность описывать все это вручную каким-то образом.
Минусы: Нагрузка на CPU выше, т.к часть весов высчитывается в рантайм, но это частично решается кешированием.
Посмотреть вложение 87984
Посмотреть вложение 87986
Посмотреть вложение 87985
интересная идея с контрактом) можно данжи всякие проходить с ними и боссов убивать, еще бы в автофарм добавить функцию атаки по ассисту в пати ) чтоб по мобам не кликать лишний раз
 
Последнее редактирование модератором:
1752079501423.webp 1752079514466.webp 1752079537473.webp
подключил апи к чату ботам ) отвечают через обычный беспалтанный ИИшник (можно к нормальному платному подцепить).
Сделал клонирование перса. Игрок делает клона - бота. Когда игрок не в онлайне, то его клона могут нанять. Если игрок заходит в онлайн, то бот следовательно автоматом в оффлайн и уже нпц можно "всосать" весь полученный опыт и дроп, который налутал бот)
 
Посмотреть вложение 87997Посмотреть вложение 87998Посмотреть вложение 87999
подключил апи к чату ботам ) отвечают через обычный беспалтанный ИИшник (можно к нормальному платному подцепить).
Сделал клонирование перса. Игрок делает клона - бота. Когда игрок не в онлайне, то его клона могут нанять. Если игрок заходит в онлайн, то бот следовательно автоматом в оффлайн и уже нпц можно "всосать" весь полученный опыт и дроп, который налутал бот)
А сами по себе они бегают? Качаются там, на ивенты, кланы , осады ?))) РБ )))
 
А сами по себе они бегают? Качаются там, на ивенты, кланы , осады ?))) РБ )))
это все делается при желание. обычная прокачка да. смена классов если бот не личный то меняет сам. если личный ты ему выбираешь.
я чисто наемников пилю ( чисто как покемоны. одеваешь - управляешь) .но опять же все можно сделать.
много времени ушло на АИ классов) что бы красиво работали. луки кайтили. ножи в спину бэки били и тд.

1752080018343.webp 1752080059435.webp
1752080115408.webp
+ боты трейдеры через xml оффлайн с пополением и автозаходом
 
Докатились) теперь 80% на серверах будут вот такие чары, одно радует, ИИ хотя бы вежливо будет общаться в чате
 
  • Ха-ха-ха
Реакции: raz
Докатились) теперь 80% на серверах будут вот такие чары, одно радует, ИИ хотя бы вежливо будет общаться в чате
Ой, та изе фикс. ИИ присьілает ответ на сервер, прогоняем его ответ через фильтрьі кастомньіе, автозаменой меняем все обращения к игрокам через рандомайзер более известньіх и привьічньіх всем фраз - профит.
 
Я написал простой эвристический анализатор для скиллов, который исходя из весов эффектов и окружающей обстановки, позволяет боту быстро выбрать наиболее подходящий под ситуацию скилл. Т.е все скиллы используют динамически на основе оценки.
Плюсы: боты сразу принимают в работу всякие временные скиллы, ЛСы, скиллы от итемов, скиллы с заточкой, саб-скиллы, донат-скиллы и прочую мультипрофу, полностью скипая потребность описывать все это вручную каким-то образом.
Минусы: Нагрузка на CPU выше, т.к часть весов высчитывается в рантайм, но это частично решается кешированием.
Посмотреть вложение 87984
Посмотреть вложение 87986
Посмотреть вложение 87985
у тебя очень крутая реализация ботов, видно заморочился по полной, но к чему такие муки? этот проект щас в лайве существует?
просто для крутых серверов с нормальной рекламой эти боты вообще не понадобятся, а наоборот будут жрать ресурсы железа
 
у тебя очень крутая реализация ботов, видно заморочился по полной, но к чему такие муки? этот проект щас в лайве существует?
просто для крутых серверов с нормальной рекламой эти боты вообще не понадобятся, а наоборот будут жрать ресурсы железа
Ну первично боты были сделаны как предсказуемый инструмент для простых нагрузочных тестов, при переходе на движок серверных тиков. Т.е с их помощью выявлялись и переписывались ботлнеки. Сначала сами боты были доведены до состояния, когда они почти не потребляют ресурсов(или потребляют их в измеряемом и прогнозируемом количестве), а потом сетка, пасфинд, мув, селекторы для автофарма, акторная система, эффекты, NASC и многое и многое другое. Выявлялись утечки памяти, когда по каким-то причинам где-то подтекали мобы во время фарма(внезапные лик-ссылки в трудно прогнозируемых местах), фиксились хеш-колизии для легаси объектов с кривыми или не переопределенными hashCode() и equals(). Все это помечалось, тестилось детально и в итоге комплексно переписывалось. Даже сейчас у сервера есть специальный отладочный режим, когда спавнится специальная меш-сетка NPC-мейкеров, по всем локациям и городам и спавнит тысячи ботов, которые что-то начинают делать. Фармить мобов, проходить квесты, бегать между локами и воевать между собой. Все это позволяет быстро находить первичные проблемы, связанные с серверным хайлоадом через профайлер, при разработке новых механизмов, эвентов, квестов и прочего.

Потом как-то решил, чего добру пропадать и чутка их подпилил и выкатил как элемент геймплея на свой проект. Там в принципе не скрывалось, что это боты, а геймплей и экономика частично была построена вокруг концепции «Боты-демоны вторглись в мир Л2, захватываяют и колонизируют континент. Люди им противостоят, получают ресурсы и предметы лутая иномирцев, а также изучают особую науку, чтобы призывать их как слуг на временные контракты.»

Онлайн был не большой, но сервер был без доната и рекламы, чисто для своих.

… но для хорошей архитектуры так и так придется делать абстрактные классы (интерфейс)
к примеру base->classType(Fighter, Mystic, Priest...)->ProffType(bounty_hunter,artisan...) скиллы все равно придется хранить где то в xml, не лазить же все время в код что бы удалить или добавить какой то скил
Я такое использовал лет пятнадцать назад, когда писал ботов для L2JDev сборки Алексу, а сейчас наоборот хотел уйти от такой структуры. В итоге у меня 1000 строк кода на унифицированный класс для автофарма и ботов, 300 строк переопределенных методов чисто для автофарма и где-то 3000 строк на селекторы целей, скилов и тактики. При этом нет отдельных классов для разных проф, т.к поведение целиком строится вокруг статов, скилов и шмота у конкретного бота в конкретном контексте, а не в рамках заранее определенных сценариев.
 
Последнее редактирование:
Ну первично боты были сделаны как предсказуемый инструмент для простых нагрузочных тестов, при переходе на движок серверных тиков. Т.е с их помощью выявлялись и переписывались ботлнеки. Сначала сами боты были доведены до состояния, когда они почти не потребляют ресурсов(или потребляют их в измеряемом и прогнозируемом количестве), а потом сетка, пасфинд, мув, селекторы для автофарма, акторная система, эффекты, NASC и многое и многое другое. Выявлялись утечки памяти, когда по каким-то причинам где-то подтекали мобы во время фарма(внезапные лик-ссылки в трудно прогнозируемых местах), фиксились хеш-колизии для легаси объектов с кривыми или не переопределенными hashCode() и equals(). Все это помечалось, тестилось детально и в итоге комплексно переписывалось. Даже сейчас у сервера есть специальный отладочный режим, когда спавнится специальная меш-сетка NPC-мейкеров, по всем локациям и городам и спавнит тысячи ботов, которые что-то начинают делать. Фармить мобов, проходить квесты, бегать между локами и воевать между собой. Все это позволяет быстро находить первичные проблемы, связанные с серверным хайлоадом через профайлер, при разработке новых механизмов, эвентов, квестов и прочего.

Потом как-то решил, чего добру пропадать и чутка их подпилил и выкатил как элемент геймплея на свой проект. Там в принципе не скрывалось, что это боты, а геймплей и экономика частично была построена вокруг концепции «Боты-демоны вторглись в мир Л2, захватываяют и колонизируют континент. Люди им противостоят, получают ресурсы и предметы лутая иномирцев, а также изучают особую науку, чтобы призывать их как слуг на временные контракты.»

Онлайн был не большой, но сервер был без доната и рекламы, чисто для своих.


Я такое использовал лет пятнадцать назад, когда писал ботов для L2JDev сборки Алексу, а сейчас наоборот хотел уйти от такой структуры. В итоге у меня 1000 строк кода на унифицированный класс для автофарма и ботов, 300 строк переопределенных методов чисто для автофарма и где-то 3000 строк на селекторы целей, скилов и тактики. При этом нет отдельных классов для разных проф, т.к поведение целиком строится вокруг статов, скилов и шмота у конкретного бота в конкретном контексте, а не в рамках заранее определенных сценариев.
кстати тоже с утра попробовал сделать в один класс чисто выбор умений из пула без абстрактных классов и указания конкретных умений. Вышло +- 300 строк. так накидал и работает) но надо настроить приоритезацию все равно. даже не думал об этом. спасибо за идею! теперь есть чем занятся)
+ всякие зарядки у гладов, тиров и тд как работало раньше. но это уже дело времени
 
кстати тоже с утра попробовал сделать в один класс чисто выбор умений из пула без абстрактных классов и указания конкретных умений. Вышло +- 300 строк. так накидал и работает) но надо настроить приоритезацию все равно. даже не думал об этом. спасибо за идею! теперь есть чем занятся)
Ну мои боты просто используют те скиллы, которые у них уже есть. Т.е скиллы профы, анализируют инвентарь на предмет того, что можно заюзать(банки, свитки, элексиры и прочее). Кроме того, у них налажено event-driven взаимодействие, когда бот может "вещать в эфир" свой статус, запрашивая помощь у союзных ботов, например если бот получает дебаф, то он в свою пати кидает событие об этом и если есть бот, у которого есть подходящий скилл и он не занят чем-то более важным, он может кинуть клинс или что-то другое подходящее. Там очень много всевозможных действий, которые так или иначе работают через NASC события, позволяя ботам очень быстро и гибко реагировать на смену обстановки. Также, боты анализируют предметы в рюкзаке и могут взять более подходящее оружие, если такое появилось или изменилась ситуация. Очень-очень много всего.
 
Ну мои боты просто используют те скиллы, которые у них уже есть. Т.е скиллы профы, анализируют инвентарь на предмет того, что можно заюзать(банки, свитки, элексиры и прочее). Кроме того, у них налажено event-driven взаимодействие, когда бот может "вещать в эфир" свой статус, запрашивая помощь у союзных ботов, например если бот получает дебаф, то он в свою пати кидает событие об этом и если есть бот, у которого есть подходящий скилл и он не занят чем-то более важным, он может кинуть клинс или что-то другое подходящее. Там очень много всевозможных действий, которые так или иначе работают через NASC события, позволяя ботам очень быстро и гибко реагировать на смену обстановки. Также, боты анализируют предметы в рюкзаке и могут взять более подходящее оружие, если такое появилось или изменилась ситуация. Очень-очень много всего.
да прикольно. щас надо будет АИ перенести и в новый класс и раставить приоритеты на выбор умений. но это работает уже)
1752117147370.webp
256 строк кода) вместо 3 папок классов)
я учился на Автоботах. их разберал из 2019 которые. и потом с нуля писал уже своих. а оказывается можно было проще
 
Назад
Сверху