Подскажите скрипт на разгрузку.
Ефрейтор (278628)12 лет
Ranger
Сообщений: 56
Рег. 18.09.2012
31 августа 2015 10:27
Сообщение #1
Скрипт просто что то найти не могу.
1 всё из бекпека в указанный контейнер
2 всё из 1 сумки в другую ( по таргету)
Лейтенант (3819651)14 лет
Ranger
Сообщений: 2039
Рег. 24.01.2010
31 августа 2015 16:53
Сообщение #2
2.
Старший Прапорщик (2489597)9 лет
Dragonstalker
Сообщений: 1656
Рег. 28.03.2015
2 сентября 2015 00:09
Сообщение #3
https://yadi.sk/i/2ujaQPO0ioyg8 пвм разгрузка 22кб поэтому тока с яндекса , если требуется работать с типами и цветами то вместо -1 втавляй цвет вещи.
Лейтенант (4548828)11 лет
Dragonstalker
Сообщений: 3319
Рег. 19.11.2013
3 сентября 2015 18:30
Сообщение #4
надо же было относительно небольшой скрипт так распикхмкхм... 6 страниц текста.
Генерал Майор (23389370)14 летИнквизитор
Inquisitor
Сообщений: 973
Рег. 22.12.2009
6 сентября 2015 14:43
Сообщение #5
Bumhug,
что то не понял строчки про товар(
а можно чтобы все из сумки в другую скидывал?
Генерал Майор (23389370)14 летИнквизитор
Inquisitor
Сообщений: 973
Рег. 22.12.2009
6 сентября 2015 15:03
Сообщение #6
и еще хотел спросить как в скрипт добавить чтобы allnamesил?
Маршал (60157892)15 летИнквизитор
Inquisitor
Сообщений: 6208
Рег. 27.11.2009
7 сентября 2015 16:11
Сообщение #7
Из сумки в сумку.

sub packduper_reduper() ## Перекладка из сумки в сумку
   var X,Y
   MessageBox('Ткни прицелом куда кладем')
   UO.Exec('addobject TmpCont')
   While UO.Targeting()
      Wait(500)
   Wend
  
   MessageBox('Ткни прицелом откуда берем')
   UO.Exec('addobject TmpCont1')
   While UO.Targeting()
      Wait(500)
   Wend
  
   repeat
      UO.FindType('-1','-1','TmpCont1')
      if UO.FindCount() then
         X=UO.GetX('finditem')
         Y=UO.GetY('finditem')
         UO.MoveItem('finditem',0,'TmpCont',X,Y,0)
         wait(600)
         UO.Ignore('finditem')
      end if
      checklag()
      wait(300)
   until not UO.FindCount() or UO.dead()
   UO.IgnoreReset()
   UO.Resend()
end sub


Оллнеймс итемов в контейнере с выводом в текстовый файл.

sub cat() ## Список содержимого последнего контейнера
   var zerg
   uo.ignorereset()
   repeat
      uo.findtype(-1,-1,'lastcontainer')
      if uo.findcount() then
         uo.click('finditem')
         checklag()
         wait(50)
         nm=uo.getname('finditem')
         uo.textprint(zerg)
         uo.ignore('finditem')
         checklag()
         wait(50)
      endif
   until not uo.findcount()
   uo.ignorereset()
   uo.textopen()
end sub
Маршал (59723793)11 летИнквизитор
Inquisitor
Сообщений: 1462
Рег. 16.08.2013
9 сентября 2015 11:59
Сообщение #8
спс, и себе заберу )
Лейтенант (3791209)10 лет
Monk
Сообщений: 584
Рег. 8.10.2014
10 сентября 2015 07:03
Сообщение #9
Barbatos,
а вот ты положь на место :crazy:
Генерал Майор (23389370)14 летИнквизитор
Inquisitor
Сообщений: 973
Рег. 22.12.2009
11 сентября 2015 21:10
Сообщение #10
Ggthxbye,
спасибо за переклад)
а вот про аллнеймс имел ввиду как скриптом вписать чтобы имена над мобами и чарами показывал)
обычный allnames из опций только скриптом)
Генерал Майор (23389370)14 летИнквизитор
Inquisitor
Сообщений: 973
Рег. 22.12.2009
19 сентября 2015 16:38
Сообщение #11
ап может знает кто ответ на вопрос выше? алнеймс со скрипта)
поделитесь пожалуйста)
Генерал Майор (23389370)14 летИнквизитор
Inquisitor
Сообщений: 973
Рег. 22.12.2009
27 сентября 2015 17:54
Сообщение #12
Цитата: Daemian
ап может знает кто ответ на вопрос выше? алнеймс со скрипта)
поделитесь пожалуйста)

