Помогите пожалуйста со скриптом на переплавку руды

Anything and all.

Moderators: Murderator+, Murderator

Post Reply
XSjr
Posts: 9
Joined: 2006-10-26 12:29:30

Помогите пожалуйста со скриптом на переплавку руды

Post by XSjr »

Шард X-Cellon.
У нас на шарде переплавка проиходит следующим образом... дабл клик на форджу и потом клик на руду.

Вот не знаю как добавить в скрипт клик по руде в паке

sub Smelt()
VAR Ruda1 = '0x19B9' ; Тип руды
VAR Ruda2 = '0x19B8' ; Тип руды - 3 шт.
VAR Ruda3 = '0x19BA' ; Тип руды - 2 шт.
VAR Ruda4 = '0x0E34' ; Тип руды - 1 шт.
VAR Ing1 = '0x1BEF' ; Тип ингов металлов
VAR Ing2 = '0x1BF2' ; Тип ингов строймата

repeat
UO.Findtype( Ruda1, -1, 1 ) ; Ищем руду на земле
If UO.Findcount() == 0 Then
UO.Findtype( Ruda2, -1, 1 )
If UO.Findcount() == 0 Then
UO.Findtype( Ruda3, -1, 1 )
If UO.Findcount() == 0 Then
UO.Findtype( Ruda4, -1, 1 )
If UO.Findcount() == 0 Then
UO.Print( "No more ore for smelt..." )
Return
Endif
Endif
Endif
Endif
UO.Exec( "moveitem finditem 1" ) ; Тащим 1 в пак
Wait( 1000 )
UO.useObject( '0x40001072' ) ; юзаем форджу
Wait( 500 )
UO.click('Ruda4') <-- сюда что поставить чтобы кликал по руде таргетом от форджи
wait( 500 )

until NOT Uo.CountGround( Ruda1 ) AND NOT UO.CountGround( Ruda2 ) AND NOT UO.CountGround( Ruda3 ) AND NOT UO.CountGround( Ruda4 )
UO.Print( "No more ore for smelt..." )
endsub
Mirage
Posts: 2802
Joined: 2009-05-28 09:58:28
Location: Иваново
Contact:

Re: Помогите пожалуйста со скриптом на переплавку руды

Post by Mirage »

Если плавишь с пака то вот так:
var sund = '0x40B08251' можно сменить на var sund = 'ground' тогда будет брать с земли.
GET(ore, '0x0000', sund, 2, 2) ; вместо 0x0000 вставляешь нужный цвет либо -1 тогда плавить будет любую. Последняя цифра 2 - сколько забирать руды для плавки.

Code: Select all

var ItemM, timemove
sub Smelt()
   var sund    = '0x40B08251'
   var forge   = '0x1996'
   VAR Ing   = '0x1BEF'
   VAR ore   = '0x19B9'
   VAR ore2   = '0x19BA'
   VAR ore3   = '0x19B8'
   uo.Set('finddistance', 3)
   while 1
      GET(ore, '0x0000', sund, 2, 2)
      UO.DeleteJournal()
      If UO.Count( ore ) Then
         uo.waittargettype(ore)
      endif
      If UO.Count( ore2 ) Then
         uo.waittargettype(ore2)
      endif
      If UO.Count( ore3 ) Then
         uo.waittargettype(ore3)
      endif
      UO.UseFromGround(forge)
      while not UO.InJournal('smelt|put|is consumed|fire is not|see the target')
         wait(100)
      wend
      PUT(Ing, sund)
   wend
end sub

Sub GET(item, col, cont, min, max)
   If UO.Count( item, col ) < min Then
      UO.FindType( item, col, cont )
      if UO.FindCount() > 0 Then
         itemM=UO.GetSerial('finditem')
         timemove=UO.Timer()
         while UO.ContainerOf( UO.GetSerial('finditem') )==cont && timemove+20>UO.Timer()
            uo.moveitem('finditem', max, 'backpack')
            wait(100)
         wend
      else
         UO.CancelMenu()
         MyTerminate()
      endif
   Endif
