Page 1 of 1
Пойзон
Posted: 2005-06-21 19:00:17
by Boris
Пытался написать скрипт но как то затрудняюсь в середине скрипта
помогите пожалуйста
Code: Select all
sub Poison()
var strela =
var binti =
var blbinti =
var butpus =
var butjad =
var sklad =
while UO.SkillVal( 'Poisoning' ) < 100
UO.FindType( strela, -1, 1 )
UO.Grab( '1', 'finditem' )
wait( 2000 )
UO.FindType( butjad, -1, 1 )
If UO.FindCount() == 0 Then
UO.Print("Bottle of Poison not found")
return
Endif
############################################################################
#Сюда надо вставить скрипт чтобы чар начинал бутлкой яда пойзонить 1-ую стрелу
#переложенную перед этим на пол(или в бекпак без разницы), в случае удачного запойзонивания
# надо чтобы чара сварил новую бутылку яда а дальше бы пошла проверка хп и перекладыания стрелы...
# если же неудачно то чтобы пойзонил снова стрелу
###############################################################################
if UO.Life < 80 then
If UO.Count( binti ) < 20 Then
UO.Findtype( blbinti )
If UO.FindCount() > 0 Then
UO.MoveItem( 'finditem', 0, Sklad )
wait(1000)
CheckLag()
Endif
UO.Findtype( bandag, -1, Sklad )
If UO.FindCount() > 0 Then
UO.Grab( '100', 'finditem' )
wait(1000)
CheckLag()
Endif
Endif
While UO.Life < 100
UO.Bandageself()
wait(4000)
CheckLag()
Wend
Endif
wait(2000)
wend
wait(50)
endsub
Sub CheckLag()
DeleteJournal( 'backpack' )
UO.Click( 'backpack' )
repeat
wait(100)
until UO.InJournal( 'backpack' )
endsub
Posted: 2005-06-21 19:23:17
by I'm
Code: Select all
while UO.SkillVal( 'Poisoning' ) < 100
Если ты так намерен качатс до гыма то не 100 а 1000 И если значение реал от нериала различно то так
Code: Select all
while UO.SkillVal('Poisoning',1)<1000
Должен признатся дальше несмотрел.
Хм а скрипт эдреда непробовал вроде по запросу чем-то похоже?
http://yoko.netroof.net/forum/viewtopic.php?t=704
Posted: 2005-06-21 19:24:44
by Boris
он у него похож, но там нет функции чтобы варил бутылку пойзона, у него они уже готовы
Posted: 2005-06-21 20:46:33
by I'm
Boris wrote:он у него похож, но там нет функции чтобы варил бутылку пойзона, у него они уже готовы
А ты добавь и выложи тут

Posted: 2005-06-21 21:26:22
by Boris
I'm wrote:Boris wrote:он у него похож, но там нет функции чтобы варил бутылку пойзона, у него они уже готовы
А ты добавь и выложи тут

ну ладно завтра попробую что нить сделать
Posted: 2005-06-22 00:13:18
by I'm
А мы тебе поможем малек

Posted: 2005-06-22 14:13:38
by Boris
I'm wrote:А мы тебе поможем малек

вот сделал что смог, подскажите что не так, или что можно исправить. В ходе написания скрипта появилась токо один вопрос, он указан в тексте самого кода, помогите плиз
Code: Select all
sub Poison()
var strela = '0x0F3F'
var stupka =
var NS = '0x0F88'
var binti = '0x0E21'
var blbinti = '0x0E20'
var butpus = '0x0F0E'
var butjad =
var sklad =
var ms1 = 'Select a poison potion'
UO.Exec('set finddistance 2')
while UO.SkillVal( 'Poisoning' ) < 1000
CheckLag()
UO.FindType( strela, -1, 1 ) ;ищем стрелу на полу
UO.Grab( '1', 'finditem' )
wait(1000)
UO.FindType('butjad') ;ищем бутылку яда
UO.DeleteJournal()
CheckLag()
repeat
UO.useskill('Poisoning', 'butjad') ;начинаем пойзонить (для этого сначала надо заюзать скил пойзон, потом укзаать на бутылку яда
repeat ; а потом указать что будем пойзонить
wait(100)
until UO.InJournal('ms1')
UO.WaitTargetType('strela')
repeat
wait(100)
############################################################
until UO.Count(strela)==1 ; пойзоним до тех пор пока в бек паке не окаджется хотя бы одна стрела запойзоненная
вот с эти есть небольшая проблема, я не знаю как сделать чтобы он пойзонил до тех пор пока в бекпаке не окажется хотя бы одна запойзоненная стрела, пробовал делать по типу но он оказался один и тот же как у запойзоненной так и простой в журнале в случае удачного пойзона нет ни одной надписи. Вообщем я в затруднеении
###############################################################################
CheckLag()
UO.FindType( otravstrela, -1, 'backpack' )
UO.MoveItem( 'finditem', 0, sklad ) ; перекладываем запойзоненую стрелу в сумку
wait(1000)
while UO.Count(butjad) < 4 ;смотри кол-во яда в бекпаке, если меньше 4 то варим
UO.FindType( NS, -1, 1 )
UO.WaitTargetType(NS)
UO.Usetype('stupka')
wait(200)
UO.WaitMenu('What','Greater_Poison')
repeat
wait(100)
until UO.Count(butjad) == 4 ; до тех пор пока кол-во яда не будет равно 4
wend
CheckLag()
if UO.Life < 80 then ; смотрим на хиты, если <80 проверяем не кончились ли бинты
If UO.Count( binti ) < 20 Then
UO.Findtype( blbinti )
If UO.FindCount() > 0 Then
UO.MoveItem( 'finditem', 0, Sklad )
wait(1000)
CheckLag()
Endif
UO.Findtype( bandag, -1, Sklad )
If UO.FindCount() > 0 Then
UO.Grab( '100', 'finditem' )
wait(1000)
CheckLag()
Endif
Endif
While UO.Life < 100
UO.Bandageself()
wait(4000)
CheckLag()
Wend
Endif
wend
endsub
Sub CheckLag()
DeleteJournal( 'backpack' )
UO.Click( 'backpack' )
repeat
wait(100)
until UO.InJournal( 'backpack' )
endsub
Posted: 2005-06-23 19:02:21
by Grin
ты лутше расскажи как ты сам определяешь что стрела отравлена? наличном опыте?;)
пойзонинг всегда удачный? а если есть не удача то есть ли какоето сообщение??? полюбому должна быть инфа...
Posted: 2005-06-23 19:47:13
by I'm
Ну еще очень хочется узнать что за шард
Boris добро пожаловать в личку

