Page 1 of 1
бональная долбежка по камням.
Posted: 2006-02-14 21:26:17
by Dron D.
накидал тут скриптик для удара по камню, который мы указываем таргетом.
Капаем в этом камне, пока не будет мессаги, что нету больше там нечего. Повторяем капание пока в камне что-то есть.
Code: Select all
sub catorg()
var tshovel='0x0F39'
uo.print('show the stone >>>')
uo.exec('addobject stone')
while uo.targeting()
wait(100)
wend
uo.deletejournal()
while not uo.injournal("No mine") or not uo.injournal("Try mining")
repeat
uo.findtype('stone','-1','ground')
wait(100)
uo.usetype(tshovel)
until uo.injournal("You loosen") or uo.injournal("You put")
wend
end sub
Скрипт предлагает мне тыкнуть на камень таргетом, но не находит его сам и моментально пишет тоже самое...
Code: Select all
Where do you want to use the shovel?
Targeting Cancelled
Posted: 2006-02-14 21:57:59
by agem
Не UO.FindType('stone'...), а UO.WaitTargetObject('stone')!
Posted: 2006-02-15 12:49:26
by Dron D.
Тот же эффект

Posted: 2006-02-15 13:14:20
by GrayLord
все верно. на сфере, если мы не закончили действие с объектом, и повторно его используем, то первое действие отменяется и все идет сначала, потому и таргет отменяется и кидается новый, пока мы только начали использовать предмет повторно.
Posted: 2006-02-15 13:17:56
by Dron D.
Все верно. Только как бы ето все на скрипты перевести

Posted: 2006-02-15 13:18:43
by GrayLord
и вообще, весьма странно все написано... алгоритм скрипта неверен в принципе.
должно быть так:
1)ищем, что копать
2)устанавливаем таргет на найденое
3)используем предмет
4)ждем, пока закончится действие
Posted: 2006-02-15 13:24:06
by Dron D.
Возможно что не верен алгоритм.
Я только учусь писать скрипты, на основе 5 уроков по написанию скриптов, очень сложно написать правильный скрипт.
Если вам не сложно можете ли вы написать такой скрипт в правильном алгоритме?
1-таргетом указываю на цель копания(камень на земле)
2-капает в етом камне пока не выкапает все.
Posted: 2006-02-15 14:14:11
by GrayLord
не вдаваясь в подробности, скажу, что такое вот уже ближе к теме. изменения минимальны:
Code: Select all
sub catorg()
var tshovel='0x0F39'
uo.print('show the stone >>>')
uo.exec('addobject stone')
while uo.targeting()
wait(100)
wend
uo.deletejournal()
repeat
repeat
uo.waittargetobject('stone')
uo.usetype(tshovel)
repeat
wait(100)
until uo.injournal("You loosen") or uo.injournal("You put")
until uo.injournal("No mine") or uo.injournal("Try mining")
end sub
просто нужно помнить, что если мы чего-то ждем в журнале, то оно там сразу не появится, и потому лучше сперва подождать, то есть использовать repeat-until, а while-wend подходит лишь в особых случаях, когда использование постусловия приводит к непомерному росту скрипта или увеличению его сложности.
Posted: 2006-02-15 15:24:54
by Dron D.
Code: Select all
Where do you want to use the shovel?
Targeting Cancelled

Posted: 2006-02-15 15:59:49
by GrayLord
угу. так и есть. забыл очистку журнала перенести:
Code: Select all
sub catorg()
var tshovel='0x0F39'
uo.print('show the stone >>>')
uo.exec('addobject stone')
while uo.targeting()
wait(100)
wend
repeat
repeat
uo.deletejournal()
uo.waittargetobject('stone')
uo.usetype(tshovel)
repeat
wait(100)
until uo.injournal("You loosen") or uo.injournal("You put")
until uo.injournal("No mine") or uo.injournal("Try mining")
end sub
Posted: 2006-02-15 16:15:27
by Dron D.
Posted: 2006-02-15 16:25:57
by Dron D.
Вобщем давай по другому.
Code: Select all
sub catorg()
while not uo.dead()
uo.usetype('0x0F39')
wait(2500)
uo.press(113)
wait(7500)
wend
end sub
Вот впринципе тоже самое, только желательно, чтобы он press`ил 113 кнопку после сообщения You put.
Posted: 2006-02-15 18:32:48
by GrayLord
вобщем так, такими темпами мы далеко не уедем.
видимо, камень твой в статике и его надо при помоще waittargettile обрабатывать:
Code: Select all
sub catorg()
var tshovel='0x0F39'
repeat
repeat
uo.deletejournal()
uo.exec('waittargettile lasttile')
uo.usetype(tshovel)
repeat
wait(100)
until uo.injournal("You loosen") or uo.injournal("You put")
until uo.injournal("No mine") or uo.injournal("Try mining")
end sub
смысл вот в чем. биндишь в инжекте запуск этого скрипта на кнопочку какую-нибудь. далее, сперва копаешь руками. один раз. как только первый круг отработает с твоей помощью, дальше запускаешь скрипт и он докапывает все сам.
Posted: 2006-02-15 19:00:07
by agem
Object updated: stone=0x0000
Нет там, куда ты кликаешь, никакого объекта.
Posted: 2006-02-15 19:00:24
by Dron D.
да ты прав етож все статика... нету айди, тайпов... вобщем твоим скриптом достаточно указать цель, т.е. тайл становится последней целью и все работает. спс.