Page 1 of 1
Помогите подправить Bowcraft
Posted: 2011-06-08 13:12:03
by son
Народ помогите подправить скриптик чар не хочет крафтить луки загорается последняя менюшка крафта там где тупо остается только на лук нажать ,но почему то не нажимается.Помогите убогому ,спасибо
Code: Select all
sub BowCraft()
While UO.Count('0x1BDD', '0x0000')>=7 #??? ??? ????? ???????
UO.UseType('0x0F51') # Dagger ?????????? ??????? ?????
UO.WaitTargetType('0x1BDD', '0x0000') #????? ?????? ?? ????? ?? ????
UO.Waitmenu('What do you want to carve the','Bows & Crossbows','Bows & Crossbows','bow' ) # ??? ??????? ?????? ??? ?????? ?? ?? ??? ????
wait(5000)
Wend
UO.Print("End log")
end sub
Re: Помогите подправить Bowcraft
Posted: 2011-06-08 13:16:00
by Mirage
скрипт вверх тормашками и не понятной шнягой справа за коментами.
Code: Select all
sub BowCraft()
While UO.Count('0x1BDD', '0x0000')>=7 #??? ??? ????? ???????
UO.Waitmenu('What do you want','Bows','Bows','bow' ) # ??? ??????? ?????? ??? ?????? ?? ?? ??? ????
UO.WaitTargetType('0x1BDD', '0x0000') #????? ?????? ?? ????? ?? ????
UO.UseType('0x0F51') # Dagger ?????????? ??????? ?????
wait(5000)
Wend
UO.Print("End log")
end sub
меню проверь так должно работать
Re: Помогите подправить Bowcraft
Posted: 2011-06-08 13:35:00
by son
Mirage wrote:скрипт вверх тормашками и не понятной шнягой справа за коментами.
Code: Select all
sub BowCraft()
While UO.Count('0x1BDD', '0x0000')>=7 #??? ??? ????? ???????
UO.Waitmenu('What do you want','Bows','Bows','bow' ) # ??? ??????? ?????? ??? ?????? ?? ?? ??? ????
UO.WaitTargetType('0x1BDD', '0x0000') #????? ?????? ?? ????? ?? ????
UO.UseType('0x0F51') # Dagger ?????????? ??????? ?????
wait(5000)
Wend
UO.Print("End log")
end sub
меню проверь так должно работать
Пишет постоянно what do you want to use this from?
и не крафтит ничего
Re: Помогите подправить Bowcraft
Posted: 2011-06-08 14:45:23
by Mirage
Ответ прямо над твоей фразой. В моем последнем предложении. Смотри меню.
У меня на моем шарде меню для простых луков вот такое.
UO.WaitMenu ('What do you', 'Bow')
У тебя видимо двухслойное. Проверяй правильность всего написанного.
Re: Помогите подправить Bowcraft
Posted: 2011-06-08 14:55:56
by son
Mirage wrote:Ответ прямо над твоей фразой. В моем последнем предложении. Смотри меню.
У меня на моем шарде меню для простых луков вот такое.
UO.WaitMenu ('What do you', 'Bow')
У тебя видимо двухслойное. Проверяй правильность всего написанного.
Ну тогда у меня написано верно менюшки у меня именно так называются и вылетают в том порядке который я написал.Он доходит до выбора где нужно только тыркнуть на лук и вуаля.Однако не тыркает.
Вот первая менюшка:
http://www.imagepost.ru/?v=08.06_1.pngВторая:
http://www.imagepost.ru/?v=08.06_2.png
Re: Помогите подправить Bowcraft
Posted: 2011-06-08 15:13:52
by Incorrect User
UO.Waitmenu('What do you want','Bows','Bows','bow' )
Bow с большой буквы напиши попробуй.
Re: Помогите подправить Bowcraft
Posted: 2011-06-08 15:18:03
by son
Incorrect User wrote:UO.Waitmenu('What do you want','Bows','Bows','bow' )
Bow с большой буквы напиши попробуй.
Епа))))))))))))))Точняк все работает теперь)))))))))))Спасибо большое
Рабочий вариант:
Code: Select all
sub BowCraft()
While UO.Count('0x1BDD', '0x0000')>=7 #??? ??? ????? ???????
UO.Waitmenu('What do you want','Bows','Bows','Bow' ) # ??? ??????? ?????? ??? ?????? ?? ?? ??? ????
UO.WaitTargetType('0x1BDD', '0x0000') #????? ?????? ?? ????? ?? ????
UO.UseType('0x0F51') # Dagger ?????????? ??????? ?????
wait(5000)
Wend
UO.Print("End log")
end sub
Re: Помогите подправить Bowcraft
Posted: 2011-06-13 00:31:19
by Incorrect User
Нужно чуть расширить скрипт чтобы выкидывал луки из пака в треш и брал логи с пола. Но что-то невыходит:
Code: Select all
sub Bow()
var time
var mess = 'put|fail|skill'
while not FindLogs() == 0
if uo.count('0x1bdd')>6 then
uo.deletejournal()
time = uo.timer()
uo.waitmenu('What do you want','Bows','Bows','Bow')
uo.waittargettype('0x1bdd')
uo.usetype('0x0F51')
repeat
wait (50)
until uo.injournal(mess) or time + 60 < uo.timer()
else
Trash()
Drag()
endif
wend
uo.print('Кончились логи!')
end sub
sub Trash()
var trash = ('0x6666666')
while uo.count('0x13b2')>=1
uo.findtype('0x13b2','backpack')
uo.moveitem('finditem',1,trash)
wait(200)
wend
uo.print('Все луки выброшены!')
endsub
sub Drag()
var Box = '0x7777777'
if FindLogs() == 1 then
uo.findtype('0x1bdd','0x0000',Box)
uo.moveitem('finditem',2500,'backpack')
wait(500)
else
uo.findtype('0x1bdd','0x0000',Box)
uo.moveitem('finditem',0,'backpack')
wait(500)
endif
endsub
sub FindLogs()
var Logs = '0x1bdd' # Type логов
var LogsC = '0x0000' # Color логов
var Box = '0x7777777' # ID сундука
uo.findtype(Logs,LogsC,Box)
If UO.FindCount() == 0 Then
return 0
endif
uo.findtype(Logs,LogsC,Box)
If UO.FindCount() >= 2500 Then
return 1
Endif
uo.findtype(Logs,LogsC,Box)
If UO.FindCount() <= 2500 Then
return 2
Endif
endsub
Скрипт весь не тестил, пока только нужно поправить sub Trash, нехочет выкидывать луки в трешку, по паку пару раз с места на место перетаскивает и потом конлост

