Как написать свой скрипт?

Материал из Bully Multiplayer Wiki
Перейти к: навигация, поиск

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


Часть 1.

Для начала необходимо определиться, что мы хотим от нашего скрипта.

Образец для учебника:

  • Статистика смертей/убийств игрока.
  • Пишем в чат раз в минуту игрока с наибольшим к/д (Коэффициент убийств/смертей).
  • Пишем в чат, кто и кого убил + его новую стату.
  • После респауна игрока награждаем его бутылочной ракетницей.

Подберём список необходимых нам для этого функций и событий. Функции:

События:

Помимо этого ещё пригодится 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.