Посмотрите пожалуйста скрипт. |
Посмотрите пожалуйста скрипт. |
3 июня 2010 12:41
Сообщение #1
|
|
Работал как часы, но после падения инжы он перестал корректно работать. Либо у меня с инжой что-то не то, либо со скриптом. sub Loot() |
|
|
|
Сообщений: 498 Рег. 17.01.2010 |
3 июня 2010 12:49
Сообщение #2
|
А это на лут чего скрипт ? мобов ? |
|
|
|
3 июня 2010 12:54
Сообщение #3
|
|
Как следует из скрипта, ему при вызове указывается труп, потом берётся в руки нож, труп режется, лутается, одевается обратно лук. Предусмотренны варианты отсутствия цели или случайного тыка на себя.
UPD. Кому не лень, проверьте пожалуйста скрипт у себя, предварительно указав объекты Dagger и Bow (чем будет Bow - не важно, хоть дубинкой). |
|
|
|
Сообщений: 1234 Рег. 1.05.2010 |
3 июня 2010 13:33
Сообщение #4
|
В каком месте он некорректно работает? |
|
|
|
3 июня 2010 13:38
Сообщение #5
|
|
Иногда до входа в скрипт corpse уже задан, и прицел не появляется, иногда не задан, но прицел всё равно не появляется, иногда появляется, тыкается, режется, но лутается только одна вещь, после чего одевается лук и скрипт заканчивает свою работу. |
|
|
|
Сообщений: 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 продолжаем выполнение.. (ну или какая там строчка для незаданного объекта) |
|
|
|
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) По сути нормальное условие цикла.
Попробуйте кто-нибудь потестить... |
|
|
|
Сообщений: 1234 Рег. 1.05.2010 |
3 июня 2010 15:36
Сообщение #8
|
гетграфик возвращает тип. А ты его сравниваешь со строкой 'self'.. в итоге у тебя всегда возвращается ложь.. Про сравнение с конкретным сериалом: работать то оно конечно будет, но только на твоем чаре.. чем тебе непонравился мой вариант? если тебе надо не указывать на живые объекты, то проще использовать UO.IsNPC(UO.GetSerial('corpse')) - но всетаки надо протестить возможно трупы тоже будет считать за нпс Про условие - щас посморел там оказывается без разницы как писать ЗЫ: Внутри цикла попробуй задержку поставь 500 например, мне кажется лутание 1ой шмотки происходит изза этого |
|
|
|
Сейчас: 30 ноября 2024 13:36 |