Page 1 of 1

Спаринг

Posted: 2009-06-05 10:23:51
by Alex82
Кому не тяжко гляньте. Пишу скрипт на спарринг. Чар должен бить оппонента, и при хп жертвы меньше 50% останавливать бой и лечить его. И так до победного.
Проблема в том что не могу нормально зациклить действие. Чар все время пытается юзать оружие на цель. Вот сам скрипт


sub sparing()
while not uo.Dead()
if uo.GetHp('0x0029D60B') > uo.getMaxHP('0x0029D60B')/2 then
atak()
else
hil()
endif
wend
end sub

sub hil()
uo.deletejournal()
repeat
uo.warmode(0)
UO.Usetype("0x0E21")
UO.Exec("waittargetobject 0x0029D60B")
wait(4500)
until uo.injournal('does not need you to heal or cure him')
end sub

sub atak()
uo.warmode(1)
UO.Exec("attack 0x0029D60B")
wait(100)
uo.usetype("0x13FA") # тип оружия
wait(100)
uo.waittargetobject("0x0029D60B")
UO.Exec("attack 0x0029D60B")
end sub


По отдельности процедуры атаки и лечения работают а вот свести вместе не получается Помогите пожалуйста.

Re: Спаринг

Posted: 2009-06-05 10:33:55
by Mirage
Alex82 wrote:Чар все время пытается юзать оружие на цель.


sub atak()
uo.warmode(1)
UO.Exec("attack 0x0029D60B")
wait(500)
end sub


Вот так можно.
Я не уверен что инжект умеет определять хиты оппонента.

Скрипты на паринг были тут.

Posted: 2009-06-05 11:57:22
by Alex82
Так как ты предложил,чар не возьмет в руки нужное мне оружие. Да и главной проблемы это не решает.

Posted: 2009-06-05 13:15:29
by ynkemer
Попробуй терминейт сделать.
sub sparing()
while not uo.Dead()
if uo.GetHp('0x0029D60B') > uo.getMaxHP('0x0029D60B')/2 then
atak()
else
uo.exec('terminate atak')
hil()
endif
wend
end sub

Posted: 2009-06-05 13:17:43
by Alex82
Все всем кто отписался спасибо.Взял и тупо переделал скрипт на спаринг с лошадью. :D Тема закрыта

Posted: 2009-06-05 14:03:42
by Alex82
Вдруг кому понадобится. Скрипт нагло содран с спарринга с лошадью неизвестного автора :roll:


Code: Select all

;перетащите ОБЯЗАТЕЛЬНО полоску с жизньями жертвы!!!!!!!!! 
;Жертве в руки лук без стрел :=)))

var kykla='0x0190' ;тип человека -)
var orygie='0x13B9';тип оружия -)
var bints='0x0E21'; тип бинта -)

sub train()
uo.findtype(kykla,'-1','ground')
while not uo.dead()
uo.findtype(kykla,'-1','ground')
if uo.gethp('finditem')>20 then
  atack()
 else
  heal()
endif
uo.warmode(0)
wait(100)
wend
endsub

sub atack()
uo.usetype(orygie)
uo.waittargetself()
wait(500)
uo.warmode(1)
uo.ignorereset()
uo.ignore('self')
uo.findtype(kykla,'-1','ground')
uo.attack('finditem')
while uo.gethp('finditem')>20
 uo.findtype(kykla,'-1','ground')
 wait(100)
 if uo.gethp('finditem')<19 then
  uo.warmode(0)
 endif
wend
uo.warmode(0)
endsub

sub heal()
var moy
var BandBL ='0x0E20'
uo.warmode(0)
UO.Disarm()

uo.FindType('0x1008','-1')
moy=uo.GetSerial('finditem')
UO.WaitTargetObject(Moy)
UO.UseType(BandBL)

uo.deletejournal()
uo.findtype(kykla,'-1','ground')
while not uo.injournal("does not need")
 uo.warmode(0)
 CheckLag()
 uo.waittargetobject('finditem')
 uo.usetype(bints)
 wait(4000)
 uo.findtype(kykla,'-1','ground')
 wend
  endsub
 


Sub CheckLag()
    UO.DeleteJournal()
    UO.Click('backpack')
    repeat
       wait(50)
    until UO.InJournal('backpack')
end sub