Как написать свой скрипт? — различия между версиями

Материал из Bully Multiplayer Wiki
Перейти к: навигация, поиск
(Новая страница: «Для многих будет вопросом, как же создать собственный скрипт, и что для этого необходимо.…»)
 
Строка 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.

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

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

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

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

События:

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