Yoko
http://forum.yoko.com.ua/

Carpentry
http://forum.yoko.com.ua/viewtopic.php?f=17&t=16016
Page 1 of 1

Author:  Superuser [ 2010-12-14 12:52:58 ]
Post subject:  Carpentry

Есть скриптик как бы для всех крафтов хорош, но чета я тут затупил и не могу понять почему он крафт меню не выводит и не делает стул.
Подозреваю что проблема в этом куске
Code:
uo.DeleteJournal() 
uo.WaitTargetType(Res1)
uo.UseType(Kit)
uo.WaitMenu ('Chairs','Stool') 
LastTimer=UO.Timer()
repeat
wait(100)
until uo.InJournal("You put") or uo.InJournal("Carpentry") or LastTimer+150<uo.Timer()
UnLoadItem()
wend
end sub


Но не могу понять что именно, прицел поидее создается и поидее должен юзаться на доски, но увы...
Подскажите пожалуйста в чем проблема, гуру.
Code:
var EQ,RQ1,RQ2,QB 
var Eat='0x097B' ; Еда
var Res1='0x1BD7' ; Доски
var Res2='0x1EB8' ; В данном случае тоже доски так как для стульев используется 1 ресурс
var Kit='0x1EB8' ; Инструмент (tool kit)
var Items='0x0A2A' ; Тип стула
EQ=50 ; кол-во еды
RQ1=200 ; кол-во ресурса 1
RQ2=0 ; кол-во ресурса 2


var ContainerRes='0x416E6CC7' ; Object с досками
var ContainerBag='0x407965C4' ; Object с сумками
var BagCount='0x0E76' ; Type сумок ContainerBag


sub Main()
uo.Set('quiet','1')
uo.Exec('exec Craft')
uo.IgnoreReset()
end sub

sub OpenBag()
var i,BagID
uo.UseObject(ContainerBag)
uo.UseObject(ContainerRes)
uo.IgnoreReset()
repeat
uo.DeleteJournal()
wait(1000)
uo.FindType(BagCount,'-1',ContainerBag)
if uo.FindCount('finditem') > 1 then
i=(uo.FindCount('finditem') +1)
uo.Click('finditem')
if uo.InJournal("a bag") Then
BagID=uo.JournalSerial(uo.InJournal("a bag")-1)
uo.SetJournalLine(uo.InJournal("a bag")-1,"")
uo.FindType(Items,'-1',BagID)
uo.UseObject(BagID)
wait(2000)
uo.Hide(BagID)
uo.Ignore(BagID,'on')
end if
end if
i=(i-1)
until i==0
uo.Hide(ContainerBag)
uo.Hide(ContainerRes)
uo.Resend()
wait(3000)
uo.IgnoreReset()
end sub


sub Craft()
var Last=0,LastTimer
OpenBag()
While not uo.Dead()

;|-----------------------------------|
;| Search of resources and Take them |
;|-----------------------------------|

uo.FindType(Eat,'-1','me')
if uo.GetQuantity('finditem')<1 then
uo.FindType(Eat,'-1',ContainerRes)
if uo.GetQuantity('finditem')>1 then
ToTake(3)
else
uo.Exec('Terminate Craft')
end if
else
ToEat()
end if
uo.FindType(Res1,'-1','me')
if uo.GetQuantity('finditem')<45 then
uo.FindType(Res1,'-1',ContainerRes)
if uo.GetQuantity('finditem')>1 then
ToTake(1)
else
uo.Exec('Terminate Craft')
end if
end if
uo.FindType(Res2,'-1','me')
if uo.GetQuantity('finditem')<1 then
uo.FindType(Res2,'-1',ContainerRes)
if uo.GetQuantity('finditem')>1 then
ToTake(2)
else
uo.Exec('Terminate Craft')
end if
end if

;|-------------|
;| Craft Items |
;|-------------|

uo.DeleteJournal()
uo.WaitTargetType(Res1)
uo.UseType(Kit)
uo.WaitMenu ('Chairs','Stool') 
LastTimer=UO.Timer()
repeat
wait(100)
until uo.InJournal("You put") or uo.InJournal("Carpentry") or LastTimer+150<uo.Timer()
UnLoadItem()
wend
end sub

sub ToTake(i)
var G,F
if i==1 then
G=RQ1
F=Res1
end if
if i==2 then
G=RQ2
F=Res2
end if
if i==3 then
G=EQ
F=Eat
end if
uo.FindType(F,'-1',ContainerRes)
if uo.GetQuantity('finditem')>1 then
uo.Grab(''+str(G)+'','finditem')
uo.DeleteJournal()
repeat
uo.FindType(F,'-1','me')
wait(1500)
until uo.InJournal("That is too") or uo.GetQuantity('finditem') > 1
end if
end sub

