Page 1 of 1

Спаринг

Posted: 2010-10-19 20:43:41
by sluntai
Народ вот есть скриптик на спаринг проблема в том что чар начинает хилить апонента после первых 5-6 ударов, можно как нить подправить?Спасибо.

Code: Select all

var kykla='0x0191' ;тип человека -) 
var orygie='0x0F51';тип оружия -)
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
uo.useskill('Spirit Speak')
endsub
 


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

Re: Спаринг

Posted: 2010-10-19 21:34:18
by Андрюха из Одессы
Сколько хп остается у второго чара?

Re: Спаринг

Posted: 2010-10-20 05:09:56
by sluntai
Андрюха из Одессы wrote:Сколько хп остается у второго чара?

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

Re: Спаринг

Posted: 2010-10-20 05:53:25
by Андрюха из Одессы

Code: Select all

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

sub train()
uo.findtype(kykla,'-1','ground')
while not uo.dead()
uo.findtype(kykla,'-1','ground')
if uo.gethp('finditem')>uo.gethp('finditem')/3 then
  atack()
else
  heal()
endif
uo.warmode(0)
wait(100)
uo.useskill('Spirit Speak')
wait(3500)
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')>uo.gethp('finditem')/3
uo.findtype(kykla,'-1','ground')
wait(100)
if uo.gethp('finditem')<uo.gethp('finditem')/3 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



Попробуй так. Если вылезут ошибки или еще что-то, то пиши. Если я не туплю, то у оппонента будет оставаться 1/3 здоровья.

Re: Спаринг

Posted: 2010-10-20 08:36:17
by Mirage
инжект не определяет жизни как они заданы со стороны сервера (у человека 150, у дракона 10000, у коровы 80). Он видит у всех НПС 50 жизней.
Вариант с делением на 3 должен сработать. Единственный минус - на некоторых серверах почему-то бой длится даже с выключенным боевым режимом. Тогда нужно отойти от цели на шаг.

Re: Спаринг

Posted: 2010-10-20 09:20:07
by Андрюха из Одессы
Mirage wrote:инжект не определяет жизни как они заданы со стороны сервера (у человека 150, у дракона 10000, у коровы 80). Он видит у всех НПС 50 жизней.

Я тоже об этом думал и полез читать документацию.
Офф. документация гласит:

uo.GetHP([object]) - Возвращает параметр обьекта object (по умолчанию - персонажа игрока) - здоровье персонажа. Для другого персонажа кроме игрока обычно не имеет смысла абсолютное значение здоровья, так как выражается в абстрактных единицах, важно только отношение к максимальному здоровью.

Если честно, то понял её очень абстрактно :lol:. Вот и пришла мысль с делением хп. На мой взгляд, самый легкий способ.
Mirage wrote:Единственный минус - на некоторых серверах почему-то бой длится даже с выключенным боевым режимом. Тогда нужно отойти от цели на шаг.


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

Re: Спаринг

Posted: 2010-10-20 15:59:10
by Mirage
самые быстрые и нормальные способы качать хилл с боевыми:
1) на кукле мульто чара - он не ходит, дает сдачи (качается паринг), хилит(ся).
2) на чужой лошади (мульт кричит ALL STOP на повторе с секундой)

Но за это всего скорее убьют ГМы.

Re: Спаринг

Posted: 2010-10-20 17:01:53
by Андрюха из Одессы
На форуме есть хороший скрипт, когда 2 чара кричат go и stop. Я его переделывал под uo.skillval. В итоге, чары долбили друг друга 2-3 дня, пока гма по-боевым не получали. Жаль, что винт сгорел. Если буду играть, то восстановлю и закину на форум.

З.Ы. Ну как, перешел на опенсорс ? :)

Re: Спаринг

Posted: 2010-10-20 19:49:20
by sluntai
Андрюха из Одессы wrote:

Code: Select all

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

sub train()
uo.findtype(kykla,'-1','ground')
while not uo.dead()
uo.findtype(kykla,'-1','ground')
if uo.gethp('finditem')>uo.gethp('finditem')/3 then
  atack()
else
  heal()
endif
uo.warmode(0)
wait(100)
uo.useskill('Spirit Speak')
wait(3500)
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')>uo.gethp('finditem')/3
uo.findtype(kykla,'-1','ground')
wait(100)
if uo.gethp('finditem')<uo.gethp('finditem')/3 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



Попробуй так. Если вылезут ошибки или еще что-то, то пиши. Если я не туплю, то у оппонента будет оставаться 1/3 здоровья.

Сейчас проверю:)

Re: Спаринг

Posted: 2010-10-20 19:55:54
by sluntai
Теперь не хилит совсем

Re: Спаринг

Posted: 2010-10-20 21:11:44
by Андрюха из Одессы
Хмм...Чар вообще не начинает хилить или кидает бинт, но ничего не происходит? Пиши подробно.

Re: Спаринг

Posted: 2010-10-20 21:35:48
by sluntai
Да нет,просто забивает НПСа насмерть и усе

Re: Спаринг

Posted: 2010-10-20 22:22:18
by Андрюха из Одессы
Понял в чем ошибка. Сейчас исправлю, но проверять будешь сам. У меня ультимы нету.

Re: Спаринг

Posted: 2010-10-20 22:55:53
by Андрюха из Одессы
sluntai wrote:
Андрюха из Одессы wrote:

Code: Select all

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

sub train()
uo.findtype(kykla,'-1','ground')
while not uo.dead()
uo.findtype(kykla,'-1','ground')
if uo.gethp('finditem')>uo.getmaxhp('finditem')/3 then
  atack()
else
  heal()
endif
uo.warmode(0)
wait(100)
uo.useskill('Spirit Speak')
wait(3500)
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')>uo.getmaxhp('finditem')/3
uo.findtype(kykla,'-1','ground')
wait(100)
if uo.gethp('finditem')<uo.getmaxhp('finditem')/3 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



Попробуй так. Если вылезут ошибки или еще что-то, то пиши. Если я не туплю, то у оппонента будет оставаться 1/3 здоровья.

Сейчас проверю:)


Теперь должно быть правильно.
Идея с делением ХП на 3, была правильной. Но сравнивать текущее ХП, с текущим ХП разделенным на 3, бред сивой кобылы. Грубо говоря, должна была быть точка остановки, когда у нпц было 33% или меньше. А скрипт все делал правильно. Он смотрел что 33%, больше чем 33% разделить на три и продолжал лупить НПЦ.Теперь скрипт будет делать проверку относительно максимального ХП разделенного на 3.

Пипец.... математика первого класса. :oops: :oops: :oops: .... Если бы моя первая учительница это увидела, то пошла бы в министерство образования и добровольно отдала диплом о высшем педагогическом образовании.

Re: Спаринг

Posted: 2010-10-21 02:52:25
by Андрюха из Одессы
Попросил знакомого проверить, результат как и ожидался. На сфере мобы и нпц продолжают бить, когда ты собираешься их хилить и хил частенько слетает.

Re: Спаринг

Posted: 2010-10-21 14:09:29
by sluntai
Да спасибо все работает)