Нужно юзать ближайший
Moderators: Murderator+, Murderator
-
- Posts: 270
- Joined: 2006-08-05 14:09:06
- Contact:
Нужно юзать ближайший
Вокруг много одинаковых итемов. Мне нужно юзать их типы, но только тех к которым я ближе. Попробовал такой вариант как поиск с увеличением финдистанс, получается долго очень. Может есть проще выход?
ДРВ
Spoiler
_________________
Антарес
Spoiler|Gostrabaiter|Umhra|Slog
Spoiler
_________________
Антарес
Spoiler|Gostrabaiter|Umhra|Slog
-
- Expert!
- Posts: 1032
- Joined: 2006-02-25 21:48:38
-
- Posts: 270
- Joined: 2006-08-05 14:09:06
- Contact:
Использовал этот с тремя биндами клавиш.
Попробовал финдистанс в массив взять, но похоже так нельзя
Code: Select all
sub start()
UO.Set('finddistance','1')
UO.FindType('0x0E7C','-1','ground')
while UO.FindCount()
UO.UseObject('finditem')
UO.FindType('0x0E7C','-1','ground')
UO.Ignore('finditem')
wend
UO.Ignorereset()
end sub
sub start2()
UO.Set('finddistance','2')
UO.FindType('0x0E7C','-1','ground')
while UO.FindCount()
UO.UseObject('finditem')
UO.FindType('0x0E7C','-1','ground')
UO.Ignore('finditem')
wend
UO.Ignorereset()
end sub
sub start3()
UO.Set('finddistance','3')
UO.FindType('0x0E7C','-1','ground')
while UO.FindCount()
UO.UseObject('finditem')
UO.FindType('0x0E7C','-1','ground')
UO.Ignore('finditem')
wend
UO.Ignorereset()
end sub
Попробовал финдистанс в массив взять, но похоже так нельзя
Code: Select all
sub start()
DIM P[3]
P[0] = '1'
P[1] = '2'
P[2] = '3'
VAR i
For i = 0 To 2
UO.Set('finddistance','P[ i ]')
UO.FindType('0x0E7C','-1','ground')
while UO.FindCount()
UO.UseObject('finditem')
UO.FindType('0x0E7C','-1','ground')
UO.Ignore('finditem')
wend
UO.Ignorereset()
end sub
ДРВ
Spoiler
_________________
Антарес
Spoiler|Gostrabaiter|Umhra|Slog
Spoiler
_________________
Антарес
Spoiler|Gostrabaiter|Umhra|Slog
-
- Expert!
- Posts: 1032
- Joined: 2006-02-25 21:48:38
Мляяя.... я в ШОКЕ! ППЦ!
Во первых - аргумент finddistace - число, а не строка!
Во вторых можно просто:
PSЖ я уже не говорю, про ошибки в коде!
Во первых - аргумент finddistace - число, а не строка!
Во вторых можно просто:
Code: Select all
sub start()
For i = 0 To 10
UO.Set('finddistance',i)
repeat
UO.FindType('0x0E7C','-1','ground')
if uo.findcount then
UO.UseObject('finditem')
UO.Ignore('finditem')
endif
wait(100)
until uo.findcount == 0
next
UO.Ignorereset()
end sub
PSЖ я уже не говорю, про ошибки в коде!
DerMeister сейчас на нейрале!
-
- Posts: 270
- Joined: 2006-08-05 14:09:06
- Contact:
Есть кокой вариант юзать только ближайший тип, не используя массив? Или если с массивом то чтоб скрипт юзал только 1 раз.
К томуже в этом скрипте
Выдает
К томуже в этом скрипте
Code: Select all
sub start()
DIM P[3]
P[0] = '1'
P[1] = '2'
P[2] = '3'
VAR i
For i = 0 To 2
UO.Set('finddistance',i)
repeat
UO.FindType('0x0E7C','-1','ground')
if uo.findcount then
UO.UseObject('finditem')
UO.Ignore('finditem')
endif
wait(100)
until uo.findcount == 0
next
UO.Ignorereset()
end sub
Выдает
Code: Select all
Variable undefined - UO.FINDCOUNT
ДРВ
Spoiler
_________________
Антарес
Spoiler|Gostrabaiter|Umhra|Slog
Spoiler
_________________
Антарес
Spoiler|Gostrabaiter|Umhra|Slog
-
- Expert!
- Posts: 1032
- Joined: 2006-02-25 21:48:38
Нафига те массив я не пойму!
Ну ты кароче дурак? Тока чесно?
ЗЫ: UO.FINDCOUNT()
ЗЗЫ: Я счас только на стелсе пишу, поэтому могу мелсие ошибки делать. Это мне прощается, а вот ты тупанул по полной.
ВыдаетCode: Select all
Variable undefined - UO.FINDCOUNT
Ну ты кароче дурак? Тока чесно?