АП
и еще скрипт на разгрузку выше не совсем что надо((
он просто перекидывает вещи в мешок не стакая их(( следовательно после 3-4 разгрузок получается 3-4 кучки одного и того же предмета(
Полковник (15397470)11 лет
Dragonstalker
Сообщений: 1870
Рег. 21.06.2013
28 сентября 2015 22:46
Сообщение #13
Mirage,
ну так все массивы в нем , переносить в другой фалик не обученны ) Подскажи лучше почему он бывает не срабатывает , сразу типо закончил и приходится инжект перезапускать ?
Лейтенант (4548828)11 лет
Dragonstalker
Сообщений: 3319
Рег. 19.11.2013
29 сентября 2015 07:16
Сообщение #14
Потому что взяли хорошую идею и перевернули шиворот на выворот как обычно.
ВОЗМОЖНО использовались не мои наработки, я сам брал принцип перемещения у Визера. Но я давно передавал свой скрипт большому количеству игроков и выкладывал на нескольких форумах.
При составлении своего скрипта я лазил по инсайду и последовательно переписывал все предметы которые там были из файлов 203 клиента. Все тряпки, все железки. И смысл был в том что функция:
Sub PUTLoot2R(Type1, Type2, Color, Otkuda)
    VAR TType = 0
    for TType = Type1 to Type2
        PUTLootR(TType, Color, Otkuda)
    next
end sub
значительно важнее Sub PUTLootR(Type, Color, Otkuda) потому что позволяла сократить раз в 10 весь список предметов превратив вот это:

    PUTLootR('0x1F2E', '-1', 'backpack'); 1кр
    PUTLootR('0x1F2F', '-1', 'backpack');
    PUTLootR('0x1F30', '-1', 'backpack');
    PUTLootR('0x1F31', '-1', 'backpack');
    PUTLootR('0x1F32', '-1', 'backpack');
    PUTLootR('0x1F33', '-1', 'backpack');

вот в это:
PUTLoot2R(0x1F2E,0x1F2F,'-1', 'backpack')
PUTLoot2R('0x1F30,0x1F33,'-1', 'backpack')

Затем функцию:

Sub PUTLootR(Type, Color, Otkuda)
    UO.FindType(Type, Color, Otkuda)
    while UO.FindCount('finditem') > 0
        UO.Grab("0","finditem")
        wait(300)
        UO.FindType(Type, Color, Otkuda)
    wend
end sub

тоже переделали на грабделей - это было когда Ярослав с чем то боролся и не работала мувитем у кого то. И она написана с небольшой ошибкой.
Цикл постоянно грабает предмет с паузой 300 мсек при том что обычно пауза чуть больше + пинг. Вот и пробивает.

Сейчас у меня эти две перемещалки выглядят вот таким образом:

Sub PUTLoot2(Type1, Type2, Color, SourceContainer, TargetContainer,X,Y,Z)
;uo.ignorereset()
    for TType = Type1 to Type2
        PUTLoot(TType, Color, SourceContainer, TargetContainer,X,Y,Z)
    next
end sub
Sub PUTLoot(Type, Color, SourceContainer, TargetContainer,X,Y,Z)
;uo.ignorereset()
    UO.FindType(Type, Color, SourceContainer)
    while UO.FindCount()
        timemove=UO.Timer()
        uo.MoveItem('finditem',0,TargetContainer,X,Y,Z)
        repeat
            wait(lootwait)
        until UO.ContainerOf('finditem')<>TargetContainer && timemove+30>UO.Timer()
        UO.FindType(Type, Color, SourceContainer)
    wend
end sub

предмет мувается один раз и инжект ждет 3 секунды пока не произойдет перемещение. Разгруз скупки практически всего что продают вендоры в течении нескольких суток не вызывает проблем таким макаром.

вот пример из стародавней разгрузки 2010 года

PUTLoot2(0x1085, 0x108b, '-1', SundLoot, SundBi); бижутерия
PUTLoot2(0x1f05, 0x1f0a, '-1', SundLoot, SundBi)    ; бижутерия
PUTLoot2(0xf0f, 0xf30, '-1', SundLoot, SundBi)    ; камни
PUTLoot2(0x1f19, 0x1f5c, '0', SundLoot, SundS)    ; scroll 1-6
PUTLoot2(0xF06, 0xF0D, '-1', SundLoot, SundB)    ; бутылки 0xF06 - black, 0xF07 - orange, 0xF08 - blue, 0xF09 - White, 0xF0A - Green, 0xF0B - Red, 0xF0C - Yellow, 0xF0D - Purple
PUTLoot2(0xf78, 0xf91, '0', SundLoot, SundR)    ; реагенты

вся возможная бижутерия, все камни, все скроллы 1-6 круга, все бутылки, все реагенты. 6 строк.

ЗЫ еще остался небольшой глюк когда после нескольких разгрузок с охоты подвисает клиент либо не видит предметы в паке - но это связано со скриптами охоты и утечкой памяти в инжекте. В последней сборке немного подлатали.


ззы
if uo.getdistance(Sunduk7) <= 2 then ### свитки ###; вот это правильно но совершенно не нужно - в поиск добавлен параметр дистации.
    uo.setreceivingcontainer(Sunduk7); а это устаревшие не нужные команды для граба
    uo.unsetreceivingcontainer(); а это устаревшие не нужные команды для граба
Полковник (15397470)11 лет
Dragonstalker
Сообщений: 1870
Рег. 21.06.2013
29 сентября 2015 11:19
Сообщение #15
Mirage,
спасибо)
Старший Лейтенант (6395350)12 лет
Necromancer
Сообщений: 5530
Рег. 27.08.2012
29 сентября 2015 12:09
Сообщение #16
Скрипт разгрузки писал я, который выложили в файле. НО! у меня он был значительно короче. С алукардом во многом не согласен, либо это делалось СПЕЦИАЛЬНО так, как сделалось, ибо писалось под себя и узкий круг людей, а не в люди

1. По поводу
for TType = Type1 to Type2
и сокращения списка. У меня совсем не было желания лазить по инсайд уо, тем более искать подряд типы. Я эту функцию использовал под развернуто-перевернутое оружие, щиты, предметы. Сокращение списка посредством "тип ту тип" ведет к неудобству просмотра и его последующего дополнения, ИМХО
2.
тоже переделали на грабделей - это было когда Ярослав с чем то боролся и не работала мувитем у кого то. И она написана с небольшой ошибкой.
Цикл постоянно грабает предмет с паузой 300 мсек при том что обычно пауза чуть больше + пинг. Вот и пробивает.

Скрипт написан после просьбы Хосе убрать во всех скриптах мув итем + у меня при мув итеме последний предмет подвисал на мышке, я хз почему, переделал на граб и работает. Если скрипт не грабнет предмет из-за задержки, то он его грабнет в следующем цикле, т.е. предмета в паке не останется. Проблемы с несколькими стаками предметов у меня и у того, кому я скрипт скидывал, не было ни 1 раза.
3.
if uo.getdistance(Sunduk7) <= 2 then ### свитки ###; вот это правильно но совершенно не нужно - в поиск добавлен параметр дистации.
    uo.setreceivingcontainer(Sunduk7); а это устаревшие не нужные команды для граба
    uo.unsetreceivingcontainer(); а это устаревшие не нужные команды для граба

ты описал эти команды относительно мув итема, но скрипт написан через граб СПЕЦИАЛЬНО, поэтому эти команды актуальны как никогда
4.
PUTLoot2(0x1085, 0x108b, '-1', SundLoot, SundBi); бижутерия
PUTLoot2(0x1f05, 0x1f0a, '-1', SundLoot, SundBi)  ; бижутерия
PUTLoot2(0xf0f, 0xf30, '-1', SundLoot, SundBi)  ; камни

единственное, что можно было сократить, в моем понимании и желании
Лейтенант (4548828)11 лет
Dragonstalker
Сообщений: 3319
Рег. 19.11.2013
29 сентября 2015 13:57
Сообщение #17
Насчет перебора типов это индивидуально, у кого то кожа лежит в мешках, у кого то в куче, у кого то в мусоре... Смысл не в самом наборе, а в том как с ним работать. Я не говорю что я единственно прав. Просто заметил что если в скрипте были использованы функции перемещения предмета вида PUTLoot, PUTLoot2 притом что вторая изза которой и делался весь этот скрипт не задействована в твоем скрипте вовсе (или я проглядел) то это очень странно. И не удивительно что программа 2015 года по 10 раз переписанная не очень хорошо работает с устаревшими командами какими бы хорошими они не были когда то. Ты же не будет 97 офис на Win7-10 ставить потому что "когда то он был лучше всех этих перделок свистелок". Если когда то мувка давала у Хосана сбой это одно, но сейчас то сбоя никакого нет - смысл использовать увеличивающие количество строк команды? Насчет циклов тут все просто - мой вариант меньше нагрузит инжект, твой чуть больше нагрузит (лишний дерг возможен). Зачем лишний раз это делать? Это простая оптимизация кода.

Опять же вот например прямо неправильный (точнее из области И так сойдет ©) кусок из твоего/переписанного твоего скрипта:


if uo.getdistance(Sunduk16) <= 2 then ### мясо ###
uo.setreceivingcontainer(Sunduk16)
PUTLootR('0x09F1', '-1', 'backpack'); мясо
PUTLootR('0x09B9', '-1', 'backpack'); птица
PUTLootR('0x1607', '-1', 'backpack'); курица
end if
end if
if uo.getdistance(Sunduk18) <= 2 then ### паутинки яйца ###
uo.setreceivingcontainer(Sunduk18)

тут в одну константу забивается 2 значения Sunduk16 и Sunduk18 не очищая Sunduk16. По уму ансетать надо каждый setreceivingcontainer. -> увеличение 1 строки мув на 3 строки сет граб ансет.
Старший Лейтенант (6395350)12 лет
Necromancer
Сообщений: 5530
Рег. 27.08.2012
29 сентября 2015 14:24
Сообщение #18
Mirage,
у меня "заансечено" всё, это кто-то ошибся. Просто твой предыдущий пост был в стиле "что за гавно и где вы его нашли", я не мог не ответить, что это гавно из меня хD

ну и прокомментить пару твои замечаний
Старший Лейтенант (6395350)12 лет
Necromancer
Сообщений: 5530
Рег. 27.08.2012
29 сентября 2015 14:39
Сообщение #19
и еще
Цитата: Mirage
Зачем лишний раз это делать? Это простая оптимизация кода.

я не любитель старые скрипты лопатить и переделывать под новые команды, ну не хватало у меня на это уошного времени. Пришел с работы, сдал пару квестов и уже какой-нить денчик цепляет кого-то в окло ) квесты сдать времени не было. Тем более я дилетант в этом деле, для меня написать скрипт - это куча тестов, литературы и времени, если чего-то еще не делал

не сочтите за оправдание, просто не люблю когда в наглую обсирают скрипт, которому года 2-3 точно
Полковник (15397470)11 лет
Dragonstalker
Сообщений: 1870
Рег. 21.06.2013
29 сентября 2015 15:31
Сообщение #20
ребят побольше бы именно таких холи варов , глядишь и люди бы на шарде грамотнее стали :)
Последние посетители (0):

 
Сейчас: 25 ноября 2024 00:57