Page 1 of 1
Атака
Posted: 13.10.2010 12:45
by Venom
Проблема заключается в следующем, перс видит искомый объект, приманивает его и бежит атачить, но после одного/двух ударов возвращается на исходную точку.
Подскажите, где дал маху ?
Code: Select all
If FindType($0191,ground) <> 0 then
begin
if (GetName(finditem) = 'Drevodriada') or (GetName(finditem) = 'Mutant Drevodriada') then begin
attack(finditem);
If TargetPresent then CancelTarget;
WaitTargetObject(finditem);
UseSkill('Enticement');
wait(500);
WaitTargetObject(self);
wait (2500);
while GetDistance(finditem) > 1 do
begin
newMoveXY(getX(finditem),getY(finditem),false,1,true);
wait(100);
end;
end;
Posted: 13.10.2010 14:03
by Fenix
В указанном тобою куске я ошибок не наблюдаю.
Но этот код не предусматривает атаку существа. Только юзает на нём скил, после чего подбегает к нему.
Давай более подробный код скрипта.
Posted: 13.10.2010 14:24
by pr0Zak
Fenix wrote:В указанном тобою куске я ошибок не наблюдаю.
Но этот код не предусматривает атаку существа. Только юзает на нём скил, после чего подбегает к нему.
Давай более подробный код скрипта.
Cобственно атаковать и не нужно, там тварь сама будет атаковать и будет на одаче урон получать. А вот кусок когда подбегает на да по другому циклить не на дистанс, потому как когда он подбегает к твари чар выходит с цикла и делает дальше свою роботу.
Posted: 13.10.2010 14:44
by Fenix
pr0Zak wrote:Cобственно атаковать и не нужно, там тварь сама будет атаковать и будет на одаче урон получать. А вот кусок когда подбегает на да по другому циклить не на дистанс, потому как когда он подбегает к твари чар выходит с цикла и делает дальше свою роботу.
Вот как раз хотелось бы узнать какую "работу" делает оставшаяся часть скрипта, ведь чар "возвращается на исходную точку".
Posted: 13.10.2010 14:59
by pr0Zak
Fenix wrote:pr0Zak wrote:Cобственно атаковать и не нужно, там тварь сама будет атаковать и будет на одаче урон получать. А вот кусок когда подбегает на да по другому циклить не на дистанс, потому как когда он подбегает к твари чар выходит с цикла и делает дальше свою роботу.
Вот как раз хотелось бы узнать какую "работу" делает оставшаяся часть скрипта, ведь чар "возвращается на исходную точку".
Оставшаяся часть не имеет не какого отношения к заданому вопросу))
Posted: 14.10.2010 6:20
by Fenix
pr0Zak wrote:Оставшаяся часть не имеет не какого отношения к заданому вопросу))
Действительно? А откуда ты знаешь, что в оставшейся части нет проверки на смерть найденого моба или какой-либо задержки? Да и возвращение на исходную позицию где-то описано. Здесь ты увидел только реализацию подхода к мобу, она работает правильно. А что дальше? В цикле срабатывает поиск следующего моба? Или там код для возвращения к исходной точке?
Если любишь гадать - гадай в совоё удовольствие.
Posted: 14.10.2010 10:35
by pr0Zak
Fenix wrote:
Если любишь гадать - гадай в совоё удовольствие.
Знаю потому что Я сам делал скрипт.
Posted: 14.10.2010 14:34
by Macks
pr0Zak wrote:Fenix wrote:
Если любишь гадать - гадай в совоё удовольствие.
Знаю потому что Я сам делал скрипт.
Там нет цикла, бросил атаку, подманил, подбежал и все...
Скрипт возвращает к дереву не анализируя смерть моба.
Posted: 14.10.2010 14:35
by Macks
Fenix wrote:В указанном тобою куске я ошибок не наблюдаю.
Но этот код не предусматривает атаку существа. Только юзает на нём скил, после чего подбегает к нему.
Давай более подробный код скрипта.
attack(finditem);
Это что по твоему?
Posted: 14.10.2010 15:47
by Fenix
Macks wrote:attack(finditem);
Это что по твоему?
Звиняй, не углядел

Posted: 14.10.2010 16:16
by pr0Zak
Macks wrote:
Там нет цикла, бросил атаку, подманил, подбежал и все...
Скрипт возвращает к дереву не анализируя смерть моба.
Делал так цыкл:
Но после смерти моба всеровно чар пытаеться бежать к мобу.
А стелс соответственно выдет ошибку что большая дистанция и не может добежать к мобу.
Posted: 14.10.2010 21:16
by grundick
проверь корректность работы ф-ии isDead.
Не уверен в ней.
Posted: 15.10.2010 8:05
by Fenix
Есть подозрение, что при смерти моба его ID освобождается и стелс не находит информации о нём. По-умолчанию IsDead возвращает False. Можно проверить существование моба через
Code: Select all
function GetType(ObjID: Cardinal): Word
Если информацию по мобу не найдёт, то вернёт ноль. Хотя тоже не факт, что корректно отработает.
Posted: 15.10.2010 16:40
by Macks
pr0Zak wrote:Macks wrote:
Там нет цикла, бросил атаку, подманил, подбежал и все...
Скрипт возвращает к дереву не анализируя смерть моба.
Делал так цыкл:
Но после смерти моба всеровно чар пытаеться бежать к мобу.
А стелс соответственно выдет ошибку что большая дистанция и не может добежать к мобу.
Перед тем как бежать проверяй дистанцию, если больше 30, выходи из цикла.