PDA

Просмотр полной версии : Бот саппорт


David
05.06.2011, 23:01
Пишу бота саппорта, научил хилить бафать, самому хилиться, не могу заставить бегать за собой. Я так понял слешфоллоу чисто клиентовская комманда и никакой отправки не идет, прошу поддать идейку как заставить бегать за собой.

NLObP
05.06.2011, 23:07
David, таргет два раза.

David
05.06.2011, 23:13
эххх если бы(((( я пробовал, но это Аион, а не л2((

NLObP
05.06.2011, 23:14
Тогда не знаю. Можно еще пакеты посмотреть (packetsAion.ini), может там, что есть.

David
05.06.2011, 23:19
эт выходит надо считывать координаты основного чара и заставлять топать по ним саппорта?

dyh9l
05.06.2011, 23:20
не палевно будет что они будут стоять в 1 точке? можно колдовать с координатами мейна что то уменьшать прибавлять)

David
05.06.2011, 23:22
та я с пакетами на бег еще разобраться не могу, сижу колдую

SeregaZ
06.06.2011, 01:38
еще палевно будет, когда они трогаться одновременно начнут.
нужны рандомные паузы между стартом движения и рандом +-50 от координат.

Deffol
06.06.2011, 04:24
эххх если бы(((( я пробовал, но это Аион, а не л2((

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

dyh9l
06.06.2011, 09:03
Вот бы формулу найти где бы окно, всегда было бы за спиной не Action'ом

Breadfan
06.06.2011, 09:06
геометрией разруливается. школьным курсом кстати.

dyh9l
06.06.2011, 09:15
я в школе не с алгеброй не с геометрией не дружил )

Breadfan
06.06.2011, 10:57
принимаешь текущие координаты за 0, смотря на "куда пойдет ведущий" - определяешь четверть (соответственно знаки) куда он идет (например в 4ую - это -x+y) меняешь их на противоположные (+x-y) - там "спина" мастера, и ,исходя из узнанной четверти + ранее заданного расстояния от булок до мастера - расчитываешь новые координаты для булки.

Добавлено через 57 минут
грубо говоря както так:
if (x(to)-X(cur))<0 then x(bulko):=x(to)+range;//если мастер бежит влево - то булка побежит в координату+ренж т.е. правее
if (x(to)-X(cur))>0 then x(bulko):=x(to)-range;//если мастер бежит вправо - ... то в координату-ренж - левее мастера
if (y(to)-y(cur))<0 then y(bulko):=y(to)+range;//аналогично.
if (y(to)-y(cur))>0 then y(bulko):=y(to)-range;

где x(to) - куда бежит мастер, x(cur) - откуда, x(bulko) - куда бежать булке, range - расстояние между мастером и булкой.

SeregaZ
06.06.2011, 17:33
а тут геометрия нужна. чтобы координаты строились по линейке между точками таргета и твоей, а он как третья точка на рандомно-заданном расстоянии.

вот кстати пришла мысль:
если х таргета > х тебя то х бота = х тебя - (х таргета - х тебя)
если х таргета < х тебя то х бота = х тебя + (х тебя - х таргета)
тоже самое у.
но это будет координаты на расстоянии работы скила или атаки. то есть примерно 900.
можно тогда делить попалам.
если х таргета > х тебя то х бота = х тебя - ((х таргета - х тебя)/2)
если х таргета < х тебя то х бота = х тебя + ((х тебя - х таргета)/2)

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

если х таргета > х тебя то:
пауза рандом (от 300 до 1000 милисекунд)
х бота = х тебя - (((х таргета - х тебя)/2)+(рандом(от -10 до 10)))

Добавлено через 3 минуты
о! и перехватывай еще координату сразу конечную, а не текущую. то есть при начале движения мейном - бралась конечная координата и бот строил свою точку из конечной и сразу бежал на то месте, где бы ты уже стоял.

в случае если таргета нет - то думаю тупым акшеном - то есть милишной "атакой" мейна достаточно.

Добавлено через 7 минут
хотя... если нет таргета, а бот не в пати, и тупо для ноклан-реса, то обычная атака непойдет, так как он сцуко флагнеца, и потом здохнет под системами залпового огня противника.
впринципе тут тоже подойдет та схема, за исключеним что координаты будешь считать теперь как координаты начала движения - координаты окончания движения и по ней строить линию. правда если конечная координата будет очень далеко - бот встанет тоже далеко позади тебя. ну тут можно исходя из разницы координат, в случае если разница более 900, то из конечной координаты вычитать 450 по обеим осям.

Breadfan
06.06.2011, 21:41
1)Нафига городить координаты привязываяс еще и к таргету?
2)Если делать ограничение наподобие if dist(master-bulka)<const then exit; - то никто и никуда дергаться не будет.

SeregaZ
06.06.2011, 21:58
как нафига? ты прочитай внимательней - "как сделать чтобы он был все время за спиной". если противник заходит с тыла, первым он будет бить булку, а по плану он должен бить мастера. заходит противник со спины - мастер берет в таргет, булка начинает забегать за спину мастера.

Breadfan
07.06.2011, 09:38
вот именно что когда мастер берет в таргет заходящего со спины - он разворачивается, и булка, исходя только из изменившегося положения мастера - так же меняет свое расположение. Но таргет тут при чем? мастер может так же развернутса и от нечего делать, безо всяких прицеливаний.

SeregaZ
07.06.2011, 10:38
ты же сам пишешь if dist(master-bulka)<const then exit;
значит разворот корпуса мастера не даст булке понять, что ей пора убегать за спину. она будет стоять и ждать пока расстояние достигнет значения const.
в итоге:

SeregaZ
07.06.2011, 10:41
в моем случае должно быть независимо от положения корпуса - как только ты взял в таргет противника, (а взять в таргет можно и стоя спиной к противнику, дабы ввести его в заблуждение, что я его не вижу) булка уже готовится к атаке, заранее занимая выгодную позицию и не подставляется:

Breadfan
07.06.2011, 10:59
вообщето, после взятия в таргет цели - той, что крадетса со спины, сразу следует твоя атака, а не ожидание "когдатамбулкаубежит", что ессно приводит как минимум к развороту мастера - и перебегу булки. Или надо обязательно дожидаться, пока она забежит за твою спину (да-да, вводя в заблуждение спиной), и лишь потом атаковать?
Касаемо if dist(master-bulka)<const then exit; - а кто запрещает перед ней поставить проверку на ротацию?О_о

Но впрочем, раз вам хочется хранить массивы с оид окружения+их координатами, постоянно их обновляя, чтобы высчитывать направления - (в экшен пакете на таргет - координаты лишь мастера), а еще и делая отсев - свой\не свой там - как угодно :)

SeregaZ
07.06.2011, 11:16
тада есть таргет, нет таргета - булка будет бестолково бегать из-за твоей ротации.
ну и последний аргумент - как ты реализуешь тактическое отступление перед превосходящими силами противника? :) по правилу следования за мастером и ротации (быть за спиной) - при отступлении булка будет бежать не впереди тебя, а позади.

Breadfan
07.06.2011, 11:39
с чего бы - бестолково? у нее допуск от +-90 градусов до как захочется. если сделаешь ей допуск 0 - только тогда она и будет дергаться при каждом небольшом повороте, даже на доли градуса.
Мои булки - отступают только одним способом - "в город". До того - они отчаяно сражаются, заливая мп и хилясь.

David
07.06.2011, 17:44
Беспалевность это второй вопрос, надо сначала сделать хотяб палевно. Повторяю это не л2, 2 раза в таргет, таргет - атака, /follow не катят, ибо это команды юзер-клиент, а не юзер-клиент-сервер-клиент.

Добавлено через 3 часа 53 минуты
и о булках и мейнах рановато говорить) я не могу разобраться по какому принципу строятся пакеты на бег, мувтайп уже понял (спасибо NLObP), а вот есть еще какой то heading, да и координаты както странно генерируются на серве.

Breadfan
07.06.2011, 19:53
какая разница - ла2\аион? расчитывать точки исходя из имеющихся координат - абсолютно одинаково придется. изменяется лишь входной формат данных, но не их обработка

David
07.06.2011, 20:10
в чем разница я вообщето написал в прошлом посте
2 раза в таргет, таргет - атака, /follow не катят, ибо это команды юзер-клиент, а не юзер-клиент-сервер-клиент.

Breadfan
08.06.2011, 08:53
ну если бы ты ВНИМАТЕЛЬНО читал то что я писал - то мб увидел - что там о таргете\атаке - ни слова нет. Расчет только используя координаты мастера\булки. Так что я повторю еще раз: какая разница - аион или ла2? Правила геометрии - одними и теми же остаются вообщето, невзирая к чему их там применяют.

David
09.06.2011, 01:16
Брэдфан почитай топики написаные до тебя) так, не искушайте меня, не могу оторваться от этого форума, защищу 16го дипломную и вернусь. Если если что пишите пропозиции, вернусь и если будет чтото дельное возьму на заметку)