Как делать скрипты для игр. Пишем программы (скрипты) в Блокноте Windows

Я лично занимаюсь шлифовкой всех скриптов продаж перед финальной сдачей их заказчику. Но перед тем как попасть на такое “тёпленькое” место, я написал более 100 штук.

И я, как никто другой, знаю всю боль создания такого текстового продажника. Конечно же за это время и у меня, и у нас в компании родились определённые этапы, которые должен пройти каждый скрипт перед рождением на свет.

Поэтому поговорим сегодня о данных этапах и разберёмся как написать эффективный скрипт продаж в 10 шагов.

Надо или нет?

Так как вы оказались на этой странице, значит вы искали подобный материал. И должны понимать о чём идёт речь.

Но как показывает практика, каждый воспринимает мир через свою призму и даже обычно “яблоко” все воспринимают по-разному (красное маленькое, ярко зелёное и глянцевое, матовое зелёное с точками и т.д.).

Поэтому обсудим несколько вводных тем про , на встрече или . И начнём с определения.

Скрипт продаж - алгоритм общения по телефону или на встрече, цель которого помочь менеджеру по продажам довести клиента до намеченной цели.

Это если умно. Если просто, то будет звучать так:

Скрипт продаж - это ваш идеальный продавец, который состоит из готовых фраз упорядоченных по этапам продаж и реализованных в визуальную схему.

И для меня, как для разработчика скриптов продаж, нет такого вопроса “Нужен ли он мне?”. И всё же я обозначу те случаи, когда вам критически важно написать алгоритм общения для своей компании:

  1. Низкие продажи и плохой сервис;
  2. У всех продавцов разные результаты;
  3. Нет общего регламента работы;
  4. Новичок долго вникает в процесс;
  5. Уходит много времени на обучение сотрудников;
  6. Планируется продажа франшизы.

Думаю вопрос о необходимости закрыт. Хотя я и встречал компании, когда такой сценарий не то чтобы совсем не нужен, просто нужен в крайне простом варианте.

А именно для обозначения последовательности действий (1 страница) и такой скрипт лучше написать самостоятельно, чем обращаться к кому-нибудь. Так, хватит, давайте передохнем, сейчас я предлагаю Вам сделать небольшую видеопаузу 🙂

Я или Вы будете мучиться

Написание сценария разговора это не самое увлекательное действие, хоть я и люблю свою работу.

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

И в этот момент мозг работает куда активнее, чем при обычном разговоре по телефону или на встрече.

Да сколько можно думать..

К тому же всё это длится не один день. Например, мы берём на разработку 14 дней.

И не только потому, что берём в расчёт очередь клиентов и возможные накладки, а потому что знаем, к скрипту нужно вернуться несколько раз со свежей головой для получения достойного результата.

Поэтому скажите вы себе: “Я сам буду мучаться” или скажите другим: “Вы будете мучаться” - решать вам. Есть во всём свои плюсы и минусы. И я хочу о них рассказать, ввести вас в курс дела.

Самостоятельно

Не самый плохой вариант, сразу скажу. И раз вы читаете этот материал, возможно вы планируете это и сделать.

Единственное, я категорически не советую писать скрипт самостоятельно, если вы сами не находитесь на поле продаж, то есть не разговариваете с клиентами по телефону, не ездите на встречу, не встречаете их в офисе.

Потому что всё, что будет у вас в голове, будет строиться на сухой теории. А в этом непростом деле нужна именно практика.

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

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

Поэтому идеально, чтобы самостоятельным написанием скрипта продаж занимался человек со знаниями актуальных (очень важно) техник продаж, со знаниями специфики и практик продаж.

Фрилансер

Любая компания начинается с фрилансера. И мы так начинали до того момента пока не выросли до 12 человек. Однозначный плюс в том, что дёшево. Очень дёшево.

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

Фрилансер хорошо знает актуальные техники продаж, но сам при этом практически не продаёт, так как не надо, нет такого потока входящих клиентов.

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

Компания

Компании такого формата как мы. Таких, к слову, на рынке не так уж много, если выделять тех, кто “на слуху”, то получим список из не более, чем 5 позиций.

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

Главный минус (если пренебречь стоимостью) в том, что хоть мы и написали уже сотни скриптов, хоть у нас и работает несколько скриптологов, всё равно специфику каждой компании мы до конца не знаем.

Опыт был во многих сферах, но в каждой компании помимо специфики сферы, есть специфика компании.

Поэтому идеальным сочетанием будет 10% вашего времени для помощи в понимании специфики и 90% наших усилий для написания скрипта продаж.

