![]() |
|
![]() |
![]() |
Новости | Конференция | Чат | База данных | Творчество | Сообщество | О сайте | English |
![]() |
Помощь сайту |
![]() |
![]() |
![]() |
![]() |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ВСТУПЛЕНИЕ Что такое навигационный скрипт? Вы никогда не задумывались над тем, что происходит в электронном мозгу корабля после того, как вы отдаете ему команду «Вернуться на базу»? Нет ? Так давайте попробуем в этом разобраться. И так, предположим мы находимся в секторе «Фортуна Елены», а базой приписки нашего корабля является «Ранчо аргну» в секторе «Стена». Из консоли нашего корабля отдаем приказ: «Вернуться на базу». И наблюдаем за происходящим – наш кораблик ложится на курс к западным вратам, набирает скорость и спустя несколько минут мы проходим врата и оказываемся в секторе «Президентский рубеж». Теперь наш путь лежит к северным вратам. Но вот и они позади. Мы долетели до сектора «Стена» войдя в него через южные врата. Именно в этом секторе находится наше «Ранчо аргну». Наш корабль ложится на курс сближения с базой, и движется к ней. Стыковка. Все просто. А теперь представьте, что делали бы вы, если пришлось вести корабль на базу в ручную. Давайте составим последовательность наших действий: 1. Смотрим к какой базе приписан корабль. 2. Заглядываем в карту галактики и определяем где находится наш корабль. В нашем случае это сектор «Фортуна Елены» 3. Находим сектор «Стена». 4. Составляем маршрут. И так, из сектора «Фортуна Елены» через западные врата в сектор «Президентский рубеж», дальше через северные врата в сектор «Стена» 5. Отправляемся в путь. 6. Вот мы и в секторе «Стена». Открываем карту сектора находим нашу базу, выбираем ее целью и летим к ней. 7. Вот уже расстояние до станции меньше 5 км. Включаем связь и запрашиваем разрешения на посадку. Ответ утвердительный, стыкуемся. И так, перед нами список наших действий, этакий сценарий полета к базе. Если мы сравним последовательность наших действий с действиями автопилота, то на лицо тот факт, что мы выполняли практически одинаковую последовательность действий. Получается автопилот действовал по такому же сценарию? И это совершенно верно, ведь дословный перевод с английского слова script означает «сценарий». Так что запустив в командной консоли нашего корабля команду «Вернуться на базу», мы на самом деле запустили навигационный скрипт (далее НС) выполняющий полет на базу. А проанализировав последовательность своих действий, мы составили нечто иное как схему НС. Для того, чтобы нам полностью понять что же такое скрипт разберемся еще с несколькими понятиями: * Script engine (интерпретатор скриптовых команд), далее в тексте ScE – интерпретатор это сам центр обработки команд, производящий анализ и интерпретацию команд находящихся в теле скрипта и обеспечивающий их исполнение. * Инструкции, функции, операторы – составляющие самого языка скриптописания. Это понятные ScE наборы операторов из которых собственно и состоит скрипт. Подробное изучение нам предстоит далее. * Сегмент – какой либо определенный кусок кода НС. * Процедура – сегмент выполняющий одно какое либо действие. Например процедура проверки наличия денег на счету станции. * Аргумент – входные данные, задаваемые для НС. Именно от аргументов зависит результат выдаваемый скриптом. * Примитив – небольшой скрипт выполняющий как правило одну какую нибудь функцию и возвращающий значение в вызывающий скрипт. Это маленький кирпичик в огромном здании сложного скрипта. Цель примитивов это освобождение тела большого скрипта от часто повторяющихся кусков кода выполняющих одну и туже функцию (например, если в скрипте по мере его выполнения многократно производится сканирование галактики, то во избежание многократного переписывания процедуры сканирования, создается примитив который можно вызвать из основного скрипта и он просканировав галактику вернет основному скрипту результат поиска. И так теперь мы имеем поверхностное представление о том, что такое – навигационный скрипт. Давайте сформулируем понятие НС. Навигационный скрипт – это сценарий последовательности действий и реакций объекта на внешние изменения, записанный при помощи команд и инструкций интерпретируемых и исполняемых ScE Х2. Запасаемся инструментом Для того чтобы приступить к изучению скриптописания, следует запостись некоторым набором инструментов, которые значительно облегчат вам эту задачу. Вам понадобиться: 1. Windows Notepad (Блокнот), универсальное средство на все случаи жизни. 2. XML-редактор, любой корректно работающий (лично я использую FrontPage 2003), но ограничений здесь нет. Любой которым вы умеете пользоваться. 3. Internet Explorer, при помощи этого браузера удобно просматривать листинги скрипта. 4. Тек же понадобиться набор специфических программ для распаковки и прочих действий производимых над файлами Х2. Все они описаны в тексте данного учебника, там же указанны ссылки на них. Почти все, что вам может понадобиться имеется на сайте Elite Games. Это собственно и все, что вам может пригодиться при работе с навигационными скриптами Х2. Синтаксис команд HC В угловые скобки заключены значения не являющиеся постоянными, это значения задаваемые для инструкции пользователем или возвращаемые значения (использование угловых скобок условно, только для описания, в самом скрипте они не используются), текст без скобок является самой инструкцией. <RetVar/IF> <object>buy <Var/Number> units of <ware> В данном примере <RetVar/IF> говорит о том, что возвращаемое командой значение может быть присвоено переменной <RetVar>, либо являться аргументом для таких операторов IF, IF NOT, SKIP, SKIP NOT, WIHLE, WHILE NOT. <object> указывает в отношении какого объекта выполняется команда. В данном примере объектом должен быть корабль, а вообще объектом может быть станция, корабль, астероид, планета, туманность и т.п. <Var/Number> сообщает о том, что для команды необходимо указать переменную число, либо ввести число непосредственно в редакторе. <ware> является указателем на какой либо товар, а товаром в «X2 The Threat» может являться все, что можно продать или купить (так же в Х2 имеются <sector> <station> <ship> и т.п. в редакторе все возможные переменные отображаются в виде списка, в некоторых версиях они переведены на русский язык <Перем/Станция>. Например версия НД) Пример: ... 022 $amount = 100 023 $ware = Батареи 024 $obj = [THIS] 025 IF NOT $obj buy $amount units of $ware ... Так же, в синтаксисе команд вы можете встретить: <Value> – значение неопределенного типа. Тут надо смотреть по смыслу, что подставлять. В тексте также будут применяться <Object Command> – команда объекту. Это константа, выбирается из списка возможных. <Object Signal> – сигнал объекту. Это тоже константа. <Flag> константа флаг. [TRUE]|[FALSE] – аргументом должна являться константа TRUE или FALSE В каком редакторе пишется НС, и где его взять? На сегодняшний день написать НС можно только во встроенном в «X2 The Threat» редакторе, это немного не удобно но пока альтернативы нет. Ввод команд в редакторе осуществляется выбором в меню нужной команды, так же вводятся переменные и другие необходимые данные. С клавиатуры вводятся только числовые и текстовые значения, хотя вход в интерфейс для ввода осуществляется также через выбор соответствующего пункта в меню. Изначально редактор находится в деактивированном состоянии и для его использования нужно провести активацию. Делается это следующим образом: 1. На корабле вылетаем в космос. 2. Набираем на клавиатуре следующее слово, важно с большой буквы: Thereshallbewings 3. Раздается краткий звуковой сигнал. Редактор активирован. После того как раздался звуковой сигнал в левом верхнем углу должна появиться полупрозрачная надпись «Modified» (это происходит не во всех версиях игры, в версии от НД этого не происходит). Значок сообщает о том что игра модифицирована. Сделано это в связи с тем, что при помощи НС можно сделать многие вещи, такие как добавить на счет игрока несколько миллионов кредитов (то есть, чистое читерство), а так как значок будет сохранятся после активации редактора во всех сейвах, то это должно сообщить другим игрокам честным ли образом что либо в игре было достигнуто. Теперь нажимаем <Shift>+<C> и оказываемся в командном меню, ищем появившуюся строчку «Редактор скриптов» или нажимаем <S>. Какие бывают скрипты? В ScE «X2 The Threat» присутствует два типа скриптов, это Глобальные скрипты и Локальные скрипты. Глобальный скрипт – к глобальным скриптам относятся НС исполняемые без привязки к какому либо объекту (например, скрипты инициализирующие командное меню). Локальный скрипт – это скрипт запускаемый непосредственно для какого-либо объекта, и существующий только пока существует сам объект.
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() |
![]() |
![]() |
![]() |
Дизайн Elite Games V5 beta.18 EGM Elite Games Manager v5.17 02.05.2010 |
![]() |