Константы

Описание: Основы скриптинга
Модератор: SJplayer

Дим M
Автор темы, Администратор
Администратор
Аватара
Дим M
Автор темы, Администратор
Администратор
Сообщения: 1608
Зарегистрирован: 5 апреля 2013
С нами: 10 лет 11 месяцев

#1 Дим » 24 апреля 2013, 11:46

Константы
Автор Cloud

Константы – это неизменяемые переменные. Константа объявляется следующим образом:

Код: Выделить всё

#define PAWN 25  


Таким образом, мы создали простую константу. Константы очень удобно использовать для замены сложных параметров, таких как color, в котором указывается HEX-код цвета в виде «0xAFAFAFAA», гораздо удобнее написать COLOR_GREY, вместо этого сложного кода.

Код: Выделить всё

#define COLOR_GREY 0xAFAFAFAA //серый
#define COLOR_GREEN 0x33AA33AA //зеленый
#define COLOR_RED 0xAA3333AA //красный
#define COLOR_YELLOW 0xFFFF00AA //желтый
#define COLOR_WHITE 0xFFFFFFAA //белый
#define COLOR_BLUE 0x0000BBAA //синий
#define COLOR_ORANGE 0xFF9900AA //оранжевый  


В стандартном инклуде a_samp уже есть много стандартных констант, которые можно использовать в скрипте. Ниже приведены константы лимитов сервера. Данные константы обычно используются в циклах for.

Код: Выделить всё

#define MAX_PLAYER_NAME 24 //лимит символов игрока
#define MAX_PLAYERS 500 //лимит игроков на сервере
#define MAX_VEHICLES 2000 //лимит транспорта на сервере
#define MAX_OBJECTS 400 //лимит объектов на сервере
#define MAX_MENUS 128 //лимит меню на сервере
#define MAX_3DTEXT_GLOBAL 1024 //лимит глобальных 3D текстов на сервере
#define MAX_3DTEXT_PLAYER 1024 //лимит 3D текстов для игрока на сервере
#define MAX_PICKUPS 2048 //лимит пикапов  


Ниже я привел пример использования одной из констант. Этот скрипт будет просто выполняться для всех игроков.
Пример использования:

Код: Выделить всё

for(new i=0; i<MAX_PLAYERS; i++)
{
//выполнить код
}


А следующие ниже приведенные константы используются в функции OnPlayerState. Это константы состояний игрока. Они используются в условиях, если параметр newstate равен одному из эти значений (0-9).

Код: Выделить всё

#define PLAYER_STATE_NONE 0 //
#define PLAYER_STATE_ONFOOT 1 //игрок ест
#define PLAYER_STATE_DRIVER 2 //игрок управляет машиной
#define PLAYER_STATE_PASSENGER 3 //игрок сидит в машине как пассажир
#define PLAYER_STATE_EXIT_VEHICLE 4 //игрок выходит из машины
#define PLAYER_STATE_ENTER_VEHICLE_DRIVER 5 //игрок входит в машину как водитель
#define PLAYER_STATE_ENTER_VEHICLE_PASSENGER 6 //игрок входит в машину как пассажир
#define PLAYER_STATE_WASTED 7 //игрок в розыске
#define PLAYER_STATE_SPAWNED 8 //игрок появился в точке возрождения
#define PLAYER_STATE_SPECTATING 9 //игрок спектатор  


Ниже я привел простой пример использования одной из констант. Этот скрипт должен быть внутри функции OnPlayerState. Я поставил условие, если игрок не управляет машиной, выполнить код.
Пример использования:

Код: Выделить всё

if(newstate != PLAYER_STATE_DRIVER) //если игрок не управляет машиной
{
//выполнить код
}


Чтобы не запоминать id каждого оружия в инклуде есть константы оружия. Вместо цифр вы можете использовать имена оружия, которые показаны в константах. Если вы хотите дать игроку какое-либо оружие, функцией GivePlayerWeapon мы пишем обычно такую строчку:

Код: Выделить всё

GivePlayerWeapon(playerid,22,100);


Если вы не помните id оружия, вы можете написать так:

Код: Выделить всё

GivePlayerWeapon(playerid,WEAPON_COLT45,100);


Ниже приведены константы всего оружия:

Код: Выделить всё

#define WEAPON_BRASSKNUCKLE 1
#define WEAPON_GOLFCLUB 2
#define WEAPON_NITESTICK 3
#define WEAPON_KNIFE 4
#define WEAPON_BAT 5
#define WEAPON_SHOVEL 6
#define WEAPON_POOLSTICK 7
#define WEAPON_KATANA 8
#define WEAPON_CHAINSAW 9
#define WEAPON_DILDO 10
#define WEAPON_DILDO2 11
#define WEAPON_VIBRATOR 12
#define WEAPON_VIBRATOR2 13
#define WEAPON_FLOWER 14
#define WEAPON_CANE 15
#define WEAPON_GRENADE 16
#define WEAPON_TEARGAS 17
#define WEAPON_MOLTOV 18
#define WEAPON_COLT45 22
#define WEAPON_SILENCED 23
#define WEAPON_DEAGLE 24
#define WEAPON_SHOTGUN 25
#define WEAPON_SAWEDOFF 26
#define WEAPON_SHOTGSPA 27
#define WEAPON_UZI 28
#define WEAPON_MP5 29
#define WEAPON_AK47 30
#define WEAPON_M4 31
#define WEAPON_TEC9 32
#define WEAPON_RIFLE 33
#define WEAPON_SNIPER 34
#define WEAPON_ROCKETLAUNCHER 35
#define WEAPON_HEATSEEKER 36
#define WEAPON_FLAMETHROWER 37
#define WEAPON_MINIGUN 38
#define WEAPON_SATCHEL 39
#define WEAPON_BOMB 40
#define WEAPON_SPRAYCAN 41
#define WEAPON_FIREEXTINGUISHER 42
#define WEAPON_CAMERA 43
#define WEAPON_PARACHUTE 46
#define WEAPON_VEHICLE 49
#define WEAPON_DROWN 53
#define WEAPON_COLLISION 54  


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

Код: Выделить всё

#define MAX_POINTS 25
new massive[MAX_POINTS][3] = {


Она обычна, используется для массивов и указывает количество строк в массиве, как показано на примере выше. Также можно встретить в некоторых скриптах такие константы:

Код: Выделить всё

#define ACCOUNT “%s.ini”  


Они предназначены для систем регистрации, т.е. показывают путь до файла, в который производится запись. Так что у констант широкое применение.
[center]i love you [s]mxIni[/s] Mysql[/center]


Вернуться в «Основы скриптинга»

Кто сейчас на форуме (по активности за 5 минут)

Сейчас этот раздел просматривают: 6 гостей