Страница 3 из 7

Добавлено: Пт май 18, 2007 9:59 am
piroJOKE
Еще насчет "а как это делает клиент". Клиент это делает хреново! Когда я играл руками, я всегда вручную наводился на цель, на глазок вычисляя упреждение, т.к. клиент ничего такого не делал.
(Единственное что клиент(?) делает отменно, это то, что он(?) умеет обходить препятствия. Вот это - круто.)
угол В прямой?
Конечно же нет!
1) Представь себе, что моб лишь чуть-чуть медленнее тебя, и вы стартуете из двух точек рядышком, в примерно одном направлении. В таком случае угол B будет очень острым.
2) Представь себе, что твое местонахождение почти совпадает с точкой, в которую идет моб. Тогда угол B, напротив, будет очень тупым.

Добавлено: Пт май 18, 2007 6:43 pm
Maksimilianoo
У меня почемуто пьяно ходит токо в городе....а так воопще не заметно, как был трамваем так и остался

Добавлено: Пт май 18, 2007 7:08 pm
kLabMouse
MFBeaST
На рисунке Я уже указал синусы каких углов есть. Самое главное, ето найти точку В (можно и просто длинну отрезка БВ) таким образом проведя прямую к точке В и преобразовав её в вектор, применив длинну АВ-Дистанция атаки мы получим реальную точку где мы уже сможем атаковать противника.

Добавлено: Пт май 18, 2007 7:58 pm
MFBeaST
kLabMouse
ну, кхм, я уже излогал геом. соображения, но могу и по подробнее:
теорема синусов гласит:
sin A / len БВ = sin Б / len АВ = sin В / len АБ (как-то непривычно точки русскими буквами обозначать, ну да ладно)
у нас есть: sinA, sinБ, lenАБ
делаем следущее:
sinВ = sin ( 180 - arcsin(sinA) - arcsin(sinБ) );
lenАВ = lenАБ * sinБ / sinВ;
lenБВ = lenАБ * sinA / sinВ;
определили длины, дальше ж с координатами:
есть: xA, yA, xБ, yБ, xД, yД (Д - неотмеченная точка на твоём рисунке - куда движется моб), attackDist
пишем:
lenБД = sqrt ( sqr(xБ-xД) + sqr (yБ-yД) ); - определяем длинну БД если ещё нету
xВ = xБ + (xД-xБ)*(lenБВ)/(lenБД);
yВ = yБ + (yД-yБ)*(lenБВ)/(lenБД);
.. это на основании теоремы о пропорциональности отрезков образованных пересечением паралельными прямыми ..
ну и осталось найти координаты точки атаки (обозначим её т.Е):
lenАЕ = lenАВ - attackDist;
и аналогично:
xЕ = xА + (xВ-xА)*(lenАЕ)/(lenАВ);
yЕ = yА + (yВ-yА)*(lenАЕ)/(lenАВ);

вот, xЕ, yЕ - координаты точки атаки.

только ж блин, ты не рассказываешь как ты sinA получил, а это далеко не очевидно ...

Добавлено: Сб май 19, 2007 1:15 pm
kLabMouse
MFBeaST
sinА = sinБ (speed_моба/speed_наш)

Добавлено: Сб май 19, 2007 2:12 pm
MFBeaST
kLabMouse
интересный ход, теперь всё ясно =)

Добавлено: Пт авг 03, 2007 8:58 am
LofaK
А можно сделать, чтоб когда кор увидел агресса, то тут же остановился. Монстрик подходит к нам и мы начинаем его бить, тем самым не наворачивая по 10 раз кругов туда сюда... как идейка?

Добавлено: Пт авг 03, 2007 9:49 am
kLabMouse
LofaK
Хреновая. Из розряда ЗДЕЛАЙ САМ.
Ибо не все монстры агресоры. На разных серваках некотороые монстры превращаются с агресоров в неагресоры и наоборот.

Лучше всё-таки хорошенько напрячь свой мозг. И впомнить тригонометрию и геометрию + физику за 10-11 клас.

Добавлено: Пн дек 24, 2007 7:08 pm
Asacura
А куда Route.pm ,в плагины?

Добавлено: Пн дек 24, 2007 7:16 pm
Kissa2k
kLabMouse писал(а):Лучше всё-таки хорошенько напрячь свой мозг. И впомнить тригонометрию и геометрию + физику за 10-11 клас.
Фигасе, значит кодеры ОК еще не доросли до 10 класса или прогуливали школу, чтобы сделать это? :lol:

Добавлено: Вт дек 25, 2007 1:35 am
piroJOKE
Имхо оно там нафиг не надо. Пишу в 10й раз. Для поля 30х30 (зона видимости) никакой тригонометрии не нужно! Это не та точность.

Добавлено: Вт дек 25, 2007 2:33 am
excellent
Мне кажется вы немного не в том напровлении идёте. Ведь если задумать, играя человек не парится над своё траекторией, не высчитывает путь на опережение моба. Он тупо нажимает на моба и чар по ходу смещения моба меняет траекторию. Или я керню ляпнул? :D

Добавлено: Вт дек 25, 2007 11:34 am
kLabMouse
excellent
Дык. Ты видимо замечал, что когда щёлкнул бить моба, то чар не будет именно в том месте, где ты щёлкнул на моба.
ТЕ, Клиент вычисляет самое правильное место для встречи.
Ещё может замечал, что бывает чар уходит за мобом сам, если тот продолжает движение.

Добавлено: Вт дек 25, 2007 3:48 pm
IDDQD
kLabMouse писал(а):Клиент вычисляет самое правильное место для встречи.
И двигается как по рельсам.
Почему бы просто не отключать пьяную походку при расстоянии до цели меньше значения N, а при расстоянии больше N имитировать погоню за мобом (вот здесь и понадобится n-миллисекундная задержка, которую предлагал pJ)

Добавлено: Пт дек 28, 2007 9:00 pm
Asacura
гг,куда это,в папку плагинс как плагин сохранять,или в src/Task/Route.pm добавлять?