Главная » Статьи Counter-Strike 1.6 Клиент-Сервер » Уроки по скриптингу by UrShade. Урок #1
03:15

Добрый день, дорогие пользователи портала CSZADROT.RU. Когда-то давно, когда я только начинал заниматься серверами CS 1.6, устанавливая какой-нибудь новый плагин на очередной свой пробный сервер, мне постоянно было интересно как он сделан, но, открывая исходники, я не очень понимал что и как в нем сделано, а информации на просторах интернета тогда было очень мало. Так как я на тот момент знал несколько простейших языков программирования, я понемногу сидел и разбирал исходники плагинов, переводил описания функций в инклюдах, пытался писать свои плагины. И с течением времени, я набирал бесценный опыт в этом деле и сегодня я хочу поделиться им с Вами.

Итак, я хочу открыть свою серию уроков по скриптингу в AMXX для CS 1.6. В этой серии я научу вас основным функциям и особенностям данного вида программирования. Вы научитесь делать какие-то простейшие плагины, затем переделывать уже готовые плагины под свои вкусы и нужды (ведь зачем изобретать велосипед, правильно?) и наконец писать уже свои полноценные плагины или даже моды с нуля. Данный цикл статей рассчитан на новичков и если Вы уже разбираетесь в этом, то увы - статья будет для Вас не интересна.

В первом уроке мы рассмотрим основную конструкцию кода в плагине AMXX и попробуем сделать свой первый плагин, который в чате будет писать "Hello, Word!", как это принято у программистов.

Вообще плагины пишут в двух редакторах - это всем известный блокнот и AMX Mod X Studio. Обычно я пишу в блокноте, не знаю почему, просто мне удобней, но я буду показывать все примеры и скриншоты именно с AMX Mod X Studio - работать новичкам в ней проще и удобней. Скачать её можно здесь - тык

Так, давайте рассмотрим AMXX Studio.







В неё входят:

1) Основное меню. Оно содержит такие функции, как открыть, закрыть, сохранить, копировать, вставить, скомпилировать код и т.д.

2) Пункты вставки "быстрых кодов". Кликая на название функции, в наш код будет автоматически вставляться шаблон кода этой функции. Кликните - увидите.

3) И, конечно же, наше рабочее пространство, котором, собственно, мы и будем писать код плагина.

Со всеми этими настройками мы познакомимся по ходу уроков.

А теперь настало время познакомиться с основной конструкцией скрипта. Выглядит она примерно вот так:




#include <amxmodx>

  #include <amxmisc>



  #define PLUGIN "New Plug-In"

  #define VERSION "1.0"

  #define AUTHOR "UrShade"



  public plugin_init()  

  {

  register_plugin(PLUGIN, VERSION, AUTHOR)

   

  // Add your code here...

  }

  





Давайте разберем его по порядку:

#include <amxmodx> - это оператор, который подключает файл библиотеки, где храниться описание функций. В данном случае это amxmodx.inc и amxmisc.inc. Заметьте, что в аргументе не стоит расширение в названии библиотеки.

#define - это обозначение констант. Из курса математики вы должны знать, что константа - это постоянная, не изменяющаяся величина. #define PLUGIN "New Plug-In" - в данном случае мы присваиваем константе под названием PLUGIN значение New Plug-In. Остальные константы VERSION и AUTHOR по тому же принципу.

public plugin_init() { - В этой строке использовано зарезервированное слово public. Оно говорит транслятору, что мы собираемся описать новый процедуру. В данном случае у нас plugin_init. Это означает, что код, который ниже, будет выполняться только при загрузки плагина сервером. При запуске сервера, при смене карты, к примеру. Все, что идет ниже называется телом, в нашем случае, процедуры.

register_plugin(PLUGIN, VERSION, AUTHOR) - функция register_plugin регистрирует наш плагин на сервере. Она имеет следующий синтаксис register_plugin("Название плагина", "Версия плагина", "Автор плагина"). Все, что в скобках называется аргументами функции. Они имеют вид типа "функция(1арг, 2арг, 3арг...)". Также можно заметить, что в ней мы использовались наши константы, которые описывали в самом начале. Кстати, все переменные, в отличие от обычных значений, пишутся без ковычек.

// Add your code here... - Это комментарий автора. Вообще, перед любым комментарием пишется двойной слэш (//).

Ну и в конце мы поставили скобку, закрыв тело процедуры.

А теперь давайте напишем наш плагин, который будет выводить в чат слово "Hello, World!".

Так как у нас уже есть чистый проэкт с "клише" плагина, то приступим. Первым делом зарегистрируем новую клиентскую команду, чтобы когда мы пишем в чат "/hello" у нас запускалась процедура, которая и будет писать нам в чат заветное словосочетание. Добавим в процедуру plugin_init строчку




register_clcmd("say /hello", "hello")





Как вы уже заметили, первый аргумент - это наша клиентская команда. Попробуйте написать в консоль своей игры "say hello" и вы напишите в чат на сервере слово "hello". Второй аргумент будет обращаться к процедуре с названием "hello", когда отлавливается консольная команда "say /hello".

Что ж, с этим разобрались, теперь добавим саму процедуру 'hello". После процедуру инициализации плагина, добавим новую процедуру. Для этого вставим следующий код:




public hello()

{



}





Тут нам уже все знакомо. Теперь напишем сообщения. В теле нашей процедуры добавим следующую строчку:




client_print(0,print_chat,"Hello, World!")





client_print - Функция выводит сообщение игроку или всем игрокам одновременно.

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

Теперь разберем аргументы этой функции. Её синтаксис имеет приблизительно следующий вид: client_print(индекс игрока, тип сообщения, "само сообщение").

Индекс игрока - id игрока от 1 до 32, если указать 0, то сообщение будет выведено всем игрокам.

Тип сообщения - бывает нескольких видов:

print_chat - Обычный чат

print_console - Сообщение выводится вконсоль игрока

print_notify - Сообщение выводится в консоль, при включенном режиме разработчика ( на клиенте)

print_center - Сообщение по центру экрана





В итоге, у нас должно получиться следующее :






#include <amxmodx>

#include <amxmisc>



#define PLUGIN "New Plug-In"

#define VERSION "1.0"

#define AUTHOR "UrShade"



public plugin_init() {

  register_plugin(PLUGIN, VERSION, AUTHOR)

  register_clcmd("say /hello","hello")

}



public hello(id)

{

  client_print(id,print_chat,"Hello, World!")

}


 





Затем копируем наш код, создаем новый текстовый файл, копируем его туда, компилируем и устанавливаем на сервер.



Если у Вас всё получилось, то поздравляю - вы только что написали свой первый плагин. Ждите следующих уроков.

Категория: Статьи Counter-Strike 1.6 Клиент-Сервер | Просмотров: 360 | Добавил: Miron | Теги: урок, скриптингу, #1, по, уроки, by, UrShade. | Рейтинг: 1.8/5
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
скачать cs 1.6, cs:go, cs:go скачать, карты длЯ cs 1.6, модели оружий длЯ cs 1.6, модели игроков длЯ cs 1.6, скачать клиент cs:go, сервера длЯ cs 1.6, cs:go сервера, конфиг длЯ cs 1.6, CFG cs:go, aim cfg длЯ cs 1.6, статьи cs 1.6 - cs:go