Page 1 of 1
Прицел =(
Posted: 2007-05-03 14:12:17
by Ururu
Мне нужно ткнуть на гампе на кнопку, появляется прицел и этот прицел отправить на итем в паке.
Пробовал так, неполучается:
Code: Select all
uo.waittargettype('finditem')
uo.LClick(28,572)
wait(500)
Дело в том что установить ловушку на итем вначале нельзя, нужно сначало дождатся появления прицела.
А второй вопрос про поиск объектов. Нужно искать реги в подсумках и кидать их в бекпак. Незнаю ниодной команды для поиска в подсумках игнорируя бекпак =(
В процессе написания скрипта еще вопросик возник. Я выставил
потом ищу кровь и хиляюсь, но чар пытается хилятся кровью которая далеко. А можно только той что под ногами и в 1 тайле от чара. Да и как после исполнения скрипта, дистанцию выставить по дефаулту?
Posted: 2007-05-03 17:20:35
by korzh
Code: Select all
DIM reg[8]
var c
reg[0]=0x0F7B ; BM
reg[1]=0x0F7A ; BP
reg[2]=0x0F86 ; MR
...........
for c=0 to 7
uo.findtype(reg[c],"-1","[color=red][b]my[/b][/color]") ; my искать во всех подсумках пака
на кровь думаю будет так:
Code: Select all
var n
Dim Blood[6] ; вроде их 6 не помню
Blood[0] = '0x0000'
.......
Blood[5] = '0x0000
uo.set('finddistance','1')
For n = 0 TO 5
UO.FindType(Blood[n],'-1','ground')
If UO.FindCount() > 0 Then
UO.UseObject('finditem')
EndIf
и еще так вроде можно:
Code: Select all
Dim Blood[6] ;
Blood[0] = '0x0000'
.......
Blood[5] = '0x0000'
uo.set('finddistance','1')
For n = 0 TO 5
UO.FindType(Blood[n],'-1','ground')
if uo.GetDistance(Blood[n])<2 then
.......
попробуй оба, не тестить негде просто
Posted: 2007-05-03 18:07:17
by Ururu
все не так
1) мне нужно только в подсумках искать а не в бекпаке и подсумках
2) и 3) кровь не юзается, он ищет не там где нужно
Posted: 2007-05-03 18:25:16
by korzh
ммм, а где он кровь ищет? на земле на растоянии 1 тайла, вроде даже юзать ее должен:)
Posted: 2007-05-03 20:02:35
by Ururu
ааа все разобрался, кровь за кустиком была и он ее не доставал =)
но первые 2 вопроса актуальны
Posted: 2007-05-03 20:18:27
by korzh
а про первую поподробнее можно?
и чем тебе не вариант просто в отдельную сумку кинуть все что нужно, и если не секрет то зачем ето?
Posted: 2007-05-03 20:35:58
by Ururu
Есть сейф для регов, я тыкаю в нем на кнопку(гамп) и прицел на рег, этор рег суется в сейф.
Если искать в сумках и выкладывать реги в пак не игнорируя поиск в нем, то получается бесконечный цыкл перекладывания из пака в пак.
Posted: 2007-05-04 02:30:28
by korzh
а напиши uo.ignor('sunduk')
Posted: 2007-05-04 02:56:15
by Ururu
о_0 мне просто нужно в подсумках искать игнорируя бекпак
Posted: 2007-05-04 05:47:41
by Destruction
Code: Select all
uo.waittargettype('finditem')
uo.LClick(28,572)
wait(500)
Исправить логику и всё заработает.
Конкретно - первая строчка.
Posted: 2007-05-04 09:36:12
by Ururu
Code: Select all
uo.waittargettype(finditem)
uo.LClick(28,572)
wait(500)
Posted: 2007-05-04 10:00:29
by Destruction
Ururu wrote:Code: Select all
uo.waittargettype(finditem)
uo.LClick(28,572)
wait(500)
Ещё хуже сделал, имхо
finditem - объект..
Posted: 2007-05-04 10:18:50
by Ururu
спасибо, разобрался...
а вот тут еще 1 ньюансик :
скрипт выкладывает все реги из подсумок, в бекпак чара
Code: Select all
for r=1 to 26
repeat
uo.findtype(Meshok,-1,'backpack')
MeshSer = UO.GetSerial( 'finditem' )
uo.useobject(MeshSer)
wait(500)
repeat
uo.findtype(reg[r],-1,MeshSer)
uo.moveitem('finditem',0,'backpack')
wait(200)
until not UO.GetQuantity('finditem')
wait(200)
uo.ignore(MeshSer)
until not UO.count(Meshok)
uo.ignorereset()
NEXT
проблема в том, что он медленный. Тоесть ищет вначале первый рег из массива во всех подсумках, потом второй рег и т.д. Если мешков 100 то скрипт затягивается на пол часа =)
Posted: 2007-05-04 11:40:49
by Destruction
Дык скрипт нелогичный, хоть и последовательный
Code: Select all
uo.findtype( Meshok )
while uo.findcount()
if uo.findcount() then
MeshSer = uo.getserial( "finditem" )
uo.useobject( "finditem" )
checklag()
for r=1 to 26
uo.findtype( reg[ r ], "-1", MeshSer )
while uo.findcount()
uo.moveitem( "finditem" )
uo.ignore( "finditem" )
wend
next
end if
uo.findtype( Meshok )
wend
uo.ignorereset()
Вроде всё верно описал, это с учётом, что при перемещении в рюкзаке нету паузы, иначе немного изменить надо

Posted: 2007-05-04 13:41:34
by Ururu
Не.. Не работает.
1) открывает кучу мешков и не закрыает их (весь экран в мешках). Но с этим можно разобратся переложив мешок в бекпаке.
2) как добирается до бекпака, начинает в нем с одного на дугое место перекладывать реги и на этом все =)
З.Ы. Если пытаюсь закрыть гамп, получается несовсем то что нужно. Закрывает все гампы что есть (даже ,morph 0x0000 сбрасывает), после чего успешно уходит в дисконект =)
Может есть принцип закрытия последнего открывшегося гампа не используя finditem (а если он уже закрыт, то другие не трогать)?