Посматрите

Anything and all.

Moderators: Murderator+, Murderator

Post Reply
SESTRA
Posts: 223
Joined: 2006-02-21 09:31:41
Contact:

Посматрите

Post by SESTRA »

вот скприт на раскладку по бек пек

Code: Select all

sub rasklad() 

uo.findtype('0x0EED',-1,'backpack') 
while uo.findcount() > 0 
uo.findtype('0x0EED',-1,'backpack') 
uo.moveitem('finditem',-1,'backpack',40,60,0) 
uo.ignore('finditem') 
wait(200) 
wend 
uo.ignorereset() 
endsub
ток он что то када итем переложит потом что то глючит просто с боку пишется варнинг команда finditem вот такая(
Что сделать?
А Я че Я не че !
Edred
Expert!
Posts: 2544
Joined: 2004-04-03 17:36:29
Location: Saint-Petersburg

Post by Edred »

Code: Select all

wait(200)
Мало. И чеклаг после паузы поставь, чтобы при лагах не спотыкалось.

И вот тут логики совсем не понял:

Code: Select all

uo.findtype('0x0EED',-1,'backpack') 
while uo.findcount() > 0 
uo.findtype('0x0EED',-1,'backpack')
Зачем дважды-то искать на первом круге?
Ни один скрипт не работает? Пора обновить [url=http://www.eof.nm.ru/FiLeS/uoloop.exe]Инжект[/url]...
Все работает, но хочется большего? Пора переходить на [url=http://stealth.od.ua/]стелс[/url]...
Destruction
Junior Expert
Posts: 3221
Joined: 2004-06-24 22:08:56

Post by Destruction »

Edred wrote:

Code: Select all

wait(200)
Мало. И чеклаг после паузы поставь, чтобы при лагах не спотыкалось.

И вот тут логики совсем не понял:

Code: Select all

uo.findtype('0x0EED',-1,'backpack') 
while uo.findcount() > 0 
uo.findtype('0x0EED',-1,'backpack')
Зачем дважды-то искать на первом круге?
1ый раз чтобы пустили в цикл.
2ой раз чтобы что-то циклично искать.

Делается с одним поиском через repeat, но всё-таки, а еще тут нужно условие..
Edred
Expert!
Posts: 2544
Joined: 2004-04-03 17:36:29
Location: Saint-Petersburg

Post by Edred »

Я-то указал про два поиска подряд чтобы автор задумался, куда второй лучше поставить, чтобы не было лишних команд. В скриптах и программах от перемены мест слагаемых (то бишь строк скрипта) сумма меняется... :wink:

Хинт: попробуй второй поиск поставить в конце цикла.

ЗЫ: А менять цикл на repeat никакого резона нет.
Ни один скрипт не работает? Пора обновить [url=http://www.eof.nm.ru/FiLeS/uoloop.exe]Инжект[/url]...
Все работает, но хочется большего? Пора переходить на [url=http://stealth.od.ua/]стелс[/url]...
Destruction
Junior Expert
Posts: 3221
Joined: 2004-06-24 22:08:56

Post by Destruction »

Edred wrote:Я-то указал про два поиска подряд чтобы автор задумался, куда второй лучше поставить, чтобы не было лишних команд. В скриптах и программах от перемены мест слагаемых (то бишь строк скрипта) сумма меняется... :wink:

Хинт: попробуй второй поиск поставить в конце цикла.

ЗЫ: А менять цикл на repeat никакого резона нет.
Как это нет? Был же 8)

Ща попробую нарисовать.

Code: Select all

#Скрипт1
sub rasklad() 
uo.findtype('0x0EED',-1,'backpack') 
while uo.findcount() > 0 
uo.findtype('0x0EED',-1,'backpack') 
uo.moveitem('finditem',-1,'backpack',40,60,0) 
uo.ignore('finditem') 
wait(200) 
wend 
uo.ignorereset() 
endsub
Скрипт1 - начнём с того, что после поиска следует проверять нашли мы чего-либо, ибо если ничего не нашли, то будем работать с несуществующим объектом, т.е. делаем так:

Code: Select all

#Скрипт2
sub rasklad() 
uo.findtype('0x0EED',-1,'backpack') 
while uo.findcount() > 0 
uo.findtype('0x0EED',-1,'backpack') 
if uo.findcount() > 0 then
uo.moveitem('finditem',-1,'backpack',40,60,0) 
uo.ignore('finditem') 
wait(200) 
endif
wend 
uo.ignorereset() 
endsub
Теперича заменим цикл:

Code: Select all

sub rasklad() 
repeat
uo.findtype('0x0EED',-1,'backpack') 
if uo.findcount() > 0 then
uo.moveitem('finditem',-1,'backpack',40,60,0) 
uo.ignore('finditem') 
wait(200) 
endif
until uo.findcount() == 0
uo.ignorereset() 
endsub
А ваще Edred вероятно прав.. Но мне так больше нравиться.
Edred
Expert!
Posts: 2544
Joined: 2004-04-03 17:36:29
Location: Saint-Petersburg

Post by Edred »

Из-за смены циклов тебе пришлось вводить дополнительный if, проверка которого совпадает с проверкой цикла. Смысл?

Code: Select all

uo.findtype('0x0EED',-1,'backpack') 
while uo.findcount() > 0 
   uo.moveitem('finditem',-1,'backpack',40,60,0) 
   uo.ignore('finditem') 
   wait(200) 
   uo.findtype('0x0EED',-1,'backpack') 
wend 
Подумай сам, так же гораздо лучше и логичней.

И вообще, запомни раз и навсегда: цикл repeat нужен только в том случае, если ты хочешь чтобы его тело обязательно хоть один раз выполнилось (проверка в нем в конце). Это его единственное предназначение. Во всех остальных случаях уместнее не изобретать пятиколесный велосипед, а использовать while. А в скриптах инжекта repeat чаще встречается только потому, что он задействован почти во всех динамических паузах:

Code: Select all

repeat
   wait(100)
until .....
Этот цикл при любом раскладе минимум один раз отработает, поэтому хоть минимальная, но будет пауза.
Ни один скрипт не работает? Пора обновить [url=http://www.eof.nm.ru/FiLeS/uoloop.exe]Инжект[/url]...
Все работает, но хочется большего? Пора переходить на [url=http://stealth.od.ua/]стелс[/url]...
Post Reply