/*			Объявления			*/
#define GAMEMODE_NAME 		"Cream Life [DM] v0.6"	//Название мода
#define GAMEMODE_DEVELOPERS	"Enriko"	//Разработчики мода

#define MIN_USER_PASS_LEN	4						//Минимальная длина пароля игрока
#define MAX_USER_PASS_LEN 	16						//Максимальная длина пароля игрока
#define	HEAD_ADMIN			5						//Наивысший уровень админа
#define	MAX_TUTORIAL_WINDOW	3						//Количество GUI окон обучения
#define ACCOUNTS_SAVE_TIME	5						//Интервал между сохранениями аккаунтов (в минутах)
#define	CONFIG_SAVE_TIME	10						//Интервал между сохранениями конфигурации (в минутах)
#define	CAMERA_CHANGE_TIME	5						//Интервал между сменой позиции камеры при выборе скина (в секундах)
#define KILLS_PER_LEVEL		2						//Количество убийств для перехода на следующий уровень
#define MAX_GANG_AMOUNT		300						//Максимальное количество банд
#define MAX_GANG_NAME		15						//Максимальная длина имени банды
#define TAG_DRAW_DISTANCE	30						//Дальность прорисовки названия банды над головой игрока
#define	KILLS_PER_RESPECT	2						//Сколько членов другой банды нужно убить, чтобы заработать +1 к репутации своей банды
#define	GNAME_CHANGE_PRICE	25000					//Стоимость смены названия банды
#define GCOLOR_CHANGE_PRICE	25000					//Стоимость смены цвета банды
#define	GREPUTATION_PRICE	10000					//Стоимость 1 репутации для банды
#define	AMMO_PACK			50						//Сколько патронов в одном паке оружия
#define	AMMO_PACK_PRICE		25000					//Цена одного пака оружия
//Цвета
#define COLOR_GREY 			0xAFAFAFAA
#define COLOR_GREEN 		0x33AA33AA
#define COLOR_RED 			0xAA3333AA
#define COLOR_LIGHTRED 		0xFF6347AA
#define COLOR_LIGHTBLUE 	0x33CCFFAA
#define COLOR_LIGHTGREEN	0x9ACD32AA
#define COLOR_YELLOW 		0xFFFF00AA
#define COLOR_WHITE 		0xFFFFFFAA
#define COLOR_SPRINGGREEN 	0x00FF7FAA
//Стоимость прокачки скилов оружия
#define PISTOL_SKILL_REP	10		//Репутация для прокачки пистолета
#define PISTOL_SKILL_MON	10000	//Деньги для прокачки пистолета
#define UZI_SKILL_REP		20		// ...
#define UZI_SKILL_MON		20000
#define SAWN_SKILL_REP		30
#define SAWN_SKILL_MON  	30000
//Покупка брони
#define MAX_GANG_ARMOUR		100		//Максимальное количество процентов брони банды
#define ARMOUR_GANG_REP		1		//Репутация для прокачки 1 процента брони
#define ARMOUR_GANG_MON		5000	//Деньги для прокачки 1 процента брони
//Количество патронов для степеней оружия
#define	WR3_DEF_AMMO		50	
#define	WR4_DEF_AMMO		50
#define	WR5_DEF_AMMO		150
#define	WR6_DEF_AMMO		150
#define	WR7_DEF_AMMO		150
#define	WR8_DEF_AMMO		15
/* для нитро скрипта */
#define PRESSED(%0) (((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0)))
#define RELEASED(%0) (((newkeys & (%0)) != (%0)) && ((oldkeys & (%0)) == (%0)))
new Text:Nitro[MAX_PLAYERS], Text:T_Nitro[MAX_PLAYERS], Text:T_Nitro2[MAX_PLAYERS], Cantidad[MAX_VEHICLES], Timer_C;
/*конец нитро скрипта*/
/* для дрифт скрипта */
new DriftPointsNow[200];
new PlayerDriftCancellation[200];
new Float:ppos[200][3];
enum Float:Pos{ Float:sXXX,Float:sYYY,Float:sZZZ };
new Float:SavedPos[MAX_PLAYERS][Pos];
#define DRIFT_MINKAT 10.0
#define DRIFT_MAXKAT 90.0
#define DRIFT_SPEED 30.0
#define COLOR_BLUE 0x33AAFFAA
#define XX 534.3334
#define YY -2680.6028
#define ZZ -37.7500
/* конец скрипта дрифт */
new WeaponPrices[8]  = {5,10,20,25,30,40,50,60};	//Репутация для покупки оружия
new WeaponAmmo[8]  = {1,1,50,50,150,150,150,15};	//Степеней оружия
new WeaponsRank_1[6] = {1, 2, 3, 5, 6, 7};			//Оружие первой степени
new WeaponsRank_2[2] = {4, 8};						//Оружие второй степени
new WeaponsRank_3[2] = {22, 23};
new WeaponsRank_4[1] = {24};
new WeaponsRank_5[2] = {28, 32};					//..
new WeaponsRank_6[3] = {25, 29, 33};
new WeaponsRank_7[3] = {30, 31, 34};
new WeaponsRank_8[4] = {16, 17, 18, 41};			//Оружие восьмой степени

