Константы -
это неизменяемые переменные, они сильно упрощают работу скриптерам! С помощью констант, вы можете заменять трудно запоминающиеся коды, например коды цветов, в 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
Ин-ция частично взята с учебника!
Сообщение отредактировал Mike: 18 января 2012 - 13:30