Подскажите как реализовать. (Хилинг)
Moderators: Murderator+, Murderator
-
- Posts: 7
- Joined: 2004-10-23 20:40:48
Подскажите как реализовать. (Хилинг)
Все тутошние скрипты на хилинг сделаны по принципу:
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. Или поделитесь своими мыслями по поводу этого глюка...из-за чего он происходит.
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. Или поделитесь своими мыслями по поводу этого глюка...из-за чего он происходит.
макрос элементарный и подобных на форуме по идее вагоны.
рисую но не проверяю, уо под рукой нет. И учти, в отличае от изиуо регистр букв имеет значение, так что проверь куски сообщений.
проверь, если работает, я его закину в scripts! чтоб не пропадал
рисую но не проверяю, уо под рукой нет. И учти, в отличае от изиуо регистр букв имеет значение, так что проверь куски сообщений.
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! чтоб не пропадал
-
- Posts: 7
- Joined: 2004-10-23 20:40:48
Спасибо большое.
Есть правда 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." написано правильно.
Есть правда 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." написано правильно.
-
- Posts: 7
- Joined: 2004-10-23 20:40:48
А я вам советую такой взять скрипт на хилинг+спирит спик.Прокачаете хилинг и качнете спирит спик.
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
-
- Posts: 7
- Joined: 2004-10-23 20:40:48
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.
-
- Posts: 7
- Joined: 2004-10-23 20:40:48
В разделе форума FAQ нашел такую тему:
*************************************************************
RunUO использует клилоки (client local сообщения). Это означает что сервер посылает только номер, после чего клиент показывает текст из одного из языковых файлов.
Чтобы увидеть что именно инжект получает от сервера используйте команду ,showjournal. Там будет нечто типа "cliloc#0x05BD". Это вам и надо искать вместо фраз которые вы видите в журнале клиента.
*************************************************************
Может быть это и есть причина того, что этот скрипт не находит строки из журнала ?
Дело в том, что играю я именно на РанУо шарде.
Кто-нить знает как использовать эти клиоки для поиска строк в журнале ?
*************************************************************
RunUO использует клилоки (client local сообщения). Это означает что сервер посылает только номер, после чего клиент показывает текст из одного из языковых файлов.
Чтобы увидеть что именно инжект получает от сервера используйте команду ,showjournal. Там будет нечто типа "cliloc#0x05BD". Это вам и надо искать вместо фраз которые вы видите в журнале клиента.
*************************************************************
Может быть это и есть причина того, что этот скрипт не находит строки из журнала ?
Дело в том, что играю я именно на РанУо шарде.
Кто-нить знает как использовать эти клиоки для поиска строк в журнале ?
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)
......
-
- Posts: 7
- Joined: 2004-10-23 20:40:48