new CarAmount;										//Количество транспорта
new BUYGUN_Info[5][3] = //5 = кол-во оружия, доступного для покупки
{
//1-я цифра = ID оружия, 2-я цифра = цена оружия, 3-я цифра = цена за 1 патрон
	{23,3000,5},	//Первое оружие (Десерт игл, цена оружия = $2500, цена за 1 патрон = $5)
	{24,5000,7},	//Второе оружие
	{29,7000,8},	//Третье оружие
	{30,15000,10},	//Четвертое оружие
	{31,15000,10}		//Пятое оружие
};
new FAQ_Title[7][128] = 	//20 = кол-во пунктов в /faq , 32 = максимальная длина заголовка
{//Заголовки пунктов в /faq
	"Администрация [Cream Life][DM]",//1
	"Правила сервера",//2
	"Cайт сервера",//3
	"Команды сервера",//4
	"Захват территорий",//5
	"Создание банды",//6
	"Покупка игрового мода"//7
	//"...............",//8
	//"...............",//9
	//"...............",//10
	//"...............",//11
	//"..............."//12
	//не забываем про запятую в последнем пункте!!!!
};
new FAQ_Message[sizeof(FAQ_Title)][512] = //128 = максимальная длина текста сообщения
{
/*1*/	"{FFFF00}Разработчик/Главный Администратор : {008B00}Enriko {FF0000}[5]\n {FFFF00}Web Разработчик/ Главный Администратор : {008B00}HaoS {FF0000}[4]\n {FFFF00}Главный Администратор : {008B00}oddatte {FF0000}[4]\n {FFFF00}Главный Администратор : {008B00}Ordi {FF0000}[4]\n {FFFF00}Главный Помошник Администратора : {008B00}SLiM[228] {FF0000}[3]",
/*2*/	"{FF0000}1.{BABABA}На сервере запрещается любое использование читерских программ, так-же (cleo) скриптов\n {FF0000}2.{BABABA}Любой мат/оскорбление строго запрещенны!\n {FF0000}3.{BABABA}Реклама сторонних ресурсов запрещенна.",
/*3*/	"{DBED15}http://gta.relaxport.ru",
/*4*/	"{FFFF00}/gang - {37DB45}редактирование/создание/информация банд\n {FFFF00}/unfreezeme - {37DB45}разморозить самого себя\n {FFFF00}/deletemygang - {37DB45}удалить свою банду\n {FFFF00}/kill - {37DB45}убить самого себя\n {FFFF00}/savepos - {37DB45}сохранить позицию\n {FFFF00}/mymoney - {37DB45}посмотреть свои деньги\n {FFFF00}/buygun - {37DB45}купить оружие",
/*5*/	"Чтобы захватить территорию, нужно иметь больше 5 человек в банде и минимум 3 члена банды в игре\n Дальше просто убиваем другую банду на любом районе\n Та банда которая первая убивает другую 10 раз, захватывает район.",
/*6*/	"Чтобы создать банду достаточно иметь 5 левл, дальше вводим {FF0000}/gang",
/*7*/	"Если вы желаете приобрести данный мод, просьба обращатся в {FF0000}ICQ: 2349520\n {FFFFFF}так-же хочу сказать что данныймод можно купить {FF0000}ТОЛЬКО!{FFFFFF} по этому контакту у {FF0000}'Enriko' "
/*8*/	//"редактируется",
/*9*/	//"редактируется",
/*10*/	//"редактируется",
/*11*/	//"редактируется",
/*12*/	//"редактируется"
};
enum col_enum
{
	col_Name[16],	//Название цвета
	col_Color[8],	//Код цвета 
	col_Veh			//ID цвета для транспорта
}
/*
	Цвета при регистрации
	Чтобы добавить еще:
	- Увеличиваем число в скобках на 1
	- Добавляем строчку в формате { "Название цвета" , "Цвет в 16-ричной системе счисления без первых двух символов и последних двух символов") },
*/
new RegistrationColors[19][col_enum] =
{
	{ "Серый",			"BABABA",	13 	},//1
	{ "Красный",		"FF0000", 	3	},//2
	{ "Оранжевый",		"FF7F00", 	6	},//3
	{ "Желтый",			"FFFF00",	6	},//4
	{ "Ярко-зеленый",	"00FF00", 	86	},//5
	{ "Тёмно-Зеленый",	"008B00", 	4	},//6
	{ "Белый",			"FFFFFF",	1	},//7
	{ "Голубой",		"00E5EE",	2	},//8
	{ "Синий",			"1B1BE0",	53	},//9
    { "Фиолетовый",		"A020F0",	160	},//10
	{ "Розовый",		"FF00FF", 	126	},//11
	{ "Тёмно-Красный",	"8B0000", 	126	},//12
	{ "Тёмно-Серый",	"363636", 	126	},//13
	{ "Светло-Розовый",	"FFAEB9", 	126	},//14
	//{ "Ярко-Красныйй",	"FF0000", 	126	},//15
    { "Лимонный",		"FFFF00", 	126	},//16
    { "Золотой",		"DAA520", 	126	},//17
    { "Коричневый",		"8B4500", 	126	},//18
    { "Бирюзовый",		"00FF7F", 	126	},//19
    { "Тёмно-Синий",	"0000FF", 	126	} //20
};
new StandartSkins[279] = //Скины, которые можно выбирать сразу после регистрации / авторизации
{	//Номера скинов и описание к ним взял с wiki

	/*				Банды				*/
	105, 106, 107,		//Грув стрит
	102, 103, 104,		//Баллас
	114, 115, 116,		//Варио Лос Ацтекас
	108, 109, 110,		//Вагос
	121, 122, 123,		//Парни "Да Нанг"
	173, 174, 175,		//Сан Фиерро Рифа
	117, 118, 120,		//Триады
	247, 248, 254,		//Байкеры
	111, 112, 113,		//Русская мафия
	124, 125, 126, 127,	//Итальянская мафия
	
	/*		Общественные огранизации	*/
	165, 166,			//"Люди в черном"		
	280, 281, 282,		//Обычная Полиция
	283, 288, 			//Шериф
	284, 285, 286, 287,	//Коп-мотоциклист, S.W.A.T. , ФБР, Армия		
	277, 278, 279,		//Пожарники
	274, 275, 276,		//Медики
	163, 164,			//Телохранители
	
	/*			Девушки Карла			*/
	190, 191, 192,
	193, 194, 195,
	
	/*			Посетители пляжа		*/
	138, 139, 140, 145,
	146, 154, 251, 94,
	97,	 45,  18,
	
	/*		Жители сельской местности	*/
	128, 129, 130, 131,
	132, 133, 157, 158,
	159, 160, 196, 197,
	198, 199, 161, 162,
	200, 201, 202, 31,
	32,	 33,  34,
	
	/*		Бесчестные женщины (шлюхи)	*/
	152, 178, 237, 238,
	243, 244, 207, 245,
	246, 85,  256, 257,
	64,  63,  87,  90,
	
	/*			Спортсмены				*/
	258, 259, 26,  51,
	52,  80,  81,  23,
	96,  99,
	
	/*			Профессии				*/
	11,  141, 147, 148,
	150, 153, 167, 68,
	171, 176, 177, 172,
	179, 187, 189, 203,
	204, 155, 205, 209,
	217, 211, 219, 260,
	16,  27,  254, 70,
	
	/*			Обычные пешеходы		*/
	10,  101, 12,  13,
	136, 14,  142, 143,
	144, 15,  151, 156,
	168, 169, 17,  170,
	180, 182, 54,  183,
	184, 236, 75,  186,
	185, 188, 19,  216, 
	20,  206, 21,  22,
	210, 214, 215, 220,
	221, 225, 226, 222,
	223, 227, 231, 228,
	234, 76,  235, 236,
	89,  88,  24,  218,
	240, 25,  250, 261,
	28,  40,  41,  35,
	36,  37,  38,  43,
	44,  69,  49,  9,
	93,  39,  48,  47,
	262, 229, 58,  29,
	60,  232, 233, 67,
	7,   72,  55,  94,
	95,  98,  56,  
	
	/*		Уникальные персонажи		*/
	
	265, 266, 267, 268,
	269, 270, 271, 272,
	290, 291, 292, 293,
	294, 295, 296, 297,
	298, 299,
	
	/*			Остальные				*/
	134, 135, 137, 181,
	213, 212, 224, 230,
	239, 249, 241, 242,
	252, 253, 255, 29,
	30,  49,  50,  57,
	61,  62,  66,  73,
	77,  78,  79,  82,
	83,  84
	
};
new Float:RandSpawn[10][4] =
{
	{2230.0186,-1160.1522,25.8107,92.8651},	//x, y, z, a
	{2323.3408,-1508.4216,25.7266,275.9403},
	{2494.8772,-1686.4658,13.5135,359.0941},
	{2101.1086,-1806.1754,13.5547,90.1722},
	{1873.0569,-2061.6760,13.5469,343.6317},
	{1743.4985,-1862.7352,13.5759,358.8018},
	{1479.9169,-1741.9606,13.5469,1.9455},
	{1299.0192,-800.9059,84.1406,255.7620},
	{825.8691,-1102.7754,25.5938,267.2013},
	{1941.9327,-1373.5129,18.4006,98.5456}
};
//Увеличиваем значение в первых скобках на 1
new Float:CamBefSpawn[5][2][3] = 	//Камера перед спавном игрока
{
	//Первая позиция
	{	
		{-215.8599,981.6966,22.9432},	//Позиция игрока
		{-216.6876,984.3950,23.0856}	//Позиция камеры
	},
	//Вторая позиция
	{
		{134.4837,1356.9277,26.2804},	//Позиция игрока
		{133.5497,1360.0106,27.7837}	//Позиция камеры
	},
	//Третья позиция
	{	
		{1159.0663,1934.4314,22.8222},	
		{1157.4282,1938.1676,24.0261}	
	},
	//Четвертая позиция
	{
		{1445.8694,365.5289,18.9520},	
		{1446.8807,367.9583,20.9848}	
	},
	//Пятая позиция
	{	
		{1186.4657,-152.0419,40.6440},	
		{1185.1105,-146.7706,42.6703}	
	}//  Сюда	     <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

	 //Добавляем запятую после предыдущей скобки ^^^
	 //Убираем комментарий ниже, ставим свои координаты
	 //После предпоследней '}' запятой быть не должно
/*
	 //Дополнительная позиция
	{
		{0.0,0.0,0.0},					//Позиция игрока
		{0.0,0.0,0.0}					//Позиция камеры
	}//Это будет предпоследняя '}'
*/
};	 //Последняя '}'

