Page 1 of 1
Помогите зделать плз...
Posted: 29.09.2010 22:23
by pr0Zak
толковую процедуру на обнаружения моба и убийство.
Суть процедуры, если обнаружили моба бежим к ниму в упор и атакуем, следует учесть что моб не стоит на месте и убегает, по сему на да чтобы чар % догнал моба. А то Я перепробывал много всякого и ничего не получаеться толкового сообразить.
Posted: 30.09.2010 6:53
by Vizit0r
нашли моба
пока расстояние больше 1 - догоняем.
что сложного-то?
Posted: 30.09.2010 9:14
by pr0Zak
Vizit0r wrote:
пока расстояние больше 1 - догоняем.
ВОт этот кусок и есть сложность, как его реализировать::?
Posted: 30.09.2010 9:19
by Macks
Vizit0r wrote:нашли моба
пока расстояние больше 1 - догоняем.
что сложного-то?
Сложно то что догонять ты будешь в точку где он стоял, после того остановишься, а он то же бежит. То есть нужно предугадывать точку в которую бежит НПЦ или бежать с корректировкой движения.
Posted: 30.09.2010 9:27
by MuDaCk
сложно написать скрипт, наверное

Posted: 30.09.2010 9:32
by Vizit0r
while GetDistance(NPC_ID) > 1 do
NewMoveXY(GetX(NPC_ID), GetY(NPC_ID)....)
чот я сложности не вижу.
если можно ставать на вендора - то вообще ноль.
Posted: 30.09.2010 9:33
by Macks
pr0Zak wrote:Vizit0r wrote:
пока расстояние больше 1 - догоняем.
ВОт этот кусок и есть сложность, как его реализировать::?
if (ABS(X2 - X1) +ABS(Y2-Y1)) > 1 then NewMoveXY(X2,Y2);
Posted: 30.09.2010 9:49
by Vizit0r
GetDistance в результате сводится к
Code: Select all
dx := ABS(SelfX - ObjX);
dy := ABS(SelfY - ObjY);
r := Sqrt(dx*dx + dy*dy);
Result := Round(r);
так что пользуйтесь готовым, не изобретайте велосипед

Posted: 30.09.2010 16:50
by Macks
Vizit0r wrote:GetDistance в результате сводится к
Code: Select all
dx := ABS(SelfX - ObjX);
dy := ABS(SelfY - ObjY);
r := Sqrt(dx*dx + dy*dy);
Result := Round(r);
так что пользуйтесь готовым, не изобретайте велосипед

Та да, если нужна точность и не жаль процессора.
Posted: 30.09.2010 16:52
by Macks
Можно без всяких проверок бежать к НПЦ указав степень добегания в 1.
Внутри функции проверит дистанцию.
Posted: 01.10.2010 16:38
by RaTaMaHaTTa
У меня сделана через NewMoveXY
Догоняет отлично и с препятствиями проблем нету, все красиво обходит.
Posted: 01.10.2010 18:21
by pr0Zak
RaTaMaHaTTa wrote:У меня сделана через NewMoveXY
Догоняет отлично и с препятствиями проблем нету, все красиво обходит.
Выложи свою процедуру или функцию для примера посмотреть)
Posted: 01.10.2010 19:21
by grundick
Если не напрягать мозги, не пробовал так реализовать:
Code: Select all
findtype(...);
attack(finditem);
while ( НПЦ не мёртв ) do
begin
newMoveXY(getX(finditem),getY(finditem),false,1,true);
wait(100);
end;
Posted: 01.10.2010 20:50
by pr0Zak
Всем спс разобрался наконецто
