Yoko

All sides of Injection
It is currently 2025-11-09 22:27:07

All times are UTC+02:00




Post new topic  Reply to topic  [ 24 posts ]  Go to page 1 2 Next
Author Message
PostPosted: 2005-01-16 15:07:47 
Offline
User avatar

Joined: 2004-10-13 15:08:08
Posts: 147
вобщем такая тема ,нашел я скрипт на тайлоринг и решил его переделать на карпентри, но вот проблемка: чар все замечательно берет логи> и начинает делать удочки> перелаживет в сумку> после этого он должен делать все заново,но он не делает,открывается главное окно крафта и он останавливается. дорогие скриптеры и кто шарит в скриптах помогите если сможите , а то до меня не доходит, вроде же все правельно сделано.
Code:
скрипт переделан с тайлоринга на карпентри, он должен делать следующее: в одном сунуке лежат 10 мешков , в другом кучки бревен по 255 штук в каждой кучке, скрипт берет бревна и делает удочку после этого он кладет ее в сумку и начинает все заного.


Code:
sub main()
sub Mycarpentry()
   var Sunduk='0x4023BAD4' ;в этом сундуке 10 сумок
   var SundukOFclothes='0x4030408A' ;в этом сундуке лежат кучки по 255 бревен
   var cloth='0x1BDD' ;бревна
   var SewingKit='0x40241643' ; рубанок
   var BodySash='0x0DBF' ;удочки
   var exit=0
   var i=0
   dim SumkaIn[20]
   SumkaIn[0]='0x4023BDDF'
   SumkaIn[1]='0x4023BB03'
   SumkaIn[2]='0x4023C7AB'
   SumkaIn[3]='0x4023C481'
   SumkaIn[4]='0x40042DC9'
   SumkaIn[5]='0x4023CAB1'
   SumkaIn[6]='0x4023CAE6'
   SumkaIn[7]='0x4023BD0A'
   SumkaIn[8]='0x4023BE3A'
   SumkaIn[9]='0x4023C354'
UO.WaitMenu ('Carpentry', 'Weapons & Tools', 'Weapons & Tools', 'fishing pole' )
   for i=0 to 9
   uo.setreceivingcontainer(SumkaIn[i])
   repeat
      uo.DeleteJournal()
      if STR(uo.Count(cloth))<='10' then
         exit=1
         uo.print('!!!!!!!!')
      end if
      if STR(uo.Count(cloth))>'10' then
         uo.print('There is '+STR(uo.Count(cloth))+' clothes there')
         uo.useobject(SewingKit)
         uo.findtype(cloth,'-1','backpack')
         uo.waittargetobject('finditem')
    repeat
            wait(100)
         until uo.InJournal('You put') OR uo.InJournal('Tailoring failed') OR uo.InJournal('Targeting canceled')
         if uo.InJournal('You put') then
            uo.findtype(BodySash,'-1','backpack')
            uo.Grab('1','finditem')
         end if
      end if
   until exit==1
   uo.setreceivingcontainer('backpack')
   uo.findtype(cloth,'-1',SundukOFclothes)
   uo.Grab('255','finditem')
   wait(3000)
   exit=0
  next
  uo.playvaw('C:\uo\music\death.midi')
end sub
 

_________________
maxim viktorovich


Top
   
 Post subject:
PostPosted: 2005-01-16 19:19:20 
Offline
User avatar

Joined: 2004-10-13 15:08:08
Posts: 147
помогите скриптеры пожалуста.

_________________
maxim viktorovich


Top
   
 Post subject:
PostPosted: 2005-01-16 20:54:55 
Offline
Expert!

Joined: 2004-04-03 17:36:29
Posts: 2544
Location: Saint-Petersburg
Моя карпа на удочки из раздела Scripts! не работает?


Top
   
 Post subject:
PostPosted: 2005-01-17 07:07:12 
Offline
User avatar

Joined: 2004-10-13 15:08:08
Posts: 147
Edred wrote:
Моя карпа на удочки из раздела Scripts! не работает?
она работает ,но как тока наложит в один мешок 255 удочек, не берет следующий мешок, а продолжает ложить в пак к чару. вот такие пироги. (twi включен, оба сундука открыты)

_________________
maxim viktorovich


Top
   
 Post subject:
PostPosted: 2005-01-17 08:00:13 
Offline
Expert!

Joined: 2004-04-03 17:36:29
Posts: 2544
Location: Saint-Petersburg
Попробуй в моем скрипте в командах Findtype все -1 и 1 написать в кавычках. Кроме того 0 в команде MoveItem тоже возьми в кавычки.

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