Сколько стоит?

Последний вводный блок перед тем, как мы перейдём к рассмотрению процесса из 10 шагов.

И разговор пойдёт о стоимости за всё это чудо, которое, по словам некоторых, “написать можно за пару часов в спокойном режиме”. Так ли это?

Ранее я уже упоминал, что мы разрабатываем скрипт 14 дней. Почему так долго, будет ясно, когда прочитаете последовательность наших действий ниже.

И мы со 100% гарантией можем сказать, что если скрипт написан в 2-3 раза быстрее, то это: либо готовые шаблоны, адаптированные под вас, а не написаны с нуля.

Или это крайне не квалифицированная работа, потому что к скрипту нужно вернуться, чтобы посмотреть на него со свежей головой.

Вот они, халтурщики во всей красе

В вип-пакете мы ещё и тестируем сценарий за клиента на реальных звонках, то есть проверяем его на деле, корректируем.

А звонки с учётом перезвона растягиваются минимум на 2-3 дня. К слову, за время тестирования иногда происходит продажа и скрипт окупается с лихвой.

Что касается стоимости. На рынке вы можете найти предложения от 2 тысяч до 90 тысяч рублей.

Можно долго спорить, завышена цена на эту услугу или нет, но точно можно сказать, что нормальный скриптолог, который знаете себе цену, не будет брать меньше 10 тысяч рублей за написание скрипта без учёта дополнительных действий.

Решать только вам кого выбрать и сколько заплатить. Я лишь хочу, чтобы вы понимали, что если у вас есть человек/компания, которые смогут написать скрипт даже на 1% лучше и стоить это будет в несколько раз дороже, то соглашайтесь.

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

НАС УЖЕ БОЛЕЕ 29 000 чел.
ВКЛЮЧАЙТЕСЬ

Как написать скрипт продаж

Сливки, так называют самую вкусную часть торта. В нашем случае как раз к сливкам мы и подобрались.

Далее я вам расскажу по каким шагам строится создание идеального текстового продавца в ворде или в специальной программе .

Шаг 1 - Кто он?

Ваша задача на данном этапе собрать максимально полную картину. А вот дальше будет интереснее, вам нужно будет вычленить всё самое важное, основываясь на шаге 1 и сжать это до нескольких фраз, чтобы донести клиенту ту или иную мысль.

Шаг 3 - Определение ступеней и целей

Каждый скрипт пишется под определённую задачу и не нужно в один голос кричать, что основная задача - “продажи!”.

Это и так понятно по умолчанию. На этом шаге ваша основная задача - понять этапы и какие цели должен достигнуть каждый мини-скрипт на своём участке.

Для примера рассмотрите ступени и цели, которые мы прописывали при недавнем создании скрипта исходящего холодного звонка:

  1. Верификация ЛПРа (ЛДПРа);
  2. Проход блокера;
  3. Разговор с ЛПР и отправка маркетинг-кита;
  4. Первый перезвон ЛПРу и предложение на встречу/ выявление потребности для расчёта сметы.
  5. Второй перезвон ЛПРу и закрытие на пробную партию.

Как вы уже поняли, написанием одного скрипта не обойтись. В данном случае их 5, но мы же считаем это все за один, так как воспринимаем это одной продажей, хоть и с каждой отдельной целью на своём этапе.

Шаг 4 - Установка блоков и техник продаж

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

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


Пример составление блоков

Единственное, что для вас может быть непонятно, так это название техник в примере.

А всё потому, что у нас в компании есть стандартные техники, которые мы называем своим “птичьим языком” для более быстрого понимания друг друга и клиент их при получение своей версии не видит.

Шаг 5 - Написание речевых фраз и оформление

Вот оно, самое интересное! А то всё готовились и готовились. Наконец-то пишем тексты, основываясь на предыдущих шагах и знаниях о продажах.

И знаете что самое проблемное? То, что не существует для всех компаний универсальных фраз.

Поэтому в бой идёт личный опыт продаж и теоретические знания, полученные из книг, семинаров и других видов источников.


Пример написания речевых фраз

Помимо того, что вы на этом шаге напишите речевые обороты, у вас самопроизвольно встанет вопрос оформления. Вариантов оформления в нашем обиходе 5 штук.

Как правильно писать скрипты для сайтов, операционной системы или игр? В рамках данной статьи мы попробуем рассмотреть ответ на этот вопрос.

Как писать скрипты для Windows: общая информация

