Перед початком вивчення макросів Injection ознайомтеся з програмою: Yoko Injection
Перед тим як почати створювати перший скрипти для Injection хочу порекомендувати програму, яка дозволяє зробити цей процес простіше, зрозуміліше і швидше: Програма для редагування скриптів Інжект
sub sayhello ()
uo.msg ( 'Hello world');
end sub
В даному прикладі ми створили скрипт (функцію) під назвою sayhello, при виконання якої персонаж скаже hello world. Познайомимося з створенням макросів докладніше.
Скрипти Yoko Injection складаються з функцій, кожна функція визначається наступними ключовими словами:
sub
...
end sub
Таким чином, перед початком функції необхідно додати слово sub. після якого слідує назва функції латинськими буквами без пробілів, потім дужки, в яких вказуються параметри. Якщо параметрів немає, то дужки всерівно потрібно ставити. Закінчується функція поєднанням слів end sub.
Параметри потрібні коли необхідно викликати функцію з різними даними, наприклад, розглянемо варіант, коли нам потрібно міняти слово в усному фразі. Параметри вказуються в дужках через кому.
sub tell (slovo)
uo.msg ( 'Передаю всім' + slovo);
end sub
Тепер ми створюємо дві різні функції, в яких можемо використовувати нашу:
sub tell_privet ()
tell ( 'привіт!')
end sub
sub tell_bye ()
tell ( 'поки ...')
end sub
Таким чином нам не доводиться повторно виконувати дії функції tell, якщо це потрібно в інших функціях. Як приклад параметри можуть стати в нагоді для переміщення предметів в скриню, коли потрібно в різних макросах переміщати різні предмети, в даному випадку інформація про предмети і буде передаватися через параметри функції яка перемістить його.
Стандартні функції викликаються використанням на початку приставки uo. необхідної для виклику всіх вбудованих функцій Injection. Як ви бачили в прикладі вище - ми писали uo. msg ( 'Привіт')
Майже у всіх стандартних функцій є параметри, параметри вказуються в дужках, текстові параметри полягають в прості «або одинарні лапки 'а числові вказуються як є або теж в лапках, однак для поєднання текстових і числових змінних необхідно використовувати функцію STR для перекладу числових змінних в текстові .
Змінними називаються слова латинською мовою без пробілів яким призначаються різні значення - текстові та числові. Текстові змінні дозволяють зберігати будь-які значення, однак якщо потрібне виконання математичних операцій з цифрами, то потрібно застосування числових змінних. Переклад числових змінних в текстові, як було сказано вище, виконується командою STR (змінна) нижче слід приклад.
Для початку потрібно визначити змінну, це робиться один раз, коли змінна використовується вперше, для визначення змінної використовується слово var (скорочення від variable - англ. Змінна):
var mynum = 3; призначаємо числову змінну mynum зі значенням 3
var plusnum = 10 + mynum; призначаємо нову змінну plusnum зі значенням 10 + значення змінної mynum, в нашому випадку plusnum = 13
var mytext = 'мій текст'; призначаємо змінної mytext фразу мій текст
var plustext = mytext + STR (plusnum); призначаємо змінну plustext рівній: мій текст 13
Оператор if призначений для перевірки умови, в разі відповідності виконується частина скрипта між if <условие> then і e nd if
Оператор for призначений для повторення декількох кроків при цьому автоматично сумується числова змінна зазначена в умова, кожен крок виконується код між for <минимальное значение> to <максимальное значение> і next
Оператор repeat повторює дію до тих пір, поки не буде виконуватися задана умова repeat ... until <условие>. при цьому якщо умова вже відповідає потрібному значенню, то після першого виконання цикл оператора припиняється і код виконується далі
Оператор while є більш традиційним і повністю дублює дію оператора repeat, однак у нього є свої плюси, про які ми розповімо далі. Основною особливістю даного оператора на відміну від repeat є те, що оператор не буде виконуватися, якщо одна з вимог while <условие> ... wend
Виклик внутрішніх команд з вкладки hotkeys в Injection виконується без покажчика uo. і дужок. Наприклад, для того, щоб вимовити фразу через hotkeys досить ввести команду: msg 'Привіт' а для виклику ваших функцій потрібно написати: exec <название функции> см. картинку:
Для однієї кнопки можна призначити кілька функцій, вказавши їх через; наприклад: msg 'Привіт'; exec tell_privet
2. Переходимо до дій
Після того як ви вивчили інформацію з першого пункту, переходимо безпосередньо до створення простих скриптів, навіть якщо інформація з першого пункту на вас обрушилася як сніжний ком і ви її не встигли переварити або не читали, а може бути просто не зрозуміли сенс набору слів, то не впадайте у відчай, далі все стане зрозуміло, а в міру вивчення основ Ви можете повертатися до першого розділу, який проллє світло на ті моменти, які ми будемо розглядати нижче.
Отже, всі скрипти начіаются з автоматизації елементарних дій, які ми детально розберемо. У цьому розділі ми розглянемо створення скриптів для:
-використання досвіду
-каста магії
-Рекол
-використання предметів
-переміщення предметів
У функції два параметри, перший - skill вказує на те, який саме навик ми хочемо використовувати, другий параметр вказаний в квадратних дужках, значить він є НЕ обов'язковим і його можна не вказувати. Детальніше дізнатися про параметри ви можете за посиланням вище. Повний список назв навичок доступі по посиланню skill.
Створимо скрипт, який буде використовувати навик Hiding з паузою між затримками - 1 секунду.
В даному прикладі ми вперше використали команду wait, вона призначена для паузи скрипта на зазначену частку мілісекунд. 1000 мілісекунд = 1 секунда.
Як бачите, нічого складного. Перейдемо до другого наприклад, де ми будемо використовувати навик Anatomy на npc або тварину.
Для початку необхідно дізнатися ID npc або тваринного, на якому ми будемо качати Anatomy. Для цього на вкладці Objects в Injection ми додаємо новий об'єкт і називаємо його, наприклад, skilltarget, натисніть кнопку From Target і вкажіть в грі NPC або тварина знаходиться поруч з вами і збережіть об'єкт.
Тепер розглянемо скрипт
Каст магії дуже схожий на використання магії, ми так само підставляємо назва заклинання і можемо вказати об'єкт.