Page 1 of 1

срочно нужна помощь!!!!

Posted: 2009-02-26 19:20:31
by kama26
Люди где ошибка в скрипте ???

Code: Select all

sub main()
   VAR Sunduk = "0x400E0DD2"
   VAR bytil = "0x0F0E"
   VAR reg = "0x0F88"
   VAR pestik = "0x0E9B"
   VAR lesepoison = "0x0F0A"
   VAR k
 
     UO.Set('norbcalc',1)
     UO.Set('norbcheck',1)
     
 
   While TRUE
      If UO.Count( bytil ) == 0 Then
         UO.FindType( bytil, '-1', Sunduk )
         If UO.FindCount() == 0 Then
            UO.Print("Leathers not found, script terminated")
            return
         Endif
         UO.Grab( '100', 'finditem' )
         wait(500)
         while UO.Count( bytil ) == 3
            wait(100)
         wend
      Endif
     
          If UO.Count( reg ) == 0 Then
         UO.FindType( reg, '-1', Sunduk )
         If UO.FindCount() == 0 Then
            UO.Print("Leathers not found, script terminated")
            return
         Endif
         UO.Grab( '300', 'finditem' )
         wait(500)
         while UO.Count( reg ) == 3
            wait(100)
         wend
      Endif
   
      UO.DeleteJournal()
     
      wait(100)
      UO.UseType( pestik )
      UO.OnGump('0x0004f288','0x0000003a','17')
      UO.Recall('0x0000003b','802')
     
      k = 0
      while NOT UO.InJournal('You put') AND NOT UO.InJournal('fail') AND ( k < 70)
 
         k = k + 1
         wait(300)
      wend
      if UO.Count( lesepoison ) > 10 then
         uo.useobject('0x400B14EC')
         UO.WaitTargetType( lesepoison )
         wait( 500 )
         while UO.Count( lesepoison ) > 10
            wait(100)
         wend
         wait(100)
      endif
   Wend
  wait(100)
end sub

мин через 5-20 вылетает критическая ошибка (((
помогите плз

Posted: 2009-02-26 21:49:31
by Millerbeer
Вот один цикл непонятный

Code: Select all

while UO.Count( bytil ) == 3 
            wait(100)
         wend

Пока бутылок 3 ждать 0,1 сек, т.е. как тока бутылок останется 3 штуки, скрипт повиснет в ожидании и вылетит в итоге

Вот ещё один

Code: Select all

while UO.Count( reg ) == 3 
            wait(100)
         wend

тож самое с регом, как только 3 рега останется, скрипт виснет

Вот ещё один загадочный кусок

Code: Select all

if UO.Count( lesepoison ) > 10 then 
         uo.useobject('0x400B14EC')
         UO.WaitTargetType( lesepoison )
         wait( 500 )
         while UO.Count( lesepoison ) > 10
            wait(100)
         wend
         wait(100)
      endif


тут, значится, если пойзонок станет больше 10, использовать какой-то предмет, прицелится в пойзонку, полсекунды подождать, если пойзонок больше 10, опять повиснуть в непонятном ожидании

Posted: 2009-02-26 23:26:11
by GAUHAR
Честное слово экспериментов провел тьму, но

Code: Select all

UO.OnGump()

мне не удалось укратить, только клики (но это же не наш стиль, хотя меня это вполне удовлетворило).

Posted: 2009-02-27 15:47:27
by kama26
Millerbeer wrote:
Вот ещё один загадочный кусок

Code: Select all

if UO.Count( lesepoison ) > 10 then 
         uo.useobject('0x400B14EC')
         UO.WaitTargetType( lesepoison )
         wait( 500 )
         while UO.Count( lesepoison ) > 10
            wait(100)
         wend
         wait(100)
      endif


тут, значится, если пойзонок станет больше 10, использовать какой-то предмет, прицелится в пойзонку, полсекунды подождать, если пойзонок больше 10, опять повиснуть в непонятном ожидании




ну ето всмысле как тока бутылок с пойсоном становится 10 штук он их переливает в кегу )))

Posted: 2009-02-27 15:50:35
by kama26
GAUHAR wrote:Честное слово экспериментов провел тьму, но

Code: Select all

UO.OnGump()

мне не удалось укратить, только клики (но это же не наш стиль, хотя меня это вполне удовлетворило).