Для написания скриптов желательно обладать хотя бы минимальными знаниями в программировании. Если же вам что-то кажется непонятным, то восполнить пробел поможет статья-другая. Давайте первоначально определим, что собой представляет скрипт. Скрипт это алгоритм, который написан определенными языками программирования. Он хранится на компьютере пользователя и может взаимодействовать с определенными программами, файлами и системными настройками. Все это дает возможность значительно дополнить стандартные возможности, создать автоматизированного помощника, который сможет взять на себя часть работы.

Работа с браузерами

Работа с интернет-браузерами, пожалуй, является одним из наиболее легких занятий. Для написания скриптов на Java Script будет достаточно знания этого языка программирования и обычного блокнота. Однако и здесь могут быть свои недостатки. Каждый пользователь, у которого есть та же самая стандартная программа «Блокнот», легко может посмотреть, что собой представляет скрипт. Если у пользователя будут плохие намерения, а в коде уязвимость, то вполне могут появиться проблемы. При ответе на вопрос о том, как писать скрипты на Java Script стоит отметить, что для этого нужно просто изучить данный язык программирования. Чтобы создавать более сложные программы, можно использовать различные библиотеки. Однако для них потребуются и соответствующие расширения веб-обозревателей. При смене компьютерной техники пользователю придется осуществлять дополнительные настройки. При использовании сторонних разработок следует убедиться в том, что созданный скрипт не будет отправлять данные пользователя на сторонние сервисы. Необходимо отметить, что у каждого интернет-браузера имеются свои определенные ограничения. Однако с их помощью в целом можно сделать все, что угодно. Зачем же их создают? Скрипты нужны для того, чтобы автоматизировать деятельность пользователя.

Работа с операционной системой Windows

Предположим, нам нужно поменять конфигурацию персонального компьютера. Для этого существует большой набор графических средств, но, к сожалению, все возможности они не охватывают. Поэтому приходится дополнительно создавать системные скрипты, которые имеют расширение.bat. Каждый пользователь, который работает за компьютером более-менее длительное время, наверняка встречался с такими файлами. Но как же писать скрипты для операционной системы Windows? Для этой цели нам понадобится стандартная программа «Блокнот». Для начала нужно создать новый текстовый файл. Необходимо записать в нем системные команды. После этого расширение файла нужно заменить на.bat. Затем останется только запустить данную разработку. Если все будет сделано правильно, команды будут успешно выполнены. В случае неграмотного написания кода или ошибок в лучшем случае ничего не произойдет. По этой причине лучше разбираться в том, что пишешь. Категорически не рекомендуется просто брать код и бездумно вставлять его. Это может привести к возникновению проблем в работе операционной системы. Повезет, если опасные операции будут осуществлены с гостевого аккаунта. Команда, выполненная от имени администратора, запросто может превратить ваш персональный компьютер в «кирпич».

А как обстоят дела с Linux? Стоит учитывать, что Windows – это далеко не единственная операционная система. Довольно популярной системой также является Linux. Как же писать скрипты в данной операционной системы? Скрипты здесь создаются при помощи оболочки или специального командного интерпретатора. Такой интерпретатор является интерфейсом между ядром операционной системы и пользователем. По сути, скрипт в Linux представляет собой простой файл, в котором перечислены системные команды. Это одновременно удобно и просто. При этом оболочке обязательно нужно знать, какой файл необходимо обрабатывать. Она по умолчанию просто читает. Если нужно выполнить команду, то используется конструкция «#!». Ее нужно просто вставить перед командой. Все скрипты в Linux имеют расширение.sh. Необходимо отметить, что при помощи скриптов можно делать множество довольно сложных вещей. Так, например, при помощи данного инструмента можно осуществлять резервное копирование файлов. В целом существует множество вариантов использования скриптов.

Пишем скрипты

Прежде всего, необходимо определиться со средой, в которой мы будем набирать код. Для этого почти всегда достаточно только «Блокнота». В этой стандартной программе не слишком удобно отображать строение конструкций. Здесь не подсвечиваются операторы и другие элементы. В качестве достойной альтернативы можно предложить программу под названием Notepad++. Пользователи, которые хорошо знают английский язык, наверняка сообразили, что это тот же «Блокнот», но обладающий расширенными возможностями. Это небольшая, но достаточно приятная разработка, которая в первую очередь ориентирована на программистов. Здесь можно включить настройку отображения практически всего, что есть. Также присутствует довольно удобный инструмент отображения кода и много других мелких приятных вещей, которые делают более комфортным процесс написания кода. В целом же можно дать множество различных ответов на вопрос, «где писать скрипты». Это могут быть и навороченные среды с множеством элементов отладки и эмуляторами. Достаточно только выбрать то, что вам по душе. Затем необходимо позаботиться о наличии знаний. В качестве основы вполне подойдет справка по выбранному языку программирования или команд ОС. Для более подробного изучения нужно будет почитать книги, в которых подробно излагаются все особенности обработки кода и машинной логики.

