Page 1 of 1
Переведите строку
Posted: 2010-12-09 13:44:24
by chuv
Подскажите, пожалуйста, что означает эта строка:
"if uo.Lasttile(1)==uo.getX() and uo.Lasttile(2)==uo.gety()"
Используется при сборе координат, я так понял, что она должна этот сбор остановить.
Re: Переведите строку
Posted: 2010-12-09 15:29:18
by GMX
Uo.GetX() и Uo.GetY() возвращают координаты себя )))
Судя по всему в твоем скрипте, чтобы остановить сбор координат, нужно было кликнуть на себя.
Re: Переведите строку
Posted: 2010-12-09 19:13:38
by chuv
GMX wrote:Uo.GetX() и Uo.GetY() возвращают координаты себя )))
Судя по всему в твоем скрипте, чтобы остановить сбор координат, нужно было кликнуть на себя.
Спасибо, вроде так и есть. Просто до этого при клике на себя выдало ошибку, вероятно, чет сбилось.
Re: Переведите строку
Posted: 2010-12-09 19:18:05
by Sirocco
может под себя?
Re: Переведите строку
Posted: 2010-12-10 10:02:21
by Mirage
chuv wrote:GMX wrote:Uo.GetX() и Uo.GetY() возвращают координаты себя )))
Судя по всему в твоем скрипте, чтобы остановить сбор координат, нужно было кликнуть на себя.
Спасибо, вроде так и есть. Просто до этого при клике на себя выдало ошибку, вероятно, чет сбилось.
Для определения не надо кликать на себя или предмет. Это координаты клетки-тайла на котором находится объект. Если в скобках ничего не указано то координаты чара.
Тебе проще было бы сам скрипт показать - тогда подробнее бы пояснили.
Re: Переведите строку
Posted: 2010-12-10 11:49:29
by chuv
Весь выкладывать не стал вот интересующая часть:
.............
uo.UseObject(Pickaxe)
waitForTarget()
uo.DeleteJournal()
WaitForTryRock()
###############################
### Проверяем дерево ли это ###
###############################
flag=0
for k=0 to 28
if uo.LastTile(0)==TreeTile[k]+1 then
flag=2
end if
next
if flag==0 then
for k=0 to 28
if uo.LastTile(0)==TreeTile[k] then
flag=1
end if
next
end if
if uo.Lasttile(1)==uo.getX() and uo.Lasttile(2)==uo.gety() then
flag=3
end if
#########################
### Кликнули на ствол ###
#########################
if flag==1 then
flag2=0
if treeCount>0 then
for ii=1 to treeCount
if TreeX[ii]==uo.LastTile(1) and TreeY[ii]==uo.LastTile(2) then
flag2=1
end if
next
end if
if flag2==0 then
treeCount=treeCount+1
TreeX[treeCount]=uo.LastTile(1)
TreeY[treeCount]=uo.LastTile(2)
TreeT[treeCount]=uo.LastTile(0)
uo.Print('Найдено дерево '+str(treeCount)+' : x='+str(uo.Lasttile(1))+' y='+str(uo.LastTile(2))+' '+str(treeCount))
end if
end if
##########################
### Кликнули по листве ###
##########################
if flag==2 then
flag2=0
if treeCount>0 then
for ii=1 to treeCount
if TreeX[ii]==uo.LastTile(1) and TreeY[ii]==uo.LastTile(2) then
flag2=1
end if
next
end if
if flag2==0 then
treeCount=treeCount+1
TreeX[treeCount]=uo.LastTile(1)
TreeY[treeCount]=uo.LastTile(2)
TreeT[treeCount]=uo.LastTile(0)-1
uo.print('Найдено дерево '+str(treeCount)+' : x='+str(uo.Lasttile(1))+' y='+str(uo.LastTile(2)))
end if
end if
until (Flag==3) or (treeCount==50)
uo.Exec("filterspeech off")
uo.Print('Анализ закончен, координаты деревьев записаны в файл')
SaveToFile(treeCount,TreeX,TreeY,TreeT)
end if
uo.Print('Деревьев найдено: '+str(treeCount))
wait(2000)
................
останавливает сбор координат либо после выбора необходимого количества деревьев, либо после того что спрашивал.
Если все таки нужно могу и весь выложить.
Re: Переведите строку
Posted: 2010-12-10 14:10:27
by Mirage
Ответ дал GMX во 2 сообщении - при клике на себя переставал маркать деревья.
Цикл (шапка не вошла в пример) заканчивается на условии
Code: Select all
until (Flag==3) or (treeCount==50)
uo.Exec("filterspeech off")
uo.Print('Анализ закончен, координаты деревьев записаны в файл')
Тоесть отмечено 50 деревьев либо кликнул на себя.
Re: Переведите строку
Posted: 2010-12-10 14:31:41
by chuv
Mirage wrote:Ответ дал GMX во 2 сообщении - при клике на себя переставал маркать деревья.
Цикл (шапка не вошла в пример) заканчивается на условии
Code: Select all
until (Flag==3) or (treeCount==50)
uo.Exec("filterspeech off")
uo.Print('Анализ закончен, координаты деревьев записаны в файл')
Тоесть отмечено 50 деревьев либо кликнул на себя.
Mirage спс. После ответа GMX все понял.