Посмотрите видео ниже, чтобы узнать, как установить наш сайт в виде веб-приложения на главном экране.
Примечание: Эта функция может быть недоступна в некоторых браузерах.
ну с закосом под птс выборку целей стали относительно недавно в эмулях делать большей частью, а во всяких старых сборках обычно за тип подборки чисто targetType отвечает и все, без всяких аффект скоупов и всего такого. Максимум еще какие-то доп параметры для скилла вводят что учитваются при подборе.Тоже не знаю как там в люцере, но массовые скилы обычно указываются через targetType - self (для описания радиуса вокруг самого персонажа),affectRange,affectScope -
POINT_BLANK (например),affectObject - нужно создать свой фильтр для мертвых мобов
Так он не решил вопрос с таргетом.
Можно сделать костылем(смысла в красоте нет ради 1 себя). Взять радиус скила и найти всех кто рядом с игроком по его координатам и сделать сортировку isDead, а дальше уже совсем все простоТак он не решил вопрос с таргетом.
А решил вопрос с работай свипа.
Мне нужен что бы масс свип собирал с мобов спойл без таргета))
Вот и написал сюда кто сможет сделать и сколько это будет стоить
Не знаю как конкретно на Lucera, их исходников не видел
но сталкивался с этим на RUSaCis 3.5
Вдруг там что-то похоже.
Есть файл для этого типа скила TargetAreaCorpseMob.java
и в нем метод meetCastConditions который определяет при каких условиях использовать скилл
будет такое
if (skill.getSkillType() == SkillType.SWEEP && !(target instanceof Monster))
{
caster.sendPacket(SystemMessageId.SWEEPER_FAILED_TARGET_NOT_SPOILED);
return false;
}
в моем случае помогло что я просто убрал это условие, возможно в твоем случае нужно будет добавить чтобы когда skill.getSkillType() == SkillType.SWEEP не возвращало false в нужном месте.
А как не костылем? По мне как раз то что вы описали и является базовым решением. Ну можно добавить affect всего и вся, но в принципе все начинается с того что нужно определить мертвых мобов в определенном радиусе или квадрате.Можно сделать костылем(смысла в красоте нет ради 1 себя). Взять радиус скила и найти всех кто рядом с игроком по его координатам и сделать сортировку isDead, а дальше уже совсем все просто. Тебе вполне хватит без красоты чисто насладится эфектом
По нормальному мне кажется лучше найти квадрат где находится игрок и по нему найти нужных мобов. А в первом варианте придется перебирать квадраты или всех мобов по их дистанции к игроку. А в идеале повешать на моба издателя на такой случай и оповещать игрока вообще без поиска.А как не костылем? По мне как раз то что вы описали и является базовым решением. Ну можно добавить affect всего и вся, но в принципе все начинается с того что нужно определить мертвых мобов в определенном радиусе или квадрате.
Вроде перебирать не много нужно, у скилла всетаки есть радиус. Если например сохранять мобов куда-то нужно будет решать обратную задачу, что-бы очистить или перестать сохранять такие данные. Но я в принципе согласен с тем что если будет много мертвых тушек вокруг то тут будет много просчетов, по крайней мере с L2J . Можно например использовать spatial grid по типу R-tree или KD-tree / QuadTree что сделает такие просчеты намного быстрее. Но в разработках на Яве я такого не видел пока.По нормальному мне кажется лучше найти квадрат где находится игрок и по нему найти нужных мобов. А в первом варианте придется перебирать квадраты или всех мобов по их дистанции к игроку. А в идеале повешать на моба издателя на такой случай и оповещать игрока вообще без поиска.
QuadTree смысла практически нет. В L2 играет не много народу нагрузки смешные наверное есть какие-то загруженные сервера но это единицы.Вроде перебирать не много нужно, у скилла всетаки есть радиус. Если например сохранять мобов куда-то нужно будет решать обратную задачу, что-бы очистить или перестать сохранять такие данные. Но я в принципе согласен с тем что если будет много мертвых тушек вокруг то тут будет много просчетов, по крайней мере с L2J . Можно например использовать spatial grid по типу R-tree или KD-tree / QuadTree что сделает такие просчеты намного быстрее. Но в разработках на Яве я такого не видел пока.
Я тоже согласен. Но вы до этого говорили что проблематично перебирать цели по дистанции вокруг. А тут говорите что вдруг это не проблематично? Так в чем же дело? Давайте остановимся на том что ничего не нужно улучшать. Тогда и не нужно оптимизировать поиск убитых мобов. Просто взять и посмотреть по дистанции что к чему.QuadTree смысла практически нет. В L2 играет не много народу нагрузки смешные наверное есть какие-то загруженные сервера но это единицы.
Я как то для теста запускал 400-600 ботов с разными настройками на полуживом мобиусе и вообще не ощутил проблем, хотя бои были довольно массовые. А железка у меня даже рядом не серверная
Я говорил о костыле берем всех мобов в мире и перебираем с O ( n ) — Линейной скоростью. А так согласен улучшать пока ничего не нужно оно того не стоитЯ тоже согласен. Но вы до этого говорили что проблематично перебирать цели по дистанции вокруг. А тут говорите что вдруг это не проблематично? Так в чем же дело? Давайте остановимся на том что ничего не нужно улучшать. Тогда и не нужно оптимизировать поиск убитых мобов. Просто взять и посмотреть по дистанции что к чему.
Каких вы ботов использовали для тестирования? Мне на свой сервер бы поставить и посмотреть что будет.QuadTree смысла практически нет. В L2 играет не много народу нагрузки смешные наверное есть какие-то загруженные сервера но это единицы.
Я как то для теста запускал 400-600 ботов с разными настройками на полуживом мобиусе и вообще не ощутил проблем, хотя бои были довольно массовые. А железка у меня даже рядом не серверная
Линейная скорость это тоже неплого. У Acis или Brawery все распределенно по маленьким регионам (кстати похоже на QuadTree) a у L2J есть knownlist, что в принципе поможет с выбором целей по линейной скорости. A какая может быть альтернатива?Я говорил о костыле берем всех мобов в мире и перебираем с O ( n ) — Линейной скоростью.
Угу. Спасибо за добавление я даже внимания не обратил на этоОбычно это называют линейной сложностью) А первый коммент про решение с сортировкой по isDead, вообще на самом деле фильтрация а не сортировка
зачем всех то? о_ОЯ говорил о костыле берем всех мобов в мире и перебираем с O ( n ) — Линейной скоростью. А так согласен улучшать пока ничего не нужно оно того не стоит