Сервисы для обучения в режиме реального времени

Если вас интересует процесс написания скриптов, то стоит рассмотреть возможность обучения при помощи информационных образовательных технологий. Как примерно выглядит такая «школа программистов»? Новичка по программе, составленной опытными разработчиками, ведут от легких моментов к сложным. Первоначально может быть изучено динамическое обновление данных, чтобы перейти в последующем к созданию сокет-серверов. Пользователь может без спешки проходить обучение, усваивая поэтапно максимальное количество информации. По этой причине, если возникнуть сложности, то вы легко сможете обратиться к ним за помощью. Если первый попавшийся сервис не удовлетворит все ваши потребности, то вы легко сможете попробовать что-то новое. Зачем же изучать их? Многих пользователей интересует вопрос, как писать скрипты для компьютерных игр. Однако это не единственное применение подобной возможности. Давайте же рассмотрим процесс написания скрипта. Предположим, вам нравится играть на каком-то определенном сайте. Увы, этот процесс предусматривает или вложение собственных средств, или длительное монотонное выполнение определенных действий. Если вы предпочитаете второй способ, то скрипты это как раз то, что вам нужно. Подобный подход может использоваться и в стационарных играх. Там существуют персонажи под управлением искусственного интеллекта. Чтобы сразиться с ними, можно создать свою версию искусственного интеллекта. Таким образом, вы можете устроить битву компьютера с самим собой. Скрипты могут успешно использоваться не только в компьютерных играх. Предположим, существует сайт какой-то серьезной организации. В данном случае максимальная поддержка коммуникации с клиентами является важным аспектом. Для этого можно добавить небольшую форму в виде скрипта, при помощи которой можно в онлайн-режиме получить консультацию специалиста. Возможностей использования скриптов существует большое количество.

Заключение

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

Любой начинающий системный администратор Linux рано или поздно сталкивается с таким понятием, как “скрипт ”, будь то один из загрузочных скриптов вроде /etc/rc.d/rc или написанный разработчиком ПО скрипт конфигурирования configure . В данной статье я постараюсь показать, что написание скриптов на shell не является чем-то из ряда вон выходящим и вполне под силу даже новичку в мире Linux.

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

Одной из задач системного администрирования является резервное копирование важной информации. Поэтому давайте рассмотрим пример скрипта, реализующего back-up информации.

Начало начал

Итак, прежде всего, нам необходимо разобраться в структуре скрипта. Она не представляет собой ничего сложного. По большому счету, простейший скрипт - просто перечисление системных команд. Например:

Echo This is just example
whoami
uname -a

Эти команды объединены в одном файле. Но shell должен знать, что он должен этот файл обработать, а не просто прочесть его содержимое. Для этого служит специальная конструкция: #!

Эта конструкция называется «sha-bang ». Вообще-то, # задает комментарий, но в данном случает sha-bang означает, что после нее пойдет путь к обработчику скрипта. Напрмер:

#!/bin/bash
#!/bin/sh
#!/usr/bin/perl

Мы остановимся на Bash, Bourne-Again shell. Это shell устанавливается по умолчанию практически во всех Linux-системах, и /bin/sh ссылается на него. Об окончании скрипта говорит служебное слово exit.

Вооружившись этими знаниями, напишем наш первый скрипт:

#!/bin/bash
echo Простой скрипт # Команда echo выводит сообщение на экран
echo Вы:
whoami # whoami показывает имя зарегистрированного пользователя
echo Ваша система стартовала
uptime # uptime показывает время включения машины
echo Сегодня
date # date показывает текущую дату и время
echo Пока все
exit

Сохраним этот файл под именем tutor1.sh. Выполним команду чтобы сделать скрипт исполняемым.

Chmod +rx tutor1.sh

Результатом выполнения скрипта будет:

Voland@superstar:~/Doc/Open Source$ ./tutor1.sh
Простой скрипт
Вы:
voland
Ваша система стартовала
14:38:46 up 1:48, 2 users, load average: 0.47, 0.43, 0.41
Сегодня
Вск Фев 26 14:38:46 MSK 2006
Пока все

Переходим к более серьезному.

Теперь, когда мы научились писать простейшие скрипты, самое время перейти к серьезным вещам: написанию скрипта для резервного копирования.

