Как написать свой скрипт?
Для многих будет вопросом, как же создать собственный скрипт, и что для этого необходимо. В данной статье мы пробежимся по нескольким аспектам.
Часть 1.
Для начала необходимо определиться, что мы хотим от нашего скрипта.
Образец для учебника:
- Статистика смертей/убийств игрока.
- Пишем в чат раз в минуту игрока с наибольшим к/д (Коэффициент убийств/смертей).
- Пишем в чат, кто и кого убил + его новую стату.
- После респауна игрока награждаем его бутылочной ракетницей.
Подберём список необходимых нам для этого функций и событий. Функции:
- player.giveWeapon() - Выдать оружие
- player.sendMessage() - Отправить сообщение
- eventHandlers.add() - Добавить событие
- broadcastMessage() - Будем использовать удобный вариант для рассылки сообщений всем
События:
- onPlayerKnockedOut - Событие смерти игрока.
- onPlayerSpawn - Событие респауна игрока.
Помимо этого ещё пригодится RGB(), для настройки цвета сообщений.
Часть 2.
Создаём новый файл с расширением .js и открываем его любым редактором. (Рекомендуется Notepad++)
Так как этот учебник должен быть больше правильным чем лёгким, будем делать так, как рекомендуется разработчиками.
'use strict'; //Особенности JavaScript, которые "заставляют" писать скрипт правильно. "Use Strict" более чувствителен к ошибкам. global.gm = {}; //Глобальная таблица, охватывающая все скрипты в ресурсе. function init() { //Код который будет выполняться после запуска скрипта } function shutdown() { //Код который будет выполняться после остановки скрипта }
Сохраним данный файл под названием server_main.js в папке /myscript
Сам по себе скрипт не запустится, поэтому необходим файл meta.xml, который содержит в себе информацию о ресурсе, и всех его скриптах.
Примерно так будет выглядеть ваш meta.xml
<meta> <info name="Название ресурса" author="Имя автора" type="script" version="1.0"/> <script src="server_main.js" type="server" boot="true"/> </meta>
Про клиентскую и серверную сторону можете вкратце глянуть здесь: Ссылка
Про то как должна выглядеть meta.xml, что и зачем: Ссылка
Для примера, мы выведем части ресурса в другие скрипты, которые позже подключим с помощью require().
В Meta.xml добавляем 2 строки с названиями colors и events, обязательно до скрипта с тегом "boot".
В итоге получим следующее:
<meta> <info name="Название ресурса" author="Имя автора" type="script" version="1.0"/> <script src="colors.js" type="server"/> <script src="events.js" type="server"/> <script src="server_main.js" type="server" boot="true"/> </meta>
Далее создаём соответствующие файлы, и начинаем писать.
Часть 3.
Регистрируем цвета в глобальной таблице global.gm.
Для этого открываем colors.js и пишем:
'use strict'; module.exports = { }
module.exports - таблица которая будет читаться функцией require(), поэтому всё необходимое упаковываем в неё.
'use strict'; module.exports = { colors : { die : new RGB(255,0,0), kill : new RGB(50,255,50), top_killer : new RGB(255,255,255), } }
Далее необходимо сделать так, что бы основной скрипт server_main.js зарегистрировал цвета. Делается это следующим образом:
В таблицу global.gm = {} вставляем функцию require() с ссылкой на наш скрипт colors.js.
global.gm = { colors : require("/colors.js") };
Ура! Теперь global.gm.colors.die будет красный цвет, как мы указали в colors.js.