Yoko

All sides of Injection
It is currently 2025-12-04 00:45:54

All times are UTC+02:00




Post new topic  Reply to topic  [ 11 posts ] 
Author Message
PostPosted: 2006-12-04 21:22:32 
Offline
User avatar

Joined: 2006-08-05 14:09:06
Posts: 270
Вокруг много одинаковых итемов. Мне нужно юзать их типы, но только тех к которым я ближе. Попробовал такой вариант как поиск с увеличением финдистанс, получается долго очень. Может есть проще выход?

_________________
ДРВ
Spoiler
_________________
Антарес
Spoiler|Gostrabaiter|Umhra|Slog


Top
   
 Post subject:
PostPosted: 2006-12-04 21:43:28 
Offline
Expert!
User avatar

Joined: 2006-02-25 21:48:38
Posts: 1032
Долго? В сравнении с чем? Такие слова как "больше", "меньше", "быстрее" это слова сравнения. Покажи с чем ты сравниваешь? Быть может на самом деле всё оч даже быстро...
И не мешало бы показать свой "код", что бы можно было качественно оценить скорость скрипта!

_________________
DerMeister сейчас на нейрале!


Top
   
 Post subject:
PostPosted: 2006-12-04 22:31:31 
Offline
User avatar

Joined: 2006-08-05 14:09:06
Posts: 270
Использовал этот с тремя биндами клавиш.
Code:
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:
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


Top
   
 Post subject:
PostPosted: 2006-12-04 22:41:30 
Offline
Expert!
User avatar

Joined: 2006-02-25 21:48:38
Posts: 1032
Мляяя.... я в ШОКЕ! ППЦ!
Во первых - аргумент finddistace - число, а не строка!
Во вторых можно просто:
Code:
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 сейчас на нейрале!


Top
   
 Post subject:
PostPosted: 2006-12-04 22:47:15 
Offline
User avatar

Joined: 2006-08-05 14:09:06
Posts: 270
Есть кокой вариант юзать только ближайший тип, не используя массив? Или если с массивом то чтоб скрипт юзал только 1 раз.
К томуже в этом скрипте

Code:
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:
Variable undefined - UO.FINDCOUNT

_________________
ДРВ

Spoiler

_________________

Антарес

Spoiler|Gostrabaiter|Umhra|Slog


Top
   
 Post subject:
PostPosted: 2006-12-04 23:07:37 
Offline
Expert!
User avatar

Joined: 2006-02-25 21:48:38
Posts: 1032
Нафига те массив я не пойму!

Quote:
Выдает
Code:
Variable undefined - UO.FINDCOUNT


Ну ты кароче дурак? Тока чесно? :evil:

ЗЫ: UO.FINDCOUNT()

ЗЗЫ: Я счас только на стелсе пишу, поэтому могу мелсие ошибки делать. Это мне прощается, а вот ты тупанул по полной.

_________________
DerMeister сейчас на нейрале!


Top
   
 Post subject:
PostPosted: 2006-12-04 23:17:05 
Offline
User avatar

Joined: 2006-08-05 14:09:06
Posts: 270
Я ток учусь, поэтому тупить мне можно :)
А как без массива сделать? Пытатся юзать поочереди при каждой дистанции??

_________________
ДРВ

Spoiler

_________________

Антарес

Spoiler|Gostrabaiter|Umhra|Slog


Top
   
 Post subject:
PostPosted: 2006-12-04 23:25:45 
Offline
User avatar

Joined: 2006-08-05 14:09:06
Posts: 270
Объясню что хочу сделать. Через 4 часа начнется Cannon Fighting, это у нас на шарде турнир (битва на пушках).
Примерный конфиг предпологаемого скрипта.

В постоянном цикле поиск ядер на земле, если ядра нет в паке, то класть его туда.
Если ядро в паке, то искать свободную пушку (ближайшую). Используем пушку. Если прицела нет то ищем дальше. Если появился прицел, то ждем пока я кликом не пальну из нее.

_________________
ДРВ

Spoiler

_________________

Антарес

Spoiler|Gostrabaiter|Umhra|Slog


Top
   
 Post subject:
PostPosted: 2006-12-04 23:40:45 
Offline
User avatar

Joined: 2006-08-05 14:09:06
Posts: 270
Тут есть существенная разница??
Code:
sub P()
UO.Set('finddistance', '2')
UO.FindType('0x0F43', -1,'ground')
UO.UseType(str(0),'finditem')
end sub

Code:
sub P()
UO.Set('finddistance', '2')
UO.UseFromGround( '0x0F43' )
end sub

_________________
ДРВ

Spoiler

_________________

Антарес

Spoiler|Gostrabaiter|Umhra|Slog


Top
   
 Post subject:
PostPosted: 2006-12-05 00:00:33 
Offline
Expert!
User avatar

Joined: 2006-02-25 21:48:38
Posts: 1032
Ничего не знаю про UO.UseFromGround( '0x0F43' ) - ничкогда не пользовался. И ЕЩЕ РАЗ: UO.Set('finddistance', 2) - второй параметр БЕЗ кавычек! Массив не нужен. на крафний случай есть str(2) {тоже саое, что и '2'}, поэтому можно в цикле
Code:
for i=0 to 10 do  
UO.Set('finddistance', i) ;{или, если очень хочется: UO.Set('finddistance', str(i))}
next

_________________
DerMeister сейчас на нейрале!


Top
   
 Post subject:
PostPosted: 2006-12-05 01:59:34 
Offline
Expert!

Joined: 2004-04-03 17:36:29
Posts: 2544
Location: Saint-Petersburg
DerMeister =) wrote:
И ЕЩЕ РАЗ: UO.Set('finddistance', 2) - второй параметр БЕЗ кавычек!


Бред. Команде UO.Set все параметры передаются строками. В последних версиях инжекта он жрет и числа, но без гарантии.

Вообще, есть простое правило: все команды инжекта, имеющие консольный аналог в качестве аргументов должны получать строки. Единственное исключение (насколько мне помнится) - warmode. Именно поэтому последняя в хелпе прописана отдельно как консольная и как команда скриптов.

Года два назад Йоко писал в фиксах (на старом форуме, кажись), что он поправил и "теперь" команды должны жрать и числа. И предложил потестить, так как он этого не делал. Потом проект благополучно свернулся и потому я и говорю - передача таким командам десятичных или шестнадцатиричных чисел - это без гарантии работоспособности. Вообще, как показывает практика, это прямой и быстрый способ получить через некоторое время unhandled error in parser.

_________________
Ни один скрипт не работает? Пора обновить Инжект...
Все работает, но хочется большего? Пора переходить на стелс...


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 11 posts ] 

All times are UTC+02:00


Who is online

Users browsing this forum: Bing [Bot] and 0 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB® Forum Software © phpBB Limited