sub ToEat()
uo.UseType(Eat)
end sub

sub UnLoadItem()
var BagID
var i=0
var m=0
repeat
uo.DeleteJournal()
uo.FindType(BagCount,'-1',ContainerBag)
uo.Click('finditem')
m=0
repeat
wait(1000)
until uo.InJournal("a bag")
if uo.InJournal("a bag") Then
BagID=uo.JournalSerial(uo.InJournal("a bag")-1)
uo.SetJournalLine(uo.InJournal("a bag")-1,"")
uo.FindType('-1','-1',BagID)
if uo.FindCount('finditem')<51 then
m=uo.FindCount('finditem')
uo.SetReceivingContainer(BagID)
uo.FindType(Items,'-1','me')
uo.Grab('0','finditem')
uo.ConColor('0x0021')
uo.Set('quiet','0')
uo.Print(uo.Print('In BagPack#'+Str(i+1)+' items '+Str(m)+''))
uo.Set('quiet','1')
uo.ConColor('0x0035')
wait(1000)
uo.UnSetReceivingContainer()
else
i=i+1
uo.Ignore(BagID, 'on')
end if
end if
if i==QB then
uo.IgnoreReset()
i=0
end if
uo.FindType(Items,'-1','me')
until uo.FindCount('finditem') < 1
end sub

Author:  Mirage [ 2010-12-14 21:13:21 ]
Post subject:  Re: Carpentry

зачем вы не разобравшись берете такие меголитические и непонятно для чего сделанные кроме самоудовлетворения скрипты? Найди чтонибудь попроще и разбирайся.
Вариантов почему не работает именно это множество - не так прописал инструменты, далеко от сундука стоишь и они не открываются, не то меню крафта... Напиши сперва скрипт из 5-6 строк

Code:
sub main()
ждем меню крафта
прицел на тип сырья (если нужно)
юзаем тип инструмента
пауза 6 секунд
endsub

Потом сравнишь с тем что тут наваял автор этого творения и найдешь ошибку.


Для сравнения мой "универсальный" крафтинг:

Code:
sub CarpentryClub() 
   var menu = "waitmenu 'Carpentry' 'Weapons' 'Weapons' 'Club'"
   var item = club
   WHILE NOT UO.Dead()
      UO.FindType( Meshok, '-1', Sunduk1 )
      MeshSer = UO.GetSerial( 'finditem' )
      UO.MoveItem( MeshSer, 0, Sunduk2 )
      checklag()
      uo.useobject( MeshSer )
      eat()
      REPEAT
         GET(log, Container, 10, 300)
         GET(saw, Container, 1, 1)
         Repeat
            if HIDE then
               Hide()
            endif
            UO.DeleteJournal()
            LastTimer=UO.Timer()
            UO.exec( menu )
            UO.Usetype( saw )
            repeat
               wait( 300 )
            until UO.InJournal( msg ) or UO.Timer()>LastTimer+300
         Until UO.Count( item )>0
         checklag()
         PUT( item, MeshSer )
         UO.FindType( item, -1, MeshSer)
         uo.charprint(printcolour,'Дубин в мешке: ' + Str( UO.FindCount( item ) ) )
      UNTIL UO.FindCount()>=quantity
      uo.charprint(printcolour,'Берем другую сумку' )
      wait( 300 )
   WEND
end sub
(без процедур)

Author:  Superuser [ 2010-12-15 10:19:17 ]
Post subject:  Re: Carpentry

Угу, согласен. В чужих скриптах такого объема разобраться не легко, каждый пишет так как умеет, просто времени не хватало заняться им поэтому выложил готовый чтоб чутка помогли подправить, но в итоге забил и вчера написал нормальный. Спасибо за ответ.

Author:  Superuser [ 2010-12-20 20:49:38 ]
Post subject:  Re: Carpentry

Помогите пожалуйста переделать вот этот скрипт под удочки, необходимо чтобы он еще брал нитки из сундука.
Code:
sub carpentree()
      uo.Print('!!!!Где Логи!!!! ')
  uo.Exec('addobject cu')
  while uo.Targeting()
     wait(100)
  wend
        uo.Print('!!!!Траш Кан!!!! ')
  uo.Exec('addobject cu2')
  while uo.Targeting()
     wait(100)
  wend
        uo.Print('!!!!Пила!!!! ')
  uo.Exec('addobject cu3')
  while uo.Targeting()
     wait(100)
  wend
  while uo.dead()<1
  uo.findtype('0x1BDD','-1','my')
  if uo.GetQuantity('finditem') < 5 then
  uo.moveitem('finditem','30','cu2')
    uo.findtype('0x1BDD','-1','cu')
  uo.moveitem('finditem','300','my')
  wait(800)
  endif
  uo.useobject('cu3')
  wait('500')
  uo.waitmenu('Carpentry','Weapons & Tools','Weapons & Tools','quarter staff')
  wait(10000)
  uo.UseType('0x097B')
  uo.findtype('0x0E89','-1','my')
  wait(200)
  while uo.findcount()>0
  uo.moveitem('finditem','1','cu2')
