Page 1 of 1

лут по цвету

Posted: 2010-02-04 22:08:45
by Gromiz
есть скрипт на лут вещей из сумки/трупа:

Code: Select all

Loot[1]=0x0F13 ; 
Loot[2]=0x0F10 ;
Loot[3]=0x0F15 ;

вещь с типом: 0x0F10
имеет несколько разновидностей, которые отличаются цветом.

как можно слутать вещь с определенным цветом?
Colour: 0x0000 и Colour: 0x0487 соответственно

как это отобразить в списке? вариант не подходит: Loot[2]='0x0F10 0x0487' ;

Re: лут по цвету

Posted: 2010-02-05 01:36:19
by Scripts Writer
1) Массив типов с соответствующим им массивам цветов

Code: Select all

DIM type[2]
DIM color[2]

type[0]=''
type[1]=''

color[0]=''
color[1]=''

var i

for i = 0 to 1
  uo.FindType(type[i],color[i]...)


2) Дублирование типов в массиве (на мой взгляд наиболее предпочтительный вариант).
Аналогично пункту 1, только без второго массива (если больше не существует других цветов, иначе придется отсеивать как в пункте 1 по нужным цветам). Если в поле зрения будет несколько вещей с разными цветами, но одинаковыми типами, то через поиск по цвету '-1' слутаешь.

Code: Select all

DIM type[2]

type[0]='0x0F10'
type[1]='0x0F10'


Re: лут по цвету

Posted: 2010-02-05 08:22:00
by Gromiz
а "качество" работы не ухудшится?

ведь, ради одной вещи делать 2 массива?

спс, переживем :)

Re: лут по цвету

Posted: 2010-02-05 08:57:31
by Mirage
Вот вариант почемуто никем практически не используемый.

Code: Select all

sub main()
   Loot('0xe89', '0', SundLoot, SundD)
   Loot('0x14ef', '0', SundLoot, SundD) ; свитки простые
   Loot('0x14ef', '0x0487', SundLoot, SundR) ; свитки цветные
   Loot(-1, '0x0482', SundLoot, SundRAR) ; серебрянные вещи
endsub
Sub Loot(Type, Color, SourceContainer, TargetContainer) ; тип, цвет, откуда, куда
   uo.ignorereset()
   Repeat
      UO.FindType(Type, Color, SourceContainer)
      If uo.FindCount()>0 Then
         uo.MoveItem('finditem',0,TargetContainer)
         wait(100)
      end if
   Until uo.FindCount()<1 or uo.Dead()
end sub

Re: лут по цвету

Posted: 2010-02-05 09:16:34
by Destruction
Не используется ибо длинный вариант получается..

Мне не везде нужно указывать всякие контейнеры и цвет..

Как вариант, который тоже почему-то нигде не используется:

Code: Select all

sub loot()
var i, loot_len = 2
DIM loot[val(str(loot_len))]
loot[0] = "0x14ef" ; свитки простые
loot[1] = "0x14ef 0x0487" ; свитки цветные
for i = 0 to loot_len -1
    uo.exec("findtype " + loot[i])
    while uo.findcount()
        uo.moveitem('finditem')
        wait(100)
        uo.exec("findtype " + loot[i])
    wend
next
endsub

Re: лут по цвету

Posted: 2010-02-05 10:38:25
by Gromiz
пробовал различные варианты прописи

Code: Select all

 "0x14EF 0x0487"

так же не подходит

Re: лут по цвету

Posted: 2010-02-05 10:52:09
by Destruction
Gromiz wrote:пробовал различные варианты прописи

Code: Select all

 "0x14EF 0x0487"

так же не подходит

Внимательнее мой скрипт смотрите.

Все очень даже подходит.

Re: лут по цвету

Posted: 2010-02-05 11:41:46
by Gromiz
ладно, спасибо
все равно не вышло.

буду руками выбрасывать. по старинке

Destruction

в вашем скрипте я половину строчек вообще не понял

Re: лут по цвету

Posted: 2010-02-05 12:41:06
by Mirage
Скрипты писать не девченок драть :lol:
хотя чтобы ВСЕ строчки понять в его варианте достаточно заглянуть в список help к командам и все станет кристально ясно.


Я вот не понял зачем писать DIM loot[val(str(loot_len))] если работоспособно DIM loot[loot_len] ? Ему же как раз выше присвоено цифровое значение. У тебя получается тафталогия:

Функция Str () преобразовывает численное значение в символьное представление.
Функция Val () преобразовывает символьную строку в численное значение.
2 = val(str(2)) :roll: как бэ. Разве нет?

Re: лут по цвету

Posted: 2010-02-05 13:03:23
by Destruction
Mirage wrote:Скрипты писать не девченок драть :lol:
хотя чтобы ВСЕ строчки понять в его варианте достаточно заглянуть в список help к командам и все станет кристально ясно.


Я вот не понял зачем писать DIM loot[val(str(loot_len))] если работоспособно DIM loot[loot_len] ? Ему же как раз выше присвоено цифровое значение. У тебя получается тафталогия:

Функция Str () преобразовывает численное значение в символьное представление.
Функция Val () преобразовывает символьную строку в численное значение.
2 = val(str(2)) :roll: как бэ. Разве нет?

Не знаю как сейчас, но раньше точно не работало без такого вот шаманства.

Re: лут по цвету

Posted: 2010-02-05 13:14:14
by Mirage
Замечал что порой в инжекте работают даже такие не жизнеспособные вещи :)

Code: Select all

for type = 0x1f05 to 0x1f0a
    uo.exec("findtype " + type)
        uo.moveitem('finditem')
next