Page 1 of 1

Хелп пожалуйста. Скрипт тупит (а скорее это я)

Posted: 2007-04-20 01:52:14
by Ururu
Ночью глазки офлайнятся потихому, сидел блин писал.
Я понимаю что так использовать тип и цвет это нонсенс, но все же.
Смысл скрипта. Копаю я в ручную, при выкапывании трешевой руды (ее цвет в массиве), сразу выкидывать ее под ноги. Но скрипт гад если находит онную руду просит ткнуть в нее прицелом, а не сам кидает как я планировал. Туплю...ночь на дворе...

Code: Select all

sub main() 
   repeat
      mine()
         wait(1500)
   until false
end sub
sub mine()
var Ore = '0x19B9' ; тип кучки руды
var Marganece = '0x06D6' ; цвета руды
var Iron = '0x0000'
var Copper = '0x0601'
var Tourmaline = '0x04C2'
var Tin = '0x052D'
var Stone = '0x9999'
var Bronze = '0x9999'
var Marble = '0x9999'
var Lead = '0x084D'
var Corrundum = '0x060C'
var Sandstone = '0x9999'
var Plaster = '0x9999'
   DIM color[12]
      color[0] = Marganece
      color[1] = Iron
      color[2] = Copper
      color[3] = Tourmaline
      color[4] = Tin
      color[5] = Stone
      color[6] = Bronze
      color[7] = Marble
      color[8] = Lead
      color[9] = Corrundum
      color[10] = Sandstone
      color[11] = Plaster
         var i
      for i = 0 to 11
uo.findtype( Ore,color[ i ] )
if uo.findcount() > 0 then
   uo.drop( 'finditem' )
endif
endsub

Posted: 2007-04-20 09:09:50
by to4a
вообще руда бывает 4 типов...
и нахрена обьявлять сначала дофига переменных, а потом их же совать в массив, не проще сразу в массив? если тебе надо знать какой руде соответсвует каждый из элементов массива, оставь просто для себя комментарии.

Code: Select all

...
uo.findtype(Ore,color[ i ] ,'backpack')
if UO.FindCount()  then
   UO.MoveItem('finditem',-1,'ground')
endif
...

зы: лучше конечно юзать мувитем, а раньше не работало потому что синтаксис у drop не такой...
uo.drop([quantity],[X,Y,Z],[object])

Posted: 2007-04-20 10:36:46
by Savage
uo.drophere('finditem')

Posted: 2007-04-20 10:45:00
by Nmy
просто ищет по цвету

Code: Select all

sub main()
VAR n
Dim Drop[10]
Drop[1] = '0x0909'
Drop[2] = '0x03E3'
Drop[3] = '0x0026'
Drop[4] = '0x06D6'
Drop[5] = '0x0000'
Drop[6] = '0x0601'
Drop[7] = '0x052D'
Drop[8] = '0x0488'
Drop[9] = '0x084D'
Drop[10] = '0x060C'

For n = 1 To 10
UO.FindType('0x19B9', Drop[n] ,'backpack')
If UO.FindCount() then
UO.MoveItem('finditem', -1 ,'ground')
wait(1000)
Endif
Next

end sub

Posted: 2007-04-20 11:30:48
by Ururu
Спасибо, я просто загнался и почему то подумал что UO.MoveItem('finditem', -1 ,'ground') запросит ИД руды :D


З.Ы.Да а вот интересная фишка! Если чар выше или ниже уровня земли, то руда при попытке выбросить ее, падает обратно в пак. :)

Posted: 2007-04-20 15:09:10
by Nmy
Ururu wrote:Спасибо, я просто загнался и почему то подумал что UO.MoveItem('finditem', -1 ,'ground') запросит ИД руды :D


З.Ы.Да а вот интересная фишка! Если чар выше или ниже уровня земли, то руда при попытке выбросить ее, падает обратно в пак. :)

можно пробовать так:

Code: Select all

UO.MoveItem('finditem', -1 ,'ground',uo.getx(),uo.gety(),uo.getz())

Posted: 2007-04-20 22:04:23
by Savage
Зачем педали разрабатывать? Все уже давно придумано, если надо просто сбросить предмет то юзаем дропхир. Эффективность скрипта напрямую зависит от его простоты.