Подскажите как реализовать. (Хилинг)

Anything and all.

Moderators: Murderator+, Murderator

Post Reply
Kaa06081984
Posts: 7
Joined: 2004-10-23 20:40:48

Подскажите как реализовать. (Хилинг)

Post by Kaa06081984 »

Все тутошние скрипты на хилинг сделаны по принципу:
1) Если хп < какого-то числа, то гото 2
2) Кидаем бинт
3)Ждем какое-то время
4) Гото 1

На шарде где я играю скорость хила очень сильно зависит от декстерити. Так что какую-то одну задержку ставить нельзя. Иногда бывате маг курсу скастанет - декса минус... припьешь бутылочки - декса плюс. Ставить зависимость паузы на хиляние от кол-ва дексы на данный момент тоже нельзя так как за то время пока хильнешься декса может измениться несколько раз... будет глючить - второй бинт кидаться раньше времени или наоборот позже чем надо.

Под ИзиУо есть такой вот скриптик.
1) Если макс.хп > хп {гото 2}
2) Кидаем бандажку
3) Сканируем журнал на наличие надписи - you_finish_applying_the_bandages или you_have_cured_yourself... если находим такую надпись идем к пункту 4, иначе повторяем пункт 3
4) Очищаем журнал
5) Гото 1

Бывает макрос залипает на пункте 3... например если очень много всяких надписей (бурное ПвП). Тогда нужно ставить таймер на всякий случай. Если залип на 3 пункте, то через некторое время переходим опять в пункт 1. Но это не главная проблемма.