Posted: 2005-06-23 19:54:56
by Boris
Grin wrote:ты лутше расскажи как ты сам определяешь что стрела отравлена? наличном опыте?;)
пойзонинг всегда удачный? а если есть не удача то есть ли какоето сообщение??? полюбому должна быть инфа...
если она отрвлена то просто меняет цвет с простого на зеленый, и на ней пишеться не просто arrow a зщшыщт arrow, пойзонит с физлами есть два варианта физла:
1 просто физланет
2 еще и себя отравит, при этом надписи разные
Posted: 2005-06-23 20:25:46
by I'm
Code: Select all
uo.findtype("type","color","where")
Posted: 2005-06-24 19:02:10
by Boris
Вообщем такая проблема, после выбора яда не находится стрела на полу и следовательно скрипт сбивает
пс суть такова: сначала находим в мешке стрелы, перетаскиваем на пол 1 стрелу, юзаем скил пойзон прицелом показываем на бутылку яда, потом прицелом показываем на стрелу, в случае удачного пойзона перекладываем запойзоненную стрелу из бекпака в мешок на полу. Далее смотрим скоко осталось бутылок пойзона, если меньше 4 то начинаем варить их до тех пор пока их не станет 4. Далее смотри не уменьшилось ли у нас хп если нет то все начинаем заново
Code: Select all
sub Poison()
var strela = '0x0F3F'
var stupka = '0x4D914CF3'
var NS = '0x0F88'
var binti = '0x0E21'
var blbinti = '0x0E20'
var butpus = '0x0F0E'
var butjad = '0x0F0A'
var sklad = '0x525AED3F'
var sklad1 = '0x4D1E3814'
var ms1 = 'Select a poison potion'
UO.Exec('set finddistance 2')
while UO.SkillVal( 'Poisoning' ) < 1000
CheckLag()
UO.FindType( 'strela', '0x0044', 'sklad' ) ;ищем стрелу в сумке
uo.moveitem ( 'finditem', '1', 'ground')
UO.print('Nawli strelu i kinuli na pol')
wait(1000)
UO.FindType('butjad') ;ищем бутылку яда
UO.print('Nawli Jad')
UO.DeleteJournal()
CheckLag()
repeat
UO.FindType('0x0F0A', '0x0000', 'backpack' )
wait(100)
UO.useskill('Poisoning', 'finditem') ;начинаем пойзонить (для этого сначала надо заюзать скил пойзон, потом укзаать на бутылку яда
repeat ; а потом указать что будем пойзонить
wait(100)
#################################################################
# В этом месте почему не начинается пойзонить стрелу
# until UO.InJournal('Select an item.')
uo.waittargetground( 'finditem' )
UO.FindType('strela', '0x0044', 'ground' )
wait(100)
; uo.waittargetground( 'finditem' )
UO.print('poisonim strelu')
repeat
wait(100)
until UO.Count(strela)==1 ; пойзоним до тех пор пока в бек паке не окаджется хотя бы одна стрела запойзоненная
until UO.Count(strela)==1
CheckLag()
UO.FindType( 'strela', '0x0044', 'backpack' )
UO.MoveItem( 'finditem', '0', 'sklad1' ) ; перекладываем запойзоненую стрелу в сумку со стрелами
wait(1000)
while UO.Count(butjad) < 4 ;смотри кол-во яда в бекпаке, если меньше 4 то варим
UO.FindType( 'NS', '-1', 'sklad' )
UO.WaitTargetType(NS)
UO.Usetype('stupka')
wait(200)
uo.automenu('Select a potion to make','Greater_Poison')
repeat
wait(100)
until UO.Count(butjad) == 4 ; до тех пор пока кол-во яда не будет равно 4
wend
CheckLag()
if UO.Life < 80 then ; смотрим на хиты, если <80 проверяем не кончились ли бинты
If UO.Count( binti ) < 20 Then
UO.Findtype( 'blbinti' )
If UO.FindCount() > 0 Then
UO.MoveItem( 'finditem', '0', 'Sklad' )
wait(1000)
CheckLag()
Endif
UO.Findtype( 'binti', '-1', 'Sklad' )
If UO.FindCount() > 0 Then
UO.Grab( '100', 'finditem' )
wait(1000)
CheckLag()
Endif
Endif
While UO.Life < 100
UO.Bandageself()
repeat
wait(100)
until UO.InJournal('You have cured your patient completely') and UO.InJournal('You place a bloody bandage in your backpack')
CheckLag()
Wend
Endif
wend
endsub
Sub CheckLag()
UO.DeleteJournal()
UO.Click( 'backpack' )
repeat
wait(100)
until UO.InJournal( 'backpack' )
endsub