Re: Помогите подправить Bowcraft
Posted: 2011-06-13 01:11:17
by ZeroDX
если в uo.moveitem() 'trash' сделать без кавычек, мб и заработает
Re: Помогите подправить Bowcraft
Posted: 2011-06-13 01:15:47
by Incorrect User
если в uo.moveitem() 'trash' сделать без кавычек, мб и заработает
Непомогло. И когда запускаю sub Bow пишет сразу Кончились логи! хотя на полу логов достаточно.
Re: Помогите подправить Bowcraft
Posted: 2011-06-13 01:42:46
by ZeroDX
попробуй тут
поставить "больше ноля"
Re: Помогите подправить Bowcraft
Posted: 2011-06-13 01:58:05
by Incorrect User
поставить "больше ноля"
Работает, а почему оно немогло определить
>6?. Теперь, пока, только с трешем проблема осталась.
Re: Помогите подправить Bowcraft
Posted: 2011-06-13 10:00:57
by ZeroDX
ну еще moveitem'у нужно 3 параметра, 1-ый чё двигаем, 2-ой сколько двигаем, 3-ий куда двигаем), у тебя второго нету
Re: Помогите подправить Bowcraft
Posted: 2011-06-13 20:39:49
by Mirage
отдохнул один день а вы уж тут "разЪобщались"
Итак...
Code: Select all
sub Bow()
var time
var mess = 'put|fail|skill'
while not FindLogs() == 0
if uo.count('0x1bdd')<7 then ; вот так будет работать.
Trash()
Drag()
else
uo.deletejournal()
time = uo.timer()
uo.waitmenu('What do you want','Bows','Bows','Bow')
uo.waittargettype('0x1bdd')
uo.usetype('0x0F51')
repeat
wait (500) ; паузы меньше 100 делать не стоит дабы не вызывать лишние ошибки в работе скрипта
until uo.injournal(mess) or time + 60 < uo.timer()
endif
wend
uo.print('Кончились логи!')
end sub
sub Trash()
var trash = '0x6666666' ; скобки не нужны
while uo.count('0x13b2') ; >=1 не нужно писать если треба определить количество больше нуля
uo.findtype('0x13b2','backpack')
uo.moveitem('finditem',0,trash) ; в данном случае 1 не обязательно так как предметы и так по одному
wait(500) ; паузу лучше увеличить - средняя пауза перемещения предмета на серверах 300-500
wend
uo.print('Все луки выброшены!')
endsub
; ниже я вообще ничего не понял, зачем такое городить?
sub Drag()
var Box = '0x7777777'
if FindLogs() == 1 then
uo.findtype('0x1bdd','0x0000',Box)
uo.moveitem('finditem',2500,'backpack')
wait(500)
else
uo.findtype('0x1bdd','0x0000',Box)
uo.moveitem('finditem',0,'backpack')
wait(500)
endif
endsub
sub FindLogs()
var Logs = '0x1bdd' # Type логов
var LogsC = '0x0000' # Color логов
var Box = '0x7777777' # ID сундука
uo.findtype(Logs,LogsC,Box)
If UO.FindCount() == 0 Then
return 0
endif
uo.findtype(Logs,LogsC,Box)
If UO.FindCount() >= 2500 Then
return 1
Endif
uo.findtype(Logs,LogsC,Box)
If UO.FindCount() <= 2500 Then
return 2
Endif
endsub
Давайте посмотрим мой пример:
Code: Select all
VAR Container = '0x40B5267F' ;айрон, рыба, инструменты, может быть равен Sunduk 1
VAR Trash = '0x40B52599' #трешка#
VAR log = '0x1BDD'
VAR Dagger = '0x0F51'
VAR Bow = '0x13B1' #лук#
VAR spool = '0x0FA0' #нитки#
VAR LastTimer, timemove
var msg ='You put|положили|fail|не удалось|You broke|сломали'
var printcolour = '1069'
sub Bowcraft()
var menu = "waitmenu 'What do you' 'Bows' 'Bows' 'Bow'"
WHILE NOT UO.Dead()
GET(log, Container, 10, 800) ; если логов меньше 10 добираем 800
GET(spool, Container, 1, 100) ; если ниток меньше 1 добираем 100
Repeat
UO.DeleteJournal()
LastTimer=UO.Timer()
UO.exec( menu )
UO.waittargettype ( log )
UO.Usetype( Dagger )
repeat
wait( 100 )
until UO.InJournal( msg ) or UO.Timer()>LastTimer+60
Until UO.Count( Bow )>0
checklag()
PUT(Bow , Trash)
WEND
end sub
Sub GET(item, cont, min, max) ; предмет, откуда, минимум, сколько брать
If UO.Count( item ) < min Then
UO.FindType( item, '-1', cont )
if UO.FindCount() > 0 Then
uo.charprint(printcolour,'Сырья в сундуке: '+Str(UO.GetQuantity('finditem')) )
itemM=UO.GetSerial('finditem')
timemove=UO.Timer()
while UO.ContainerOf(itemM)==cont && timemove+20>UO.Timer()
uo.moveitem('finditem', max, 'backpack')
wait(300)
wend
else
uo.charprint(printcolour, 'Полностью кончилось сырье' )
UO.CancelMenu()
MyTerminate()
endif
Endif
end sub
Sub PUT(item, cont)
while UO.Count( item ) > 0
UO.FindType( item, -1, -1 )
itemM=UO.GetSerial('finditem')
timemove=UO.Timer()
UO.MoveItem( 'finditem', 0, cont )
while UO.ContainerOf(itemM)=='my' && timemove+20>UO.Timer()
wait(300)
wend
wend
end sub
Sub DeleteJournal(msg)
While UO.InJournal(msg)
UO.SetJournalLine(UO.InJournal(msg) - 1,'')
wend
endsub
Sub MyTerminate()
UO.Set('quiet','1')
UO.CancelMenu()
UO.IgnoreReset()
UO.Set('quiet','0')
UO.Exec('terminate all')
end sub
Sub checklag()
DeleteJournal("ackpack")
UO.Click("backpack")
repeat
wait(100)
until UO.InJournal("ackpack")
end sub
1) все предметы прописаны выше скрипта - проще редактировать если чтото понадобиться изменить.
2) одна процедура для забора сырья, одна процедура для скидывания готового товара. Куда и откуда - как пропишешь туда и кинет.
3) если сырья будет меньше минимума скрипт встанет.
PS мой скрипт это кусок из большого файла. Вроде скопировал без косяков. Если будут ошибки - пишите.
Re: Помогите подправить Bowcraft
Posted: 2011-06-15 23:39:21
by Incorrect User
Вообщем следуя советам вышла такая штука:
Code: Select all
#############################################################################
var Box = '0x666666'
var Bow = '0x13b2'
var Trash = '0x777777'
var Logs = '0x1bdd'
var LogsC = '0x0000'
var Dagger = '0x0F51'
sub Bow()
var Time
var Mess = 'put|fail'
while not uo.dead()
if uo.count(Logs)>6 then
uo.deletejournal()
Time = uo.timer()
uo.waitmenu('What do you want','Bows','Bows','Bow')
uo.waittargettype(Logs)
uo.usetype(Dagger)
repeat
wait (100)
until uo.injournal(Mess) or Time + 60 < uo.timer()
else
Trash()
Drag()
endif
wend
end sub
sub Trash()
while uo.count(Bow)>0
uo.findtype(Bow,'backpack')
uo.moveitem('finditem',0,Trash)
wait(500)
wend
uo.print('Все луки выброшены!')
endsub
sub Drag()
uo.findtype(Logs,LogsC,Box)
if uo.count()>0 then
uo.moveitem('finditem',2500,'backpack')
wait(500)
else
uo.print('Кончились логи!')
uo.playwav('C:\Program Files\UltimaOnline\Injection\Alarm.wav')
uo.exec('terminate all')
endif
endsub
#############################################################################
Еще не тестил, и кстати, если не ошибаюсь, то так
Code: Select all
uo.moveitem('finditem',0,trash) ; в данном случае 1 не обязательно так как предметы и так по одному
некатит, я вроде пробовал ставить 0 и луки не трешил, ставил 1 и норм, перепроверю отпишусь.
Re: Помогите подправить Bowcraft
Posted: 2011-06-17 14:21:49
by son
Incorrect User wrote:Вообщем следуя советам вышла такая штука:
Code: Select all
#############################################################################
var Box = '0x666666'
var Bow = '0x13b2'
var Trash = '0x777777'
var Logs = '0x1bdd'
var LogsC = '0x0000'
var Dagger = '0x0F51'
sub Bow()
var Time
var Mess = 'put|fail'
while not uo.dead()
if uo.count(Logs)>6 then
uo.deletejournal()
Time = uo.timer()
uo.waitmenu('What do you want','Bows','Bows','Bow')
uo.waittargettype(Logs)
uo.usetype(Dagger)
repeat
wait (100)
until uo.injournal(Mess) or Time + 60 < uo.timer()
else
Trash()
Drag()
endif
wend
end sub
sub Trash()
while uo.count(Bow)>0
uo.findtype(Bow,'backpack')
uo.moveitem('finditem',0,Trash)
wait(500)
wend
uo.print('Все луки выброшены!')
endsub
sub Drag()
uo.findtype(Logs,LogsC,Box)
if uo.count()>0 then
uo.moveitem('finditem',2500,'backpack')
wait(500)
else
uo.print('Кончились логи!')
uo.playwav('C:\Program Files\UltimaOnline\Injection\Alarm.wav')
uo.exec('terminate all')
endif
endsub
#############################################################################
Еще не тестил, и кстати, если не ошибаюсь, то так
Code: Select all
uo.moveitem('finditem',0,trash) ; в данном случае 1 не обязательно так как предметы и так по одному
некатит, я вроде пробовал ставить 0 и луки не трешил, ставил 1 и норм, перепроверю отпишусь.
Скрипт работает хорошо,скажите а можно сделать чтобы перс луки не в треш кидал а себе под ноги ,на моем шарде все то что из дерева и под ноги попадается сразу ломается)))Так что мне треш в принципе не нужен))
Re: Помогите подправить Bowcraft
Posted: 2011-06-17 14:45:37
by Mirage
Ну вместо ID трешки напиши 'ground'
Помоему ломается когда ты наступишь на объект а не когда бросишь под себя, хотя ХЗ.
PS если будешь много кидать на землю, будет перенасыщение сферы, в логе отразится ошибка и к тебе прилетят гости. С банхаммером.
Re: Помогите подправить Bowcraft
Posted: 2011-06-18 00:37:40
by Incorrect User
Помоему ломается когда ты наступишь на объект а не когда бросишь под себя, хотя ХЗ.
PS если будешь много кидать на землю, будет перенасыщение сферы, в логе отразится ошибка и к тебе прилетят гости. С банхаммером.
Там просто лук, простой, под ноги кидаеш и он сразу же ломаеться. А от перенасыщения есть защита - не более, помоему 16 итемов на 1 тайл, больше положить недает.
Re: Помогите подправить Bowcraft
Posted: 2011-06-18 12:40:57
by son
Mirage wrote:Ну вместо ID трешки напиши 'ground'
Помоему ломается когда ты наступишь на объект а не когда бросишь под себя, хотя ХЗ.
PS если будешь много кидать на землю, будет перенасыщение сферы, в логе отразится ошибка и к тебе прилетят гости. С банхаммером.
Спасибо,теперь полный порядок:)
Re: Помогите подправить Bowcraft
Posted: 2011-06-18 12:41:33
by son
Incorrect User wrote:Помоему ломается когда ты наступишь на объект а не когда бросишь под себя, хотя ХЗ.
PS если будешь много кидать на землю, будет перенасыщение сферы, в логе отразится ошибка и к тебе прилетят гости. С банхаммером.
Там просто лук, простой, под ноги кидаеш и он сразу же ломаеться. А от перенасыщения есть защита - не более, помоему 16 итемов на 1 тайл, больше положить недает.
Это правда.