Как указать тип, цвет в VAR

Anything and all.

Moderators: Murderator+, Murderator

Post Reply
CxC
Posts: 93
Joined: 2012-12-31 00:17:09

Как указать тип, цвет в VAR

Post by CxC »

Code: Select all

VAR Heal   = '0x0E24' 

это тип, как тут же указать цвет? что-то типо

Code: Select all

VAR Heal   = '0x0E24, 0x0322'

так нет....
далее в скрипте будет

Code: Select all

var item = Heal

ну и

Code: Select all

PUT(item, bag)


в PUT'е прописывать цвет не вариант, сразу говорю, надо именно в первом VAR
CxC
Posts: 93
Joined: 2012-12-31 00:17:09

Re: Как указать тип, цвет в VAR

Post by CxC »

Mirage wrote:Зачем? И почему не вариант?

банки алхимии одинакового типа, но разного цвета. В скрипте будет много банок
и выкладывать все банки с бекпака перед крафтом тож не вариант ) не хочу
ZeroDX
Posts: 718
Joined: 2006-12-08 10:51:50
Location: Москва
Contact:

Re: Как указать тип, цвет в VAR

Post by ZeroDX »

ну можно вытаскивать из строки тип и цвет в функции PUT, если туда передаётся тип

Code: Select all

var string = '0x1234,0x4321'
type = mid(string, 0, 6)
color = mid(string, 7, 6)

или так

Code: Select all

var string = '0x1234,0x4321'
type = left(string, 6)
color = right(string, 6)
CxC
Posts: 93
Joined: 2012-12-31 00:17:09

Re: Как указать тип, цвет в VAR

Post by CxC »

а что означают цифры 0, 6, 7? где можно про это почитать. Вечером попробую скрутить скрипт, посмотрим что получится

появилась мысль сделать PUT2, там вбить сразу тип и в Var писать только цвет. Реально же? :)
ZeroDX
Posts: 718
Joined: 2006-12-08 10:51:50
Location: Москва
Contact:

Re: Как указать тип, цвет в VAR

Post by ZeroDX »

почему не сделать sub put(type, color, container)?
Mirage
Posts: 2802
Joined: 2009-05-28 09:58:28
Location: Иваново
Contact:

Re: Как указать тип, цвет в VAR

Post by Mirage »

И я про то же:

тип цвет откуда куда координаты, если нужно

Code: Select all

Sub PUTLoot(Type, Color, SourceContainer, TargetContainer,X,Y,Z)
   ;uo.ignorereset()
   UO.FindType(Type, Color, SourceContainer)
   while UO.FindCount()
         if (TargetContainer=='ground') then
            uo.MoveItem('finditem',0,TargetContainer,uo.GetX('self'),uo.GetY('self'),uo.GetZ('self'))
         else
            timemove=UO.Timer()
            while UO.ContainerOf( UO.GetSerial('finditem') )==SourceContainer && timemove+20>UO.Timer()
               uo.MoveItem('finditem',0,TargetContainer,X,Y,Z)
               wait(lootwait)
            wend
         end if
      UO.FindType(Type, Color, SourceContainer)
   wend
end sub

PUTLoot(-1, '0x0482', corps, pack,'','','') ; все серебряные вещи

var-ы пропиши только
Nmy
Expert!
Posts: 2152
Joined: 2005-09-14 15:31:58
Location: Latvia

Re: Как указать тип, цвет в VAR

Post by Nmy »

CxC wrote:а что означают цифры 0, 6, 7? где можно про это почитать.


потому что VAR = '0x1234, 0x4321' это тип string

все можно, только надо хотеть. цвета, типы можно легко в массиве прописать
CxC
Posts: 93
Joined: 2012-12-31 00:17:09

Re: Как указать тип, цвет в VAR

Post by CxC »

Nmy wrote:все можно, только надо хотеть. цвета, типы можно легко в массиве прописать

вот я и спрашиваю как?
Nmy
Expert!
Posts: 2152
Joined: 2005-09-14 15:31:58
Location: Latvia

Re: Как указать тип, цвет в VAR

Post by Nmy »

с начало надо сюда кинуть весь скрипт, и все что нужно- цвета, типы, обьекты
Dexter Morgan
Posts: 14
Joined: 2013-07-27 15:27:11

Re: Как указать тип, цвет в VAR

Post by Dexter Morgan »

Доброго времени суток!

Начну пожалуй свое сообщение с того, что поиском пользоваться умею, а прямыми руками и серым вешеством, вроде как, не обделен.
Поиск по форуму привел меня в эту тему, в тему где интересующий меня вопрос так и не был решен.

И так, перейду к сути моего сообщения.

Что мы имеем? Да ничего, кроме как самого обычного шаблона на скрипт лута с массивом, слегка измененный для того, чтобы объяснить чего хочется добиться.