Перво-наперво, необходимо определить - резервную копию чего мы будем делать. Поэтому наш скрипт должен уметь работать с командной строкой. Аргументы командной строки задаются после имени скрипта через пробел: somescript arg1 arg2 arg3. Скрипт воспринимает аргументы по номерам их следования, поэтому мы будем использовать конструкции вида $номер_аргумента, т.е. $1, $2, $3. $ - это символ подстановки, который нам понадобится и при работе с переменными. Переменные в скрипте задаются в виде имя_переменной=значение. Мы будем использовать переменные MAXPARAMS для определения максимального количества параметров командной строки, BACKUPFILE для задания имени архива, BACKUPDIR для папки, резервную копию которой мы будем делать и ARCHIVEDIR для папки, куды мы поместим архив. Самой главной частью скрипта будут команды поиска и архивации всех найденных файлов и папок в указанной:

Find . -type f -print0 | xargs -0 tar rvf "$archive.tar" > /dev/null
gzip $archive.tar

Давайте разберемся, что же эти команды делают. find ищет в текущем каталоге (об этом говорит первый аргумент ".") все файлы и выдает полный путь к ним (print0). Эти пути перенаправляюся команде tar, которая собирает все файлы в один. Затем командой gzip мы архивируем получившийся tar-файл. Команда > /dev/null удобна, если вы архивируете большое количество файлов. В этом случае их имена и полный путь к ним не выводятся на консоль.

Следующий шаг должен предусмотреть подсказки пользователю как пользоваться скриптом, если он допустит какие-то ошибки.

Например, эта конструкция

