Page 2 of 2

Posted: 2007-07-13 18:37:36
by Scripts Writer
... и ещё вопрос а пичиму Sub main(), не виден в поле "Run function:", а вот если с маленькой буковки - "sub" - тады пжалста?


Зачем доказывать то что уже доказано? Надо просто прочитать всю доступную информацию и возможно там есть ответ.

Это сделано специально чтобы скрывать из списка функций те, которые не будут использоваться на прямую. (Чеклаг, прототипы функций, зачастую пвп скрипты используемые только на хоткеи)

Posted: 2007-07-13 18:43:48
by ADEPT_ABP

Code: Select all

Зачем доказывать то что уже доказано? Надо просто прочитать всю доступную информацию и возможно там есть ответ.

Ммм... "...всю доступную..", "......возможно....???
Вы меня напугали, перспективой работать ислючительно на интернет и провести остаток своей жизни у монитора. :mrgreen:

Posted: 2007-07-13 18:45:54
by Scripts Writer
ADEPT_ABP wrote:

Code: Select all

Зачем доказывать то что уже доказано? Надо просто прочитать всю доступную информацию и возможно там есть ответ.

Ммм... "...всю доступную..", "......возможно....???
Вы меня напугали, перспективой работать ислючительно на интернет и провести остаток своей жизни у монитора. :mrgreen:


Её не так уж и много

Posted: 2007-07-13 18:54:53
by ADEPT_ABP
Её не так уж и много

Я лень-тяй. Поделись ссылкой. :D Или хотя бы, просвяти - из какой, это области? Если из области программирования, то - какой язык?

Posted: 2007-07-13 19:02:48
by Scripts Writer
ФАК+Уроки в подписи ссылки есть.

Posted: 2007-07-13 19:06:28
by ADEPT_ABP
Scripts Writer wrote:ФАК+Уроки в подписи ссылки есть.

Пофлудили, и хватит. Хорошего по-немножку. Пиду уроки, с факом пересматривать... В прошлый раз, видать, пропустил. :P

З.Ы. Добавлю-ка я сюда свой скрипт на перекладку.

Code: Select all

sub main()
   UO.AddObject('Bout')
    UO.Print('Откуда перемещаем?')
   while UO.Targeting()
    wait(10)
   wend
wait(1000)
uo.useobject('Bout')
wait(1000)
   UO.AddObject('Item')
    UO.Print('Что перемещаем?')
   while UO.Targeting()
    wait(10)
   wend
wait(1000)
   UO.AddObject('Bin')
    UO.Print('Куда перемещаем?')
   while UO.Targeting()
    wait(10)
   wend
wait(1000)
uo.useobject('Bin')
wait(1000)
if uo.weight < uo.str*4+20 then
uo.findtype(uo.GetGraphic('Item'),uo.GetColor('Item'),'Bout')
while uo.findcount()
uo.moveitem('finditem',uo.str*4-uo.weight,'Bin',50,0,50)
wait(850)
uo.findtype(uo.GetGraphic('Item'),uo.GetColor('Item'),'Bout')
wend
end if
end sub


Руководство пользователя.
1) Запускаем скрипт
2) Первым прицелом указываем откуда перемещаем
3) Вторым прицелом указываем вещь которую перемещаем.(Если нажать Esc то будет перемещать все вещи)
4) Третьим прицелом указываем куда перемещаем

Posted: 2009-09-17 11:12:18
by Gromiz
А можно скрипт немного переделать?:


суть такова:

при запуске скрипта:

ищем вещи в паке и:
1) вещи определенного типа перекладываются в 1 мешок
2) вещи определенного типа перекладываются в другой мешок

вещи нужно указать обязательно какие

примерно догадываюсь, что надо это использовать:
часть скрипта:

Code: Select all

 VAR i,Exit 
   DIM Loot[20]
   
 
Loot[0]=0x0EED ; gp
Loot[1]=0x0F7B ; BM
Loot[2]=0x0F7A ; BP
Loot[3]=0x0F84 ; GA
Loot[4]=0x0F85 ; GI
Loot[5]=0x0F86 ; MR
Loot[6]=0x0F88 ; NS
Loot[7]=0x0F8C ; SA
Loot[8]=0x0F8D ; SS
Loot[9]=0x13FA ;two handed axe
Loot[10]=0x1413 ;arm
Loot[11]=0x1415 ;arm
Loot[12]=0x1411 ;arm
Loot[13]=0x1410 ;arm
Loot[14]=0x1414 ;arm
Loot[15]=0x0E21 ;ban
Loot[16]=0x0F78 ;batw
Loot[17]=0x0F8B ;pumise
Loot[18]=0x1bd1 ;feathers
Loot[19]=0x0f3f ;arrow