Code: Select all

sub Loot()
   DIM Loot[5]
   Loot[0] = 'Type', 'Color'; Item №1
   Loot[1] = 'Type', 'Color'; Item №2
   Loot[2] = 'Type', 'Color'; Item №3
   Loot[3] = 'Type', 'Color'; Item №4
   Loot[4] = 'Type', 'Color'; Item №5

   Var A

   For A = 0 To 4
      Repeat
         UO.FindType(Loot[A], Loot[A], 'lastcorpse')
         If UO.FindCount() > 0 Then
            UO.MoveItem('finditem', '-1', 'backpack')
            Wait(500)
         Endif
      Until UO.FindCount() < 1
   Next
End Sub


На что нужно обратить внимание?

Во-первых, на это:

Code: Select all

Loot[0] = 'Type', 'Color'; Item №1

Массив один, цвет и тип прописан в одной и той же строке.

Во-вторых:

Code: Select all

UO.FindType(Loot[A], Loot[A], 'lastcorpse')

Тип и цвет берутся из одного массива, в котором сразу прописан и тип, и цвет. См. выше.

Естественно, что не получиться сделать так, как я хочу.
Но как можно сделать что-то приблизительно похожее на желаемое?
Минимализм решения, конечно, приветствуется.

Надеюсь, что доходчиво объяснил в чем вопрос.
Будь осторожен в своих суждениях о людях. Скорее всего, ты ошибаешься.
Mirage
Posts: 2802
Joined: 2009-05-28 09:58:28
Location: Иваново
Contact:

Re: Как указать тип, цвет в VAR

Post by Mirage »

Поиском то умеешь пользоваться. А вот наблюдательность хромает. В теме дали целых 2 примера как использовать тип/цвет без 2 массивов.
Мне вот логика не понятна.
Есть золотой меч, золотой лук, серебряный щит и серебряный лук.
Это получается 4 строки вида

Code: Select all

   Loot[0] = 'Type', 'Color'; Item №1
   Loot[1] = 'Type', 'Color'; Item №2
   Loot[2] = 'Type', 'Color'; Item №3
   Loot[3] = 'Type', 'Color'; Item №4

Вместо этого можно сделать либо в 3 строки:

Code: Select all

PUTLoot('тип меча', 'цвет меча', corps, pack,'','','') ; 
PUTLoot('тип щита', 'цвет щита', corps, pack,'','','') ;
PUTLoot('тип лука', -1, corps, pack,'','','') ;  оба лука перекинет

либо вообще в 2 строки:

Code: Select all

   PUTLoot(-1, 'цвет серебро', corps, pack,'','','') ; все серебряные вещи
   PUTLoot(-1, 'цвет золото', corps, pack,'','','') ; все золотые вещи



ЗЫ и чем не угодила запись в виде 2 массивов подряд?
Nmy
Expert!
Posts: 2152
Joined: 2005-09-14 15:31:58
Location: Latvia

Re: Как указать тип, цвет в VAR

Post by Nmy »

Вариант первый:

Code: Select all

var string = '0x1234,0x4321'
type = left(string, 6)
color = right(string, 6)


Вариант второй:

Code: Select all

Dim type[50]
type[1]='0x1234'

Dim color[50]
color[1]='0x4321'

for n=1 to 50
uo.findtype(type[n],color[n],'backpack')

Dexter Morgan
Posts: 14
Joined: 2013-07-27 15:27:11

Re: Как указать тип, цвет в VAR

Post by Dexter Morgan »

Mirage, это скорее из разряда как сделать, чем как лучше.

Nmy, со вторым вариантом все понятно, никаких вопросов.

С первым вариантом куда сложнее для моего понятия.
Что значат все эти строки? Как они внедряются в скрипт?
Как я понял эти строки, то это выглядит для меня совершенно не логичным, поэтому не понимаю как внедряется в скрипт.

Полазил по форуму, наткнулся на довольно таки интересное решение. Правда скрипт не является таким коротким, как хотелось бы.
Добор реагентов от ZeroDX
Будь осторожен в своих суждениях о людях. Скорее всего, ты ошибаешься.
Nmy
Expert!
Posts: 2152
Joined: 2005-09-14 15:31:58
Location: Latvia

Re: Как указать тип, цвет в VAR

Post by Nmy »

Code: Select all

var type, color

Dim mass[50]
mass[0] = '0x1234,0x4321'

type = left(mass[0], 6)
color = right(mass[0], 6)

uo.findtype( type , color ,'backpack')


mass[0] = '0x1234,0x4321' - это строка.
left - возвращает 6 символов с лево на право = 0х1234
right - возвращает 6 символов с право на лево = 0х4321
Post Reply