Посмотрите пожалуйста скрипт.

Frozen
3 июня 2010 12:41
Сообщение #1

Работал как часы, но после падения инжы он перестал корректно работать. Либо у меня с инжой что-то не то, либо со скриптом.

sub Loot()
uo.exec('addobject corpse')
while uo.targeting()
    wait(100) 
wend
wait(10)
 if uo.GetSerial('corpse') == '0x00000000' or uo.GetGraphic('corpse') == 'self' or  uo.GetSerial('corpse') == '0x00a38c5e'  then
     uo.useobject('Bow')
     uo.forget('corpse')
     return
endif
uo.WaitTargetObject('corpse')
wait(50)
uo.useobject('Dagger')
wait(300)
uo.Ignore('self')
uo.useobject('corpse')
wait(100)
uo.FindType('-1','-1','corpse')
while uo.FindCount() && uo.Weight <= 600
     uo.moveitem('finditem','all','backpack')
     wait(50)
     uo.findtype('-1','-1','corpse') 
wend
uo.useobject('Bow')
uo.forget('corpse')
uo.IgnoreReset()
endsub

Старший Прапорщик (2967373)14 лет
Dragonstalker
Сообщений: 498
Рег. 17.01.2010
3 июня 2010 12:49
Сообщение #2
А это на лут чего скрипт ? мобов ?

Frozen
3 июня 2010 12:54
Сообщение #3

Как следует из скрипта, ему при вызове указывается труп, потом берётся в руки нож, труп режется, лутается, одевается обратно лук. Предусмотренны варианты отсутствия цели или случайного тыка на себя.

 

UPD. Кому не лень, проверьте пожалуйста скрипт у себя, предварительно указав объекты Dagger и Bow (чем будет Bow - не важно, хоть дубинкой).

Старший Лейтенант (5889885)14 лет
Necromancer
Сообщений: 1234
Рег. 1.05.2010
3 июня 2010 13:33
Сообщение #4
В каком месте он некорректно работает?

Frozen
3 июня 2010 13:38
Сообщение #5
Иногда до входа в скрипт corpse уже задан, и прицел не появляется, иногда не задан, но прицел всё равно не появляется, иногда появляется, тыкается, режется, но лутается только одна вещь, после чего одевается лук и скрипт заканчивает свою работу.
Старший Лейтенант (5889885)14 лет
Necromancer
Сообщений: 1234
Рег. 1.05.2010
3 июня 2010 14:56
Сообщение #6
Сразу скажу скрипт не тестил
Начну по порядку что меня смущает:
1) uo.GetGraphic('corpse') == 'self' - это работать врядли будет.. уж тогда надо делать так UO.GetSerial('corpse') == UO.GetSerial('self')
2) Отсутсвует проверка на объект Bow
3) После юза трупа задержку лучше поставить 200-300 а не 100.. труп не будет успевать открыватся при среднем лаге.. внутри цикла задержку тоже лучше увеличиь - запросы на лут труп каждые 50мсек не гут

4) Смущает условие цикла - while uo.FindCount() && uo.Weight <= 600, вопервых, зачем сравнивать вес, ну упадет шмотка на пол после лута, ничего страшного не случится.. и 2ое тут - это &&.. хз мож в инже так и можно но вроде всегда везде либо &&/|| либо and/or

ЗЫ: Кроме 0x00000000, кривые сериалы могут быть 0xFFFFFFFF, это тоже следует включить если уж проверяете

ЗЗЫ: А по поводу прицела - просто делайте вначале скрипта if UO.GetSerial('corpse') == '0x00000000' then продолжаем выполнение.. (ну или какая там строчка для незаданного объекта)


Frozen
3 июня 2010 15:04
Сообщение #7

1) По идее это работаьт должно, так как uo.GetGraphic возвращает тип, self - тоже тип. UO.GetSerial('corpse') == UO.GetSerial('self') обыгрывается через uo.GetSerial('corpse') == '0x00a38c5e' (т.к.UO.GetSerial('self') = '0x00a38c5e' )

2)Нет, и , видимо, не будет.

3) При таких задежках оно работало, а потом работать перестало. Пробовал их менять(в сторону увеличения), ничего не изменилось.

4) По сути нормальное условие цикла.

 

Попробуйте кто-нибудь потестить...

Старший Лейтенант (5889885)14 лет
Necromancer
Сообщений: 1234
Рег. 1.05.2010
3 июня 2010 15:36
Сообщение #8

гетграфик возвращает тип. А ты его сравниваешь со строкой 'self'.. в итоге у тебя всегда возвращается ложь..

Про сравнение с конкретным сериалом: работать то оно конечно будет, но только на твоем чаре.. чем тебе непонравился мой вариант?

если тебе надо не указывать на живые объекты, то проще использовать UO.IsNPC(UO.GetSerial('corpse')) - но всетаки надо протестить возможно трупы тоже будет считать за нпс

Про условие - щас посморел там оказывается без разницы как писать

ЗЫ: Внутри цикла попробуй задержку поставь 500 например, мне кажется лутание 1ой шмотки происходит изза этого

« · Главный · »
Последние посетители (0):

 
Сейчас: 30 ноября 2024 13:33