Как написать свой скрипт? — различия между версиями
SalwadoR (обсуждение | вклад) (Новая страница: «Для многих будет вопросом, как же создать собственный скрипт, и что для этого необходимо.…») |
SalwadoR (обсуждение | вклад) |
||
Строка 7: | Строка 7: | ||
Образец для учебника: | Образец для учебника: | ||
− | Статистика смертей/убийств игрока. | + | *Статистика смертей/убийств игрока. |
− | Пишем в чат раз в минуту игрока с наибольшим к/д (Коэффициент убийств/смертей). | + | *Пишем в чат раз в минуту игрока с наибольшим к/д (Коэффициент убийств/смертей). |
− | Пишем в чат, кто и кого убил + его новую стату. | + | *Пишем в чат, кто и кого убил + его новую стату. |
− | После респауна игрока награждаем его бутылочной ракетницей. | + | *После респауна игрока награждаем его бутылочной ракетницей. |
Подберём список необходимых нам для этого функций и событий. | Подберём список необходимых нам для этого функций и событий. | ||
Строка 24: | Строка 24: | ||
Помимо этого ещё пригодится [[RGB()]], для настройки цвета сообщений. | Помимо этого ещё пригодится [[RGB()]], для настройки цвета сообщений. | ||
+ | |||
+ | |||
+ | ==Часть 2.== | ||
+ | Создаём новый файл с расширением .js и открываем его любым редактором. (Рекомендуется Notepad++) | ||
+ | |||
+ | Так как этот учебник должен быть больше правильным чем лёгким, будем делать так, как рекомендуется разработчиками. | ||
+ | |||
+ | <div class="example_box"><syntaxhighlight lang="javascript"> | ||
+ | 'use strict'; //Особенности JavaScript, которые "заставляют" писать скрипт правильно. "Use Strict" более чувствителен к ошибкам. | ||
+ | |||
+ | global.gm = {}; //Глобальная таблица, охватывающая все скрипты в ресурсе. | ||
+ | |||
+ | function init() { | ||
+ | //Код который будет выполняться после запуска скрипта | ||
+ | } | ||
+ | |||
+ | function shutdown() { | ||
+ | //Код который будет выполняться после остановки скрипта | ||
+ | } | ||
+ | </syntaxhighlight></div> | ||
+ | |||
+ | Сохраним данный файл под названием server_main.js в папке /myscript | ||
+ | |||
+ | Сам по себе скрипт не запустится, поэтому необходим файл meta.xml, который содержит в себе информацию о ресурсе, и всех его скриптах. | ||
+ | |||
+ | Примерно так будет выглядеть ваш meta.xml | ||
+ | <div class="example_box"><syntaxhighlight lang="xml"> | ||
+ | <meta> | ||
+ | <info name="Название ресурса" author="Имя автора" type="script" version="1.0"/> | ||
+ | |||
+ | <script src="server_main.js" type="server" boot="true"/> | ||
+ | </meta> | ||
+ | </syntaxhighlight></div> | ||
+ | |||
+ | Про клиентскую и серверную сторону можете вкратце глянуть здесь: [[Введение в скриптинг#Разница между серверной и клиентской стороной скрипта.|Ссылка]] | ||
+ | |||
+ | Про то как должна выглядеть meta.xml, что и зачем: [[Введение в скриптинг#Строение Meta.xml.|Ссылка]] | ||
+ | |||
+ | Для примера, мы выведем части ресурса в другие скрипты, которые позже подключим с помощью [[require()]]. | ||
+ | |||
+ | В Meta.xml добавляем 2 строки с названиями colors и events, '''обязательно до скрипта с тегом "boot"'''. | ||
+ | |||
+ | В итоге получим следующее: | ||
+ | <div class="example_box"><syntaxhighlight lang="xml"> | ||
+ | <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> | ||
+ | </syntaxhighlight></div> | ||
+ | |||
+ | Далее создаём соответствующие файлы, и начинаем писать. | ||
+ | |||
+ | |||
+ | ==Часть 3.== | ||
+ | Регистрируем цвета в глобальной таблице global.gm. | ||
+ | |||
+ | Для этого открываем colors.js и пишем: | ||
+ | <div class="example_box"><syntaxhighlight lang="javascript"> | ||
+ | 'use strict'; | ||
+ | |||
+ | module.exports = { | ||
+ | } | ||
+ | </syntaxhighlight></div> | ||
+ | module.exports - таблица которая будет читаться функцией [[require()]], поэтому всё необходимое упаковываем в неё. | ||
+ | |||
+ | <div class="example_box"><syntaxhighlight lang="javascript"> | ||
+ | 'use strict'; | ||
+ | |||
+ | module.exports = { | ||
+ | colors : { | ||
+ | die : new RGB(255,0,0), | ||
+ | kill : new RGB(50,255,50), | ||
+ | top_killer : new RGB(255,255,255), | ||
+ | } | ||
+ | } | ||
+ | </syntaxhighlight></div> | ||
+ | |||
+ | Далее необходимо сделать так, что бы основной скрипт server_main.js зарегистрировал цвета. Делается это следующим образом: | ||
+ | |||
+ | В таблицу global.gm = {} вставляем функцию [[require()]] с ссылкой на наш скрипт colors.js. | ||
+ | <div class="example_box"><syntaxhighlight lang="javascript"> | ||
+ | global.gm = { | ||
+ | colors : require("/colors.js") | ||
+ | }; | ||
+ | </syntaxhighlight></div> | ||
+ | |||
+ | Ура! Теперь global.gm.colors.die будет красный цвет, как мы указали в colors.js. |
Версия 14:14, 29 апреля 2016
Для многих будет вопросом, как же создать собственный скрипт, и что для этого необходимо. В данной статье мы пробежимся по нескольким аспектам.
Часть 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.