Отпиши о результатах. Если поможет - поправлю исходный скрипт и скажу Йоко чтобы он проапгрейдил топик.


Top
   
 Post subject:
PostPosted: 2005-01-17 15:40:35 
Offline
User avatar

Joined: 2004-10-13 15:08:08
Posts: 147
Edred wrote:
Попробуй в моем скрипте в командах Findtype все -1 и 1 написать в кавычках. Кроме того 0 в команде MoveItem тоже возьми в кавычки.

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

Отпиши о результатах. Если поможет - поправлю исходный скрипт и скажу Йоко чтобы он проапгрейдил топик.
вроде все праельно поставил, но всеровно не хочет брать мешок.
Code:
sub main()
sub carpentry()
   VAR Sunduk1 = '0x4033F60E'       ;  сундук с пустыми мешками
   VAR Sunduk2 = '0x4030408A'       ;  пустой сундук
   VAR Meshok = '0x0E76'          ;  тип мешка
   VAR Logi = '0x1BDD'          ; тип логов
   VAR Rubanok = '0x1035'          ;  рубанок
   VAR Udochka = '0x0DBF'          ; удочка
   VAR Kolvo = 255          ; 
   VAR MeshSer, j, k
   While TRUE
      UO.FindType( Logi,'-1', '1'  )       ; ищем логи на полу
      UO.Grab( Str( Kolvo ), 'finditem' )    ; кладем логи в пак
      wait( 2000 )
      If UO.FindCount() == 0 Then
         UO.Print("Logs not found, script terminated")
         return
      Endif
      UO.FindType( Meshok,'-1', Sunduk1 )       ; ищем шешок в сундуке
      MeshSer = UO.GetSerial( 'finditem' )
      UO.Grab( '1', 'finditem' )          ; кладем его в пак
      wait( 2000 )
      UO.MoveItem( MeshSer,'0' , Sunduk2 )
      wait( 2000 )
      While UO.Count( Logi ) > 0
         ; пока в паке есть логи
         UO.Print('Ostalos ' + Str( UO.Count( Logi ) ) + ' logov' )
         UO.DeleteJournal()
         UO.CancelMenu()
         UO.WaitMenu ('Carpentry', 'Weapons & Tools', 'Weapons & Tools', 'fishing' )
         UO.UseType( Rubanok )
         k = 0
         while NOT UO.InJournal('You put') AND NOT UO.InJournal('fail') AND ( k < 30 )
            k = k + 1
            wait(500)
         wend
         ; Wait( 14000 )
         ; скрафтили удочку
         ; перекладываем в мешок
         if UO.Count( Udochka ) > 0 then
            UO.FindType( Udochka, '-1', 'backpack' )
            UO.MoveItem( 'finditem', '0', MeshSer )
            wait( 2000 )
            UO.Print( 'Udochka perelozhena' )
         end if
      Wend
   Wend
end sub

переделал

_________________
maxim viktorovich


Last edited by maximka4 on 2005-01-17 17:57:19, edited 2 times in total.

Top
   
 Post subject:
PostPosted: 2005-01-17 16:22:58 
Offline
Expert!

Joined: 2004-04-03 17:36:29
Posts: 2544
Location: Saint-Petersburg
Кавычки это не скобки, не путай. То есть от тебя ожидалось, что ты напишешь UO.FindType( Logi, '-1', '1' ) и т. д., а не то, что ты наворотил


Top
   
 Post subject:
PostPosted: 2005-01-17 17:58:23 
Offline
User avatar

Joined: 2004-10-13 15:08:08
Posts: 147
Edred wrote:
Кавычки это не скобки, не путай. То есть от тебя ожидалось, что ты напишешь UO.FindType( Logi, '-1', '1' ) и т. д., а не то, что ты наворотил
спасибо вам что мне помогаете, но все таки у меня все так же осталось.

_________________
maxim viktorovich


Top
   
 Post subject:
PostPosted: 2005-01-17 18:03:55 
Offline
Expert!

Joined: 2004-04-03 17:36:29
Posts: 2544
Location: Saint-Petersburg
maximka4 wrote:
Edred wrote:
Кавычки это не скобки, не путай. То есть от тебя ожидалось, что ты напишешь UO.FindType( Logi, '-1', '1' ) и т. д., а не то, что ты наворотил
спасибо вам что мне помогаете, но все таки у меня все так же осталось.


