Yoko

All sides of Injection
It is currently 2024-03-29 06:39:13

All times are UTC+02:00




Post new topic  Reply to topic  [ 15 posts ] 
Author Message
 Post subject: Разгрузка
PostPosted: 2012-12-31 00:20:38 
Offline
User avatar

Joined: 2012-12-31 00:17:09
Posts: 93
в некоторых местах делал специально через массивы, не винить ))
Code:
VAR Sunduk1 ='0x401A743D'; шкура
VAR Sunduk2 ='0x4050641A'; мясо
VAR i
..........................
DIM Shkyra[1]
Shkyra[1] = '0x1067'

DIM Myso[3]
Myso[1] = '0x09F1' # мясо
Myso[2] = '0x09B9' # мясо птицы
Myso[3] = '0x1607' # мясо курицы

...................................

UO.Set('finddistance','2')

UO.FindType('0x0E41','-1','ground')
if UO.FindCount() > 0 then
   if uo.getserial('finditem') == Sunduk1 then
     uo.setreceivingcontainer(Sunduk1)
     for i=1 to 1
       while UO.Count( Shkyra[i] ) > 0
          uo.findtype(Shkyra[i],"-1",'backpack')
             if UO.FindCount()>0 then
               UO.Grab("0","finditem") 
               wait(100)
             end if
       wend
     next
  end if
end if


  UO.FindType('0x0E41','-1','ground')
   if UO.FindCount() > 0 then
   if uo.getserial('finditem') == Sunduk2 then
uo.setreceivingcontainer(Sunduk2)
for i=1 to 3
while UO.Count( Myso[i] ) > 0
uo.findtype(Myso[i],"-1",'backpack')
   if UO.FindCount()>0 then
   UO.Grab("0","finditem") 
   wait(700)
   end if
   wend
   next
end if
end if

.........................................

endsub

рассказываю в чем косяк. Мне надо чтоб скрипт искал сундук по ИД, если есть - разружал бекпак, если нет - искал следующий. Если типы сундуков
Code:
UO.FindType('0x0E41','-1','ground')

разные, то работает норм, а вот если одинаковые и доступны на финддистенс, то один массив разгружает, а второй нет. Где ошибка? И как правильно написать, подскажите, пожалуйста


Last edited by CxC on 2012-12-31 00:33:21, edited 1 time in total.

Top
   
 Post subject: Re: Разгрузка
PostPosted: 2012-12-31 00:31:51 
Offline
User avatar

Joined: 2012-12-31 00:17:09
Posts: 93
как вариант, искать по цвету. Так скрипт работает, но меня это немного не устраивает

Code:
UO.FindType('0x0E43','0x055F','ground')
if UO.FindCount() > 0 then
     uo.setreceivingcontainer('finditem')
     for i=1 to 1
       while UO.Count( Shkyra[i] ) > 0
          uo.findtype(Shkyra[i],"-1",'backpack')
             if UO.FindCount()>0 then
               UO.Grab("0","finditem") 
               wait(100)
             end if
       wend
     next
  end if
end if


UO.FindType('0x0E43','0x0000','ground')
if UO.FindCount() > 0 then
     uo.setreceivingcontainer('finditem')
     for i=1 to 3
       while UO.Count( Myso[i] ) > 0
          uo.findtype(Myso[i],"-1",'backpack')
             if UO.FindCount()>0 then
               UO.Grab("0","finditem") 
               wait(100)
             end if
       wend
     next
  end if
end if


Top
   
 Post subject: Re: Разгрузка
PostPosted: 2012-12-31 07:53:57 
Offline
User avatar

Joined: 2009-05-28 09:58:28
Posts: 2802
Location: Иваново
1) зачем заморачиваться с типами если у тебя известны ID ? Обычную открывашку сделай.
2) Если ты на бесте то там выявили причину не работы массмува.
3) если все таки хочешь любстись с типами - игнорируй и делай игнорересет в конце. А то у тебя получается если рядом 2 сундука то будет находиться всегда первый.

_________________
Image
YokoInjection CodeSweeper
Ошибка "Unhandled exception in parser"
Стрелялка для олдов.


Top
   
 Post subject: Re: Разгрузка
PostPosted: 2012-12-31 10:46:12 
Offline
User avatar

Joined: 2012-12-31 00:17:09
Posts: 93
Mirage wrote:
1) зачем заморачиваться с типами если у тебя известны ID ? Обычную открывашку сделай.
2) Если ты на бесте то там выявили причину не работы массмува.
3) если все таки хочешь любстись с типами - игнорируй и делай игнорересет в конце. А то у тебя получается если рядом 2 сундука то будет находиться всегда первый.

