Форум работает в тестовом режиме. Все данные были перенесены со старого сайта 2018 года. Некоторая информация может быть недоступна, например вложения или хайды. Просьба сообщать о данных случаях через функционал "Жалоба", прямо под постом, где отсуствуют данные из хайда или проблемы с вложением.
Могут быть проблемы в "выкидыванием" с форума (слетевшей авторизацией). Нужно собрать статистику таких случаев.
Есть Тема, куда можете сообщить о проблемах с сайтом либо просто передать привет.

АИ скриптов для магов.

Рег
24 Авг 2016
Сообщения
118
Реакции
0
Большинство магов работающих под управлением бота - выкупается по своему поведению: нексттаргет, хурик(например), хурик, (если хп упало то вамп).
Но.
А почему бы не сделать такой алгоритм:
1. Цель жива - ищем готовый к юзу маг.скил, с наибольшим соотношением Мощность/ЗатратаМП (для защиты в пвп - Мощность/ВремяКаста). Если скил аое, то повер умножить на число целей попадающих в его радиус. Если в числе целей есть флагнутый персонаж\пет - аое не юзать (чтоб не расфлагать бота ненароком).

Таким нехитрым образом заставим магов бить и простыми нюками, и простыми бестаргетными аурами и таргетными аурами.

(физы отдельная тема, т.к. там впридачу есть привязка к типам оружия).
 
вроде того. Кроме того - отвяжем скрипт от профессий. т.к. поиск будет осуществлятся не по захардкоденным ид в скрипте, а по бд с данными имеющихся скилов.
Т.е один и тот же скрипт будет работать и для штс и для ам и для мм.
 
ты правда ждешь, что тут вдруг начнётся коллективная разработка ?:DDD
 
Альтруизм нынче не в моде. Но может чего дельное посоветуют.
 
Пройдёмся по пунктам:

BreadfanLock написал(а):
Большинство магов работающих под управлением бота - выкупается по своему поведению: нексттаргет, хурик(например), хурик, (если хп упало то вамп).
Это не поведение бота, это поведение игрока. Игрок не жмёт скиллы как клавиши на органе, а жмёт 1 основной, изредка массовый (если кучка бежит), изредка вамп. - если мобы давят уроном, что бы не сдохнуть. Вы со своими ботами уже и забыли как играют люди.
Другими словами, то, что описал ты - вполне нормальное поведение на гринде.


BreadfanLock написал(а):
1. Цель жива - ищем готовый к юзу маг.скил, с наибольшим соотношением Мощность/ЗатратаМП (для защиты в пвп - Мощность/ВремяКаста). Если скил аое, то повер умножить на число целей попадающих в его радиус. Если в числе целей есть флагнутый персонаж\пет - аое не юзать (чтоб не расфлагать бота ненароком).
Нерентабельно. Т.к. это усложнит процедуру (в несколько раз). А уж если говорить о написании - i want to believe.


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




Как итог - совершенно сырая, недодуманная идея, которая сов. никак не повлияет на детект бота ботхантером.

P.S. Никакого негатива, сухие факты.
 
Тут лишь одно слово подходит - бред :) Ты за мага играешь зажимая один-единственный нюк? Да ладно...Усложнит процедуру? Тебе ее что - каждое утро читать наизусть требуется, или все-таки написать один раз и использовать при необходимости? "..И так можно сделать.." - ну тут уж сам же и ответил - "...Не в полной мере, конечно...".

"Сырое" - это вот это -

https://youtu.be/HNnY2VuOcys

т.к. тут я действительно остановился на полпути, и бег был "ручной".
(за давностью не помню какой режим был активен - или "экономии мп" или "макс.дмг")
 
В чем вопрос то?
Описанный алгоритм крайне прост. Самое сложное в нем - база с повером и МП костом умений.

По-моему, в начале стоит пилить "живое" передвижение. Это больше всего палит ботов.
 
Передвижение - точно не стану.



Krickt написал(а):
база с повером и МП костом умений
- с повером, костом, атт, кастренджем, скиллрадиусом, типом скила (физ\маг\таргетный скил\бестаргетная массуха\таргетная массуха...), потребляемыми итемами.
 
Выпиливал в старо-знакомой манере -


[1]
name = Triple Slash
power = 517 549 583 619 656 694 735 777 820 865 912 960 1010 1062 1115 1169 1225 1283 1342 1402 1464 1527 1591 1656 1722 1789 1857 1926 1995 2065 2135 2206 2277 2347 2417 2488 2557
skillType = PDAM
op_Type = OP_ACTIVE

