Yoko

All sides of Injection
It is currently 2024-03-28 14:05:16

All times are UTC+02:00




Post new topic  Reply to topic  [ 14 posts ] 
Author Message
PostPosted: 2005-05-30 10:41:26 
Offline
Expert!
User avatar

Joined: 2005-04-23 10:19:43
Posts: 388
Вот небольшое написал введение в скриптинг. Это не отдельный учебник а именно недостающая часть - Введение. После этого введения следует читать обычные уроки.
Надеюсь этот мануал просветит некоторые моменты в скриптинге как таковом.

Полным чайникам в скриптинге посвящаеться….
1) Что такое скрипт
2) Функции и переменные
3) Использование функций и переменных

Каждый человек наверное когда-нибудь составлял себе списки дел которые надо выполнить, покупок и т.д. Скрипт это похожий список действий которые должен выполнить Инжект и ничего более. Для примера попробуем разложить поход в магазин на скрипт. Вот как он будет выглядеть:
А) Дойти до магазина
Б) Найти Хлеб
В) Взять Хлеб
Г) Найти молоко
Д) Взять молоко
….
Каждое действие можно считать отдельным независимым скриптом. Ведь брать хлеб можно не только в магазине, но и дома когда ты голоден. Также есть некоторые скрипты которые должны дать какой-то результат. Пример – скрипт «Найти хлеб». Этот скрипт должен например найти все хлебы вокруг себя, потом из них выбрать самый мягкий, из них самый дешевый, а тогда выдать наружу («возвратить») местоположение лучшего хлеба. Такие скрипты которые возвращают результат, называються «функциями». К функциям относится большинство математических функций. Например sin(60) возвратит вычисленный результат. Также есть другой вид скриптов называемый процедурами. Процедура – это скрипт которые не возвращает ничего. Например действие «Взять хлеб» просто берет найденный хлеб и больше ничего.

У Инжекта есть некоторые функции которые «вшиты» в него. Тоесть вы их сможете использовать где угодно так как они везде есть где есть Инжект. Все функции инжекта начинаються с слова UO. Во всем остальном они работают точно также как обычные скрипты. О них немного позже.

Вторая важная часть любого скрипта – это переменные. Переменная это как лист для хранения информации любого типа. Например чтобы не искать Хлеб каждый раз при походе в магазин, можно найти его 1 раз, записать в переменную где он находиться, а в будущем просто смотреть на запись и идти туда. Переменные различаються в Инжекте на 2 типа: Числа, и Строки. Например символ ‘1’ совершенно не равен числу 1. Число – это есть именно число, а символ «1» компьютер понимает именно как символ а не как число. Строка «23» это не 23 как строке, а 2 символа «2» и «3».
Любая переменная должна быть создана перед тем как в нее чтото записать. Ведь как вы запишите что-то на некупленный лист бумаги. Чтобы создать переменную нужно перед нею поставить слово ‘var’ (сокращение от «variable» что значит «переменная»). Например это можно сделать так:
Var Name
Name=’Вася’
Первая строка создает переменную, а вторая в нее записывает слово «Вася». На будущее главное помнить, что знак = значит не «равно», а «записать». Тоесть этот знак записывает правую часть, в левую.
В инжекте есть множество переменных которые он создает сам и которые перед использованием создавать не надо, но они в этом уроке рассмотрены не будут.

Также существует такая вещь как «указатели». Указатель указывает на какуюто вещь. Сами создавать вы их не сможете, но использовать их прийдеться. Все указатели должны быть записаны в кавычках. Один из них мы скоро рассмотрим, это указатель «self». Этот указатель указывает на вашего персонажа.

Для начала разберемся как использовать процедуры (скрипты которые не возвращают ничего а просто выполняют действие). Начнем с самой простой процедуры инжекта Print. Эта процедура выводит на экран какое-то сообщение. Вот простой пример его использования:
Code:
UO.Print(‘Сообщение’)

При запуске скрипта, когда он дойдет до этой строчки, в окне Ультимы появиться «Сообщение».

С процедурами все легко, теперь разберемся с функциями. Снова возьмем одну из функций инжекта GetName. Эта функция возвращает имя предмета или персонажа. Припустим мы хотим это имя где-то сохранить чтобы потом его гдето использовать. Вот как это будет выглядеть:
Code:
Var Name
Name=UO.GetName(‘self’)
UO.Print(Name)

Теперь попытаемся разобраться что происходит в этом скрипте.
Для начала мы создаем новую переменную с названием Name. Потом мы запускаем функцию инжекта GetName которая узнает имя из указателя ‘self’. Тоесть мы узнаем наше имя в игре. Узнанное имя возвращаеться функцией наружу, и знаком = сразу записываеться в переменную Name. И в последней строке, процедура Print выводит имя записанное в Name на экран.


Top
   
 Post subject:
PostPosted: 2005-05-30 10:44:28 
Offline
Expert!
User avatar

Joined: 2005-04-23 10:19:43
Posts: 388
В этом топе можно спрашивать о любых непонятностях в скриптинге.
Никаких вопросов о применении именно функций инжекта.


Top
   
 Post subject:
PostPosted: 2005-05-31 14:50:45 
Offline
Site Admin
User avatar

Joined: 2004-04-03 16:49:38
Posts: 1964
рекомендации:
напиши хоть один работающий скрипт для примера и разбери его построчно. у тебя здесь нет информации о SUB/ENDSUB, на какие кнопки нужно нажимать чтобы появился редактор скриптов и как этот скрипт запустить.


Top
   
 Post subject:
