;------------------------------------------------------ uo.set('finddistance','2') for dx=-2 to 2 for dy=-2 to 2
i=i+1 uo.Print(str(i))
if uo.privategettile(x+dx,y+dy,-1,1330,1360) > 0 then
for j=0 to (size-4) col=tpe[j] uo.findtype(Ore,col,'ground') if uo.findcount() then DropToStack(Ore,col) end if next for j=(size-3) to size col=tpe[j] Grab(Ore,col) next
rep1:
uo.CancelTarget() uo.DeleteJournal()
uo.FindType(pickaxe,'-1','my') if uo.findcount() then uo.WaitTargetTile('0',x+dx,y+dy,str(uo.GetZ('self'))) wait(50) uo.UseType(pickaxe) else goto rep2 end if
repeat wait(50) until uo.injournal("Select|cannot|already|must|broke|no item")
Tmr = uo.Timer()+600 CheckLag() wait(1000)
if uo.injournal('already|must|broke') then uo.deletejournal() goto rep1 end if
if uo.injournal('no item') then dx=2 dy=2 goto rep2 end if
repeat wait(50) until UO.InJournal("no more ore|must|cannot|broke") || uo.Timer() > Tmr if uo.InJournal('broke') then else uo.Print(str(i)) test(dx,dy) end if
if uo.injournal('broke') then uo.deletejournal() goto rep1 end if
else wait(50) end if rep2: next next uo.exec('mfgi clear') end sub
вот ето копалка...)). проблема в том что иногда (в случайные моменты)
она может пропусть как 1 тайл так и серию(до окончания внутреннего цикла). Если у кого есть идеи по етому поводу... поделитесь плз.))
uo.FindType(pickaxe,'-1','my') if uo.findcount() then uo.WaitTargetTile('0',x+dx,y+dy,str(uo.GetZ('self'))) wait(50) uo.UseType(pickaxe) else goto rep2 end if
Если кирки кончились, то до проверки 'no item' дело не дойдет...
Вот что значит свежий взгляд... избыток проверок (((... но дело в любом случае не в етом (((. ибо пропуски бывают в середине массива из 25 тайлов... к примеру с 7 по 10 включительно....(((
Что делать ума неприложу....(((. И, кстати, в етом же скрипте иногда теряются переменные... (счетчики циклов)..(((
чтобы увидеть сообщение no item надо включить одну опцию...
Вы будете смеяться, Монсеньёр, но писать скрипты под инжект я начал ещё в те времена, когда инжект был токо в одном исполнении...
так что "не учите меня жить..." (с) Ильф и Петров.
P.S.
Для того, чтоб увидеть сообщение "no item" вполне достаточно использовать макрос клиеента Last Object если эти обжекты закончились.... (это сообщение клиента и ни каких опций инжи это не касаеться.)
То есть, как это теряются переменные? Куда теряются?
Если в инжекте нет возможности передать переменные как указатели, например, в test(dx,dy), то никак они потеряться не должны.
Расставляй print'ы после каждой строчки, печатай значения dx и dy - и ищи место, где теряются переменные.
Еще, можно попробовать переписать без goto (всё равно это очень вредная команда) - мож, из-за нее глючит.
чтобы увидеть сообщение no item надо включить одну опцию...
Вы будете смеяться, Монсеньёр, но писать скрипты под инжект я начал ещё в те времена, когда инжект был токо в одном исполнении... так что "не учите меня жить..." (с) Ильф и Петров.
замечательно... стиль програмирования у вас остался с тех же времён...
ЗЫ не вижу из чего я мог бы сделать подобный вывод.
замечательно... стиль програмирования у вас остался с тех же времён...
возиожно..., но если Вы мине подскажите, как в данной ситуации можно обойтись без goto и при этом не писать строк 25-30, то я с удовольствием воспользуюсь Вашим советом....
То есть, как это теряются переменные? Куда теряются?
еслиб проблема была в задержках, то скрипт простоб зависал... а реально он пропускает тайлы(иногда...). Так что у меня один диагноз - теряет значение переменной цикла ((( как правило - внутреннего...