[ Урок ] Основы скриптинга 0.3

Приветствую, в этом уроке, я вас познакомлю с "Константами", "Макросами", и с функциями "Public" и "Stock".

Константы

это неизменяемые переменные, они сильно упрощают работу скриптерам! С помощью констант, вы можете заменять трудно запоминающиеся коды, например коды цветов, в pawn они в формате: 0x0000AA

Примеры:

#define COLOR_GREY 0xAFAFAFAA // серый
#define COLOR_GREEN 0x33AA33AA // зеленый
#define COLOR_RED 0xAA3333AA // красный
#define COLOR_YELLOW 0xFFFF00AA // желтый
#define COLOR_WHITE 0xFFFFFFAA // белый
#define COLOR_ORANGE 0xFF8000AA // оранжевый
#define COLOR_BRIGHTRED 0xDB0000F6 // ярко красный

Их можно использовать например в сообщениях:

SendClientMessage(playerid,COLOR_RED,”Test”);

Так же, можете ставить ид диалога:

#define DIALOG_HELP 1

и вместо ид, пишим в диалоге так:

ShowPlayerDialog(playerid, DIALOG_HELP, DIALOG_STYLE_INPUT, "Dialog name", "text", "Кнопка1", "Кнопка2");

Макросы

-

с помощью макроса мы упрощаем себе работу с функциями, например с таймером.

Примеры:

#define SetTimerx (%0,%1,%2) SetTimer(%0,%1*1000,%2)

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

Знак "%" и цифра стоящая рядом с ним, это параметр функции, пример:

SetTimer(funcname[], interval, repeating); // имеет 3 параметра, вот и мы прописываем %0, %1, %2 , отсчет в pawn всегда идет с 0

Public

Это функции pawn, которые бывают стандартные и самописные, есть те, которые вызываются автоматически, и есть те, которые вы можете сами вызывать.

Примеры:

Вот пример автовызываемой функции:

public OnPlayerConnect(playerid) // автовызываемая функция которая вызывается когда игрок подключается к серверу
{
SendClientMessage(playeid, COLOR_WHITE, "Добро пожаловать!"); // будет показывать сообщение в чате игроку, который подключился
return 1;
}

Теперь пример самописной функиции(с параментром playerid):

forward Test(playerid); // объявляем функцию с названием Test
public Test(playerid) // пишем саму функцию
{
GivePlayerMoney(playerid, 500); // устанавливаем игроку значение денег 500
return 1;
}
// Теперь эту функцию можно вызвать, вызывается она следующим образом:
Test(playerid);

Можно еще сделать самописную функцию без параметров:

forward Test();
public Test()
{
return print("Сервер включен");
}
// вызывается вот так:
Test();

Кстати, функции так же могут быть "логическими" и "вещественными", и объявляются они почти так же как переменные:

forward Func(Float:test); // вещественный тип
forward Func(bool:test); // логический тип
forward Func(test); // обычный тип
Stock

Многие объявляют самописные функции с помощью stock , она почти ничем не отличается от public, просто к ней не нужно приписывать forward.

Примеры:
stock Test()
{
return print("Test message");
}
// ну и вызываться будет так:
Test();

И вообще, многие рекомендуют использовать stock вместо public тогда, когда в вашей функции нету таймеров, так что stock в этом случаи будет более оптимизированей!

На этом закончу :)

Автор: Mike

Ин-ция частично взята с учебника!

[ Урок ] Основы скриптинга 0.3, image #1
458 views·2 shares