что бы своять то что своял ,а прежде всего понять как ето делается (потому не учился я на програмирование)убил наверное часов 20 )))

Posted: 2009-02-27 23:39:03
by kama26
проблема актуальна до сих пор ((((
то что сказали исправил правда ошибку до сих пор вышибаеть (((

Posted: 2009-02-28 00:42:09
by kama26

Code: Select all

sub main()
   VAR Sunduk = "0x400E0DD2"
   VAR bytil = "0x0F0E"
   VAR reg = "0x0F88"
   VAR pestik = "0x0E9B"
   VAR lesepoison = "0x0F0A"
   VAR k
 
     UO.Set('norbcalc',1)
     UO.Set('norbcheck',1)
     
 
   While TRUE
      If UO.Count( reg ) < 0 Then
         UO.FindType( reg, '-1', Sunduk )
         If UO.FindCount() == 0 Then
            UO.Print("Больше ресов нет!!!!")
             uo.exec('terminate all')
        uo.print ("все скрипты завершены")
            return
         Endif
         UO.Grab( '300', 'finditem' )
         wait(500)
       
      Endif
   
      UO.DeleteJournal()
     
      wait(100)
      UO.UseType( pestik )
      UO.OnGump('0x0004f288','0x0000003a','17')
      UO.Recall('0x0000003b','802')
     
      k = 0
      while NOT UO.InJournal('You put') AND NOT UO.InJournal('fail') AND ( k < 70)
 
         k = k + 1
         wait(300)
      wend
      if UO.Count( lesepoison ) > 10 then
         uo.useobject('0x400B14EC')
         UO.WaitTargetType( lesepoison )
         wait( 500 )

      endif
   Wend
  wait(100)
end sub



вот что после исправлений (вернее удалений) получилось ,но как я и говорил скрипт вылетает через те же самые 5-20 минуток (((

Posted: 2009-02-28 18:34:58
by Millerbeer
Я так подозреваю, вылетает после World Save? А через waitmenu крафт не сделать?

Posted: 2009-02-28 18:54:24
by kama26
Millerbeer wrote:Я так подозреваю, вылетает после World Save? А через waitmenu крафт не сделать?



нет ((( тока так либо через клики

Posted: 2009-02-28 20:34:51
by Millerbeer

Code: Select all

sub main() 
   VAR Sunduk = "0x400E0DD2"
   VAR bytil = "0x0F0E"
   VAR reg = "0x0F88"
   VAR pestik = "0x0E9B"
   VAR lesepoison = "0x0F0A"
 
     UO.Set('norbcalc',1)
     UO.Set('norbcheck',1)
     
   While TRUE
      If  not UO.Count( reg ) Then
         UO.FindType( reg, '-1', Sunduk )
         If not UO.FindCount() Then
             UO.Print("Больше ресов нет!!!!")
             uo.exec('terminate all')
             uo.print ("все скрипты завершены")
             return
         Endif
         UO.Grab( '300', 'finditem' )
         wait(1000)
         checklag()
      Endif
   
      UO.DeleteJournal()
     
      wait(100)
      UO.UseType( pestik )
      UO.OnGump('0x0004f288','0x0000003a','17')
      UO.Recall('0x0000003b','802')
      while NOT UO.InJournal('You put') AND NOT UO.InJournal('fail')
         wait(300)
      wend
      if UO.Count( lesepoison ) > 10 then
          UO.WaitTargetType( lesepoison )
          uo.useobject('0x400B14EC')
          wait( 1000 )
          checklag()
      endif
   Wend
  wait(100)
end sub
Sub Checklag()
   deljournal('a backpack')
   uo.click('backpack')
   repeat
      wait(50)
   until uo.injournal('a backpack')
endsub
Sub deljournal(msg)
   while uo.injournal(msg)
      uo.setjournalline(uo.injournal(msg)-1,"")
   wend
endsub


Ну так попробуй, мож не будет вылетать

Posted: 2009-03-01 00:36:33
by kama26
Ну так попробуй, мож не будет вылетать


всё равно вылетает чтоб ему пусто было (((

Posted: 2009-04-08 15:10:07
by kama26
народ у мя подозрения что вылетает когда по какой то причине действие (т.е. нажатие на кнопочки в гампе ) не завершено а подвисает ((
можно ли сделать какую нить проверочку на время если текста нет то он юзает пестик а потом появившийся гамп просто правым кликом убирает ????