PostPosted: 2005-05-31 18:28:57 
Offline
Expert!

Joined: 2004-04-03 17:36:29
Posts: 2544
Location: Saint-Petersburg
Очень хорошо. Я был бы рад, если бы кто-нибудь написал бы 1-2 урока, любых кроме третьего (он у меня написан уже наполовину, надеюсь скоро закончить). Предварительный план учебника был такой:

Code:
1. Самая важная команда, синтаксис и "Hello, shard!"
   Команда Wait
   Общий синтаскис скриптов
   Функции и процедуры
   Команда Print
   Команда Say
   Переменные и параметры
   Встроенные переменные инжекта
   Оператор If...Endif
   Оператор While...Wend
   Оператор Repeat...Until
   Команда BandageSelf
   Пустой цикл

2. Поиск и использование объектов
   Устройство мира УО.
   Объекты и типы
   Указатели
   Команда ContainerOf
   Команда Findtype
   Команда Ignore
   Указатель 'finditem'
   Команда GetQuantity
   Команда GetSerial
   Команда IgnoreReset
   Команда FindCount
   Команда Set - установка радиуса поиска
   Пример: Поиск других чаров
   Команды GetDistance, GetNotoriety, GetName
   Команда UO.Click

3. И еще об объектах
   Оператор for...next
   Команда Moveitem
   Пример: добор регов
   Массивы
   Пример: Скрипт на лут
   Команда Useitem
   Команда Usetype
   Команда Usefromgrounf
   Модификаторы
   Указатели
   Команда Grab
   Команда Drop
   Команда Drophere
   Команда addobject
   Команда addtype

      
4. Прицелы

5. Работа с журналом инжекта

6. Работа с меню

7. Гампы и все что с ними связано

8. Слои и одежда

9. Покупка и продажа


10ый урок оставлен под приемы написания скриптов. То есть типовые функции, хитрости, рекурсию там же объяснить и т.д.

В общем, если кто-нибудь взялся бы с примерами рассказать о журнале, или о меню, или о прицелах и т.д. - я был бы очень благодарен такому помощнику. И все остальные тоже.


Top
   
 Post subject:
PostPosted: 2005-06-03 07:39:49 
Offline
Expert!
User avatar

Joined: 2005-04-23 10:19:43
Posts: 388
Бес примеров написано это вступление потому, что все необходимое описано в уроках Эдреда. Здесь я именно собрал ответы на простейшие вопросы заданные в его темах.

Ок, сейчас напишу что-нибудь о прицелах 8)


Top
   
 Post subject:
PostPosted: 2005-06-05 13:03:27 
Offline
Expert!

Joined: 2004-04-03 17:36:29
Posts: 2544
Location: Saint-Petersburg
Кстати, включи в урок 0 понятие истины/лжи, то бишь True/False. Обязательно напиши о числовых значениях этих констант. А то некоторые считают что false = 0 (что верно), а True = 1 (что не совсем верно) ;)


Top
   
 Post subject:
PostPosted: 2005-06-06 19:07:24 
Offline
User avatar

Joined: 2005-06-06 16:25:46
Posts: 10
А как привязать сам скрипт к какой либо комбинации клавиш?


Top
   
 Post subject:
PostPosted: 2005-06-06 23:09:54 
Offline
Expert!
User avatar

Joined: 2004-08-11 23:56:17
Posts: 746
Location: The Citadel
Для этого:
1. Идем в закладку Hotkeys
2. В строке Command пишем "exec название_функции".
Например, exec AutoHeal
3. Ставим курсор в поле Hotkey, и нажимаем нужное сочетание клавишь (на которое хотим забиндить скрипт)
4. Жмем New
5. Жмем Save
6. Затем, чтобы бинд сохралися, в закладке Main жмем Save.


Top
   
 Post subject:
PostPosted: 2005-07-16 15:30:47 
Offline
User avatar

Joined: 2004-10-17 17:20:55
Posts: 61
а чего делать если пишет что функцию найти не может?


Top
   
 Post subject:
PostPosted: 2005-07-16 16:20:14 
Offline
Expert!
User avatar

Joined: 2004-08-11 23:56:17
Posts: 746
Location: The Citadel
Проверить, соответствуюет ли название функции в хоткиях названию этой же функции в самом скрипте. Реестр учитывается.


Top
   
 Post subject:
PostPosted: 2005-07-26 12:02:12 
Offline

Joined: 2005-06-12 09:14:09
Posts: 52
Location: Moscow, Russia
flake wrote:
Проверить, соответствуюет ли название функции в хоткиях названию этой же функции в самом скрипте. Реестр учитывается.

Эмм... АФАИР не реестр, а регистр. :wink:


Top
   
PostPosted: 2006-07-01 11:12:54 
Offline

Joined: 2006-06-07 20:50:11
Posts: 6
СЛух даи асю плз!!!!!!!!!!!!!!!!!!!!


Top
   
PostPosted: 2006-07-01 11:13:34 
Offline

Joined: 2006-06-07 20:50:11
Posts: 6
Beyonder


Top
   
 Post subject:
PostPosted: 2006-08-07 22:14:27 
Offline
Expert!
User avatar

Joined: 2005-04-23 10:19:43
Posts: 388
Во первых - такое пишут в ПМ. А во вторых, если тебе уж очень надо - то постарайся и найдешь. Если не найдешь, то будь уверен что отвечать на твой вопрос я не захочу :)


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 14 posts ] 

All times are UTC+02:00


Who is online

Users browsing this forum: No registered users and 5 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB® Forum Software © phpBB Limited