Page 1 of 1
Loot (заготовка)
Posted: 2006-06-22 23:01:26
by omi4
Наткнулся на заготовку лута, может кому сгодится…
Писалось под НТ на Антаресе, там нужно кучу хлама брать.
Писать типы было лень сделал вот так, всего 235 предметов в списке
Code: Select all
sub Loot() ;
UO.Set("grabdelay", 100) ;
UO.MoveItem("<0x0EED", 0, "backpack")
UO.UseObject("<0x0E76")
wait(300)
F_Loot(3855, 3888) ; kamni
F_Loot(4229, 4234) ; ring..
F_Loot(5039, 5148) ; arm & weap
F_Loot(3960, 3985) ; regi
F_Loot(8320, 8383) ; scroll
UO.Set("grabdelay", 0) ; default
endsub
sub F_Loot(start, stop)
for start to stop
UO.FindType(UO.Int2Hex(start), -1, "lastcontainer")
while UO.FindCount()
UO.MoveItem("finditem", 0, "backpack")
wend
next
endsub
Posted: 2006-06-22 23:25:16
by Nmy
чем она отличается ?
Posted: 2006-06-22 23:38:17
by omi4
скрипт на 235 строк короче
Posted: 2006-06-22 23:47:47
by Nmy
omi4 wrote:скрипт на 235 строк короче
а почему нельзя просто
Code: Select all
UO.FindType(-1, -1, "lastcontainer")
??
Posted: 2006-06-23 09:37:02
by Edred
NMY wrote:omi4 wrote:скрипт на 235 строк короче
а почему нельзя просто
Code: Select all
UO.FindType(-1, -1, "lastcontainer")
??
Ну а как ты думаешь? Есть отличие от "брать кучу хлама" и "брать весь хлам"?
Posted: 2006-06-23 09:41:01
by Edred
omi4 wrote:скрипт на 235 строк короче
Кстати, я как-то давно же писал скрипт на лут через логические типы в АСМе... Там вообще скрипт был из нескольких строк. А типы забивались в текстовый файл (в файл типов). И перебор работал весьма шустро... Если попадется под руку - скину на форум.
Posted: 2006-06-27 08:45:35
by volhram
UO.FindType(-1, -1, "lastcontainer") работает только с птичками и собачками)) Боты имеют какие то скрытые обьекты, которые в луте не видно, но таким способом их находишь....и просто зависает всё.
2 omi4 отличная идея, буду использовать)
2 Edred тоже самое можно сделать, записав типы в виде строки...без файлов и АСМ )
Posted: 2006-06-27 09:43:10
by Edred
volhram wrote:2 Edred тоже самое можно сделать, записав типы в виде строки...без файлов и АСМ )
Это будет гораздо медленнее. Дата-файл в АСМе при открытии загружается в память и индексируется.
Кроме того, хранение типов для лута в дата-файле имеет одно неоспоримое удобство - легко редактировать, нет необходимости изменять скрипт, легко временно отключать ненужное (просто спереди ставим знак коммента и все).
Posted: 2006-06-27 10:20:48
by volhram
я думаю всё относительно....если работаешь со строкой в которой координаты и типы деревьев, то быстрее не придумаешь..тк читать начинаешь с указаной позиции, ну а если нужно пробежать всю строку и найти соответствие, может ты и прав, я не тестил...
мне просто проще со строками работать
да и твой метод для профессионалов))...установить АСМ, научиться писать и читать из файла.....строки проще)
могу ещё предложить извращение...для любителей
типы для лута записаны в строку...."0х0001 0х0002 0х0003....и тд"...перед лутом эту строку просто вписываем в журнал)
затем ищем соответствие найденого типа со строкой в журнале))
uo.findtype('-1','-1','lasttarget')
Type=str(uo.getgraphic('finditem'))
if uo.injournal(Type) then....
сам ещё не тестил, интересно инжект с журналом быстро работает?)