Page 1 of 1

Помогите разобраться со скриптом на кровь !!!

Posted: 2009-04-30 07:19:22
by Snapus
Помогите пожалуйста ! Есть скрипт на питье крови с пола:

Code: Select all

#############################################
############## Кровь с пола #################
#############################################
sub Blood_pol()
var n
Dim Blood[6]
Blood[1] = '0x122E'
Blood[2] = '0x122D'
Blood[3] = '0x122A'
Blood[4] = '0x122B'
Blood[5] = '0x122C'
Blood[6] = '0x1645'
While NOT UO.Dead()
If UO.GetGlobal('UseBloodCheck')<>'on' Then
UO.SetGlobal('UseBloodCheck','on')
For n = 1 TO 6
UO.FindType(Blood[n],'-1','1')
If UO.FindCount() Then
UO.UseObject('finditem')
EndIf
Next
UO.SetGlobal('UseBloodCheck','off')
Else
UO.Print("Wait")
EndIf
end sub



помогите разобраться:
На сколько клеток он ищет кровь и как изменить.
И почему порой в окне скрипта зависают не выполненые команды и начинает тормозить уо. Может в скрипте есть ошибка ?

Заранее спасибо!
Ссылки на нужную часть хелпа приветствуются.

Posted: 2009-04-30 07:23:32
by Kynep
Для начала оформите свою просьбу согласно Правилам.

Re: Помогите разобраться со скриптом на кровь !!!

Posted: 2009-04-30 08:20:45
by Kynep
Snapus wrote:Помогите пожалуйста ! Есть скрипт на питье крови с пола:
помогите разобраться:
На сколько клеток он ищет кровь и как изменить.
И почему порой в окне скрипта зависают не выполненые команды и начинает тормозить уо. Может в скрипте есть ошибка ?
Заранее спасибо!
Ссылки на нужную часть хелпа приветствуются.


Code: Select all

sub Blood_pol() 
   var n
   dim Blood[6]
   Blood[0] = '0x122E'
   Blood[1] = '0x122D'
   Blood[2] = '0x122A'
   Blood[3] = '0x122B'
   Blood[4] = '0x122C'
   Blood[5] = '0x1645'

   UO.Set('finddistance', '3') #Радиус поиска 3 клетки вокруг чара.

   for n = 0 to 5
      UO.FindType(Blood[n], '-1' , 'ground')
      If UO.FindCount()> 0 Then
         repeat
            UO.UseObject('finditem')
            wait(500)
            UO.FindType(Blood[n], '-1' , 'ground')
         until NOT UO.FindCount()
      endif
   next
   UO.Set('finddistance', '16')
end sub

Может так заработает, пробуйте.

Re: Помогите разобраться со скриптом на кровь !!!

Posted: 2009-04-30 08:37:35
by Snapus
Kynep wrote:
Snapus wrote:Помогите пожалуйста ! Есть скрипт на питье крови с пола:
помогите разобраться:
На сколько клеток он ищет кровь и как изменить.
И почему порой в окне скрипта зависают не выполненые команды и начинает тормозить уо. Может в скрипте есть ошибка ?
Заранее спасибо!
Ссылки на нужную часть хелпа приветствуются.


Code: Select all

sub Blood_pol() 
   var n
   dim Blood[6]
   Blood[0] = '0x122E'
   Blood[1] = '0x122D'
   Blood[2] = '0x122A'
   Blood[3] = '0x122B'
   Blood[4] = '0x122C'
   Blood[5] = '0x1645'

   UO.Set('finddistance', '3') #Радиус поиска 3 клетки вокруг чара.

   for n = 0 to 5
      UO.FindType(Blood[n], '-1' , 'ground')
      If UO.FindCount()> 0 Then
         repeat
            UO.UseObject('finditem')
            wait(500)
            UO.FindType(Blood[n], '-1' , 'ground')
         until NOT UO.FindCount()
      endif
   next
   UO.Set('finddistance', '16')
end sub

Может так заработает, пробуйте.


Попробывал скрипт работает вполне вминяемо единственное если часто жать и он не находит крови он подвисает =(

Возможно ли это как то оптимизировать ?

P.S. постоянно в уо пишет finddistance 16 и finddistance 3 ! так и должно быть?

Re: Помогите разобраться со скриптом на кровь !!!

Posted: 2009-04-30 08:42:31
by Kynep
Snapus wrote:Попробывал скрипт работает вполне вминяемо единственное если часто жать и он не находит крови он подвисает =(
Возможно ли это как то оптимизировать ?

Можно удалить wait(500), либо сделать поменьше, например wait(100).
Snapus wrote:P.S. постоянно в уо пишет finddistance 16 и finddistance 3 ! так и должно быть?

Можно в клиенте написать ,set injectecho 0, возможно поможет, либо ,set quiet 1, точно не помню. Псле этого нужно нажать кнопочку Save в закладке Main.

Posted: 2009-04-30 08:54:34
by Destruction
injectecho отвечает за вывод в журнал инжекта сообщений инжекта :)

,set quiet 0
,set quiet 1

Не помню какой правильно :)

Posted: 2009-04-30 09:01:31
by Kynep
Destruction wrote:injectecho отвечает за вывод в журнал инжекта сообщений инжекта :)
,set quiet 0
,set quiet 1
Не помню какой правильно :)

Ну почти угадал, блин про запятую забыл :lol:

Posted: 2009-04-30 09:54:22
by Snapus

Code: Select all

sub Blood_pol()
If UO.Life<UO.Str Then
   var n
   dim Blood[6]
   Blood[0] = '0x122E'
   Blood[1] = '0x122D'
   Blood[2] = '0x122A'
   Blood[3] = '0x122B'
   Blood[4] = '0x122C'
   Blood[5] = '0x1645'

   UO.Set('finddistance', '3') #Радиус поиска 3 клетки вокруг чара.

   for n = 0 to 5
      UO.FindType(Blood[n], '-1' , 'ground')
      If UO.FindCount()> 0 Then
         repeat
            UO.UseObject('finditem')
            wait(200)
            UO.FindType(Blood[n], '-1' , 'ground')
         until NOT UO.FindCount()
      endif
   next
   UO.Set('finddistance', '16')
      Else
      UO.Print("Your HP at maximum!!!")
   Endif
end sub


Попробывал добавить проверку на ХП(тоесть если хп меньше силы он ищет кровь если нет то пишет "Your HP at maximum!!!") Проверьте правельно написал ?

Posted: 2009-04-30 10:24:16
by Kynep

Code: Select all

sub Blood_pol()
   var n
   dim Blood[6]
   Blood[0] = '0x122E'
   Blood[1] = '0x122D'
   Blood[2] = '0x122A'
   Blood[3] = '0x122B'
   Blood[4] = '0x122C'
   Blood[5] = '0x1645'

   If UO.Life < UO.Str then
      UO.Set('finddistance', '3') #Радиус поиска 3 клетки вокруг чара.
      for n = 0 to 5
         UO.FindType(Blood[n], '-1' , 'ground')
         If UO.FindCount()> 0 Then
            repeat
               UO.UseObject('finditem')
               wait(200)
               UO.FindType(Blood[n], '-1' , 'ground')
            until NOT UO.FindCount()
         endif
      next
      UO.Set('finddistance', '16')
   else
      UO.Print("Your HP at maximum!!!")
   endif
end sub

Вот как-то так.