ЗЫ: UO.FINDCOUNT()
ЗЗЫ: Я счас только на стелсе пишу, поэтому могу мелсие ошибки делать. Это мне прощается, а вот ты тупанул по полной.
DerMeister сейчас на нейрале!
-
- Posts: 270
- Joined: 2006-08-05 14:09:06
- Contact:
-
- Posts: 270
- Joined: 2006-08-05 14:09:06
- Contact:
Объясню что хочу сделать. Через 4 часа начнется Cannon Fighting, это у нас на шарде турнир (битва на пушках).
Примерный конфиг предпологаемого скрипта.
В постоянном цикле поиск ядер на земле, если ядра нет в паке, то класть его туда.
Если ядро в паке, то искать свободную пушку (ближайшую). Используем пушку. Если прицела нет то ищем дальше. Если появился прицел, то ждем пока я кликом не пальну из нее.
Примерный конфиг предпологаемого скрипта.
В постоянном цикле поиск ядер на земле, если ядра нет в паке, то класть его туда.
Если ядро в паке, то искать свободную пушку (ближайшую). Используем пушку. Если прицела нет то ищем дальше. Если появился прицел, то ждем пока я кликом не пальну из нее.
ДРВ
Spoiler
_________________
Антарес
Spoiler|Gostrabaiter|Umhra|Slog
Spoiler
_________________
Антарес
Spoiler|Gostrabaiter|Umhra|Slog
-
- Posts: 270
- Joined: 2006-08-05 14:09:06
- Contact:
Тут есть существенная разница??
Code: Select all
sub P()
UO.Set('finddistance', '2')
UO.FindType('0x0F43', -1,'ground')
UO.UseType(str(0),'finditem')
end sub
Code: Select all
sub P()
UO.Set('finddistance', '2')
UO.UseFromGround( '0x0F43' )
end sub
ДРВ
Spoiler
_________________
Антарес
Spoiler|Gostrabaiter|Umhra|Slog
Spoiler
_________________
Антарес
Spoiler|Gostrabaiter|Umhra|Slog
-
- Expert!
- Posts: 1032
- Joined: 2006-02-25 21:48:38
Ничего не знаю про UO.UseFromGround( '0x0F43' ) - ничкогда не пользовался. И ЕЩЕ РАЗ: UO.Set('finddistance', 2) - второй параметр БЕЗ кавычек! Массив не нужен. на крафний случай есть str(2) {тоже саое, что и '2'}, поэтому можно в цикле
Code: Select all
for i=0 to 10 do
UO.Set('finddistance', i) ;{или, если очень хочется: UO.Set('finddistance', str(i))}
next
DerMeister сейчас на нейрале!
DerMeister =) wrote:И ЕЩЕ РАЗ: UO.Set('finddistance', 2) - второй параметр БЕЗ кавычек!
Бред. Команде UO.Set все параметры передаются строками. В последних версиях инжекта он жрет и числа, но без гарантии.
Вообще, есть простое правило: все команды инжекта, имеющие консольный аналог в качестве аргументов должны получать строки. Единственное исключение (насколько мне помнится) - warmode. Именно поэтому последняя в хелпе прописана отдельно как консольная и как команда скриптов.
Года два назад Йоко писал в фиксах (на старом форуме, кажись), что он поправил и "теперь" команды должны жрать и числа. И предложил потестить, так как он этого не делал. Потом проект благополучно свернулся и потому я и говорю - передача таким командам десятичных или шестнадцатиричных чисел - это без гарантии работоспособности. Вообще, как показывает практика, это прямой и быстрый способ получить через некоторое время unhandled error in parser.