лут по цвету

Ask for help

Moderators: Murderator+, Murderator

Post Reply
Gromiz
Posts: 444
Joined: 2005-02-08 18:39:50
Location: Moscow

лут по цвету

Post by Gromiz »

есть скрипт на лут вещей из сумки/трупа:

Code: Select all

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

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

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

как это отобразить в списке? вариант не подходит: Loot[2]='0x0F10 0x0487' ;
Scripts Writer
Posts: 2259
Joined: 2005-04-19 18:00:29
Location: Московская область
Contact:

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

Post 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'

Gromiz
Posts: 444
Joined: 2005-02-08 18:39:50
Location: Moscow

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

Post by Gromiz »

а "качество" работы не ухудшится?

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

спс, переживем :)
Mirage
Posts: 2802
Joined: 2009-05-28 09:58:28
Location: Иваново
Contact:

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

Post 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
Destruction
Junior Expert
Posts: 3221
Joined: 2004-06-24 22:08:56

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

Post 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
YokoInjection CodeSweeper
Function not found?
Possession of mathematics at the level of art - a gift that is only available for election.
Sorry for my clumsy English.
Telegram: @tatikom
Gromiz
Posts: 444
Joined: 2005-02-08 18:39:50
Location: Moscow

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

Post by Gromiz »

пробовал различные варианты прописи

Code: Select all

 "0x14EF 0x0487"

так же не подходит
Destruction
Junior Expert
Posts: 3221
Joined: 2004-06-24 22:08:56

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

Post by Destruction »

Gromiz wrote:пробовал различные варианты прописи

Code: Select all

 "0x14EF 0x0487"

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

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

Все очень даже подходит.
YokoInjection CodeSweeper
Function not found?
Possession of mathematics at the level of art - a gift that is only available for election.
Sorry for my clumsy English.
Telegram: @tatikom
Gromiz
Posts: 444
Joined: 2005-02-08 18:39:50
Location: Moscow

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

Post by Gromiz »

ладно, спасибо
все равно не вышло.

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

Destruction

в вашем скрипте я половину строчек вообще не понял
Mirage
Posts: 2802
Joined: 2009-05-28 09:58:28
Location: Иваново
Contact:

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

Post by Mirage »

Скрипты писать не девченок драть :lol:
хотя чтобы ВСЕ строчки понять в его варианте достаточно заглянуть в список help к командам и все станет кристально ясно.


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

Функция Str () преобразовывает численное значение в символьное представление.
Функция Val () преобразовывает символьную строку в численное значение.
2 = val(str(2)) :roll: как бэ. Разве нет?
Destruction
Junior Expert
Posts: 3221
Joined: 2004-06-24 22:08:56

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

Post by Destruction »

Mirage wrote:Скрипты писать не девченок драть :lol:
хотя чтобы ВСЕ строчки понять в его варианте достаточно заглянуть в список help к командам и все станет кристально ясно.


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

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

Не знаю как сейчас, но раньше точно не работало без такого вот шаманства.
YokoInjection CodeSweeper
Function not found?
Possession of mathematics at the level of art - a gift that is only available for election.
Sorry for my clumsy English.
Telegram: @tatikom
Mirage
Posts: 2802
Joined: 2009-05-28 09:58:28
Location: Иваново
Contact:

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

Post by Mirage »

Замечал что порой в инжекте работают даже такие не жизнеспособные вещи :)

Code: Select all

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