http://laska-samp.biz/articles/pawn-book/osnovy-skripttting/fynkcija-pablik
°•°•° Проект SAMP - Romashka [0.3e] ™18+™ °•°•° :: Теория :: Pawn :: Основы скриптинга

Функция public

Функции в Pawn начинаются со слова public.

Функция состоит из имени функции, круглых скобок и фигурных скобок.
Пример стандартной функции:
 
public OnGameModeInit()
{
// Это тело функции
SetGameModeText("Blank Script");
AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
return 1;
}

Обычная функция, как например, на вышеуказанном примере, если выполнила свои задачи правильно и до конца, должна возвратить true «истина».

Обратите внимание, что SetGameModeText то же функция и с параметром, указанным в скобках. Эта функция передает параметр, то есть текст, указанный в скобках в клиент сервера. Если вы запустите сервер, а затем клиент. В окне клиента, если там добавлен ваш сервер, вы увидите в колонке «mode» вашего сервера, этот текст.
 
Также можно создать свою функцию. Функция в таком случае будет называться пользовательской функцией.

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

1 forward SayHello();

Теперь можно приступать к созданию функции.
 
public SayHello()
{
return print(”Hello, World!”);
}

Print – отображает текст в консоли сервера. Это функция не будет работать, до тех пор, пока ее не вызовешь. Чтобы ее вызвать, нужно написать имя функции и в скобках ее параметры.

1 SayHello();

          Давайте проверим наш пример в действии.
Итак, переделаем наш пример и создадим функцию Say с параметром. Назовем этот параметр string.
Мы будем передавать в функцию строку. Строка – это массив, поэтому к имени параметра приписываем справа
пустые квадратные скобки, как показано на примере ниже:

public Say(string[])
{
return print(string);
}


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

1 SayHello("Hello, World!");

Так как как тело функции состоит из одной строки, эту функцию можно уместить в одну строку, как показано
на примере ниже. Но, если функция будет состоять более чем из 1 строки, то фигурные скобки придется
вернуть.
 
1 public Say(string[ ]) return print(string);

Если мы хотим передать какое-либо число в функцию, мы пишем просто имя параметра, если
вещественное число, то приписываем к имени параметра, впереди приставку Float:, если логическое, то
приставка bool:, в общем, все как у переменных:
 
forward Number(Float:value); // Если в функцию будет передаваться вещественное число
forward Number(bool:value); // Если в функцию будет передаваться логическое значение true или false
forward Number(value); // Если в функцию передает обычное число




Опубликовано 09 December 2013