Carpentry

Ask for scripts here

Moderators: Murderator+, Murderator

Post Reply
Superuser
Posts: 13
Joined: 2010-12-14 11:52:17

Carpentry

Post by Superuser »

Есть скриптик как бы для всех крафтов хорош, но чета я тут затупил и не могу понять почему он крафт меню не выводит и не делает стул.
Подозреваю что проблема в этом куске

Code: Select all

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: Select all

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
Mirage
Posts: 2802
Joined: 2009-05-28 09:58:28
Location: Иваново
Contact:

Re: Carpentry

Post by Mirage »

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

Code: Select all

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

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


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

Code: Select all

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
(без процедур)
Superuser
Posts: 13
Joined: 2010-12-14 11:52:17

Re: Carpentry

Post by Superuser »

Угу, согласен. В чужих скриптах такого объема разобраться не легко, каждый пишет так как умеет, просто времени не хватало заняться им поэтому выложил готовый чтоб чутка помогли подправить, но в итоге забил и вчера написал нормальный. Спасибо за ответ.
Superuser
Posts: 13
Joined: 2010-12-14 11:52:17

Re: Carpentry

Post by Superuser »

Помогите пожалуйста переделать вот этот скрипт под удочки, необходимо чтобы он еще брал нитки из сундука.

Code: Select all

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
 
Mirage
Posts: 2802
Joined: 2009-05-28 09:58:28
Location: Иваново
Contact:

Re: Carpentry

Post by Mirage »

Если бы расставил отступы то все бы сам поправил.
Попробуй вот такой скрипт:
PS пропиши меню до удочки, тип удочки.

Code: Select all

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


Скрипт рассчитан что в мусорку можно просто скидывать предметы.
Last edited by Mirage on 2010-12-21 14:23:44, edited 1 time in total.
Superuser
Posts: 13
Joined: 2010-12-14 11:52:17

Re: Carpentry

Post by Superuser »

Не хочет работать, ругается на cu, cu2 и так далее.
Mirage
Posts: 2802
Joined: 2009-05-28 09:58:28
Location: Иваново
Contact:

Re: Carpentry

Post by Mirage »

Исправил. РАБОТАЕТ на моем сервере.
Superuser
Posts: 13
Joined: 2010-12-14 11:52:17

Re: Carpentry

Post by Superuser »

На моем как бы тоже вроде как работает, но не до конца, либо не берет нитки и просто стоит ничего не делая, боюсь что проблема в версии инжекта, у меня 702.11
Mirage
Posts: 2802
Joined: 2009-05-28 09:58:28
Location: Иваново
Contact:

Re: Carpentry

Post by Mirage »

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

Сундук может быть далеко слишком. Инжект такой же
Superuser
Posts: 13
Joined: 2010-12-14 11:52:17

Re: Carpentry

Post by Superuser »

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

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


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