чет у меня со взятием цели трабл возник так то все работает, но вообщем:
Code: Select all
sub selectEnemy() ###### Тут все понятно выбираем цель если цель есть тогда атака
addOrGetObject('Enemy',8,-1)
uo.Cast('Magic Arrow','Enemy')
UO.Attack('Enemy')
endsub
sub addOrGetObject(name,distance,timeout) ### Здесь сама проверка если цель есть то атака
var oldObject = UO.GetSerial(name)
if (oldObject>0) AND ((UO.GetDistance(oldObject)<=distance) OR (distance==-1)) then
return oldObject
else ########## Если цели нет то добовление
return addObjectWait(name,timeout)
endif
endsub
sub addObjectWait(name,timeout) #### Само добавление цели
var timeLeft
repeat
UO.AddObject(name,0)
if uo.waiting() then
uo.canceltarget()
endif
UO.AddObject(name)
timeLeft = timeout
while (NOT uo.Targeting()) AND (timeLeft>0)
wait(50)
timeLeft = timeLeft -50
wend
while (uo.Targeting()) AND (timeLeft>0)
wait(50)
timeLeft = timeLeft -50
wend
until ((timeLeft>0) OR (timeout<=0)) AND (UO.GetSerial(name)>0)
return UO.GetSerial(name)
endsub
Суть проблемы:допустим я выбираю цель он пускает в нее стрелку и атачит если нажимаю еще раз то курсор не выпадает а снова пускает стрелку , но если я убежал от цели дальше 8 клеток и нажал добавить цель появляется таргет добавления новои цели ТУТ ВСЕ НОРМ!
дальше проблема я нажимаю Esc(то есть отменяю крестик) и если опять нажимаю добавление цели то он пишет Invalid serial index и invalid object:Enemy Где поправить чтоб после отмены таргета Esc-пом он по новому цель мог определять? Я думаю проблема в sub addObjectWait(name,timeout)......endsub но где?