1) А как я тебе буду искать сундук по ид? ) И если не находит - не разгружать этот массив
2) да, на бесте. Какую причину? я не читал
3) сейчас попробую


Top
   
 Post subject: Re: Разгрузка
PostPosted: 2012-12-31 11:21:32 
Offline
User avatar

Joined: 2009-05-28 09:58:28
Posts: 2802
Location: Иваново
Инжект и клиент запоминают ID предмета и могут его использовать в радиусе досягаемости.
У меня рудокоп скидывал руду даже не открывая сундук. Главное чтобы стоял рядом.
Либо я делал разгрузку - 1 сундук, в нем коробки и в них уже фасовал. В сундук можно до 255 ящиков или мешков забить. Более чем достаточно для разгрузки лута ;)

Массмув лечится новой dll и увеличенными паузами - на форуме у Славы игроки нашли решение. А с массмувом у тебя 2/3 скрипта можно выкидывать.
Code:
   PUTLoot2(0x1085, 0x108b, '-1', SundLoot, SundBi,'','','')   ; бижутерия
   PUTLoot2(0x1f05, 0x1f0a, '-1', SundLoot, SundBi,'','','')   ; бижутерия
   PUTLoot2(0xf0f, 0xf30, '-1', SundLoot, SundBi,'','','')      ; камни
   PUTLoot2(0x1f5d, 0x1f6c, '0', SundLoot, SundSW,'','','')
   PUTLoot2(0x1f19, 0x1f5c, '0', SundLoot, SundS,'','','')      ; scroll 1-6
   PUTLoot2(0xF06, 0xF0D, '-1', SundLoot, SundB,'','','')      ; бутылки
   PUTLoot2(0xf78, 0xf91, '0', SundLoot, SundR,'','','')      ; реагенты
   PUTLoot(0x14ef, 0x0487, SundLoot, SundR,'','','')         ; регдиды
   PUTLoot2(0xe9c, 0xe9e, '0', SundLoot, SundD,'','','')      ; мусор на продажу

и 1 процедура для перекладывания.

_________________
Image
YokoInjection CodeSweeper
Ошибка "Unhandled exception in parser"
Стрелялка для олдов.


Top
   
 Post subject: Re: Разгрузка
PostPosted: 2012-12-31 11:46:51 
Offline
User avatar

Joined: 2012-12-31 00:17:09
Posts: 93
Mirage wrote:
Инжект и клиент запоминают ID предмета и могут его использовать в радиусе досягаемости.
У меня рудокоп скидывал руду даже не открывая сундук. Главное чтобы стоял рядом.
Либо я делал разгрузку - 1 сундук, в нем коробки и в них уже фасовал. В сундук можно до 255 ящиков или мешков забить. Более чем достаточно для разгрузки лута ;)
Массмув лечится новой dll и увеличенными паузами - на форуме у Славы игроки нашли решение. А с массмувом у тебя 2/3 скрипта можно выкидывать.

т.е. без поиска сундука? тогда инжект же будет тупить, если один сундук найдет, а второй нет ) хочу массивами, так удобнее )
В один сундук не вариант, т.к. живу не 1 в доме и есть где-то общие мешки, где-то личные )


Top
   
 Post subject: Re: Разгрузка
PostPosted: 2012-12-31 12:51:20 
Offline
User avatar

Joined: 2012-12-31 00:17:09
Posts: 93
Спасибо, Алу! Нашел решение с твоего пинка )
Сначала игнорим все сундуки вот этого типа
Code:
UO.FindType('0x0E41','-1','ground')

которые не используются в скрипте. Вот так:
Code:
UO.Ignore(Sunduk4)
UO.Ignore(Sunduk5)
UO.Ignore(Sunduk6)
UO.Ignore(Sunduk7)

Ну а потом игнорим при самой выгрузке )
Code:
UO.FindType('0x0E41','-1','ground')
if UO.FindCount() > 0 then
  if uo.getserial('finditem') == Sunduk1 then
    uo.setreceivingcontainer(Sunduk1)
    for i=1 to 1
      while UO.Count( Shkyra[i] ) > 0
        uo.findtype(Shkyra[i],"-1",'backpack')
        if UO.FindCount()>0 then
          UO.Grab("0","finditem") 
          wait(100)
        end if
      wend
    next
  end if
end if
UO.Ignore(Sunduk1)