uo.ignore('finditem') 
  uo.findtype('0x0E89','-1','my')
wait(800)
  wend
  wend
  endsub
 

Author:  Mirage [ 2010-12-21 09:45:59 ]
Post subject:  Re: Carpentry

Если бы расставил отступы то все бы сам поправил.
Попробуй вот такой скрипт:
PS пропиши меню до удочки, тип удочки.
Code:
var item   = '0x0DBF'
VAR saw      = '0x1034'      ;пила
VAR log      = '0x1BDD'   
VAR spool   = '0x0FA0'      #нитки#
var printcolour = '1069'
VAR MeshSer, d, LastTimer, timemove, itemM
var msg ='You put|положили|fail|не удалось|You broke|сломали'
var menu = "waitmenu 'Carpentry' 'Weapons' 'Weapons' 'fishing'" ; проверить меню
sub carpentree()
   uo.Print('!!!!Где Логи и Нитки!!!! ')
   uo.Exec('addobject cu')
   while uo.Targeting()
      wait(100)
   wend
   uo.useobject( 'cu' )
   wait(500)
   uo.Print('!!!!Мусорка!!!! ')
   uo.Exec('addobject cu2')
   while uo.Targeting()
      wait(100)
   wend
   uo.useobject( 'cu2' )
   wait(500)
   while uo.dead()<1 ; <=== Хм...
      GET(log, 'cu', 10, 100)
      GET(spool, 'cu', 1, 100)
      Repeat
         UO.DeleteJournal()
         LastTimer=UO.Timer()
         UO.exec( menu )
         UO.waittargettype ( log )
         UO.Usetype( saw )
         repeat
            wait( 100 )
         until UO.InJournal( msg ) or UO.Timer()>LastTimer+150
      Until UO.Count( item )>0
      wait( 100 )
      PUT(item , 'cu2')
      
   wend
endsub
Sub GET(item, cont, min, max) ; предмет, откуда, минимум, сколько брать
   If UO.Count( item ) < min Then
      UO.FindType( item, '-1', cont )
      if UO.FindCount() > 0 Then
         uo.charprint(printcolour,'Сырья в сундуке: '+Str(UO.GetQuantity('finditem')) )
         itemM=UO.GetSerial('finditem')
         timemove=UO.Timer()
         while UO.ContainerOf(itemM)==cont && timemove+20>UO.Timer()
            uo.moveitem('finditem', max, 'backpack')
            wait(300)
         wend
      else
         uo.charprint(printcolour, 'Полностью кончилось сырье' )
         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(300)
      wend
   wend
end sub
Sub MyTerminate()
   UO.Set('quiet','1')
   UO.CancelMenu()
   UO.IgnoreReset()
   UO.Set('quiet','0')
   UO.Exec('terminate all')
end sub


Скрипт рассчитан что в мусорку можно просто скидывать предметы.

Author:  Superuser [ 2010-12-21 10:59:48 ]
Post subject:  Re: Carpentry

Не хочет работать, ругается на cu, cu2 и так далее.

Author:  Mirage [ 2010-12-21 14:24:10 ]
Post subject:  Re: Carpentry

Исправил. РАБОТАЕТ на моем сервере.

Author:  Superuser [ 2010-12-21 19:33:05 ]
Post subject:  Re: Carpentry

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

Author:  Mirage [ 2010-12-21 20:50:40 ]
Post subject:  Re: Carpentry

Superuser wrote:
На моем как бы тоже вроде как работает, но не до конца, либо не берет нитки и просто стоит ничего не делая, боюсь что проблема в версии инжекта, у меня 702.11

Сундук может быть далеко слишком. Инжект такой же

Author:  Superuser [ 2010-12-21 21:01:47 ]
Post subject:  Re: Carpentry

Mirage wrote:
Superuser wrote:
На моем как бы тоже вроде как работает, но не до конца, либо не берет нитки и просто стоит ничего не делая, боюсь что проблема в версии инжекта, у меня 702.11

Сундук может быть далеко слишком. Инжект такой же


Не, сундук рядом, он его открывает, говорит сколько там ресов и ничего не берет оттуда. Стою уже 80 карпы, а я все на кватерстафах качаю =)))

Page 1 of 1 All times are UTC+02:00
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/