Page 1 of 1

помогите с простеньким скриптом....

Posted: 2005-05-22 13:25:00
by BbIDLO
Кому не сложно - напишите такои простенький скрипт :
Если в бекпаке находит пустые бутылки, то достаёт из сундука кег и наливает из него все найденые в бекпаке пустые бутылки, после чего кидает кег назад в сундук..... :roll:

Posted: 2005-05-22 14:30:26
by flake
1. Поясни, каким образом происходит разлив бутылок из кега?
2. Выложи сюда тип кега и бутылок.
3. ВЫложи сообщения, которые возникают, при разлитии поушенов.

Posted: 2005-05-22 15:43:39
by Edred
Флейк, поверь моему опыту: не стоит писать скрипт, который не будет работать на шарде, на котором ты играешь. Чисто теоретическое написание скриптов ничего, кроме лишнего геморроя не приносит.

Posted: 2005-05-22 23:41:01
by flake
Ну надо человеку помочь!
Я помню, когда я только начинал пользоваться инжектом, мне часто помогали. И ты в том числе :)

Posted: 2005-05-23 00:51:30
by BbIDLO
Тип пустых бутылок :
0x0F0E
Тип кегов:
0x1940
Сообщения:
What potion would you like to fill the keg with?
You put the Invisibility in your pack.
*Это при удачном разливании*
What potion would you like to fill the keg with?
You can't use this yet!
*Это когда чтото мешает(например использующийся в этот же момент скилл медитации)*


П.С. Шард - Оском офри. Буду благодарен за помощь

Posted: 2005-05-23 09:08:54
by flake
Так, а каким образом разливаются поушены?
Типа, дабл клик по кегу и таргет по бутылкам, или как?

Posted: 2005-05-23 23:20:30
by BbIDLO
flake wrote:Так, а каким образом разливаются поушены?
Типа, дабл клик по кегу и таргет по бутылкам, или как?

угу

Posted: 2005-05-24 09:14:24
by flake
Ну вот, набросал. Тести:

Code: Select all

sub Keg()

VAR Sunduk = '' ; внести айди сундука с кегом
VAR Keg = '0x1940'
VAR Bottle = '0x0F0E'
VAR BottleSerial, k
 
  UO.FindType( Bottle, -1, -1 )
    If UO.FindCount() > 0 Then
      UO.FindType( Keg, -1, Sunduk )
        If UO.FindCount() = 0 Then
           UO.Print('Potion Keg not found, script terminated!')
           UO.Exec('terminate Keg')
        EndIf
      UO.Grab( '1', 'finditem' )
      CheckLag()
       
        While UO.Count( Bottle ) > 0
          UO.DeleteJournal()
     BottleSerial = UO.GetSerial( Bottle )
          UO.WaitTargetObject( BottleSerial )
          UO.UseType( Keg )
          k = 0
            while NOT UO.InJournal('You put') AND NOT UO.InJournal('fail') AND NOT UO.InJournal('can't use this yet!') AND ( k < 30 )
              k = k + 1
              wait(500)
            wend 
        Wend
      UO.FindType( Keg, -1, -1 )
      UO.Move('finditem', 0, Sunduk)
end sub

Posted: 2005-05-24 09:22:17
by [kosh]
Не работает,пишет parse error

Posted: 2005-05-24 09:30:13
by Sfagnum
flake wrote:Ну вот, набросал. Тести:

Code: Select all

sub Keg()

VAR Sunduk = '' ; внести айди сундука с кегом
VAR Keg = '0x1940'
VAR Bottle = '0x0F0E'
VAR BottleSerial, k
 
   UO.FindType( Bottle, -1, -1 )
    If UO.FindCount() > 0 Then
      UO.FindType( Keg, -1, Sunduk )
        If UO.FindCount() = 0 Then
         UO.Print('Potion Keg not found, script terminated!')
         UO.Exec('terminate Keg')
      EndIf
      UO.Grab( '1', 'finditem' )
      CheckLag()       
      While UO.Count( Bottle ) > 0
         UO.DeleteJournal()
         BottleSerial = UO.GetSerial( Bottle )
         UO.WaitTargetObject( BottleSerial )
         UO.UseType( Keg )
         k = 0
         while NOT UO.InJournal('You put') AND NOT UO.InJournal('fail') AND NOT UO.InJournal("can't use this yet!") AND ( k < 30 )
            k = k + 1
            wait(500)
            wend 
        Wend
      UO.FindType( Keg, -1, -1 )
      UO.Move('finditem', 0, Sunduk)
   end if
end sub
так пробуй

Posted: 2005-05-24 09:37:35
by [kosh]
тоже не работает,parse error

Posted: 2005-05-24 13:56:37
by flake
Ага, нашел ошибку.

Вот она:

Code: Select all

If UO.FindCount() = 0 Then

Исправил, проверяйте.

Code: Select all

sub Keg() 

VAR Sunduk = '' ; внести айди сундука с кегом
VAR Keg = '0x1940'
VAR Bottle = '0x0F0E'
VAR BottleSerial, k
 
   UO.FindType( Bottle, -1, -1 )
    If UO.FindCount() > 0 Then
      UO.FindType( Keg, -1, Sunduk )
        If UO.FindCount() == 0 Then
         UO.Print('Potion Keg not found, script terminated!')
         UO.Exec('terminate Keg')
      EndIf
      UO.Grab( '1', 'finditem' )
      CheckLag()       
      While UO.Count( Bottle ) > 0
         UO.DeleteJournal()
         BottleSerial = UO.GetSerial( Bottle )
         UO.WaitTargetObject( BottleSerial )
         UO.UseType( Keg )
         k = 0
         while NOT UO.InJournal('You put') AND NOT UO.InJournal('fail') AND NOT UO.InJournal("can't use this yet!") AND ( k < 30 )
            k = k + 1
            wait(500)
            wend 
        Wend
      UO.FindType( Keg, -1, -1 )
      UO.Move('finditem', 0, Sunduk)
   end if
end sub

Posted: 2005-05-24 14:14:32
by [kosh]
вроде работает.А что в нём нужно изменить чтобы наоборот бутылки в кеги переливал?Менял тип бутылки-неполучилось.

Posted: 2005-05-24 17:53:09
by BbIDLO
спасибо :idea:

Posted: 2005-05-25 00:33:11
by BbIDLO
блин чтото не работает :oops:
Берёт кег, тыкает на него и сразуже говорит "You cannot see the target ", тоесть походу не находит бутылки.... :oops: Подскажи пожайлусто в чём проблема :shock: