Константы

Основы скриптинга

Moderator: SJplayer

Avatar
Topic author
Дим M
Администратор
Администратор
Posts: 1319
With us: 7 years 5 months

Константы

Post #1by Дим » 24 Apr 2013, 11:46

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

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

Code: Select all

#define PAWN 25  


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

Code: Select all

#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.

Code: Select all

#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 //лимит пикапов  


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

Code: Select all

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


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

Code: Select all

#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. Я поставил условие, если игрок не управляет машиной, выполнить код.
Пример использования:

Code: Select all

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


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

Code: Select all

GivePlayerWeapon(playerid,22,100);


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

Code: Select all

GivePlayerWeapon(playerid,WEAPON_COLT45,100);


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

Code: Select all

#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  


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

Code: Select all

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


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

Code: Select all

#define ACCOUNT “%s.ini”  


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

! ! !


Return to “Основы”

Who is online

Users browsing this forum: 1 guest