enum enum_config
{
	MaxGangCars_cfg,
	MaxHouseAmount_cfg
}
new Config[enum_config];
new Timer_SaveAccounts;	//ID таймера, сохраняющего аккаунты игроков
new Timer_SaveConfig;	//ID таймера для конфигурации
new Timer_Players;		//ID таймера для игроков
new Timer_Anticheat;	//ID таймера для античита
//Для игроков
//Не сохраняется
new	bool:	PlayerLoggedIn[MAX_PLAYERS];		//Авторизован ли игрок
new Text:	PlayerZoneTextdraw[MAX_PLAYERS];	//Название зоны, на которой сечас находится игрок
new			PlayerTutorialWindow[MAX_PLAYERS];	//В каком GUI окне обучения находится игрок 	
new			PlayerCameraTimer[MAX_PLAYERS];		//Сколько секунд осталось, прежде чем сменить позицию камеры при выборе скина		
new			PlayerCashToGive[MAX_PLAYERS];		//Кол-во денег, которое нужно выдать игроку		
new Text3D:	PlayerGangLabel[MAX_PLAYERS];		//3D-Текст над головой с информацией о банде
new			PlayerColor[MAX_PLAYERS];			//Цвет игрока
new			PlayerGangInvited[MAX_PLAYERS];		//ИД игрока, который пригласил в банду
//Сохраняется
enum pdata
{
	pPassword[MAX_USER_PASS_LEN+1],	//Пароль игрока
	pTutorial,						//Прошел ли игрок обучение?
	Float:pPos_x,					//Координаты игрока, x
	Float:pPos_y,					//Координаты игрока, y
	Float:pPos_z,					//Координаты игрока, z
	Float:pFacingAngle,				//Угол поворота игрока
	pInterior,						//Интерьер игрока
	pVirtualWorld,					//Виртуальный мир игрока
	pKills,							//Количество убийств (обнуляются с повышением лвла)
	pLastVictim[MAX_PLAYER_NAME],	//Имя последней "жертвы" данного игрока
	pLevel,							//Уровень игрока
	pMoney,							//Кол-во денег у игрока
	pGangMember,					//ИД банды, членом которой является игрок
	pGangLeader,					//Является ли игрок лидером банды, в которой он состоит
	pEnemyKills,					//Сколько членов другой банды убил игрок (обнуляется)
	pAdmin							//Уровень админа
};	
new PlayerInfo[MAX_PLAYERS][pdata];	//Основной массив с сохраняемой инфой игроков