If [ $# -lt "$MAXPARAMS" ];
then
echo

echo
exit 0
fi

подскажет, что пользователь указал недостаточное количество аргументов командной строки. If [условие]...fi задает условную конструкцию. $# -lt "$MAXPARAMS" проверяет введенное количество параметров и если это число окажется меньше MAXPARAMS, то пользователю будет выдано сообщение об ошибочном вводе. Exit 0 заставит скрипт прекратить работу без указания кода ошибки. Аналогично проверяется превышение допустимого числа параметров, только вместо ls (less then - меньше, чем), необходимо указать gt (greater then - больше, чем). Теперь, когда основные моменты скрипта разъяснены, можно переходить к полной его версии:

#!/bin/bash
# Описание:
#+ Делает резервную копию всех файлов в указанной директории
#+ в "tarball" (архив tar.gz).
#+ Использование:
#+ sh backup.sh имя_архива папка-источник папка-назначение
#+

# Максимальное количество параметров командной строки
MAXPARAMS=3

if [ $# -lt "$MAXPARAMS" ];
then
echo
echo "Использование: sh `basename $0` имя_архива папка-источник папка-назначение"
echo
exit 0
fi

if [ $# -gt "$MAXPARAMS" ];
then
echo
echo "Для этого скрипта нужно только $MAXPARAMS аргументов командной строки!"
echo
exit 0
fi

# Переменные, которые мы используем в скрипте
BACKUPFILE=$1-backup-$(date +%m-%d-%Y)
archive=$BACKUPFILE
BACKUPDIR=$2
ARCHIVEDIR=$3

# Проверяем, есть ли папка-источник и папка-назначение
if [ ! -e $BACKUPDIR ];
then
echo
echo "\"$BACKUPDIR\" не существует!"
echo
exit 0
fi

if [ ! -e $ARCHIVEDIR ];
then
echo
echo "\"$ARCHIVEDIR\" не существует, создаем..."
mkdir $ARCHIVEDIR
echo "Готово."
fi

# Проверяем, есть ли архивы в источнике и назначении.
cd $ARCHIVEDIR
if [ -e $archive.tar.gz ];
then rm $archive.tar.gz
fi

cd $BACKUPDIR
if [ -e $archive.tar.gz ];
then rm $archive.tar.gz
fi

# Главная часть скрипта...
echo "Делаем резервную копию \"$BACKUPDIR\" в файл \"$archive.tar.gz\"..."
find . -type f -print0 | xargs -0 tar rvf "$archive.tar" > /dev/null
gzip $archive.tar
echo "\"$BACKUPDIR\" была успешно заархивирована в файл \"$archive.tar.gz\"."

# Перемещаем архив в папку ARCHIVEDIR
echo "Перемещаем архив \"$archive.tar.gz\" в папку \"$ARCHIVEDIR\"."
mv $archive.tar.gz $ARCHIVEDIR/$archive.tar.gz
echo "Готово."

Надеюсь, основные моменты я прокомментировал достаточно подробно. Если у вас возникли какие-либо вопросы, то вы можете связаться со мной по адресу [email protected] Рекомендую также замечательную книгу Advanced Bash-Scripting Guide Менделя Купера (Mendel Cooper), которая очень помогла мне в свое время, когда я только знакомился со скриптами. Удачного программирования.

P.S. Большое спасибо mar за ее замечания и советы.

Доброго времени суток всем желающим приобщиться к миру пользовательских скриптов (они же userscript , userJS , юзерскрипты ).

В этой статье я хочу поведать о том, что такое юзерскрипты, c чем их едят и, главное, как их готовят !

Внимание: предполагается минимальное знание javascript.
На практике доказано: юзерскрипты может писать человек, не знакомый с программированием, но обладающий усидчивостью и желанием изучить javascript!
О том, что такое javascript и как с ним обращаться, можно узнать на javascript.ru .

Что такое юзерскрипты?

Кратко: юзерскрипт - это программа, написанная на языке JavaScript, хранящаяся на компьютере пользователя и подключаемая браузером на определенных страницах. Юзерскрипт представляет собой файл с расширением .user.js (именно по расширению браузеры понимают, что файл является юзерскриптом), содержащий метаданные и непосредственно javascript-код.

При подключении к странице юзерскрипт выполняется так же, как и обычные javascript-сценарии.
У юзерскрипта есть доступ к DOM-дереву страницы, в контексте которой он выполняется.
В современных браузерах у юзерскрипта есть доступ к localStorage и прочим HTML5 API.

Юзерскрипты поддерживаются всеми основными современными браузерами (и даже кое-как поддерживаются IE7 и выше ).

Самый известный портал юзерскриптов - userscripts.org . Тут можно найти хранилище скриптов, инструменты управления своими скриптами на портале и, что не маловажно, отзывчивый форум (всё на английском).

Немного общей теории

Самыми распространенными являются скрипты под расширение GreaseMonkey для браузера Firefox .
Подробную информацию по GreaseMonkey и написанию юзерскриптов под GreaseMonkey можно узнать на http://wiki.greasespot.net .
Так сложилось исторически, что данный браузер был (и остаётся по сей день) первым, в котором поддержка юзерскриптов была выполнена на высоком уровне.

Не все скрипты, написанные для GreaseMonkey, могут запускаться в других браузерах. Причина в криворукости том, что во многих скриптах используется GM API - набор javascript-функций, специфичных для GreaseMonkey.

Однако, проще всего писать юзерскрипты под браузер Google Chrome .
На это есть ряд причин:

  1. Простым скриптам не нужна поддержка GM API (библиотека, доступная в GreaseMonkey)
  2. Google Chrome, в отличие от Firefox+GreaseMonkey, имеет отличнейший дебаггер.
  3. Сообщения об ошибках юзерскрипта в Firefox ужасны! Если вы не обладаете даром телепатии твердыми знаниями GreaseMonkey и javascript, написание юзерскрипта может превратится в муки!
  4. Google Chrome не требует расширений для поддержки юзерскриптов. Интерфейс для удаления/отключения юзерскриптов доступен «из коробки».
Очевидные минусы Google Chrome:
  1. Нет доступа к «родному» window.
  2. Не поддерживается директива @ include метаданных. Директива @ match глючит, можно сказать, что она тоже не поддерживается.

Особенности юзерскриптов

Код юзерскриптов может посмотреть любой желающий, вооруженный блокнотом.
Базовые знания javascript позволяют отсечь угрозу установки шпионских и вредоносных скриптов простым анализом кода скрипта (придётся задействовать мозг).

Все юзерскрипты запускаются после того, как загрузились все основные элементы страницы, но ещё не загрузились картинки. Можно сказать, что юзерскрипты грузятся по событию DOMContentLoaded .
В любом случае, проверки на window.onload не нужны .

Каждый браузер накладывает свои ограничения на исполнение юзерскриптов, но в целом юзерскрипты могут делать почти всё, что могут скрипты на странице.
Чаще всего юзерскрипты используются для изменения интерфейса страницы или для добавления плюшек, блекджека и шлюх (юзерскрипты для социальных сетей).
Бывают и продвинутые юзерскрипты, которые представляют собой самостоятельные программы (аукционные и игровые боты, плагины-помощники и т.д).

Анатомия юзерскриптов

Юзерскрипт - это текстовый файл с расширением user.js. В начале файла располагается блок метаданных - описание самого скрипта. После блока метаданных следует javascript-код, который и будет исполняться браузером.

Рассмотрим тестовый скрипт, который показывает alert с текстом на определенной странице.
// ==UserScript== // @name myUserJS // @description Мой самый первый юзерскрипт // @author Vasya Pupkin // @license MIT // @version 1.0 // @include http://userscripts.org/* // ==/UserScript== // Оборачиваем скрипт в замыкание, для кроссбраузерности (opera, ie) (function (window, undefined) { // нормализуем window var w; if (typeof unsafeWindow != undefined) { w = unsafeWindow } else { w = window; } // В юзерскрипты можно вставлять практически любые javascript-библиотеки. // Код библиотеки копируется прямо в юзерскрипт. // При подключении библиотеки нужно передать w в качестве параметра окна window // Пример: подключение jquery.min.js // (function(a,b){function ci(a) ... a.jQuery=a.$=d})(w); // не запускаем скрипт во фреймах // без этого условия скрипт будет запускаться несколько раз на странице с фреймами if (w.self != w.top) { return; } // дополнительная проверка наряду с @include if (/http:\/\/userscripts.org/.test(w.location.href)) { //Ниже идёт непосредственно код скрипта alert("Userscripts приветствует вас навязчивым окном."); } })(window);

Важно: данный скрипт представляет собой оболочку для кроссбраузерных юзерскриптов. Этот же скрипт, но с английскими комментариями, можно стянуть с pastebin.com и использовать безнаказанно.

В самом начале располагается блок метаданных (в виде комментария).
// ==UserScript== // ... // ==/UserScript==
Этот блок состоит из директив описания юзерскрипта. Ниже в таблице представлены основные директивы и их назначение.

Важно: Все директивы, как и сам блок метаданных, могут отсутствовать.

Директива Назначение
@ name Название юзерскрипта.
Это название будет отображаться в интерфейсе управления
юзерскриптами. Если директива отсутствует, то название
юзерскрипта будет таким же, как и название файла.
@ description Описание юзерскрипта.
Это описание будет отображаться в интерфейсе управления
юзерскриптами.
@ namespace Пространство имён.
Определяет уникальность набора скриптов.
Сюда можно вписать имя домена, принадлежащего вам. Или любую другую строку.
Считайте, что это второе название скрипта. Обязательная директива для Trixie!
@ author Имя автора.
@ license Название лицензии, по которой распространяется юзерскрипт.
@ version Номер версии юзерскрипта.
К сожалению, механизма автообновления нету ни в одном браузере,
поэтому номер версии - это просто цифры, которые отображаются в интерфейсе.
@ include
на которой нужно запускать юзерскрипт.
Поддерживает вайлдкард * (применимо в GreaseMoneky, Opera, IE).
Для каждого отдельного url нужно использовать отдельную директиву @ include.
@ exclude Директива описания url страницы,
на которой не нужно запускать юзерскрипт.
Поддерживает вайлдкард * (применимо в GreaseMonkey, Opera, IE).
Для каждого отдельного url нужно использовать отдельную директиву @ exclude.
@ match Аналогично @ include, но с более жесткими ограничениями
(применимо в GreaseMonkey старше 0.9.8, Google Chrome).
Подробнее об ограничениях и формате директивы можно
прочитать на этой странице .
Для каждого отдельного url нужно использовать отдельную директиву @ match.

Важно: Как показала практика, полагаться на директиву @ match в юзерскриптах не стоит.
Google Chrome периодически отказывается учитывать @ match
и запускает юзерскрипты на всех страницах.
Для предотвращения такой ситуации в юзерскрипты,
которые будут запускаться не только в Firefox,
нужно добавлять код проверки адреса страницы (см. ссылку в коде юзерскрипта) .

Важно: При отсутствии директив @ include или @ match, юзерскрипты будут запускаться на всех страницах .

В нашем юзерскрипте использован ряд хитростей:

  1. Для того, чтобы юзерскрипты имели одинаковое поведение и не загрязняли глобальную область видимости, код оборачивается в замыкание (см. в коде скрипта) .
  2. Для правильного подключения библиотек внутри юзерскрипта и для обхода некоторых хитрых особеннойстей GreaseMonkey, необходимо «нормализовать» ссылку на глобальную область видимости window (см. в коде скрипта) .
  3. Для того, чтобы юзерскрипт не запускался несколько раз на одной и той же странице, необходимо останавливать работу при запуске юзерскрипта во фреймах (см. в коде скрипта) .
  4. Для того, чтобы юзерскрипт запускался только на нужных нам страницах, необходимо явно проверять url страницы (см. в коде скрипта) .
  5. Благодаря такой структуре, юзерскрипт может быть относительно просто преобразован в букмарклет .

Результат

Наш юзерскрипт готов к использованию!
Нет, серьёзно, вы можете скопировать код юзерскрипта в файл, назвать его my.user.js, и закинуть полученный файл в браузер (используйте Chrome или Firefox с установленным GreaseMonkey).

Конечно, наш юзерскрипт не обладает серьезными функциями, код выглядит страшным и малопривлекательным (для непосвященного человека). Но в итоге мы получили заготовку для кроссбраузерных юзерскриптов .
Это значит, что юзерскрипт можно запустить практически в любом современном браузере!
И это замечательно!

Остаётся вопрос: как «раздать» наш скрипт пользователям (ведь мы писали скрипт не только для себя)?
Варианты:

  • Зарегестрироваться на портале userscripts.org и загружать скрипты туда.
  • Завести репозиторий на code.google.com или github.com .
  • Создать свой простой сервис/сайт/страничку.
    Важно: Если хотите, чтобы у пользователей GreaseMonkey автоматически открывался диалог установки юзерскрипта, отдавайте файл прямиком с файловой системы (url файла должен заканчиваться на.user.js). В противном случае пользователь увидит исходный код скрипта и панель с кнопкой «установить». Эта кнопка не работает!
Рецепт для непрограммистов (похожими методами пишется ~70% скриптов):
  1. Придумываем, что будет делать наш юзерскрипт (перекрашивать ссылки, например)
  2. Берём шаблон из статьи
  3. Сохраняем в файл my.user.js
  4. Удаляем строку с alert(...) .
  5. Идём на форум (userscripts.org или любой форум по javascript).
  6. Спамим, флудим и достаём людей вопросами «как перекрашивать ссылки», «дайте код» и т.д.
  7. Изменяем метаданные и проверку url страницы на нужные нам.
  8. Вставляем полученный на форуме код в юзерскрипт.
  9. Сохраняем файл.
  10. PROFIT!!1!
Полезные ссылки:

Инструкция

В зависимости от того, где происходит исполнение сценария, скрипты делятся на «клиентские» и «серверные». Переходя по какому-то адресу в сети, мы отправляем URL интересующей страницы серверу, и тот запускает сценарий (скрипт), находящийся по указанному адресу. Скрипт, выполняя на сервере запрограммированные в нём действия, собирает страницу из нужных блоков и отправляет её браузеру. Это - серверный скрипт. Получив страницу, браузер на нашем визуализирует её для нас и, если в полученном коде страницы есть какой-то сценарий, то уже он занимается исполнением этого скрипта. Это - клиентский скрипт.
Чтобы сервер или браузер могли прочесть, понять и исполнить сценарий он должен быть составлен и записан по известным им правилам. Такие наборы правил называют скриптовыми языками программирования. Большинство серверных сценариев в настоящее время пишутся на языке PHP, а большинство клиентских - на языке JavaScript. Чтобы написать скрипт достаточно иметь обычный текстовый редактор – блокнот. Но для постоянного программирования скриптов не обойтись без специализированного редактора. Такой редактор берёт на себя львиную долю рутинной работы по написанию скриптов, оставляя программисту больше времени для творчества.
Давайте напишем простой скрипт на серверном языке PHP. Первой строкой надо сообщить исполнителю, что с этого места начинается сценарий. На языке PHP этот открывающий тег выглядит так:Между этими двумя тегами находятся инструкции - языка. Например, напечатать надпись, оставленную О. Бендером на Кавказских скалах, так:echo ("Здесь были Кися и Ося");А инструкция показать текущее время в формате ЧАС:МИНУТА пишется так:echo date("H:i");Полностью PHP-скрипт, составленный из этих операторов, будет выглядеть так:echo date("H:i");
echo (" здесь были Кися и Ося!");?>После выполнения этого скрипта серверной программой-исполнителем (интерпретатором языка) страничка бы выглядела так:

А этот же сценарий на клиентском языке JavaScript будет выглядеть так:var now = new date();
document.write ("В ");
document.write (now.getHours() + ":" + now.getMinutes());
document.write (" здесь были Кися и Ося!");Здесь строка var now = new date() отдаёт исполнителю сценария команду создать новый виртуальный объект с именем "now", который представляет собой текущую дату и время. document.write() – это команда написать в странице то, что указано в скобках, а команды now.getHours() и now.getMinutes() предписывают извлечь из объекта “now” текущие час и минуту.
Осталось для большей наглядности объединить эти два скрипта в один файл, сохранить его на сервере и набрать URL в адресной строке браузера. В результате увидим одинаковые строки, одна из которых была выполнена по нашему сценарию на сервере (интерпретатором PHP), а другая - в нашем компьютере (интерпретатором JavaScript).


Top