UO.SetReceivingContainer('0x4000C313') ;ID backpacka
 
   For i=0 to 19
      Exit=0
      repeat
       UO.FindType(Loot[i],-1,'lastcontainer')           
        if UO.GetQuantity('finditem') then
         UO.Grab('0','finditem')
          wait(100)
          Else
         Exit=1
        endif
      until Exit==1 OR uo.injournal("loot")
   Next
UO.UnSetReceivingContainer()
end sub



А хотелось бы совместить с этим:


Code: Select all

sub main()
   UO.AddObject('Bout')
    UO.Print('Откуда перемещаем?')
   while UO.Targeting()
    wait(10)
   wend
wait(1000)
uo.useobject('Bout')
wait(1000)
   UO.AddObject('Item')
    UO.Print('Что перемещаем?')
   while UO.Targeting()
    wait(10)
   wend
wait(1000)
   UO.AddObject('Bin')
    UO.Print('Куда перемещаем?')
   while UO.Targeting()
    wait(10)
   wend
wait(1000)
uo.useobject('Bin')
wait(1000)
if uo.weight < uo.str*4+20 then
uo.findtype(uo.GetGraphic('Item'),uo.GetColor('Item'),'Bout')
while uo.findcount()
uo.moveitem('finditem',uo.str*4-uo.weight,'Bin',50,0,50)
wait(850)
uo.findtype(uo.GetGraphic('Item'),uo.GetColor('Item'),'Bout')
wend
end if
end sub

Posted: 2009-09-17 11:17:02
by Nmy
Gromiz wrote:А можно скрипт немного переделать?:


суть такова:

при запуске скрипта:

ищем вещи в паке и:
1) вещи определенного типа перекладываются в 1 мешок
2) вещи определенного типа перекладываются в другой мешок

вещи нужно указать обязательно какие

примерно догадываюсь, что надо это использовать:
часть скрипта:

Code: Select all

 VAR i,Exit 
   DIM Loot[20]
   
 
Loot[0]=0x0EED ; gp
Loot[1]=0x0F7B ; BM
Loot[2]=0x0F7A ; BP
Loot[3]=0x0F84 ; GA
Loot[4]=0x0F85 ; GI
Loot[5]=0x0F86 ; MR
Loot[6]=0x0F88 ; NS
Loot[7]=0x0F8C ; SA
Loot[8]=0x0F8D ; SS
Loot[9]=0x13FA ;two handed axe
Loot[10]=0x1413 ;arm
Loot[11]=0x1415 ;arm
Loot[12]=0x1411 ;arm
Loot[13]=0x1410 ;arm
Loot[14]=0x1414 ;arm
Loot[15]=0x0E21 ;ban
Loot[16]=0x0F78 ;batw
Loot[17]=0x0F8B ;pumise
Loot[18]=0x1bd1 ;feathers
Loot[19]=0x0f3f ;arrow



UO.SetReceivingContainer('0x4000C313') ;ID backpacka
 
   For i=0 to 19
      Exit=0
      repeat
       UO.FindType(Loot[i],-1,'lastcontainer')           
        if UO.GetQuantity('finditem') then
         UO.Grab('0','finditem')
          wait(100)
          Else
         Exit=1
        endif
      until Exit==1 OR uo.injournal("loot")
   Next
UO.UnSetReceivingContainer()
end sub



А хотелось бы совместить с этим:


Code: Select all

sub main()
   UO.AddObject('Bout')
    UO.Print('Откуда перемещаем?')
   while UO.Targeting()
    wait(10)
   wend
wait(1000)
uo.useobject('Bout')
wait(1000)
   UO.AddObject('Item')
    UO.Print('Что перемещаем?')
   while UO.Targeting()
    wait(10)
   wend
wait(1000)
   UO.AddObject('Bin')
    UO.Print('Куда перемещаем?')
   while UO.Targeting()
    wait(10)
   wend
wait(1000)
uo.useobject('Bin')
wait(1000)
if uo.weight < uo.str*4+20 then
uo.findtype(uo.GetGraphic('Item'),uo.GetColor('Item'),'Bout')
while uo.findcount()
uo.moveitem('finditem',uo.str*4-uo.weight,'Bin',50,0,50)
wait(850)
uo.findtype(uo.GetGraphic('Item'),uo.GetColor('Item'),'Bout')
wend
end if
end sub


