1. Введение
Скрипт – это сценарий определённых действий игрока, состоящий из консольных команд, которые будут автоматически выполнены при запуске этого скрипта. Каждому (ну почти каждому) действию игрока соответствует своя консольная команда. Например, «прыжок», консольная команда «+jump» (список всех команд и описаний к ним можно узнать, если ввести в консоли команду «cvarlist»). Например, вместо длинной комбинации B42, B14, B6, B7, O2, O3, O3 O4, O5, написав скрипт, состоящий из консольных команд, вы будете нажимать всего одну клавишу. Удобно? Конечно удобно. Это лишь самый простой пример, движок Source Engine со своими многочисленными консольными командами позволяет делать воистину крутые скрипты. Таким образом, скрипты позволяют действовать быстрее и чётче тем самым, увеличивая ваши шансы на победу.
2. Команда «bind»
Bind – самая простая и нужная команда в любом скрипте. Она присваетвает, к какой нибудь клавише, ряд определённых действий. Например:
Bind v “mp_restartgame 1”
Дословно: Присвоить клавише «V» команду mp_restartgame 1
3. Команда «alias»
Самым важным составляющим скрипта является, команда alias. Alias – это тот же макрос в Word’е, только не много другой. Alias присваивает к какой нибудь команде, ряд определённых действий. Например:
Alias a1 “k2; k3”
Перевод: Присвоить команде «a1» команду «k1» и команду «k2»
После alias’а обычно идёт «bind» этой команды к клавише. Пример:
Alias a1 “k1; k2”
Bind v a1
Теперь при нажатии кнопки «V» выполниться команда «a1»
4. Команда «exec» и «echo»
Это тоже немаловажные команды, которые часто присутствуют в продвинутых скриптах.
1. «Exec» - запуск файла, в котором содержатся скрипты. Такие файлы имеют расширение .cfg и лежат в папке cstrike\cfg. Путь к файлу, рассчитывается относительно этой папки. Пример:
exec MyScripts
То есть теперь, мы запустили файл MyScripts.cfg который лежит в папке cstrike\cfg.
2. «Echo» - Показывает сообщение на экране. Пример:
echo Hi all!
На экране пользователя показывается сообщение «Hi all!»
Примечание: Ставить кавычки между началом и концом сообщения не обязательно, а если команда «echo» находится внутри значения alias’а кавычки ставить нельзя.
6. Комментарии в скриптах
В любом скрипте можно сделать комментарии автора, для того чтобы сделать какой нибудь текст комментарием, а не скриптом, нужно перед каждой строкой (или в конце строки скрипта), написать «//». Теперь игра не будет обрабатывать эту строку, и не будет орать о неправильном скрипте Пример
// Это комментарий к скрипту
alias a1 "k1; k2" //Второй комментарий к скприту
7. Правописание скриптов
У скриптов есть свои правила, нарушение которых приводит к не работе всего скрипта.
1. Если в значении alias’а или bind’а несколько команд, перед каждой командой ставиться точка-запятая ( и в начале и конце значения ставятся кавычки.
Пример 1: alias a1 “b1; b2; b3; b4”
Пример 2: bind V “a1; a2; a3”
Примечание: Пробелы между точкой-запятой и следующей командой ставить необязательно.
2.
Название alias’а не должно превышать 31 символов, иначе алиас просто не будет работать. Например:
alias 12345678901234567890123456789012 “k1; k2” – работать не будет, т.к. его название состоит из 32 символов.
3. Внутри значения alias’а или bind’а не должно быть других кавычек. Например:
alias a1 “k1; “k2”; k1” – работать не будет
4. Чтобы скрипт понимал русские буквы, необходимо сохранить файл в кодировке UTF-8. Иначе скрипт не будет понимать русские буквы и весь скрипт работать не будет.
Вот три простых правила, соблюдай их и скрипт будет 100% работать.
8. Как и где писать скрипты?
Для того чтобы писать скрипты не нужен никакой дополнительный софт, достаточно «блокнота» или любого другого текстового редактора.
1. Создай любой текстовой файл и открой его текстовым редактором
2. Напиши свой скрипт
3. Потом сохрани его и измени расширение с .txt на .cfg.
В блокноте это делается очень просто:
Меню файл/Сохранить как.../Тип файла: Все файлы/Имя файла.cfg
4. Кинь полученный файл в папку
Counter-Strike Source\cstrike\cfg
5. Далее запусти игру с параметрами –console
6. В игре, открой консоль, кнопкой «~» (тильда)
Напиши там:
exec имя_твоего_скрипта
9. Автозапуск скриптов
Каждый раз писать команду «exec» не очень удобно, поэтому был придуман такой полезный файл как, autoexec.cfg. Он лежит в папке cstrike\cfg (если его нет, просто создай)
Всё что тебе нужно, это открыть его и прописать команду «exec имя_твоего_скрипта» внутри него. Таким образом, при каждом запуске игры, будет запускаться твой скрипт. Можешь вообще не писать команду «exec» а написать свой скрипт прямо в файл autoexec.cfg. Разницы никакой.
Файл listenserver.cfg
Этот файл тоже лежит в папке cstrike\cfg (если его нет, просто создай) и тоже автозапускается. Но уже не при каждом запуске игры, а при каждой загрузке карты. Подумай об этом, может пригодиться
Файл valve.rc
Этот файл вообще запускается раньше всех и запускает все остальные файлы автозагрузки. Если у тебя много скриптов или вообще свой скрипт пак, используй лучше этот файл. Создай отдельный файл, пропиши туда всё что нужно запускать (если файлов несколько) и пиши команду запуска уже этого файл в valve.rc. Таким образом ты не будешь трогать файл autoexec.cfg где пользователи обычно пишут свои настройки и им бы не очень хотелось чтобы твой пак потёрь этот файл.
Виды скриптов в CS:S
Press & Realize скрипты
Механизм этих скриптов такой: при нажатии на клавишу выполняется некоторые команды, а как только эту клавишу отпускаешь - другие.
Написание такого скрипта можно разбить на два шага.
1. Пишем алиасы:
alias "+press" "command1; command2"
alias "-press" "command3; command4"
Обратите особое внимание на "+" и "-". Они должны обязательно ставится перед именем алиаса, иначе скрипт не будет работать. Второй алиас не является обязательным, если при отпускании клавиши никаких действий совершать не надо.
2. Биндим клавишу
bind "?" "+press"
Вот вообщем-то и все. Осталось только привести пример. Я думаю, всем понятен, а может и полезен, будет пример с показом радара:
alias "+radar" "drawradar"
alias "-radar" "hideradar"
bind "q" "+radar"
В заключение, хотелось бы отметить, что скрипты Press & Realize можно применять и для других целей, например для покупки оружия. Кроме того, аналогично работают некоторые встроенные команды в CSS, в частности +forward
Meta скрипты
Мета-скрипты – одни из самых полезных и продвинутых скриптов. С помощью мета-скрипта, можно забиндить на одну и туже клавишу несколько действий!
Синтаксис написания мета-скрипта:
// Сделаем алиасы для каждой команды
alias command1 "action1; wait; action1"
alias command2 "action1; wait; action2"
// Теперь выберем стандартное значение
bind f1 "command1"
// Делаем мета-алиасы:
alias +meta1 "bind f1 command2" // Эта команда запускается, когда нажата мета-клавиша
alias -meta1 "bind f1 command1" // А эта, когда не нажата
// Назначаем мета-клавишу
bind alt "+meta1"
Теперь приведем пример с радиосообщениями. При нажатии на кнопку "Alt" клавиши "A", "W", "S", "D" будут вызывать радиосообщения "Affirmative", "Go, Go, Go", "Team, Fall Back" и "Cover Me!" соответственно. Иначе они будут выполнять команды движения влево, вперёд, вправо и назад.
// Выберем стандартное значение
bind "a" "+moveleft"
bind "w" "+forward"
bind "d" "+moveright"
bind "s" "+back"
// Делаем мета-алиасы
alias +meta "bind a roger; bind w go; bind d fallback; bind s coverme"
alias -meta " bind a +moveleft; bind w +forward; bind d +moveright; bind s +back"
// Биндим мета-клавишу
bind ALT +meta
Cycle скрипты
Такой вид скриптов используется чаще всего для изменения настроек. С помощью одной клавиши вы сможете проходить по циклу, а конце вернутся на начальную позицию.
Ниже приведен синтаксис дял такого вида скриптов:
// Начальное значение алиаса cycle
alias cycle "cycle1"
// для каждой настройки назначаем команды и меняем алиас на следующий член цикла
alias cycle1 "команда1; команда2; командаN; alias cycle cycle2"
// Повторяем то же самое несколько раз
alias cycle2 "команда1; команда2; командаN; alias cycle cycle3"
alias cycle3 "команда1; команда2; командаN; alias cycle cycleN"
// Возвращаемся на исходную настройку
alias cycleN "команда1; команда2; командаN; alias cycle cycle1"
// Биндим всё это
bind "?" "cycle"