Поэкспериментируй, уменьши кол-во с 255 до 200, есть у меня подозрение, что он у тебя не хочет последнюю удочку класть в мешок, потому и начинает их валить в пак. Вполне вероятно, что в момент запуска скрипта в паке были уже какие-то логи... Также проверь - мешки у тебя все этого типа, может там только один такой, а остальные другие? :)


Top
   
 Post subject:
PostPosted: 2005-01-17 18:08:50 
Offline
Expert!

Joined: 2004-04-03 17:36:29
Posts: 2544
Location: Saint-Petersburg
Кроме того, после этой команды:

Code:
      UO.FindType( Meshok,'-1', Sunduk1 )       ; ищем шешок в сундуке 


Вставь:

Code:
      If UO.FindCount() == 0 Then 
         UO.Print("Bags not found, script terminated")
         return
      Endif


Top
   
 Post subject:
PostPosted: 2005-01-17 20:08:15 
Offline
User avatar

Joined: 2004-10-13 15:08:08
Posts: 147
Edred wrote:
Кроме того, после этой команды:

Code:
      UO.FindType( Meshok,'-1', Sunduk1 )       ; ищем шешок в сундуке 


Вставь:

Code:
      If UO.FindCount() == 0 Then 
         UO.Print("Bags not found, script terminated")
         return
      Endif

вобщем он продолжает ложит удочки в мешок где 255 удочек. а так как туда не лезет они падают в пак.

_________________
maxim viktorovich


Top
   
 Post subject:
PostPosted: 2005-01-17 21:23:34 
Offline
User avatar

Joined: 2005-01-15 14:34:26
Posts: 41
Во замарота !!
Эксперты вставьте себе его сткрипт да по эксперементиркйте
Выложите рабочий скрипт на удочки плз :)

_________________
Very Old Player


Top
   
 Post subject:
PostPosted: 2005-01-17 21:35:49 
Offline
User avatar

Joined: 2004-10-13 15:08:08
Posts: 147
Ehidna wrote:
Во замарота !!
Эксперты вставьте себе его сткрипт да по эксперементиркйте
Выложите рабочий скрипт на удочки плз :)
ну а ты как хотел(а)? :)

_________________
maxim viktorovich


Top
   
 Post subject:
PostPosted: 2005-01-17 23:36:16 
Offline
Expert!

Joined: 2004-04-03 17:36:29
Posts: 2544
Location: Saint-Petersburg
maximka4 wrote:
вобщем он продолжает ложит удочки в мешок где 255 удочек. а так как туда не лезет они падают в пак.


Ты вставки сделал которые я запостил? Не вываливается с сообщением что мешки кончились?


Top
   
 Post subject:
PostPosted: 2005-01-17 23:37:44 
Offline
Expert!

Joined: 2004-04-03 17:36:29
Posts: 2544
Location: Saint-Petersburg
maximka4 wrote:
Code:
sub main()
sub carpentry()
 



А вот это, кстати, что такое? И какой ты скрипт запускаешь? :shock:


Top
   
 Post subject:
PostPosted: 2005-01-18 08:21:13 
Offline
User avatar

Joined: 2004-10-13 15:08:08
Posts: 147
Edred wrote:
maximka4 wrote:
Code:
sub main()
sub carpentry()
 



А вот это, кстати, что такое? И какой ты скрипт запускаешь? :shock:
а разве есть разница? дело в том что если даже я уберу
Code:
sub carpentry
то ведь ничего ж не изметится.
или я не прав ?. а если я буду запускать просто
Code:
sub carpentry
то у меня будет ошибка (функция main не найдена). небольшой хелп получился в прибольшой.

_________________
maxim viktorovich


Top
   
 Post subject:
PostPosted: 2005-01-18 08:29:42 
Offline
User avatar

Joined: 2004-10-13 15:08:08
Posts: 147
Edred wrote:
maximka4 wrote:
вобщем он продолжает ложит удочки в мешок где 255 удочек. а так как туда не лезет они падают в пак.


