Если вы решили серьезно занятся скриптингом, то вам просто необходимо понять эту тему. Начнем с того, что проведем параллель с реальной жизнью. Что такое событие? Событие в жизни это какое-либо значимое пришествие, например: бракосочетание, рождение ребенка, решение проблемы мирового масштаба и многое другое. Событие в программирование очень похоже на событие в жизни, с той лишь разницей, что событие может быть не столь важным, например: игрок сел в машину, игрок подключился, игрок отсоединился и многое другое, все это является программным событием (пабликом).
Функции
Функция – определенная реакция на определенное событие. Например: на событие игрок сел в машину мы напишем функцию с помощью которой выведем сообщение в чат. В коде функция записывается в таком виде: имя_функции(аргументы); Каждая функция имеет свое имя. Например, функция вывода сообщения в чат – SendClientMessage. Теперь давайте разберем что же такое аргументы функции. В аргументах указываются в определенном порядке переменные, которые необходимы для выполнения данной функции. Например для выполнения функции SendClientMessage нужно указать ID игрока, которому выводить сообщение в чат, цвет сообщения и сам текст сообщения. Все эти данные вводятся в круглых скобках после имени функции. Например если написать SendClientMessage(0,0xFFFFFFFF,”Привет мир”); выведет сообщение “Привет мир” белым цветом для игрока ID которого равен 0. Теперь разберем где можно использовать эти функции.
События
Теперь давайте разберемся как выглядят события и функции в коде. Давайте откроем Pawno и нажмем Ctrl+N. Мы увидим шаблон, который нам приготовил Pawno, если сейчас его сохранить и скомпилировать, то зайдя на сервер у вас будет только 1 скин и ни одной машины, но сервер будет работать исправно. Давайте опять заглянем в код и посмотрим на строку под номером 54: public OnPlayerConnect(playerid), это и есть название события. Если вы знаете английский язык, то возможно вы уже догадались, что это за событие, это событие подключения игрока к серверу. То что написано в круглых скобках мы разберем чуть позже. Сейчас глянем на строки 55 и 57, где мы увидим открывающуюся и закрывающуюся фигурные скобки. Между этими скобками будут находится все функции, которые будут выполнятся после подключения игрока к серверу. Теперь давайте обратим внимание на слово playerid в круглых скобках после названия паблика. Что бы это значило? Слово playerid означает, что внутри этой функции есть локальная переменная с именем playerid в которой хранится ID подключившегося игрока . Все переменные, объявленные внутри какого либо события, или находящиеся в круглых скобках после названия события, существуют только внутри этого события, например: если мы объявим переменную new var1; внутри этого события, то мы не сможем использовать эту переменную внутри другого паблика. Давайте поставим перед собой задачу: Когда игрок заходит на сервер вывести ему в чат сообщение: “Добро пожаловать на мой сервер”. Как вы помните, функция для вывода сообщения в чат – SendClientMessage. События входа игрока на сервер – OnPlayerConnect. После открывающейся фигурной скобки пишем SendClientMessage. Далее нам надо указать аргументы: ID игрока, цвет сообщения и само сообщение. Все это указывается в круглых скобках после имени функции. Как мы помним, внутри события OnPlayerConnect существует переменная playerid, хранящая ID игрока подключившегося к серверу. Её мы и будем использовать. Итак, после SendClientMessage пишем (playerid,0xFFFFFFFF,”Добро пожаловать на мой сервер”); Теперь разберем все что мы сделали. Мы указали серверу, что нужно делать когда игрок подключается к серверу, а именно: отправить сообщение “Добро пожаловать на мой сервер” белым цветом в чат тому игроку, который подключился. Нажимаем F6, запускаем сервер и проверяем.
Если помог ставим +
Сообщение отредактировал Mike: 19 января 2012 - 14:11