Второй глюк куда серьезнее.
А именно... иногда после того как кидается бинт, буквально через секунду кидается бинт еще раз. Иногда даже по три раза.
Почему это происходит я никак не могу понять. Может оно находит надпись you_finish_applying_the_bandages с прошлого раза ? Но ведь журнал-то очищается после каждого круга. Чушь какая-то. =(

Вот...поэтому хочу реализовать такой же макрос на инжекте. Может будет меньше глючить.
Кто знает как это сделать помогите пожалуйста, ато я в инжекте 0. Или поделитесь своими мыслями по поводу этого глюка...из-за чего он происходит.
Kaa06081984
Posts: 7
Joined: 2004-10-23 20:40:48

Post by Kaa06081984 »

up
Yoko
Site Admin
Posts: 1964
Joined: 2004-04-03 16:49:38
Contact:

Post by Yoko »

макрос элементарный и подобных на форуме по идее вагоны.

рисую но не проверяю, уо под рукой нет. И учти, в отличае от изиуо регистр букв имеет значение, так что проверь куски сообщений.

Code: Select all

sub test()
var i
while not uo.dead()
  #вариант: if uo.hits+4<333 then    где 333 максхп
  if uo.gethp()+4<uo.getmaxhp() then
    uo.deletejournal()
    uo.bandageself()
    for i=1 to 100
        wait(100)
        if uo.injournal("finish app") or uo.injournal("cured yourself") then
             i=100
        end if
    next
  end if
  wait(100)
wend
end sub

проверь, если работает, я его закину в scripts! чтоб не пропадал
Kaa06081984
Posts: 7
Joined: 2004-10-23 20:40:48

Post by Kaa06081984 »

Спасибо большое.

Есть правда 1 проблемка.
Когда ХП становится меньше МаксХП, макрос кидает бинт. Но он не находит строчку в журнале "You finish applying the badages.". Т.е. после окончание хиляния второй бинт уже не кидается пока i не достигнет 100.

Эта строчка не работает :(

if uo.injournal("You finish applying the badages.") or uo.injournal("cured yourself") then
i=100


"You finish applying the badages." написано правильно.
Sfagnum
Expert!
Posts: 1284
Joined: 2004-07-04 00:14:58
Contact:

Post by Sfagnum »

Kaa06081984 wrote:if uo.injournal("You finish applying the badages.") or uo.injournal("cured yourself") then
ну не вижу я такой строки у Yoko
Kaa06081984
Posts: 7
Joined: 2004-10-23 20:40:48

Post by Kaa06081984 »

Sfagnum wrote:
Kaa06081984 wrote:if uo.injournal("You finish applying the badages.") or uo.injournal("cured yourself") then
ну не вижу я такой строки у Yoko


ну такая...
if uo.injournal("finish app") or uo.injournal("cured yourself") then

какая разница ? Все равно не работает.
Bloodmoon
Posts: 128
Joined: 2004-06-23 08:55:32

Post by Bloodmoon »

А я вам советую такой взять скрипт на хилинг+спирит спик.Прокачаете хилинг и качнете спирит спик.

Code: Select all

sub Train_Healing()
var i
while True
   UO.FindType(0x0E21,"-1","my")
   if UO.FindCount() then
      uo.usetype(0x1718); Cursed Hat
      CheckLag()
      if i==3 or not i then
         Spirit() #----
         i=1
      else
         i=i+1
      endif
#      uo.useskill ("Spirit Speak")
         wait(2000)
      uo.undress()
      wait(100)
      uo.exec('bandageself')
      Wait(2000)
   else
      UO.FindType(0x0E20,"-1","my")
      if UO.FindCount() then
         uo.waittargettype(0x1008)   # wash basin
         uo.UseType(0x0E20)   #bloody bandages
         CheckLag()
      else
         uo.print("You haven't bandages")
         uo.exec("terminate Train_Healing")
         Play_Sound(1)
      endif
   endif
wend
end sub
Sfagnum
Expert!
Posts: 1284
Joined: 2004-07-04 00:14:58
Contact:

Post by Sfagnum »

Kaa06081984 wrote:ну такая...
if uo.injournal("finish app") or uo.injournal("cured yourself") then

какая разница ? Все равно не работает.
ИМХО есть, т.к. по моим наблюдениям, если фраза выводится в 2х строках то инжа не находит её в журнале, хотя может эт просто глюки у меня...
Kaa06081984
Posts: 7
Joined: 2004-10-23 20:40:48

Post by Kaa06081984 »

Bloodmoon wrote:А я вам советую такой взять скрипт на хилинг+спирит спик.Прокачаете хилинг и качнете спирит спик.

Code: Select all

sub Train_Healing()
var i
while True
   UO.FindType(0x0E21,"-1","my")
   if UO.FindCount() then
      uo.usetype(0x1718); Cursed Hat
      CheckLag()
      if i==3 or not i then
         Spirit() #----
         i=1
      else
         i=i+1
      endif
#      uo.useskill ("Spirit Speak")
         wait(2000)
      uo.undress()
      wait(100)
      uo.exec('bandageself')
      Wait(2000)
   else
      UO.FindType(0x0E20,"-1","my")
      if UO.FindCount() then
         uo.waittargettype(0x1008)   # wash basin
         uo.UseType(0x0E20)   #bloody bandages
         CheckLag()
      else
         uo.print("You haven't bandages")
         uo.exec("terminate Train_Healing")
         Play_Sound(1)
      endif
   endif
wend
end sub


Зачем мне хилинг качать ?
Мне нужен стабильный скрипт для ПвП, который бы кидал бинт сразу после фразы You finish applying the bandages. или some damage has been healed.
Bloodmoon
Posts: 128
Joined: 2004-06-23 08:55:32

Post by Bloodmoon »

Прости,не туда вставил скрипт :D.
Нажимни еще раз,чтоб хильнулся.Ловкость рун нужна :).
Kaa06081984
Posts: 7
Joined: 2004-10-23 20:40:48

Post by Kaa06081984 »

В разделе форума FAQ нашел такую тему:

*************************************************************

RunUO использует клилоки (client local сообщения). Это означает что сервер посылает только номер, после чего клиент показывает текст из одного из языковых файлов.

Чтобы увидеть что именно инжект получает от сервера используйте команду ,showjournal. Там будет нечто типа "cliloc#0x05BD". Это вам и надо искать вместо фраз которые вы видите в журнале клиента.


*************************************************************

Может быть это и есть причина того, что этот скрипт не находит строки из журнала ?
Дело в том, что играю я именно на РанУо шарде.
Кто-нить знает как использовать эти клиоки для поиска строк в журнале ?
Ugrum.
Posts: 69
Joined: 2004-04-05 11:59:21
Location: RunUO

Post by Ugrum. »

Code: Select all

.......
Var Сli1="cliloc# 0xA4E9"
.......
while UO.GetHP()<UO.GetMaxHP() and UO.GetHP()>0
uo.deletejournal()
      uo.bandageself()
REPEAT             
                 wait(150)
UNTIL uo.InJournal(Сli1)
......
Kaa06081984
Posts: 7
Joined: 2004-10-23 20:40:48

Post by Kaa06081984 »

О !
Теперь работает.
Yoko и Ugrum, большое вам спасибо. 8)
Post Reply