UO.FindType('0x0E41','-1','ground')
if UO.FindCount() > 0 then
  if uo.getserial('finditem') == Sunduk2 then
    uo.setreceivingcontainer(Sunduk2)
    for i=1 to 3
      while UO.Count( Myso[i] ) > 0
        uo.findtype(Myso[i],"-1",'backpack')
        if UO.FindCount()>0 then
          UO.Grab("0","finditem") 
          wait(700)
        end if
      wend
    next
  end if
end if
UO.Ignore(Sunduk2)

ну в конце
Code:
UO.Ignorereset()
uo.charprint(printcolour, 'Закончил!' )


Top
   
 Post subject: Re: Разгрузка
PostPosted: 2012-12-31 15:15:50 
Offline
User avatar

Joined: 2012-12-31 00:17:09
Posts: 93
блин, все равно не работает :( как вытаскивать из списка игнора один итем, а не все?


Top
   
 Post subject: Re: Разгрузка
PostPosted: 2012-12-31 15:34:14 
Offline
User avatar

Joined: 2012-12-31 00:17:09
Posts: 93
Решил проблему игнором изначально всех сундуков и затем вытаскиванием нужного сундука перед финд тайпом. Возникло сомнение теперь с
Code:
   UO.FindType('0x0E41','-1','ground')
   if UO.FindCount() > 0 then
      if uo.getserial('finditem') == Sunduk1 then

надо или нет, ведь в игноре будут все сундуки, кроме одного. Подумаю


Top
   
 Post subject: Re: Разгрузка
PostPosted: 2012-12-31 18:39:11 
Offline
User avatar

Joined: 2006-12-08 10:51:50
Posts: 718
Location: Москва
чё-то я не вдупляю, сундуки есть, их id есть, зачем их искать? их может не быть? как так?


Top
   
 Post subject: Re: Разгрузка
PostPosted: 2012-12-31 20:29:11 
Offline
User avatar

Joined: 2009-05-28 09:58:28
Posts: 2802
Location: Иваново
Вот и я спросил :)

_________________
Image
YokoInjection CodeSweeper
Ошибка "Unhandled exception in parser"
Стрелялка для олдов.


Top
   
 Post subject: Re: Разгрузка
PostPosted: 2013-01-03 16:04:11 
Offline
User avatar

Joined: 2012-12-31 00:17:09
Posts: 93
ZeroDX wrote:
чё-то я не вдупляю, сундуки есть, их id есть, зачем их искать? их может не быть? как так?

сундуки в разных местах. Чисто физически чар не может достать до сундука с камнями при скидывании логов, к примеру


Top
   
 Post subject: Re: Разгрузка
PostPosted: 2013-01-03 17:06:38 
Offline
User avatar

Joined: 2009-05-28 09:58:28
Posts: 2802
Location: Иваново
Ну так как бы можно передвинуть или растащить сортировку на 2 скрипта или проверять координаты чара и сортировать только то что нужно.

Для массива предметов от 0 до 100
если Х чара равно 1234 и Y чара = 5678 тогда
для предметов от 0 до 50 перекидываем в сундук А
в противном случае если X = 4321 и Y = 7654 тогда
для массива предметов от 50 до 100 перекидываем в сундук Б
в противном случае - не перекидываем.

хз, искать типы сундуков, потом их сравнивать... Тем более что на 1 тайл если Слава опять не понакрутил можно закинуть больше 15 сундуков...
Но естесно дело вкуса.

_________________
Image
YokoInjection CodeSweeper
Ошибка "Unhandled exception in parser"
Стрелялка для олдов.


Top
   
 Post subject: Re: Разгрузка
PostPosted: 2013-01-03 17:32:49 
Offline
User avatar

Joined: 2012-12-31 00:17:09
Posts: 93
Mirage wrote:
хз, искать типы сундуков, потом их сравнивать... Тем более что на 1 тайл если Слава опять не понакрутил можно закинуть больше 15 сундуков...
Но естесно дело вкуса.

примерно так (цифры - места разгрузки)
Image

по координатам не удобно, надо точно на то место вставать, если не огваривать диапазон. Если с диапазоном - нет мобильности и универсальности


Top
   
 Post subject: Re: Разгрузка
PostPosted: 2013-01-03 22:01:02 
Offline
User avatar

Joined: 2006-12-08 10:51:50
Posts: 718
Location: Москва
ну как бы так
Code:
if uo.getdistance(sunduk1) <= 1 then
    start = 0
    end = 50
    receiving_container = sunduk1
else
    start = 50
    end = 100
    receiving_container = sunduk2
end if
for i = start to end
    поиск
    перемещение
next
можно по всякому извращаться


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

All times are UTC+02:00


Who is online

Users browsing this forum: Bing [Bot] and 18 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