типов много? если нет, тогда запусти просто ,massmove 666 и все.

Posted: 2009-09-17 12:23:33
by Gromiz
да, хватает.

просто после лута все скидываеся в пака, а хотелосьбы, чтобы потом по сумкам кидало

да и его можно потом переделать, чтобы руду различную в каждую сумку кидало

Posted: 2009-09-17 14:02:23
by Mirage
можно (если коротко) делать вот так

Code: Select all

var Container1 = 'ID сундука 1'
var Container2 = 'ID сундука 2'
 VAR i,Exit
   DIM Loot[20]

Loot[0]=0x0EED ; gp
Loot[1]=0x0F7B ; BM
Loot[2]=0x0F7A ; BP
Loot[3]=0x0F84 ; GA
Loot[4]=0x0F85 ; GI
Loot[5]=0x0F86 ; MR
Loot[6]=0x0F88 ; NS
Loot[7]=0x0F8C ; SA
Loot[8]=0x0F8D ; SS
Loot[9]=0x13FA ;two handed axe
Loot[10]=0x1413 ;arm
Loot[11]=0x1415 ;arm
Loot[12]=0x1411 ;arm
Loot[13]=0x1410 ;arm
Loot[14]=0x1414 ;arm
Loot[15]=0x0E21 ;ban
Loot[16]=0x0F78 ;batw
Loot[17]=0x0F8B ;pumise
Loot[18]=0x1bd1 ;feathers
Loot[19]=0x0f3f ;arrow

   For i=0 to 10
repeat
UO.FindType(Loot[i],-1,'lastcontainer')           
If uo.FindCount()>0 Then
uo.MoveItem('finditem',0,Container1)
wait(100)
end if
Until uo.FindCount()<1 or uo.Dead()
   Next

   For i=9 to 19
repeat
UO.FindType(Loot[i],-1,'lastcontainer')           
If uo.FindCount()>0 Then
uo.MoveItem('finditem',0,Container2)
wait(100)
end if
Until uo.FindCount()<1 or uo.Dead()
   Next
end sub


Или более "длинно" и наверное более правильней по алгоритму:

Code: Select all

sub main()
loot('тип1', 'цвет', 'куда кидать')
loot('тип2', 'цвет', 'куда кидать')
loot('тип3', 'цвет', 'куда кидать')
endsub

sub loot(Type, Color, Container)
Repeat
UO.FindType(Type, Color, 'lastcontainer')
If uo.FindCount()>0 Then
uo.MoveItem('finditem',0,Container)
wait(100)
end if
Until uo.FindCount()<1 or uo.Dead()
end sub
в main забить просто параметры, loot не трогать и все.

Posted: 2009-09-17 14:38:37
by Gromiz
спасибо за ответ.

вышло что-то типо этого, но ничего не перетаскивает:
параметры вроде правильно вбил(узнавал через ,info)

Code: Select all

sub massmoveinpack()

loot('0x0EED', '0x0000', '0x4000D86A'); gp
loot('0x0F7B', '0x0000', '0x4000D86A'); BM

loot('0x1078', '0x0000', '0x4000DC19'); kobolt
loot('0x1bd1', '0x0000', '0x4000DC19'); feathers

loot('0x0f3f', '0x0000', '0x4000B40A'); arrow
loot('0x0F51', '0x0000', '0x4000B40A'); dagger

endsub

sub loot(Type, Color, Container)
Repeat
UO.FindType(Type, Color, 'lastcontainer')
If uo.FindCount()>0 Then
uo.MoveItem('finditem',0,Container)
wait(100)
end if
Until uo.FindCount()<1 or uo.Dead()
end sub


Все отлично работает скрипт, только нужно сначала 2 раза кликнуть по бекпаку, чтобы скрипт заработал

Posted: 2009-09-17 15:33:14
by Mirage
Это уж я из твоего вариант брал. Он просто либо с бэкапа либо с трупа расчитан. У меня примерно вот так работает:


Code: Select all

sub massmoveinpack()
loot('0x0EED', '0x0000', 'backpack', '0x4000D86A'); gp
endsub

Sub loot(Type, Color, GETContainer, PUTContainer)
Repeat
UO.FindType(Type, Color, GETContainer)
If uo.FindCount()>0 Then
uo.MoveItem('finditem',0,PUTContainer)
wait(100)
end if
Until uo.FindCount()<1 or uo.Dead()
end sub

Posted: 2009-09-17 16:22:37
by Gromiz
спасибо, работает )