Меню.
В этом уроке речь пойдёт о работе с меню(крафта),переодически появляющимися в повседневном мире уо.Разберу на конкретных примерах команды для работы ,а так же различные способы обрабатывания. Но сначала объясню "чайникам" на пальцах.
Меню - графический объект,содержащий в себе информацию, о возможном действии(превращении) над предметом. Другими словами:
1.Nightshade-предмет
2.Двойным кликом по реагенту, обрабатываем его и получаем долгожданное меню.
3.На большенстве шардов появится "рамочка с выбором" в верхнем левом углу(Меню крафта алхимии),теперь попродробнее как воплотить это в скриптах.
uo.WaitMenu('
Заголовок','
Выбор'['
Заголовок2','
Выбор2'])
Команда uo.WaitMenu содержит в себе информацию, по которой Injection будет посылать ответы при появлении того или иного меню.Сервер выдал меню- а инжект уже сам распорядился куда ему надо зайти и что скрафтить.
Заголовок -название самого меню,обычно пишется в верхней части меню.
Выбор -то что крафтим,или в какое следующее меню переходим из предыдущего.
Приведу несколько примеров:
Алхимия.
Code:
sub Alchemy()
var garlick=' type '
uo.WaitMenu('What sort of potion do you want to','Cure')
uo.UseType(garlick)
end sub
В скрипте на алхимию,в уо при х2 клике на гарлик, появится меню которое обработает команда uo.WaitMenu -заглавием меню будет
What sort of potion do you want to а выбором
Cure Инскрипт.
Code:
sub Inscription()
var blanc=' type '
uo.WaitMenu('Spell Circle','First Circle','Spell Circle 1','Magic')
uo.UseType(blanc)
end sub
Заглавие
Spell Circle Выбор
First Circle Заглавие второго меню
Spell Circle 1 Выбор во втором меню
Magic ArrowТинкер.
Code:
sub Tinkering()
var tools=' type '
uo.WaitMenu('Tinkering','Tools','Tools','empty bottle')
uo.UseType(tools)
end sub
Заглавие
Tinkering выбор Tools заглавие Tools выбор empty bottleДумаю хватит об этом, уже должно было зарубиться на носу,-приступим к следующей команде, которая разобьёт uo.WaitMenu на uo.AutoMenu ...
uo.AutoMenu ('
Заголовок ','
Выбор ')
uo.AutoMenu ('
Заголовок2 ','
Выбор2 ')
Принцип этой команды остаётся тем же, как и uo.WaitMenu , только она разбита на несколько пунктов.Приведу несколько примеров с теми же скриптами:
Code:
sub Tinkering()
var tools=' type '
uo.CancelMenu()
uo.AutoMenu('Tinkering','Tools')
wait(500)
uo.AutoMenu('Tools','empty bottle')
wait(500)
uo.UseType(tools)
end sub
Code:
sub Alchemy()
var garlick=' type '
uo.CancelMenu()
uo.AutoMenu('What sort of potion do you want to','Cure')
uo.UseType(garlick)
end sub
Code:
sub Inscription()
var blanc=' type '
uo.CancelMenu()
uo.AutoMenu('Spell Circle','First Circle')
wait(500)
uo.AutoMenu('Spell Circle 1','Magic')
uo.UseType(blanc)
end sub
Между AutoMenu разумно будет использовать паузу, дабы уменьшить вероятность сбивания скрипта.
А чтобы свести вероятность сбивания скрипта к нулю, перед меню ставим uo.CancelMenu -команда,которая уберёт все лишние меню, которые могут появиться в результате игрового процесса(ворлд сейвов и лаг).
Ну вобщемто и всё,напоследок лишь скажу что оформлять
Выбор можно как:
а)
Code:
(1),(2),(3)
... Цифрой, в порядке которой стоит нужный вам выбор, допустим:
Алхимия. Вам нужен Potion, который получается при двойном клике на 2ую менюшку, в порядке слева-направо:
Code:
uo.WaitMenu('What sort',(2))
Если у вас в меню будут стоять: Lesser Poison , Poison , Deadly Poison , то поставив (3) -вы сварите Deadly Poison. Думаю понятно.
б)
Code:
(first),(second)
...
Аналогично, только не цифрами а английскими числительными (первое,второе)
в)
Code:
(last)
Повторяем выбор предыдущего Potion'a
г)
Code:
(random)
Injection сам выберет за вас,что ему сварить.
-----------------------------------------------------------------
Если что то забыл-добавьте. Сори за ошипки.