Ты вставки сделал которые я запостил? Не вываливается с сообщением что мешки кончились?
вставил. вот:
Code:
sub main() 
   VAR Sunduk1 = '0x4033F60E'       ;  сундук с пустыми мешками
   VAR Sunduk2 = '0x4030408A'       ;  пустой сундук
   VAR Meshok = '0x0E76'          ;  тип мешка
   VAR Logi = '0x1BDD'          ; тип логов
   VAR Rubanok = '0x1035'          ;  рубанок
   VAR Udochka = '0x0DBF'          ; удочка
   VAR Kolvo = 255          ; 
   VAR MeshSer, j, k
   While TRUE
      UO.FindType( Logi,'-1', '1'  )       ; ищем логи на полу
      UO.Grab( Str( Kolvo ), 'finditem' )    ; кладем логи в пак
      wait( 2000 )
      If UO.FindCount() == 0 Then
         UO.Print("Logs not found, script terminated")
         return
      Endif
      UO.FindType( Meshok,'-1', Sunduk1 )       ; ищем шешок в сундуке
      If UO.FindCount() == 0 Then
         UO.Print("Bags not found, script terminated")
         return
      Endif
      MeshSer = UO.GetSerial( 'finditem' )
      UO.Grab( '1', 'finditem' )          ; кладем его в пак
      wait( 2000 )
      UO.MoveItem( MeshSer,'0' , Sunduk2 )
      wait( 2000 )
      While UO.Count( Logi ) > 0
         ; пока в паке есть логи
         UO.Print('Ostalos ' + Str( UO.Count( Logi ) ) + ' logov' )
         UO.DeleteJournal()
         UO.CancelMenu()
         UO.WaitMenu ('Carpentry', 'Weapons & Tools', 'Weapons & Tools', 'fishing' )
         UO.UseType( Rubanok )
         k = 0
         while NOT UO.InJournal('You put') AND NOT UO.InJournal('fail') AND ( k < 30 )
            k = k + 1
            wait(500)
         wend
         ; Wait( 14000 )
         ; скрафтили удочку
         ; перекладываем в мешок
         if UO.Count( Udochka ) > 0 then
            UO.FindType( Udochka, '-1', 'backpack' )
            UO.MoveItem( 'finditem', '0', MeshSer )
            wait( 2000 )
            UO.Print( 'Udochka perelozhena' )
         end if
      Wend
   Wend
end sub

_________________
maxim viktorovich


Top
   
 Post subject:
PostPosted: 2005-01-18 10:27:06 
Offline
Expert!

Joined: 2004-04-03 17:36:29
Posts: 2544
Location: Saint-Petersburg
Дык запусти, убедившись что ТВР включен, что сундуки хоть раз открывались, что финддистанс и дистанс выставлены в 3 например. Далее один кружок присматривай за ним, он же логи отсчитывает, а переменную на количество логов поставь в 200, проследи как он берет новую порцию, берет ли новый мешок...

Поставь перед определением MeshSer ( MeshSer = UO.GetSerial( 'finditem' ) ) команду:
Code:
UO.Print( 'Old bag is ' + MeshSer )


а после определения MeshSer команду:
Code:
UO.Print( 'New bag is ' + MeshSer )


и проследи, сменяется ли серийник мешка...

А потом уже пости сюда результаты тестов, разберемся. Я на этом самом скрипте вкачал себе карпу с 30 до 100.


Top
   
 Post subject:
PostPosted: 2005-01-18 16:37:21 
Offline
User avatar

Joined: 2004-10-13 15:08:08
Posts: 147
Edred wrote:
Дык запусти, убедившись что ТВР включен, что сундуки хоть раз открывались, что финддистанс и дистанс выставлены в 3 например. Далее один кружок присматривай за ним, он же логи отсчитывает, а переменную на количество логов поставь в 200, проследи как он берет новую порцию, берет ли новый мешок...

Поставь перед определением MeshSer ( MeshSer = UO.GetSerial( 'finditem' ) ) команду:
Code:
UO.Print( 'Old bag is ' + MeshSer )


а после определения MeshSer команду:
Code:
UO.Print( 'New bag is ' + MeshSer )


и проследи, сменяется ли серийник мешка...

А потом уже пости сюда результаты тестов, разберемся. Я на этом самом скрипте вкачал себе карпу с 30 до 100.
вобщемон берет логи и вылетает ошибка line 23: Runtime error - invalid operation for this type. тоесть ему не нравится ета строка:
Code:
UO.Print( 'Old bag is ' + MeshSer )
а если ее убрать то просто показывается id мешка который берется.

_________________
maxim viktorovich


Top
   
 Post subject:
PostPosted: 2005-01-18 18:26:04 
Offline
Expert!

Joined: 2004-04-03 17:36:29
Posts: 2544
Location: Saint-Petersburg
Сорри. Не подумал о первом круге. До того как серийник первого мешка считан, переменная MeshSer не определена. Поставь в самом начале перед первым циклом):

MeshSer = '0'


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 24 posts ]  Go to page 1 2 Next

All times are UTC+02:00


Who is online

Users browsing this forum: No registered users and 8 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB® Forum Software © phpBB Limited