[2]
name = Confusion
power = 80
skillType = CONFUSE_MOB_ONLY
op_Type = OP_ACTIVE

[3]
name = Power Strike
power = 30 32 35 46 61 65 71 78 84
skillType = PDAM
op_Type = OP_ACTIVE

[4]
name = Dash
power = None
skillType = BUFF
op_Type = OP_ACTIVE


как видно - еще нет кучи параметров, но уже застрял на работе, не до скилов :lol:
 
class MagicSkillData
{
public:
wchar_t * Name;
int Id;
int Level;
int Type;
int Cost;
int Range;
int IsMagic;
};

Вот так выглядит клиентская инфа о умении(это еще 36 байт неразобранных). И далеко не факт, что это единственный класс. Но пкодер зачем то решил таскать с собой свою базу(походу в облегченном виде, раз таких вещей нету).
Ну либо не захотел открывать в паблик.
Впрочем, никому это и не надо.

Поэтому остальное вытаскивать разве что из клиентских датников/серверных скриптов. (впрочем, там 1-2 регулярки).
 
да вытаскиваю с чьегото ява датапака. так что вполне возможны ситуации, что "а у нас оно не так".
зы: не 1-2, на параметр - условие. прост по ходу выпиливания вспоминается очередной...
Нужны в данный момент -
повер, кост, таймкаст, вепон, кастрендж, рендж (для таргетных массух), скиллтип, оп_тип (опционально). Это по-прежнему ориентировочно еще.
 
Да простит меня человек делавший это.

Нужно примерно так -

Код:
[1417]
   name = Aura Flash
   mpConsume = 54 58 62 65 69
   affectRange = 200
   reuseDelay = 4000
   hitTime = 1000
   isMagic = 1
   targetType = AURA
   power = 49 53 58 61 65
   itemConsumeId = 3031
   skillType = Debuff
   operateType = A1
   isDebuff = 1
   itemConsumeCount = 2 2 3 3 4
   magicLvl = 58 62 66 70 74
   IsAgr=1
 
rsd написал(а):
class MagicSkillData { public: wchar_t * Name; int Id; int Level; int Type; int Cost; int Range; int IsMagic; }; Вот так выглядит клиентская инфа о умении(это еще 36 байт неразобранных). И далеко не факт, что это единственный класс. Но пкодер зачем то решил таскать с собой свою базу
и правильно решил. Для употребления скила на самом деле нужно много данных. Вспомните l2phx - как бодро могли скрипты спамить юзскилом, на который просто нет расходников в сумке (или маны\или физ сало\или маг сало\или еще чет).
 
BreadfanLock написал(а):
и правильно решил. Для употребления скила на самом деле нужно много данных. Вспомните l2phx - как бодро могли скрипты спамить юзскилом, на который просто нет расходников в сумке (или маны\или физ сало\или маг сало\или еще чет).
ты походу не въехал. речь шла о том, что в имеющимся апи нету ни банального манакоста/рейнджа. я понятия не имею, есть ли они реально в базе вообще.


BreadfanLock написал(а):
Нужно примерно так
так это всё есть в серверных скриптах, как я и сказал, в чём вопрос?)

skill_begin skill_name = [s_aura_flash1] /* [오라 플래쉬] */ skill_id = 1417 level = 1 operate_type = A1 magic_level = 58 self_effect = {} effect = {{i_m_attack;49};{i_target_cancel;20}} is_magic = 1 mp_consume1 = 11 mp_consume2 = 43 item_consume = {[spirit_ore];2} cast_range = -1 effective_range = -1 skill_hit_time = 1 skill_cool_time = 0 skill_hit_cancel_time = 0.5 reuse_delay = 4 attribute = {attr_none;0} trait = {trait_none} effect_point = -440 target_type = self affect_scope = point_blank affect_range = 200 affect_object = not_friend affect_limit = {0;0} next_action = none ride_state = {@ride_none;@ride_strider;@ride_wyvern;@ride_wolf} multi_class = 0 skill_end
 
Krickt написал(а):
Ваще-то TL2Skill.Range
Значит ошибся, давно ничего не пишу, а док который у меня лежит - прошлый год.

upd. Ради интереса глянул на асивин, там ничего нет. Тут уж без комментариев.
 
Назад
Сверху