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

Ask for scripts here

Moderators: Murderator+, Murderator

Post Reply
kama26
Posts: 23
Joined: 2009-02-04 10:51:57

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

Post 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 вылетает критическая ошибка (((
помогите плз
Millerbeer
Posts: 247
Joined: 2008-09-12 05:07:34

Post 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, опять повиснуть в непонятном ожидании
GAUHAR
Posts: 137
Joined: 2006-11-06 21:45:23

Post by GAUHAR »

Честное слово экспериментов провел тьму, но

Code: Select all

UO.OnGump()

мне не удалось укратить, только клики (но это же не наш стиль, хотя меня это вполне удовлетворило).
kama26
Posts: 23
Joined: 2009-02-04 10:51:57

Post 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 штук он их переливает в кегу )))
kama26
Posts: 23
Joined: 2009-02-04 10:51:57

Post by kama26 »

GAUHAR wrote:Честное слово экспериментов провел тьму, но

Code: Select all

UO.OnGump()

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


что бы своять то что своял ,а прежде всего понять как ето делается (потому не учился я на програмирование)убил наверное часов 20 )))
kama26
Posts: 23
Joined: 2009-02-04 10:51:57

Post by kama26 »

проблема актуальна до сих пор ((((
то что сказали исправил правда ошибку до сих пор вышибаеть (((
kama26
Posts: 23
Joined: 2009-02-04 10:51:57

Post 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 минуток (((
Millerbeer
Posts: 247
Joined: 2008-09-12 05:07:34

Post by Millerbeer »

Я так подозреваю, вылетает после World Save? А через waitmenu крафт не сделать?
kama26
Posts: 23
Joined: 2009-02-04 10:51:57

Post by kama26 »

Millerbeer wrote:Я так подозреваю, вылетает после World Save? А через waitmenu крафт не сделать?



нет ((( тока так либо через клики
Millerbeer
Posts: 247
Joined: 2008-09-12 05:07:34

Post 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


Ну так попробуй, мож не будет вылетать
kama26
Posts: 23
Joined: 2009-02-04 10:51:57

Post by kama26 »

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


всё равно вылетает чтоб ему пусто было (((
kama26
Posts: 23
Joined: 2009-02-04 10:51:57

Post by kama26 »

народ у мя подозрения что вылетает когда по какой то причине действие (т.е. нажатие на кнопочки в гампе ) не завершено а подвисает ((
можно ли сделать какую нить проверочку на время если текста нет то он юзает пестик а потом появившийся гамп просто правым кликом убирает ????
Post Reply