Помогите пожалуйста. При чар атакует чара-куклу с луком, потом лечит его, но почему то лечит 1-2 раза и снова бьет. Все хп не вылечивает. В чем тут проблема?
Заранее благодарю.
sub main()
var selfID = UO.GetSerial('self')
var ID = '0x004CFD60' ## ID персонажа которого бить надо
UO.Exec("exec reconnector")
UO.Exec("setarm wp")
while not UO.Dead()
if GetHP(ID) < 60 then
uo.Exec('warmode 0')
UO.Disarm()
while GetHP(ID) < 60
uo.Exec('warmode 0')
Healing(ID)
wait(100)
wend
UO.Exec("arm wp")
wait(1000)
uo.Exec('warmode 1')
end if
wait(500)
UO.Attack(ID)
wend
end sub
sub GetHP(ID)
var maxhp, result
UO.GetStatus(ID)
maxhp = UO.GetMaxHP(ID)
if maxhp > 0 then
result = (UO.GetHP(ID) * 150) / maxhp
else
result = 0
end if
return result
end sub
sub Healing(ID)
var b=0x0E21
;if UO.Life < UO.Str then
UO.WaitTargetObject(ID)
UO.UseType(b)
CheckLag()
uo.Exec('warmode 0')
wait(1000)
uo.Exec('warmode 0')
wait(1000)
uo.Exec('warmode 0')
wait(1000)
return true
;end if
return true
end sub
sub CheckLag()
DeleteJournal('backpack')
repeat
UO.Click('backpack')
wait(500)
until UO.InJournal('backpack')
end sub
sub DeleteJournal(msg)
var num
while UO.InJournal(msg)
num = UO.InJournal(msg)
UO.SetJournalLine(num - 1,' ')
wend
end sub
sub CheckBandage()
uo.WaitTargetType('0x1008')
uo.UseType('0x0E20')
wait(1000)
end sub
sub Reconnector()
var RFlag
RFlag = 1
Repeat
While (UO.ObjAtLayer('Bpack') == '')
if RFlag Then
RFlag = 0
endif
Wait(20000) # WorldSave Protection
UO.Say('')
Wait(3000)
UO.Say('')
Wait(3000)
UO.Say('')
Wait(3000)
UO.LDblClick(357,164)
UO.LClick(616,459)
Wait(3000)
WEnd
Wait(3000)
if (RFlag == 0) Then
RFlag = 1
endif
Until false
end sub
sub main()
var selfID = UO.GetSerial('self')
var ID = '0x004CFD60' ## ID персонажа которого бить надо
var MAXHP = 150 ## максимальное значение жизни у цели. Отрегулируй.
UO.Exec("exec reconnector")
UO.Exec("setarm wp")
while not UO.Dead()
if GetHP(ID) < 60 then
uo.Exec('warmode 0')
UO.Disarm()
while GetHP(ID) < MAXHP
if UO.WarMode()==1 then
UO.WarMode(0)
endif
Healing(ID)
wait(100)
wend
UO.Exec("arm wp")
wait(1000)
uo.warmode (1)
end if
wait(500)
UO.Attack(ID)
wend
end sub
sub GetHP(ID)
var maxhp, result
UO.GetStatus(ID)
maxhp = UO.GetMaxHP(ID)
if maxhp > 0 then
result = (UO.GetHP(ID) * 150) / maxhp
else
result = 0
end if
return result
end sub
sub Healing(ID)
var b=0x0E21
if UO.WarMode()==1 then
UO.WarMode(0)
endif
UO.WaitTargetObject(ID)
UO.UseType(b)
CheckLag()
wait(3000)
return true
end sub
sub CheckLag()
DeleteJournal('ackpack')
repeat
UO.Click('backpack')
wait(500)
until UO.InJournal('ackpack')
end sub
sub DeleteJournal(msg)
var num
while UO.InJournal(msg)
num = UO.InJournal(msg)
UO.SetJournalLine(num - 1,' ')
wend
end sub
sub CheckBandage()
uo.WaitTargetType('0x1008')
uo.UseType('0x0E20')
wait(1000)
end sub
sub Reconnector()
var RFlag
RFlag = 1
Repeat
While (UO.ObjAtLayer('Bpack') == '')
if RFlag Then
RFlag = 0
endif
Wait(20000) # WorldSave Protection
UO.Say('')
Wait(3000)
UO.Say('')
Wait(3000)
UO.Say('')
Wait(3000)
UO.LDblClick(357,164)
UO.LClick(616,459)
Wait(3000)
WEnd
Wait(3000)
if (RFlag == 0) Then
RFlag = 1
endif
Until false
end sub
Ну вот сейчас тестил, в сумке дагер и клевер лежат, молоток выкинул. Взял клевер, когда он его вылечил, он не одевает ничего, а бьет рукой. И так раз 5 одевал в ручную - всеравно не берет клевер... Можешь сюда вставить чтобы он брал оружие по Type?
От души .) Все работает. Но прежде тем чтобы поменять оружие, нужно выключить скрипт, потом взять которое нужно и снова включить Вот только бинты не моет, да и ладно