end sub
Sub PUT(item, cont)
   while UO.Count( item ) > 0
      UO.FindType( item, -1, -1 )
      itemM=UO.GetSerial('finditem')
      timemove=UO.Timer()
      UO.MoveItem( 'finditem', 0, cont )
      while UO.ContainerOf(itemM)=='my' && timemove+20>UO.Timer()
         wait(100)
      wend
   wend
end sub
Sub MyTerminate()
   UO.Set('quiet','1')
   UO.CancelMenu()
   UO.IgnoreReset()
   UO.Set('quiet','0')
   UO.Exec('terminate all')
end sub

XSjr
Posts: 9
Joined: 2006-10-26 12:29:30

Re: Помогите пожалуйста со скриптом на переплавку руды

Post by XSjr »

Ругается вот сюда --> MyTerminate()

Исправил скрипт © Mirage
XSjr
Posts: 9
Joined: 2006-10-26 12:29:30

Re: Помогите пожалуйста со скриптом на переплавку руды

Post by XSjr »

Пишет "no menu to cancel"
XSjr
Posts: 9
Joined: 2006-10-26 12:29:30

Re: Помогите пожалуйста со скриптом на переплавку руды

Post by XSjr »

вроде как сработало, но один раз положил 2 руды в пак из ящика, переплавил и все
Mirage
Posts: 2802
Joined: 2009-05-28 09:58:28
Location: Иваново
Contact:

Re: Помогите пожалуйста со скриптом на переплавку руды

Post by Mirage »

То что что то там пишется - отключи все галки в окне инжекта.
Если 2 рудинки одного цвета то какой то глюк - хз не ловил.
Если две разные руды то такое бывает. Скрипт простенький без всяких дополнительных проверок. Я им плавил в основном железо - качал мининг.
Аа может быть с журналом проблема. Внимательно просмотри сообщения которые пишутся при плавке.
XSjr
Posts: 9
Joined: 2006-10-26 12:29:30

Re: Помогите пожалуйста со скриптом на переплавку руды

Post by XSjr »

var ItemM, timemove
sub Smelt()
var sund = '0x400165BB'
var forge = '0x0FB1'
VAR Ing = '0x1BEF'
VAR ore = '0x19B9'
VAR ore2 = '0x19BA'
VAR ore3 = '0x19B8'
uo.Set('finddistance', 3)
while 1
GET(ore, -1, sund, 2, 1)
UO.DeleteJournal()
If UO.Count( ore ) Then
uo.waittargettype(ore)
endif
If UO.Count( ore2 ) Then
uo.waittargettype(ore2)
endif
If UO.Count( ore3 ) Then
uo.waittargettype(ore3)
endif
UO.UseFromGround(forge)
while not UO.InJournal('smelt|put|is consumed|fire is not|see the target') <-- здесь должно быть сообщение при использовании форджи?
wait(100)
wend
PUT(Ing, sund)
wend
end sub

Sub GET(item, col, cont, min, max)
If UO.Count( item, col ) < min Then
UO.FindType( item, col, cont )
if UO.FindCount() > 0 Then
itemM=UO.GetSerial('finditem')
timemove=UO.Timer()
while UO.ContainerOf( UO.GetSerial('finditem') )==cont && timemove+20>UO.Timer()
uo.moveitem('finditem', max, 'backpack')
wait(100)
wend
else
UO.CancelMenu()
MyTerminate()
endif
Endif
end sub
Sub PUT(item, cont)
while UO.Count( item ) > 0
UO.FindType( item, -1, -1 )
itemM=UO.GetSerial('finditem')
timemove=UO.Timer()
UO.MoveItem( 'finditem', 0, cont )
while UO.ContainerOf(itemM)=='my' && timemove+20>UO.Timer()
wait(100)
wend
wend
end sub
Sub MyTerminate()
UO.Set('quiet','1')
UO.CancelMenu()
UO.IgnoreReset()
UO.Set('quiet','0')
UO.Exec('terminate all')
end sub


кстати иногда выскакивает ошибка "что то типа не могу перетащить за 0 сек" что-то в этом роде
Post Reply