Dialog +rep
#1

I type the command displays the dialog, but when I choose the function of dialog he disappears and nothing happens, since I changed the id of dialog and nothing, someone help me please? + rep
Reply
#2

Remember that the maximum dialog ID is 32767.
Reply
#3

i know
Reply
#4

Well, can you post the code?
Reply
#5

Quote:
Originally Posted by maramizo
Посмотреть сообщение
Well, can you post the code?
Код:
//==============================[ Includes ]====================================

#include <a_samp>
#include <zcmd>
#include <GetVehicleColor>
#include <sscanf2>
#include <YSI\y_ini>

//==============================[ Definitions ]=================================

#define SPD 			ShowPlayerDialog
#define DSL 			DIALOG_STYLE_LIST
#define DSI             DIALOG_STYLE_INPUT
#define D_TOP       	"Tuning by Dimi"
#define D_OK 			"Ok"
#define D_CANCEL 		"Cancel"
#define D_TEXT			"Paintjobs\nCores\nEscapamentos\nAmortecedor dianteiro\nAmortecedor Traseiro\nTeto\nSpoilers\nSaias laterais\nRodas\nCar Stereo\nHidraulica\nNitro"

#define T_FILE 			"Tuning/%s.ini"
#define TG_FILE 		"TGarage/%d.ini"

#define MAX_GARAGES 	100

#define dialog_TUNING   2342
#define dialog_TUNING_2 2578

#define COLOR_PRICE		100

#define COLOR_RED		0xfa5555AA
#define COLOR_ORANGE	0xFF6600FF

#define SendErrorMessage(%0,%1) \
	SendClientMessage(%0, COLOR_RED, "ERROR | {FFFFFF} "%1)

//===========================[ News and Enums ]=================================

new PlayerText:TuningBuy[ MAX_PLAYERS ][ 14 ];

enum Vehicle {
    vVehID,
    vOwner[ MAX_PLAYER_NAME ],
	bool:vTuned,
	vSpoiler,
	vHood,
	vRoof,
	vSkirt,
	vLamps,
	vNitro,
	vExhaust,
	vWheels,
	vStereo,
	vHydraulics,
	vFrontBumper,
	vRearBumper,
	vRightVent,
	vLeftVent,
	vColor1,
	vColor2,
	vPaintJob
}
new VehicleInfo[ MAX_VEHICLES ][ Vehicle ];

enum aaa {
	Float:Position[ 3 ],
    Text3D:tg3D,
    tgPickup,
}
new tGarage[ MAX_GARAGES ][ aaa ];

enum PaintjobInfi {
	vehID,
	pNumber,
	pPrice,
	pName[ 12 ]
};
#define NUMBER_TYPE_PAINTJOB 	36
static const
	pjInfo[ NUMBER_TYPE_PAINTJOB ][ PaintjobInfi ] = {
	{ 483, 0, 100, "Paintjob 1" },
	{ 534, 0, 100, "Paintjob 1" },
	{ 534, 1, 100, "Paintjob 2" },
	{ 534, 2, 100, "Paintjob 3" },
	{ 535, 0, 100, "Paintjob 1" },
	{ 535, 1, 100, "Paintjob 2" },
	{ 535, 2, 100, "Paintjob 3" },
	{ 536, 0, 100, "Paintjob 1" },
	{ 536, 1, 100, "Paintjob 2" },
	{ 536, 2, 100, "Paintjob 3" },
	{ 558, 0, 100, "Paintjob 1" },
	{ 558, 1, 100, "Paintjob 2" },
	{ 558, 2, 100, "Paintjob 3" },
	{ 559, 0, 100, "Paintjob 1" },
	{ 559, 1, 100, "Paintjob 2" },
	{ 559, 2, 100, "Paintjob 3" },
	{ 560, 0, 100, "Paintjob 1" },
	{ 560, 1, 100, "Paintjob 2" },
	{ 560, 2, 100, "Paintjob 3" },
	{ 561, 0, 100, "Paintjob 1" },
	{ 561, 1, 100, "Paintjob 2" },
	{ 561, 2, 100, "Paintjob 3" },
	{ 562, 0, 100, "Paintjob 1" },
	{ 562, 1, 100, "Paintjob 2" },
	{ 562, 2, 100, "Paintjob 3" },
	{ 565, 0, 100, "Paintjob 1" },
	{ 565, 1, 100, "Paintjob 2" },
	{ 565, 2, 100, "Paintjob 3" },
	{ 567, 0, 100, "Paintjob 1" },
	{ 567, 1, 100, "Paintjob 2" },
	{ 567, 2, 100, "Paintjob 3" },
	{ 575, 0, 100, "Paintjob 1" },
	{ 575, 1, 100, "Paintjob 2" },
	{ 576, 0, 100, "Paintjob 1" },
	{ 576, 1, 100, "Paintjob 2" },
	{ 576, 2, 100, "Paintjob 3" }
};

enum ComponentsInfo {
	cID,
	cName[ 40 ],
	cPrice,
	cType
};
#define MAX_COMPONENTS	194
static const
	cInfo[ MAX_COMPONENTS ][ ComponentsInfo ] = {
	{ 1000, "Pro Spoiler", 100, CARMODTYPE_SPOILER },
	{ 1001, "Win Spoiler", 100, CARMODTYPE_SPOILER },
	{ 1002, "Drag Spoiler", 100, CARMODTYPE_SPOILER },
	{ 1003, "Alpha Spoiler", 100, CARMODTYPE_SPOILER },
	{ 1004, "Champ Scoop Hood", 100, CARMODTYPE_HOOD },
	{ 1005, "Fury Scoop Hood", 100, CARMODTYPE_HOOD },
	{ 1006, "Roof Scoop Roof", 100, CARMODTYPE_ROOF },
	{ 1007, "Right Sideskirt", 100, CARMODTYPE_SIDESKIRT },
	{ 1008, "5x Nitrous", 100, CARMODTYPE_NITRO },
	{ 1009, "2x Nitrous", 100, CARMODTYPE_NITRO },
	{ 1010, "10x Nitrous", 100, CARMODTYPE_NITRO },
	{ 1011, "Race Scoop Hood", 100, CARMODTYPE_HOOD },
	{ 1012, "Worx Scoop Hood", 100, CARMODTYPE_HOOD },
	{ 1013, "Round Fog Lamp", 100, CARMODTYPE_LAMPS },
	{ 1014, "Champ Spoiler", 100, CARMODTYPE_SPOILER },
	{ 1015, "Race Spoiler", 100, CARMODTYPE_SPOILER },
	{ 1016, "Worx Spoiler", 100, CARMODTYPE_SPOILER },
	{ 1017, "Left Sideskirt", 100, CARMODTYPE_SIDESKIRT },
	{ 1018, "Upswept Exhaust", 100, CARMODTYPE_EXHAUST },
	{ 1019, "Twin Exhaust", 100, CARMODTYPE_EXHAUST },
	{ 1020, "Large Exhaust", 100, CARMODTYPE_EXHAUST },
	{ 1021, "Medium Exhaust", 100, CARMODTYPE_EXHAUST },
	{ 1022, "Small Exhaust", 100, CARMODTYPE_EXHAUST },
	{ 1023, "Fury Spoiler", 100, CARMODTYPE_SPOILER },
	{ 1024, "Square Fog Lamp", 100, CARMODTYPE_LAMPS },
	{ 1025, "Offroad Wheels", 100, CARMODTYPE_WHEELS },
	{ 1026, "Right Alien Sideskirt", 100, CARMODTYPE_SIDESKIRT },
	{ 1027, "Left Alien Sideskirt", 100, CARMODTYPE_SIDESKIRT },
	{ 1028, "Alien Exhaust", 100, CARMODTYPE_EXHAUST },
	{ 1029, "X-Flow Exhaust", 100, CARMODTYPE_EXHAUST },
	{ 1030, "Left X-Flow Sideskirt", 100, CARMODTYPE_SIDESKIRT },
	{ 1031, "Right X-Flow Sideskirt", 100, CARMODTYPE_SIDESKIRT },
	{ 1032, "Alien Roof Vent", 100, CARMODTYPE_ROOF },
	{ 1033, "X-Flow Roof Vent", 100, CARMODTYPE_ROOF },
	{ 1034, "Alien Exhaust", 100, CARMODTYPE_EXHAUST },
	{ 1035, "X-Flow Roof Vent", 100, CARMODTYPE_ROOF },
	{ 1036, "Right Alien Sideskirt", 100, CARMODTYPE_SIDESKIRT },
	{ 1037, "X-Flow Exhaust", 100, CARMODTYPE_EXHAUST },
	{ 1038, "Alien Roof Vent", 100, CARMODTYPE_ROOF },
	{ 1039, "Left X-Flow Sideskirt", 100, CARMODTYPE_SIDESKIRT },
	{ 1040, "Left Alien Sideskirt", 100, CARMODTYPE_SIDESKIRT },
	{ 1041, "Right X-Flow Sideskirt", 100, CARMODTYPE_SIDESKIRT },
	{ 1042, "Right Chrome Sideskirt", 100, CARMODTYPE_SIDESKIRT },
	{ 1043, "Slamin Exhaust", 100, CARMODTYPE_EXHAUST },
	{ 1044, "Chrome Exhaust", 100, CARMODTYPE_EXHAUST },
	{ 1045, "X-Flow Exhaust", 100, CARMODTYPE_EXHAUST },
	{ 1046, "Alien Exhaust", 100, CARMODTYPE_EXHAUST },
	{ 1047, "Right Alien Sideskirt", 100, CARMODTYPE_SIDESKIRT },
	{ 1048, "Right X-Flow Sideskirt", 100, CARMODTYPE_SIDESKIRT },
	{ 1049, "Alien Spoiler", 100, CARMODTYPE_SPOILER },
	{ 1050, "X-Flow Spoiler", 100, CARMODTYPE_SPOILER },
	{ 1051, "Left Alien Sideskirt", 100, CARMODTYPE_SPOILER },
	{ 1052, "Left X-Flow Sideskirt", 100, CARMODTYPE_SPOILER },
	{ 1053, "X-Flow Roof", 100, CARMODTYPE_ROOF },
	{ 1054, "Alien Roof", 100, CARMODTYPE_ROOF },
	{ 1055, "Alien Roof", 100, CARMODTYPE_ROOF },
	{ 1056, "Right Alien Sideskirt", 100, CARMODTYPE_SIDESKIRT },
	{ 1057, "Right X-Flow Sideskirt", 100, CARMODTYPE_SIDESKIRT },
	{ 1058, "Alien Spoiler", 100, CARMODTYPE_SPOILER },
	{ 1059, "X-Flow Exhaust", 100, CARMODTYPE_EXHAUST },
	{ 1060, "X-Flow Spoiler", 100, CARMODTYPE_SPOILER },
	{ 1061, "X-Flow Roof", 100, CARMODTYPE_ROOF },
	{ 1062, "Left Alien Sideskirt", 100, CARMODTYPE_SIDESKIRT },
	{ 1063, "Left X-Flow Sideskirt", 100, CARMODTYPE_SIDESKIRT },
	{ 1064, "Alien Exhaust", 100, CARMODTYPE_EXHAUST },
	{ 1065, "Alien Exhaust", 100, CARMODTYPE_EXHAUST },
	{ 1066, "X-Flow Exhaust", 100, CARMODTYPE_EXHAUST },
	{ 1067, "Alien Roof", 100, CARMODTYPE_ROOF },
	{ 1068, "X-Flow Roof", 100, CARMODTYPE_ROOF },
	{ 1069, "Right Alien Sideskirt", 100, CARMODTYPE_SIDESKIRT },
	{ 1070, "Right X-Flow Sideskirt", 100, CARMODTYPE_SIDESKIRT },
	{ 1071, "Left Alien Sideskirt", 100, CARMODTYPE_SIDESKIRT },
	{ 1072, "Left X-Flow Sideskirt", 100, CARMODTYPE_SIDESKIRT },
	{ 1073, "Shadow Wheels", 100, CARMODTYPE_WHEELS },
	{ 1074, "Mega Wheels", 100, CARMODTYPE_WHEELS },
	{ 1075, "Rimshine Wheels", 100, CARMODTYPE_WHEELS },
	{ 1076, "Wires Wheels", 100, CARMODTYPE_WHEELS },
	{ 1077, "Classic Wheels", 100, CARMODTYPE_WHEELS },
	{ 1078, "Twist Wheels", 100, CARMODTYPE_WHEELS },
	{ 1079, "Cutter Wheels", 100, CARMODTYPE_WHEELS },
	{ 1080, "Switch Wheels", 100, CARMODTYPE_WHEELS },
	{ 1081, "Grove Wheels", 100, CARMODTYPE_WHEELS },
	{ 1082, "Import Wheels", 100, CARMODTYPE_WHEELS },
	{ 1083, "Dollar Wheels", 100, CARMODTYPE_WHEELS },
	{ 1084, "Trance Wheels", 100, CARMODTYPE_WHEELS },
	{ 1085, "Atomic Wheels", 100, CARMODTYPE_WHEELS },
	{ 1086, "Stereo Wheels", 100, CARMODTYPE_STEREO },
	{ 1087, "Hydraulics", 100, CARMODTYPE_HYDRAULICS },
	{ 1088, "Alien Roof", 100, CARMODTYPE_ROOF },
	{ 1089, "X-Flow Exhaust", 100, CARMODTYPE_EXHAUST },
	{ 1090, "Right Alien Sideskirt", 100, CARMODTYPE_SIDESKIRT },
	{ 1091, "X-Flow Roof", 100, CARMODTYPE_ROOF },
	{ 1092, "Alien Exhaust", 100, CARMODTYPE_EXHAUST },
	{ 1093, "Right X-Flow Sideskirt", 100, CARMODTYPE_SIDESKIRT },
	{ 1094, "Left Alien Sideskirt", 100, CARMODTYPE_SIDESKIRT },
	{ 1095, "Right X-Flow Sideskirt", 100, CARMODTYPE_SIDESKIRT },
	{ 1096, "Ahab Wheels", 100, CARMODTYPE_WHEELS },
	{ 1097, "Virtual Wheels", 100, CARMODTYPE_WHEELS },
	{ 1098, "Access Wheels", 100, CARMODTYPE_WHEELS },
	{ 1099, "Left Chrome Sideskirt", 100, CARMODTYPE_SIDESKIRT },
	{ 1100, "Chrome Grill", 100, -1 }, // Bullbar
	{ 1101, "Left `Chrome Flames` Sideskirt", 100, CARMODTYPE_SIDESKIRT },
	{ 1102, "Left `Chrome Strip` Sideskirt", 100, CARMODTYPE_SIDESKIRT },
	{ 1103, "Covertible Roof", 100, CARMODTYPE_ROOF },
	{ 1104, "Chrome Exhaust", 100, CARMODTYPE_EXHAUST },
	{ 1105, "Slamin Exhaust", 100, CARMODTYPE_EXHAUST },
	{ 1106, "Right `Chrome Arches`", 100, CARMODTYPE_SIDESKIRT },
	{ 1107, "Left `Chrome Strip` Sideskirt", 100, CARMODTYPE_SIDESKIRT },
	{ 1108, "Right `Chrome Strip` Sideskirt", 100, CARMODTYPE_SIDESKIRT },
	{ 1109, "Chrome", 100, -1 }, // Bullbar
	{ 1110, "Slamin", 100, -1 }, // Bullbar
	{ 1111, "Little Sign?", 100, -1 }, // sig
	{ 1112, "Little Sign?", 100, -1 }, // sig
	{ 1113, "Chrome Exhaust", 100, CARMODTYPE_EXHAUST },
	{ 1114, "Slamin Exhaust", 100, CARMODTYPE_EXHAUST },
	{ 1115, "Chrome", 100, -1 }, // Bullbar
	{ 1116, "Slamin", 100, -1 }, // Bullbar
	{ 1117, "Chrome Front Bumper", 100, CARMODTYPE_FRONT_BUMPER },
	{ 1118, "Right `Chrome Trim` Sideskirt", 100, CARMODTYPE_SIDESKIRT },
	{ 1119, "Right `Wheelcovers` Sideskirt", 100, CARMODTYPE_SIDESKIRT },
	{ 1120, "Left `Chrome Trim` Sideskirt", 100, CARMODTYPE_SIDESKIRT },
	{ 1121, "Left `Wheelcovers` Sideskirt", 100, CARMODTYPE_SIDESKIRT },
	{ 1122, "Right `Chrome Flames` Sideskirt", 100, CARMODTYPE_SIDESKIRT },
	{ 1123, "Bullbar Chrome Bars", 100, -1 }, // Bullbar
	{ 1124, "Left `Chrome Arches` Sideskirt", 100, CARMODTYPE_SIDESKIRT },
	{ 1125, "Bullbar Chrome Lights", 100, -1 }, // Bullbar
	{ 1126, "Chrome Exhaust", 100, CARMODTYPE_EXHAUST },
	{ 1127, "Slamin Exhaust", 100, CARMODTYPE_EXHAUST },
	{ 1128, "Vinyl Hardtop", 100, CARMODTYPE_ROOF },
	{ 1129, "Chrome Exhaust", 100, CARMODTYPE_EXHAUST },
	{ 1130, "Hardtop Roof", 100, CARMODTYPE_ROOF },
	{ 1131, "Softtop Roof", 100, CARMODTYPE_ROOF },
	{ 1132, "Slamin Exhaust", 100, CARMODTYPE_EXHAUST },
	{ 1133, "Right `Chrome Strip` Sideskirt", 100, CARMODTYPE_SIDESKIRT },
	{ 1134, "Right `Chrome Strip` Sideskirt", 100, CARMODTYPE_SIDESKIRT },
	{ 1135, "Slamin Exhaust", 100, CARMODTYPE_EXHAUST },
	{ 1136, "Chrome Exhaust", 100, CARMODTYPE_EXHAUST },
	{ 1137, "Left `Chrome Strip` Sideskirt", 100, CARMODTYPE_SIDESKIRT },
	{ 1138, "Alien Spoiler", 100, CARMODTYPE_SPOILER },
	{ 1139, "X-Flow Spoiler", 100, CARMODTYPE_SPOILER },
	{ 1140, "X-Flow Rear Bumper", 100, CARMODTYPE_REAR_BUMPER },
	{ 1141, "Alien Rear Bumper", 100, CARMODTYPE_REAR_BUMPER },
	{ 1142, "Left Oval Vents", 100, CARMODTYPE_VENT_LEFT },
	{ 1143, "Right Oval Vents", 100, CARMODTYPE_VENT_RIGHT },
	{ 1144, "Left Square Vents", 100, CARMODTYPE_VENT_LEFT },
	{ 1145, "Right Square Vents", 100, CARMODTYPE_VENT_RIGHT },
	{ 1146, "X-Flow Spoiler", 100, CARMODTYPE_SPOILER },
	{ 1147, "Alien Spoiler", 100, CARMODTYPE_SPOILER },
	{ 1148, "X-Flow Rear Bumper", 100, CARMODTYPE_REAR_BUMPER },
	{ 1149, "Alien Rear Bumper", 100, CARMODTYPE_REAR_BUMPER },
	{ 1150, "Alien Rear Bumper", 100, CARMODTYPE_REAR_BUMPER },
	{ 1151, "X-Flow Rear Bumper", 100, CARMODTYPE_REAR_BUMPER },
	{ 1152, "X-Flow Front Bumper", 100, CARMODTYPE_FRONT_BUMPER },
	{ 1153, "Alien Front Bumper", 100, CARMODTYPE_FRONT_BUMPER },
	{ 1154, "Alien Rear Bumper", 100, CARMODTYPE_REAR_BUMPER },
	{ 1155, "Alien Front Bumper", 100, CARMODTYPE_FRONT_BUMPER },
	{ 1156, "X-Flow Rear Bumper", 100, CARMODTYPE_REAR_BUMPER },
	{ 1157, "X-Flow Front Bumper", 100, CARMODTYPE_FRONT_BUMPER },
	{ 1158, "X-Flow Spoiler", 100, CARMODTYPE_SPOILER },
	{ 1159, "Alien Rear Bumper", 100, CARMODTYPE_REAR_BUMPER },
	{ 1160, "Alien Front Bumper", 100, CARMODTYPE_FRONT_BUMPER },
	{ 1161, "X-Flow Rear Bumper", 100, CARMODTYPE_REAR_BUMPER },
	{ 1162, "Alien Spoiler", 100, CARMODTYPE_SPOILER },
	{ 1163, "X-Flow Spoiler", 100, CARMODTYPE_SPOILER },
	{ 1164, "Alien Spoiler", 100, CARMODTYPE_SPOILER },
	{ 1165, "X-Flow Front Bumper", 100, CARMODTYPE_FRONT_BUMPER },
	{ 1166, "Alien Front Bumper", 100, CARMODTYPE_FRONT_BUMPER },
	{ 1167, "X-Flow Rear Bumper", 100, CARMODTYPE_REAR_BUMPER },
	{ 1168, "Alien Rear Bumper", 100, CARMODTYPE_REAR_BUMPER },
	{ 1169, "Alien Front Bumper", 100, CARMODTYPE_FRONT_BUMPER },
	{ 1170, "X-Flow Front Bumper", 100, CARMODTYPE_FRONT_BUMPER },
	{ 1171, "Alien Front Bumper", 100, CARMODTYPE_FRONT_BUMPER },
	{ 1172, "X-Flow Front Bumper", 100, CARMODTYPE_FRONT_BUMPER },
	{ 1173, "X-Flow Front Bumper", 100, CARMODTYPE_FRONT_BUMPER },
	{ 1174, "Chrome Front Bumper", 100, CARMODTYPE_FRONT_BUMPER },
	{ 1175, "Slamin Front Bumper", 100, CARMODTYPE_FRONT_BUMPER },
	{ 1176, "Chrome Rear Bumper", 100, CARMODTYPE_REAR_BUMPER },
	{ 1177, "Slamin Rear Bumper", 100, CARMODTYPE_REAR_BUMPER },
	{ 1178, "Slamin Rear Bumper", 100, CARMODTYPE_REAR_BUMPER },
	{ 1179, "Chrome Front Bumper", 100, CARMODTYPE_FRONT_BUMPER },
	{ 1180, "Chrome Rear Bumper", 100, CARMODTYPE_REAR_BUMPER },
	{ 1181, "Slamin Front Bumper", 100, CARMODTYPE_FRONT_BUMPER },
	{ 1182, "Chrome Front Bumper", 100, CARMODTYPE_FRONT_BUMPER },
	{ 1183, "Slamin Rear Bumper", 100, CARMODTYPE_REAR_BUMPER },
	{ 1184, "Chrome Rear Bumper", 100, CARMODTYPE_REAR_BUMPER },
	{ 1185, "Slamin Front Bumper", 100, CARMODTYPE_FRONT_BUMPER },
	{ 1186, "Slamin Rear Bumper", 100, CARMODTYPE_REAR_BUMPER },
	{ 1187, "Chrome Rear Bumper", 100, CARMODTYPE_REAR_BUMPER },
	{ 1188, "Slamin Front Bumper", 100, CARMODTYPE_FRONT_BUMPER },
	{ 1189, "Chrome Front Bumper", 100, CARMODTYPE_FRONT_BUMPER },
	{ 1190, "Slamin Front Bumper", 100, CARMODTYPE_FRONT_BUMPER },
	{ 1191, "Chrome Front Bumper", 100, CARMODTYPE_FRONT_BUMPER },
	{ 1192, "Chrome Rear Bumper", 100, CARMODTYPE_REAR_BUMPER },
	{ 1193, "Slamin Rear Bumper", 100, CARMODTYPE_REAR_BUMPER }
};


enum tpi {
	tID,
	tType,
	bool:tPaintjob,
	PJColor[ 2 ]
};
new TPInfo[ MAX_PLAYERS ][ tpi ];

new globalstring[ 128 ];

//=================================[ Functions ]=================================
stock CreatePlayerTextDraws( playerid ) {

	TuningBuy[ playerid ][ 0 ] = CreatePlayerTextDraw(playerid, 425.125000, 338.666687, "usebox");
	PlayerTextDrawLetterSize(playerid, TuningBuy[ playerid ][ 0 ], 0.000000, 8.627778);
	PlayerTextDrawTextSize(playerid, TuningBuy[ playerid ][ 0 ], 216.125000, 0.000000);
	PlayerTextDrawAlignment(playerid, TuningBuy[ playerid ][ 0 ], 1);
	PlayerTextDrawColor(playerid, TuningBuy[ playerid ][ 0 ], 0);
	PlayerTextDrawUseBox(playerid, TuningBuy[ playerid ][ 0 ], true);
	PlayerTextDrawBoxColor(playerid, TuningBuy[ playerid ][ 0 ], 102);
	PlayerTextDrawSetShadow(playerid, TuningBuy[ playerid ][ 0 ], 0);
	PlayerTextDrawSetOutline(playerid, TuningBuy[ playerid ][ 0 ], 0);
	PlayerTextDrawFont(playerid, TuningBuy[ playerid ][ 0 ], 0);

	TuningBuy[ playerid ][ 1 ] = CreatePlayerTextDraw(playerid, 319.375000, 337.749847, "Hidraulica");
	PlayerTextDrawLetterSize(playerid, TuningBuy[ playerid ][ 1 ], 0.386249, 1.156664);
	PlayerTextDrawAlignment(playerid, TuningBuy[ playerid ][ 1 ], 2);
	PlayerTextDrawColor(playerid, TuningBuy[ playerid ][ 1 ], -1);
	PlayerTextDrawSetShadow(playerid, TuningBuy[ playerid ][ 1 ], 0);
	PlayerTextDrawSetOutline(playerid, TuningBuy[ playerid ][ 1 ], 1);
	PlayerTextDrawBackgroundColor(playerid, TuningBuy[ playerid ][ 1 ], 51 );
	PlayerTextDrawFont(playerid, TuningBuy[ playerid ][ 1 ], 2);
	PlayerTextDrawSetProportional(playerid, TuningBuy[ playerid ][ 1 ], 1 );
	PlayerTextDrawSetSelectable(playerid, TuningBuy[ playerid ][ 1 ], false );

	TuningBuy[ playerid ][ 2 ] = CreatePlayerTextDraw(playerid, 198.375000, 361.583282, "-");
	PlayerTextDrawLetterSize(playerid, TuningBuy[ playerid ][ 2 ], 18.981874, 0.514999);
	PlayerTextDrawAlignment(playerid, TuningBuy[ playerid ][ 2 ], 1);
	PlayerTextDrawColor(playerid, TuningBuy[ playerid ][ 2 ], -10092289);
	PlayerTextDrawSetShadow(playerid, TuningBuy[ playerid ][ 2 ], 0);
	PlayerTextDrawSetOutline(playerid, TuningBuy[ playerid ][ 2 ], 1);
	PlayerTextDrawBackgroundColor(playerid, TuningBuy[ playerid ][ 2 ], 51);
	PlayerTextDrawFont(playerid, TuningBuy[ playerid ][ 2 ], 2);
	PlayerTextDrawSetProportional(playerid, TuningBuy[ playerid ][ 2 ], 1);

	TuningBuy[ playerid ][ 3 ] = CreatePlayerTextDraw(playerid, 222.500000, 352.916656, "Left `Chrome Flames` Sideskirt");
	PlayerTextDrawLetterSize(playerid, TuningBuy[ playerid ][ 3 ], 0.244999, 1.092499);
	PlayerTextDrawAlignment(playerid, TuningBuy[ playerid ][ 3 ], 1);
	PlayerTextDrawColor(playerid, TuningBuy[ playerid ][ 3 ], -1);
	PlayerTextDrawSetShadow(playerid, TuningBuy[ playerid ][ 3 ], 0);
	PlayerTextDrawSetOutline(playerid, TuningBuy[ playerid ][ 3 ], 1);
	PlayerTextDrawBackgroundColor(playerid, TuningBuy[ playerid ][ 3 ], 51);
	PlayerTextDrawFont(playerid, TuningBuy[ playerid ][ 3 ], 2);
	PlayerTextDrawSetProportional(playerid, TuningBuy[ playerid ][ 3 ], 1);

	TuningBuy[ playerid ][ 4 ] = CreatePlayerTextDraw(playerid, 222.500000, 365.000000, "Preco: ~w~10000$");
	PlayerTextDrawLetterSize(playerid, TuningBuy[ playerid ][ 4 ], 0.244999, 1.092499);
	PlayerTextDrawAlignment(playerid, TuningBuy[ playerid ][ 4 ], 1);
	PlayerTextDrawColor(playerid, TuningBuy[ playerid ][ 4 ], -1);
	PlayerTextDrawSetShadow(playerid, TuningBuy[ playerid ][ 4 ], 0);
	PlayerTextDrawSetOutline(playerid, TuningBuy[ playerid ][ 4 ], 1);
	PlayerTextDrawBackgroundColor(playerid, TuningBuy[ playerid ][ 4 ], 51);
	PlayerTextDrawFont(playerid, TuningBuy[ playerid ][ 4 ], 2);
	PlayerTextDrawSetProportional(playerid, TuningBuy[ playerid ][ 4 ], 1);

	TuningBuy[ playerid ][ 5 ] = CreatePlayerTextDraw(playerid, 215.125000, 372.999877, "-");
	PlayerTextDrawLetterSize(playerid, TuningBuy[ playerid ][ 5 ], 6.743125, 0.444999);
	PlayerTextDrawAlignment(playerid, TuningBuy[ playerid ][ 5 ], 1);
	PlayerTextDrawColor(playerid, TuningBuy[ playerid ][ 5 ], -10092289);
	PlayerTextDrawSetShadow(playerid, TuningBuy[ playerid ][ 5 ], 0);
	PlayerTextDrawSetOutline(playerid, TuningBuy[ playerid ][ 5 ], 1);
	PlayerTextDrawBackgroundColor(playerid, TuningBuy[ playerid ][ 5 ], 51);
	PlayerTextDrawFont(playerid, TuningBuy[ playerid ][ 5 ], 2);
	PlayerTextDrawSetProportional(playerid, TuningBuy[ playerid ][ 5 ], 1);

	TuningBuy[ playerid ][ 6 ] = CreatePlayerTextDraw(playerid, 206.750000, 347.166564, "-");
	PlayerTextDrawLetterSize(playerid, TuningBuy[ playerid ][ 6 ], 18.981874, 0.514999);
	PlayerTextDrawAlignment(playerid, TuningBuy[ playerid ][ 6 ], 1);
	PlayerTextDrawColor(playerid, TuningBuy[ playerid ][ 6 ], -10092289);
	PlayerTextDrawSetShadow(playerid, TuningBuy[ playerid ][ 6 ], 0);
	PlayerTextDrawSetOutline(playerid, TuningBuy[ playerid ][ 6 ], 1);
	PlayerTextDrawBackgroundColor(playerid, TuningBuy[ playerid ][ 6 ], 51);
	PlayerTextDrawFont(playerid, TuningBuy[ playerid ][ 6 ], 2);
	PlayerTextDrawSetProportional(playerid, TuningBuy[ playerid ][ 6 ], 1);

	TuningBuy[ playerid ][ 7 ] = CreatePlayerTextDraw(playerid, 385.000000, 381.500000, "ld_beat:right");
	PlayerTextDrawLetterSize(playerid, TuningBuy[ playerid ][ 7 ], 0.449999, 1.600000);
	PlayerTextDrawTextSize(playerid, TuningBuy[ playerid ][ 7 ], 27.500000, 13.416657);
	PlayerTextDrawAlignment(playerid, TuningBuy[ playerid ][ 7 ], 2);
	PlayerTextDrawColor(playerid, TuningBuy[ playerid ][ 7 ], -1);
	PlayerTextDrawUseBox(playerid, TuningBuy[ playerid ][ 7 ], true);
	PlayerTextDrawBoxColor(playerid, TuningBuy[ playerid ][ 7 ], 255);
	PlayerTextDrawSetShadow(playerid, TuningBuy[ playerid ][ 7 ], 0);
	PlayerTextDrawSetOutline(playerid, TuningBuy[ playerid ][ 7 ], 1);
	PlayerTextDrawBackgroundColor(playerid, TuningBuy[ playerid ][ 7 ], 51);
	PlayerTextDrawFont(playerid, TuningBuy[ playerid ][ 7 ], 4);
	PlayerTextDrawSetProportional(playerid, TuningBuy[ playerid ][ 7 ], 1);
	PlayerTextDrawSetSelectable(playerid, TuningBuy[ playerid ][ 7 ], true);

	TuningBuy[ playerid ][ 8 ] = CreatePlayerTextDraw(playerid, 230.375000, 381.916473, "ld_beat:left");
	PlayerTextDrawLetterSize(playerid, TuningBuy[ playerid ][ 8 ], 0.449999, 1.600000);
	PlayerTextDrawTextSize(playerid, TuningBuy[ playerid ][ 8 ], 27.500000, 13.416657);
	PlayerTextDrawAlignment(playerid, TuningBuy[ playerid ][ 8 ], 2);
	PlayerTextDrawColor(playerid, TuningBuy[ playerid ][ 8 ], -1);
	PlayerTextDrawUseBox(playerid, TuningBuy[ playerid ][ 8 ], true);
	PlayerTextDrawBoxColor(playerid, TuningBuy[ playerid ][ 8 ], 255);
	PlayerTextDrawSetShadow(playerid, TuningBuy[ playerid ][ 8 ], 0);
	PlayerTextDrawSetOutline(playerid, TuningBuy[ playerid ][ 8 ], 1);
	PlayerTextDrawBackgroundColor(playerid, TuningBuy[ playerid ][ 8 ], 51);
	PlayerTextDrawFont(playerid, TuningBuy[ playerid ][ 8 ], 4);
	PlayerTextDrawSetProportional(playerid, TuningBuy[ playerid ][ 8 ], 1);
	PlayerTextDrawSetSelectable(playerid, TuningBuy[ playerid ][ 8 ], true);

	TuningBuy[ playerid ][ 9 ] = CreatePlayerTextDraw(playerid, 320.000000, 381.499938, "Comprar");
	PlayerTextDrawTextSize(playerid, TuningBuy[ playerid ][ 9 ], 23.000000, 13.000000 );
	PlayerTextDrawLetterSize(playerid, TuningBuy[ playerid ][ 9 ], 0.421249, 1.360832 );
	PlayerTextDrawAlignment(playerid, TuningBuy[ playerid ][ 9 ], 2);
	PlayerTextDrawColor(playerid, TuningBuy[ playerid ][ 9 ], -1);
	PlayerTextDrawSetShadow(playerid, TuningBuy[ playerid ][ 9 ], 0);
	PlayerTextDrawSetOutline(playerid, TuningBuy[ playerid ][ 9 ], 1);
	PlayerTextDrawBackgroundColor(playerid, TuningBuy[ playerid ][ 9 ], 51);
	PlayerTextDrawFont(playerid, TuningBuy[ playerid ][ 9 ], 2);
	PlayerTextDrawSetProportional(playerid, TuningBuy[ playerid ][ 9 ], 1);
	PlayerTextDrawSetSelectable(playerid, TuningBuy[ playerid ][ 9 ], true);

	TuningBuy[ playerid ][ 10 ] = CreatePlayerTextDraw(playerid, 200.000000, 396.416656, "-");
	PlayerTextDrawLetterSize(playerid, TuningBuy[ playerid ][ 10 ], 18.981874, 0.514999);
	PlayerTextDrawAlignment(playerid, TuningBuy[ playerid ][ 10 ], 1);
	PlayerTextDrawColor(playerid, TuningBuy[ playerid ][ 10 ], -10092289);
	PlayerTextDrawSetShadow(playerid, TuningBuy[ playerid ][ 10 ], 0);
	PlayerTextDrawSetOutline(playerid, TuningBuy[ playerid ][ 10 ], 1);
	PlayerTextDrawBackgroundColor(playerid, TuningBuy[ playerid ][ 10 ], 51);
	PlayerTextDrawFont(playerid, TuningBuy[ playerid ][ 10 ], 2);
	PlayerTextDrawSetProportional(playerid, TuningBuy[ playerid ][ 10 ], 1);

	TuningBuy[ playerid ][ 11 ] = CreatePlayerTextDraw(playerid, 225.000000, 401.916595, "Menu Equipar Veiculos");
	PlayerTextDrawLetterSize(playerid, TuningBuy[ playerid ][ 11 ], 0.258749, 0.987497);
	PlayerTextDrawAlignment(playerid, TuningBuy[ playerid ][ 11 ], 1);
	PlayerTextDrawColor(playerid, TuningBuy[ playerid ][ 11 ], -1);
	PlayerTextDrawSetShadow(playerid, TuningBuy[ playerid ][ 11 ], 0);
	PlayerTextDrawSetOutline(playerid, TuningBuy[ playerid ][ 11 ], 1);
	PlayerTextDrawBackgroundColor(playerid, TuningBuy[ playerid ][ 11 ], 51);
	PlayerTextDrawFont(playerid, TuningBuy[ playerid ][ 11 ], 2);
	PlayerTextDrawSetProportional(playerid, TuningBuy[ playerid ][ 11 ], 1);

	TuningBuy[ playerid ][ 12 ] = CreatePlayerTextDraw(playerid, 203.500000, 411.416839, "-");
	PlayerTextDrawLetterSize(playerid, TuningBuy[ playerid ][ 12 ], 18.981874, 0.514998);
	PlayerTextDrawAlignment(playerid, TuningBuy[ playerid ][ 12 ], 1);
	PlayerTextDrawColor(playerid, TuningBuy[ playerid ][ 12 ], -10092289);
	PlayerTextDrawSetShadow(playerid, TuningBuy[ playerid ][ 12 ], 0);
	PlayerTextDrawSetOutline(playerid, TuningBuy[ playerid ][ 12 ], 1);
	PlayerTextDrawBackgroundColor(playerid, TuningBuy[ playerid ][ 12 ], 51);
	PlayerTextDrawFont(playerid, TuningBuy[ playerid ][ 12 ], 2);
	PlayerTextDrawSetProportional(playerid, TuningBuy[ playerid ][ 12 ], 1);

	TuningBuy[ playerid ][ 13 ] = CreatePlayerTextDraw(playerid, 404.500000, 337.999877, "ld_beat:cross");
	PlayerTextDrawLetterSize(playerid, TuningBuy[ playerid ][ 13 ], 0.449999, 1.600000);
	PlayerTextDrawTextSize(playerid, TuningBuy[ playerid ][ 13 ], 17.500000, 8.749991);
	PlayerTextDrawAlignment(playerid, TuningBuy[ playerid ][ 13 ], 2);
	PlayerTextDrawColor(playerid, TuningBuy[ playerid ][ 13 ], -1);
	PlayerTextDrawUseBox(playerid, TuningBuy[ playerid ][ 13 ], true);
	PlayerTextDrawBoxColor(playerid, TuningBuy[ playerid ][ 13 ], 255);
	PlayerTextDrawSetShadow(playerid, TuningBuy[ playerid ][ 13 ], 0);
	PlayerTextDrawSetOutline(playerid, TuningBuy[ playerid ][ 13 ], 1);
	PlayerTextDrawBackgroundColor(playerid, TuningBuy[ playerid ][ 13 ], 51);
	PlayerTextDrawFont(playerid, TuningBuy[ playerid ][ 13 ], 4);
	PlayerTextDrawSetProportional(playerid, TuningBuy[ playerid ][ 13 ], 1);
	PlayerTextDrawSetSelectable(playerid, TuningBuy[ playerid ][ 13 ], true);
}
//==============================================================================
GetNearestTGarage( playerid ) {
    for(new i = 1; i < MAX_GARAGES; i++) {
        if( IsPlayerInRangeOfPoint( playerid, 10.0, tGarage[ i ][ Position ][ 0 ], tGarage[ i ][  Position ][ 1 ], tGarage[ i ][ Position ][ 2 ] ) ) { return i; }
	}
	return -1;
}
//==============================================================================
forward SaveTGarage( id );
public SaveTGarage( id ) {
	new iFile[ 40 ];
    format( iFile, sizeof( iFile ), TG_FILE, id );
	new INI:File = INI_Open( iFile );
	INI_WriteFloat( File, "Position1", tGarage[ id ][ Position ][ 0 ] );
	INI_WriteFloat( File, "Position2", tGarage[ id ][ Position ][ 1 ] );
	INI_WriteFloat( File, "Position3", tGarage[ id ][ Position ][ 2 ] );
	INI_Close( File );
	return 1;
}
//==============================================================================
forward LoadTGarage( id, name[], value[] );
public LoadTGarage( id, name[], value[] ) {
	INI_Float( "Position1", tGarage[ id ][ Position ][ 0 ] );
	INI_Float( "Position2", tGarage[ id ][ Position ][ 1 ] );
	INI_Float( "Position3", tGarage[ id ][ Position ][ 2 ] );
    return true;
}
//==============================================================================
forward SaveTuning( playerid, vehicleid, string[] );
public SaveTuning( playerid, vehicleid, string[] ) {
	new Color1, Color2;
    GetVehicleColor( vehicleid, Color1, Color2 );
	new file[ 40 ];
	format( file, sizeof( file ), T_FILE, string );
    if( fexist( file ) ) return 1;
	new INI:File = INI_Open( file );
	INI_SetTag( File, "Info" );
	INI_WriteInt( File, "VehID", GetVehicleModel( vehicleid ) );
	INI_WriteString( File, "Owner", GetName( playerid ) );
	INI_WriteBool( File, "Tuned", VehicleInfo[ vehicleid ][ vTuned ] );
    INI_WriteInt( File, "Spoiler", VehicleInfo[ vehicleid ][ vSpoiler ] );
	INI_WriteInt( File, "Hood", VehicleInfo[ vehicleid ][ vHood ] );
	INI_WriteInt( File, "Roof", VehicleInfo[ vehicleid ][ vRoof ] );
	INI_WriteInt( File, "Skirt", VehicleInfo[ vehicleid ][ vSkirt ] );
	INI_WriteInt( File, "Lamps", VehicleInfo[ vehicleid ][ vLamps ] );
	INI_WriteInt( File, "Nitro", VehicleInfo[ vehicleid ][ vNitro ] );
	INI_WriteInt( File, "Exhaust", VehicleInfo[ vehicleid ][ vExhaust ] );
	INI_WriteInt( File, "Wheels", VehicleInfo[ vehicleid ][ vWheels ] );
	INI_WriteInt( File, "Stereo", VehicleInfo[ vehicleid ][ vStereo ] );
	INI_WriteInt( File, "Hydraulics", VehicleInfo[ vehicleid ][ vHydraulics ] );
	INI_WriteInt( File, "FrontBumper", VehicleInfo[ vehicleid ][ vFrontBumper ] );
	INI_WriteInt( File, "RearBumper", VehicleInfo[ vehicleid ][ vRearBumper ] );
	INI_WriteInt( File, "RightVent", VehicleInfo[ vehicleid ][ vRightVent ] );
	INI_WriteInt( File, "LeftVent", VehicleInfo[ vehicleid ][ vLeftVent ] );
	INI_WriteInt( File, "PaintJob", VehicleInfo[ vehicleid ][ vPaintJob ] );
	INI_WriteInt( File, "Color1", Color1 );
	INI_WriteInt( File, "Color2", Color2 );
	INI_Close( File );
	return true;
}
//==============================================================================
forward LoadTuning( id, name[], value[] );
public LoadTuning( id, name[], value[] ) {
	INI_Int( "VehID", VehicleInfo[ id ][ vVehID ] );
	INI_String( "Owner", VehicleInfo[ id ][ vOwner ], MAX_PLAYER_NAME );
	INI_Bool( "Tuned", VehicleInfo[ id ][ vTuned ] );
	INI_Int( "Spoiler", VehicleInfo[ id ][ vSpoiler ] );
	INI_Int( "Hood", VehicleInfo[ id ][ vHood ] );
	INI_Int( "Roof", VehicleInfo[ id ][ vRoof ] );
	INI_Int( "Skirt", VehicleInfo[ id ][ vSkirt ] );
	INI_Int( "Lamps", VehicleInfo[ id ][ vLamps ] );
	INI_Int( "Nitro", VehicleInfo[ id ][ vNitro ] );
	INI_Int( "Exhaust", VehicleInfo[ id ][ vExhaust ] );
	INI_Int( "Wheels", VehicleInfo[ id ][ vWheels ] );
	INI_Int( "Stereo", VehicleInfo[ id ][ vStereo ] );
	INI_Int( "Hydraulics", VehicleInfo[ id ][ vHydraulics ] );
	INI_Int( "FrontBumper", VehicleInfo[ id ][ vFrontBumper ] );
	INI_Int( "RearBumper", VehicleInfo[ id ][ vRearBumper ] );
	INI_Int( "RightVent", VehicleInfo[ id ][ vRightVent ] );
	INI_Int( "LeftVent", VehicleInfo[ id ][ vLeftVent ] );
	INI_Int( "PaintJob", VehicleInfo[ id ][ vPaintJob ] );
	INI_Int( "Color1",  VehicleInfo[ id ][ vColor1 ] );
	INI_Int( "Color2",  VehicleInfo[ id ][ vColor2 ] );
	return true;
}
//==============================================================================
stock SetTune( vehicleid ) {
    if( VehicleInfo[ vehicleid ][ vTuned ] ) {
	    if( VehicleInfo[ vehicleid ][ vPaintJob ] != 255 ) ChangeVehiclePaintjob( vehicleid, VehicleInfo[ vehicleid ][ vPaintJob ] );
		if( VehicleInfo[ vehicleid ][ vSpoiler ] != -1 ) AddVehicleComponent( vehicleid, VehicleInfo[ vehicleid ][ vSpoiler ] );
		if( VehicleInfo[ vehicleid ][ vHood ] != -1 ) AddVehicleComponent( vehicleid, VehicleInfo[ vehicleid ][ vHood ] );
		if( VehicleInfo[ vehicleid ][ vRoof ] != -1 ) AddVehicleComponent( vehicleid, VehicleInfo[ vehicleid ][ vRoof ] );
		if( VehicleInfo[ vehicleid ][ vSkirt ] != -1 ) AddVehicleComponent( vehicleid, VehicleInfo[ vehicleid ][ vSkirt ] );
		if( VehicleInfo[ vehicleid ][ vLamps ] != -1 ) AddVehicleComponent( vehicleid, VehicleInfo[ vehicleid ][ vLamps ] );
		if( VehicleInfo[ vehicleid ][ vNitro ] != -1 ) AddVehicleComponent( vehicleid, VehicleInfo[ vehicleid ][ vNitro ] );
		if( VehicleInfo[ vehicleid ][ vExhaust ] != -1 ) AddVehicleComponent( vehicleid, VehicleInfo[ vehicleid ][ vWheels ] );
		if( VehicleInfo[ vehicleid ][ vWheels ] != -1 ) AddVehicleComponent( vehicleid, VehicleInfo[ vehicleid ][ vWheels ] );
		if( VehicleInfo[ vehicleid ][ vStereo ] != -1 ) AddVehicleComponent( vehicleid, VehicleInfo[ vehicleid ][ vStereo ] );
		if( VehicleInfo[ vehicleid ][ vHydraulics ] != -1 ) AddVehicleComponent( vehicleid, VehicleInfo[ vehicleid ][ vHydraulics ] );
		if( VehicleInfo[ vehicleid ][ vFrontBumper ] != -1 ) AddVehicleComponent( vehicleid, VehicleInfo[ vehicleid ][ vFrontBumper ] );
		if( VehicleInfo[ vehicleid ][ vRearBumper ] != -1 ) AddVehicleComponent( vehicleid, VehicleInfo[ vehicleid ][ vRearBumper ] );
		if( VehicleInfo[ vehicleid ][ vRightVent ] != -1 ) AddVehicleComponent( vehicleid, VehicleInfo[ vehicleid ][ vRightVent ] );
		if( VehicleInfo[ vehicleid ][ vLeftVent ] != -1 ) AddVehicleComponent( vehicleid, VehicleInfo[ vehicleid ][ vLeftVent ] );
    }
}
//==============================================================================
stock AddComponentToVehicle( vehicleid, componentid ) {
	if( VehicleInfo[ vehicleid ][ vTuned ] ) {
		if( GetVehicleComponentType( componentid ) == CARMODTYPE_SPOILER ) {
		    VehicleInfo[ vehicleid ][ vSpoiler ] = componentid;
			if( VehicleInfo[ vehicleid ][ vSpoiler ] != -1 ) AddVehicleComponent( vehicleid, componentid );
		}
	    else if( GetVehicleComponentType( componentid ) == CARMODTYPE_HOOD ) {
		    VehicleInfo[ vehicleid ][ vHood ] = componentid;
			if( VehicleInfo[ vehicleid ][ vHood ] != -1 ) AddVehicleComponent( vehicleid, componentid );
		}
	    else if( GetVehicleComponentType( componentid ) == CARMODTYPE_ROOF ) {
		    VehicleInfo[ vehicleid ][ vRoof ] = componentid;
			if( VehicleInfo[ vehicleid ][ vRoof ] != -1 ) AddVehicleComponent( vehicleid, componentid );
		}
	    else if( GetVehicleComponentType( componentid ) == CARMODTYPE_SIDESKIRT ) {
		    VehicleInfo[ vehicleid ][ vSkirt ] = componentid;
			if( VehicleInfo[ vehicleid ][ vSkirt ] != -1 ) AddVehicleComponent( vehicleid, componentid );
		}
	    else if( GetVehicleComponentType( componentid ) == CARMODTYPE_LAMPS ) {
		    VehicleInfo[ vehicleid ][ vLamps ] = componentid;
			if( VehicleInfo[ vehicleid ][ vLamps ] != -1 ) AddVehicleComponent( vehicleid, componentid );
		}
	    else if( GetVehicleComponentType( componentid ) == CARMODTYPE_NITRO ) {
		    VehicleInfo[ vehicleid ][ vNitro ] = componentid;
			if( VehicleInfo[ vehicleid ][ vNitro ] != -1 ) AddVehicleComponent( vehicleid, componentid );
		}
	    else if( GetVehicleComponentType( componentid ) == CARMODTYPE_EXHAUST ) {
		    VehicleInfo[ vehicleid ][ vExhaust ] = componentid;
			if( VehicleInfo[ vehicleid ][ vExhaust ] != -1 ) AddVehicleComponent( vehicleid, componentid );
		}
	    else if( GetVehicleComponentType( componentid ) == CARMODTYPE_WHEELS ) {
		    VehicleInfo[ vehicleid ][ vWheels ] = componentid;
			if( VehicleInfo[ vehicleid ][ vWheels ] != -1 ) AddVehicleComponent( vehicleid, componentid );
		}
	    else if( GetVehicleComponentType( componentid ) == CARMODTYPE_STEREO ) {
		    VehicleInfo[ vehicleid ][ vStereo ] = componentid;
			if( VehicleInfo[ vehicleid ][ vStereo ] != -1 ) AddVehicleComponent( vehicleid, componentid );
		}
	    else if( GetVehicleComponentType( componentid ) == CARMODTYPE_HYDRAULICS ) {
		    VehicleInfo[ vehicleid ][ vHydraulics ] = componentid;
			if( VehicleInfo[ vehicleid ][ vHydraulics ] != -1 ) AddVehicleComponent( vehicleid, componentid );
		}
	    else if( GetVehicleComponentType( componentid ) == CARMODTYPE_FRONT_BUMPER ) {
		    VehicleInfo[ vehicleid ][ vFrontBumper ] = componentid;
			if( VehicleInfo[ vehicleid ][ vFrontBumper ] != -1 ) AddVehicleComponent( vehicleid, componentid );
		}
	    else if( GetVehicleComponentType( componentid ) == CARMODTYPE_REAR_BUMPER ) {
		    VehicleInfo[ vehicleid ][ vRearBumper ] = componentid;
			if( VehicleInfo[ vehicleid ][ vRearBumper ] != -1 ) AddVehicleComponent( vehicleid, componentid );
		}
	    else if( GetVehicleComponentType( componentid ) == CARMODTYPE_VENT_RIGHT ) {
		    VehicleInfo[ vehicleid ][ vRightVent ] = componentid;
			if( VehicleInfo[ vehicleid ][ vRightVent ] != -1 ) AddVehicleComponent( vehicleid, componentid );
		}
	    else if( GetVehicleComponentType( componentid ) == CARMODTYPE_VENT_LEFT ) {
		    VehicleInfo[ vehicleid ][ vLeftVent ] = componentid;
			if( VehicleInfo[ vehicleid ][ vLeftVent ] != -1 ) AddVehicleComponent( vehicleid, componentid );
		}
	}
}
//==============================================================================
stock NextIDGarage(const len) {
    new id = (-1);
    for( new loop = ( 0 ), provjera = ( -1 ), Data_[ 64 ] = "\0"; loop != len; ++ loop ) {
       provjera = ( loop+1 );
       format( Data_, ( sizeof Data_ ), TG_FILE, provjera );
       if(!fexist(Data_)) {
          id = ( provjera );
          break; } }
  	return ( id );
}
//==============================================================================
stock IsComponentidCompatible( modelid, componentid ) {
    if( componentid == 1025 || componentid == 1073 || componentid == 1074 || componentid == 1075 || componentid == 1076 ||
		componentid == 1077 || componentid == 1078 || componentid == 1079 || componentid == 1080 || componentid == 1081 ||
        componentid == 1082 || componentid == 1083 || componentid == 1084 || componentid == 1085 || componentid == 1096 ||
        componentid == 1097 || componentid == 1098 || componentid == 1087 || componentid == 1086 ) {
        return componentid;
	}

    switch( modelid ) {
        case 400: if( componentid == 1020 || componentid == 1021 || componentid == 1019 || componentid == 1018 || componentid == 1013 || componentid == 1024 || componentid == 1008 || componentid == 1009 || componentid == 1010 ) return componentid;
        case 401: if( componentid == 1005 || componentid == 1004 || componentid == 1142 || componentid == 1143 || componentid == 1144 || componentid == 114 || componentid == 1020 || componentid == 1019 || componentid == 1013 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1006 || componentid == 1001 || componentid == 1003 || componentid == 1017 || componentid == 1007) return componentid;
        case 402: if( componentid == 1009 || componentid == 1009 || componentid == 1010 ) return componentid;
        case 404: if( componentid == 1020 || componentid == 1021 || componentid == 1019 || componentid == 1013 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1002 || componentid == 1016 || componentid == 1000 || componentid == 1017 || componentid == 1007) return componentid;
        case 405: if( componentid == 1020 || componentid == 1021 || componentid == 1019 || componentid == 1018 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1001 || componentid == 1014 || componentid == 1023 || componentid == 1000) return componentid;
        case 409: if( componentid == 1009 ) return componentid;
        case 410: if( componentid == 1019 || componentid == 1021 || componentid == 1020 || componentid == 1013 || componentid == 1024 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1001 || componentid == 1023 || componentid == 1003 || componentid == 1017 || componentid == 1007) return componentid;
        case 411: if( componentid == 1008 || componentid == 1009 || componentid == 1010) return componentid;
        case 412: if( componentid == 1008 || componentid == 1009 || componentid == 1010) return componentid;
        case 415: if( componentid == 1019 || componentid == 1018 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1001 || componentid == 1023 || componentid == 1003 || componentid == 1017 || componentid == 1007) return componentid;
        case 418: if( componentid == 1020 || componentid == 1021 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1006 || componentid == 1002 || componentid == 1016) return componentid;
        case 419: if( componentid == 1008 || componentid == 1009 || componentid == 1010) return componentid;
        case 420: if( componentid == 1005 || componentid == 1004 || componentid == 1021 || componentid == 1019 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1001 || componentid == 1003) return componentid;
        case 421: if( componentid == 1020 || componentid == 1021 || componentid == 1019 || componentid == 1018 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1014 || componentid == 1023 || componentid == 1016 || componentid == 1000) return componentid;
        case 422: if( componentid == 1020 || componentid == 1021 || componentid == 1019 || componentid == 1013 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1017 || componentid == 1007) return componentid;
        case 426: if( componentid == 1005 || componentid == 1004 || componentid == 1021 || componentid == 1019 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1006 || componentid == 1001 || componentid == 1003) return componentid;
        case 429: if( componentid == 1008 || componentid == 1009 || componentid == 1010) return componentid;
        case 436: if( componentid == 1020 || componentid == 1021 || componentid == 1022 || componentid == 1019 || componentid == 1013 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1006 || componentid == 1001 || componentid == 1003 || componentid == 1017 || componentid == 1007) return componentid;
        case 438: if( componentid == 1008 || componentid == 1009 || componentid == 1010) return componentid;
        case 439: if( componentid == 1003 || componentid == 1023 || componentid == 1001 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1017 || componentid == 1007 || componentid == 1142 || componentid == 1143 || componentid == 1144 || componentid == 1145 || componentid == 1013) return componentid;
        case 442: if( componentid == 1008 || componentid == 1009 || componentid == 1010) return componentid;
        case 445: if( componentid == 1008 || componentid == 1009 || componentid == 1010) return componentid;
        case 451: if( componentid == 1008 || componentid == 1009 || componentid == 1010) return componentid;
        case 458: if( componentid == 1008 || componentid == 1009 || componentid == 1010) return componentid;
        case 466: if( componentid == 1008 || componentid == 1009 || componentid == 1010) return componentid;
        case 467: if( componentid == 1008 || componentid == 1009 || componentid == 1010) return componentid;
        case 474: if( componentid == 1008 || componentid == 1009 || componentid == 1010) return componentid;
        case 475: if( componentid == 1008 || componentid == 1009 || componentid == 1010) return componentid;
        case 477: if( componentid == 1020 || componentid == 1021 || componentid == 1019 || componentid == 1018 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1006 || componentid == 1017 || componentid == 1007) return componentid;
        case 478: if( componentid == 1005 || componentid == 1004 || componentid == 1012 || componentid == 1020 || componentid == 1021 || componentid == 1022 || componentid == 1013 || componentid == 1024 || componentid == 1008 || componentid == 1009 || componentid == 1010) return componentid;
        case 479: if( componentid == 1008 || componentid == 1009 || componentid == 1010) return componentid;
        case 480: if( componentid == 1008 || componentid == 1009 || componentid == 1010) return componentid;
        case 489: if( componentid == 1005 || componentid == 1004 || componentid == 1020 || componentid == 1019 || componentid == 1018 || componentid == 1013 || componentid == 1024 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1006 || componentid == 1002 || componentid == 1016 || componentid == 1000) return componentid;
        case 491: if( componentid == 1142 || componentid == 1143 || componentid == 1144 || componentid == 1145 || componentid == 1020 || componentid == 1021 || componentid == 1019 || componentid == 1018 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1014 || componentid == 1023 || componentid == 1003 || componentid == 1017 || componentid == 1007) return componentid;
        case 492: if( componentid == 1005 || componentid == 1004 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1006 || componentid == 1016 || componentid == 1000) return componentid;
        case 496: if( componentid == 1006 || componentid == 1017 || componentid == 1007 || componentid == 1011 || componentid == 1019 || componentid == 1023 || componentid == 1001 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1003 || componentid == 1002 || componentid == 1142 || componentid == 1143 || componentid == 1020) return componentid;
        case 500: if( componentid == 1020 || componentid == 1021 || componentid == 1019 || componentid == 1013 || componentid == 1024 || componentid == 1008 || componentid == 1009 || componentid == 1010) return componentid;
        case 506: if( componentid == 1009) return componentid;
        case 507: if( componentid == 1008 || componentid == 1009 || componentid == 1010) return componentid;
        case 516: if( componentid == 1004 || componentid == 1020 || componentid == 1021 || componentid == 1019 || componentid == 1018 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1002 || componentid == 1015 || componentid == 1016 || componentid == 1000 || componentid == 1017 || componentid == 1007) return componentid;
        case 517: if( componentid == 1142 || componentid == 1143 || componentid == 1144 || componentid == 1145 || componentid == 1020 || componentid == 1019 || componentid == 1018 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1002 || componentid == 1023 || componentid == 1016 || componentid == 1003 || componentid == 1017 || componentid == 1007) return componentid;
        case 518: if( componentid == 1005 || componentid == 1142 || componentid == 1143 || componentid == 1144 || componentid == 1145 || componentid == 1020 || componentid == 1018 || componentid == 1013 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1006 || componentid == 1001 || componentid == 1023 || componentid == 1003 || componentid == 1017 || componentid == 1007) return componentid;
        case 526: if( componentid == 1008 || componentid == 1009 || componentid == 1010) return componentid;
        case 527: if( componentid == 1021 || componentid == 1020 || componentid == 1018 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1001 || componentid == 1014 || componentid == 1015 || componentid == 1017 || componentid == 1007) return componentid;
        case 529: if( componentid == 1012 || componentid == 1011 || componentid == 1020 || componentid == 1019 || componentid == 1018 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1006 || componentid == 1001 || componentid == 1023 || componentid == 1003 || componentid == 1017 || componentid == 1007) return componentid;
        case 533: if( componentid == 1008 || componentid == 1009 || componentid == 1010) return componentid;
        case 534: if( componentid == 1126 || componentid == 1127 || componentid == 1179 || componentid == 1185 || componentid == 1100 || componentid == 1123 || componentid == 1125 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1180 || componentid == 1178 || componentid == 1101 || componentid == 1122 || componentid == 1124 || componentid == 1106) return componentid;
        case 535: if( componentid == 1109 || componentid == 1110 || componentid == 1113 || componentid == 1114 || componentid == 1115 || componentid == 1116 || componentid == 1117 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1120 || componentid == 1118 || componentid == 1121 || componentid == 1119) return componentid;
        case 536: if( componentid == 1104 || componentid == 1105 || componentid == 1182 || componentid == 1181 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1184 || componentid == 1183 || componentid == 1128 || componentid == 1103 || componentid == 1107 || componentid == 1108) return componentid;
        case 540: if( componentid == 1004 || componentid == 1142 || componentid == 1143 || componentid == 1144 || componentid == 1145 || componentid == 1020 || componentid == 1019 || componentid == 1018 || componentid == 1024 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1006 || componentid == 1001 || componentid == 1023 || componentid == 1017 || componentid == 1007) return componentid;
        case 541: if( componentid == 1008 || componentid == 1009 || componentid == 1010) return componentid;
        case 542: if( componentid == 1144 || componentid == 1145 || componentid == 1020 || componentid == 1021 || componentid == 1019 || componentid == 1018 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1014 || componentid == 1015) return componentid;
        case 545: if( componentid == 1008 || componentid == 1009 || componentid == 1010) return componentid;
        case 546: if( componentid == 1004 || componentid == 1142 || componentid == 1143 || componentid == 1144 || componentid == 1145 || componentid == 1019 || componentid == 1018 || componentid == 1024 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1006 || componentid == 1002 || componentid == 1001 || componentid == 1023 || componentid == 1017 || componentid == 1007) return componentid;
        case 547: if( componentid == 1142 || componentid == 1143 || componentid == 1020 || componentid == 1021 || componentid == 1019 || componentid == 1018 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1016 || componentid == 1003 || componentid == 1000) return componentid;
        case 549: if( componentid == 1012 || componentid == 1011 || componentid == 1142 || componentid == 1143 || componentid == 1144 || componentid == 1145 || componentid == 1020 || componentid == 1019 || componentid == 1018 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1001 || componentid == 1023 || componentid == 1003 || componentid == 1017 || componentid == 1007) return componentid;
        case 550: if( componentid == 1005 || componentid == 1004 || componentid == 1142 || componentid == 1143 || componentid == 1144 || componentid == 1145 || componentid == 1020 || componentid == 1019 || componentid == 1018 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1006 || componentid == 1001 || componentid == 1023 || componentid == 1003) return componentid;
        case 551: if( componentid == 1005 || componentid == 1020 || componentid == 1021 || componentid == 1019 || componentid == 1018 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1006 || componentid == 1002 || componentid == 1023 || componentid == 1016 || componentid == 1003) return componentid;
        case 555: if( componentid == 1008 || componentid == 1009 || componentid == 1010) return componentid;
        case 558: if( componentid == 1092 || componentid == 1089 || componentid == 1166 || componentid == 1165 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1168 || componentid == 1167 || componentid == 1088 || componentid == 1091 || componentid == 1164 || componentid == 1163 || componentid == 1094 || componentid == 1090 || componentid == 1095 || componentid == 1093) return componentid;
        case 559: if( componentid == 1065 || componentid == 1066 || componentid == 1160 || componentid == 1173 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1159 || componentid == 1161 || componentid == 1162 || componentid == 1158 || componentid == 1067 || componentid == 1068 || componentid == 1071 || componentid == 1069 || componentid == 1072 || componentid == 1070 || componentid == 1009) return componentid;
        case 560: if( componentid == 1028 || componentid == 1029 || componentid == 1169 || componentid == 1170 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1141 || componentid == 1140 || componentid == 1032 || componentid == 1033 || componentid == 1138 || componentid == 1139 || componentid == 1027 || componentid == 1026 || componentid == 1030 || componentid == 1031) return componentid;
        case 561: if( componentid == 1064 || componentid == 1059 || componentid == 1155 || componentid == 1157 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1154 || componentid == 1156 || componentid == 1055 || componentid == 1061 || componentid == 1058 || componentid == 1060 || componentid == 1062 || componentid == 1056 || componentid == 1063 || componentid == 1057) return componentid;
        case 562: if( componentid == 1034 || componentid == 1037 || componentid == 1171 || componentid == 1172 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1149 || componentid == 1148 || componentid == 1038 || componentid == 1035 || componentid == 1147 || componentid == 1146 || componentid == 1040 || componentid == 1036 || componentid == 1041 || componentid == 1039) return componentid;
        case 565: if( componentid == 1046 || componentid == 1045 || componentid == 1153 || componentid == 1152 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1150 || componentid == 1151 || componentid == 1054 || componentid == 1053 || componentid == 1049 || componentid == 1050 || componentid == 1051 || componentid == 1047 || componentid == 1052 || componentid == 1048) return componentid;
        case 566: if( componentid == 1008 || componentid == 1009 || componentid == 1010) return componentid;
        case 567: if( componentid == 1129 || componentid == 1132 || componentid == 1189 || componentid == 1188 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1187 || componentid == 1186 || componentid == 1130 || componentid == 1131 || componentid == 1102 || componentid == 1133) return componentid;
        case 575: if( componentid == 1044 || componentid == 1043 || componentid == 1174 || componentid == 1175 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1176 || componentid == 1177 || componentid == 1099 || componentid == 1042) return componentid;
        case 576: if( componentid == 1136 || componentid == 1135 || componentid == 1191 || componentid == 1190 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1192 || componentid == 1193 || componentid == 1137 || componentid == 1134) return componentid;
        case 579: if( componentid == 1008 || componentid == 1009 || componentid == 1010) return componentid;
        case 580: if( componentid == 1020 || componentid == 1018 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1006 || componentid == 1001 || componentid == 1023 || componentid == 1017 || componentid == 1007) return componentid;
        case 585: if( componentid == 1142 || componentid == 1143 || componentid == 1144 || componentid == 1145 || componentid == 1020 || componentid == 1019 || componentid == 1018 || componentid == 1013 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1006 || componentid == 1001 || componentid == 1023 || componentid == 1003 || componentid == 1017 || componentid == 1007) return componentid;
        case 587: if( componentid == 1008 || componentid == 1009 || componentid == 1010) return componentid;
        case 589: if( componentid == 1005 || componentid == 1004 || componentid == 1144 || componentid == 1145 || componentid == 1020 || componentid == 1018 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1024 || componentid == 1013 || componentid == 1006 || componentid == 1016 || componentid == 1000 || componentid == 1017 || componentid == 1007) return componentid;
        case 600: if( componentid == 1005 || componentid == 1004 || componentid == 1020 || componentid == 1022 || componentid == 1018 || componentid == 1013 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1006 || componentid == 1017 || componentid == 1007) return componentid;
        case 602: if( componentid == 1008 || componentid == 1009 || componentid == 1010) return componentid;
        case 603: if( componentid == 1144 || componentid == 1145 || componentid == 1142 || componentid == 1143 || componentid == 1020 || componentid == 1019 || componentid == 1018 || componentid == 1024 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1006 || componentid == 1001 || componentid == 1023 || componentid == 1017 || componentid == 1007) return componentid;
    }
    return false;
}
//==============================================================================
stock GetVehicleCameraPos( vehicleid, &Float:x, &Float:y, &Float:z, Float:xoff=0.0, Float:yoff=0.0, Float:zoff=0.0 ) { // credits Pasha
    new Float:rot;
    GetVehicleZAngle( vehicleid, rot );
    rot = 360 - rot;
    GetVehiclePos( vehicleid, x, y, z );
    x = floatsin( rot, degrees ) * yoff + floatcos( rot, degrees ) * xoff + x;
    y = floatcos( rot, degrees ) * yoff - floatsin( rot, degrees ) * xoff + y;
    z = zoff + z;
}
//==============================================================================
stock TuningTDControl( playerid, bool:show ) {
	if( show == true ) {
        for( new i = 0; i < 14; i ++ ) {
			PlayerTextDrawShow( playerid, TuningBuy[ playerid ][ i ] );
		}

	}
	else if( show == false ) {
		for( new i = 0; i < 14; i ++ ) {
			PlayerTextDrawHide( playerid, TuningBuy[ playerid ][ i ]);
		}
	}
}
//==============================================================================
ResetTuningInfo( playerid ) {
	TPInfo[ playerid ][ tID ] = -1;
	TPInfo[ playerid ][ tType ] = -1;
	TPInfo[ playerid ][ tPaintjob ] = false;
	TPInfo[ playerid ][ PJColor ] = -1;
	TPInfo[ playerid ][ PJColor ] = -1;
}
//==============================================================================
stock ResetTuning( vehid ) {
	if( VehicleInfo[ vehid ][ vTuned ] ) {
	    VehicleInfo[ vehid ][ vTuned ] = false;
		VehicleInfo[ vehid ][ vSpoiler ] = -1;
		VehicleInfo[ vehid ][ vHood ] = -1;
		VehicleInfo[ vehid ][ vRoof ] = -1;
		VehicleInfo[ vehid ][ vSkirt ] = -1;
		VehicleInfo[ vehid ][ vLamps ] = -1;
		VehicleInfo[ vehid ][ vNitro ] = -1;
		VehicleInfo[ vehid ][ vExhaust ] = -1;
		VehicleInfo[ vehid ][ vWheels ] = -1;
		VehicleInfo[ vehid ][ vStereo ] = -1;
		VehicleInfo[ vehid ][ vHydraulics ] = -1;
		VehicleInfo[ vehid ][ vFrontBumper ] = -1;
		VehicleInfo[ vehid ][ vRearBumper ] = -1;
		VehicleInfo[ vehid ][ vRightVent ] = -1;
		VehicleInfo[ vehid ][ vLeftVent ] = -1;
		VehicleInfo[ vehid ][ vPaintJob ] = 255;
	}
}
//==============================================================================
stock GetName( id ) {
	new ime[MAX_PLAYER_NAME];
 	GetPlayerName(id, ime, sizeof ime);
	return ime;
}
//==============================================================================
public OnFilterScriptInit( ) {
	print("\n--------------------------------------");
	print(" Advanced Tuning System by Dimi");
	print("--------------------------------------\n");

	for(new i = 1; i < MAX_GARAGES; i++) {
	    new file[ 50 ];
	    format( file, sizeof( file ), TG_FILE, i );
	    if( fexist( file ) ) {
	    	INI_ParseFile( file, "LoadTGarage", .bExtra = true, .extra = i );
	        tGarage[ i ][ tg3D ] = Create3DTextLabel( "{FFFFFF}Para Tunar Seu Veiculo use\n{ff6600}[ /tunar ]", -1, tGarage[ i ][ Position ][ 0 ], tGarage[ i ][ Position ][ 1 ], tGarage[ i ][ Position ][ 2 ], 15.0, 0, 1 );
			tGarage[ i ][ tgPickup ] = CreatePickup( 1239, 1, tGarage[ i ][ Position ][ 0 ], tGarage[ i ][ Position ][ 1 ], tGarage[ i ][ Position ][ 2 ], -1 );
	    }
	}

	for( new i = 0; i < MAX_VEHICLES; i++ ) {
	    VehicleInfo[ i ][ vTuned ] = false;
		VehicleInfo[ i ][ vSpoiler ] = -1;
		VehicleInfo[ i ][ vHood ] = -1;
		VehicleInfo[ i ][ vRoof ] = -1;
		VehicleInfo[ i ][ vSkirt ] = -1;
		VehicleInfo[ i ][ vLamps ] = -1;
		VehicleInfo[ i ][ vNitro ] = -1;
		VehicleInfo[ i ][ vExhaust ] = -1;
		VehicleInfo[ i ][ vWheels ] = -1;
		VehicleInfo[ i ][ vStereo ] = -1;
		VehicleInfo[ i ][ vHydraulics ] = -1;
		VehicleInfo[ i ][ vFrontBumper ] = -1;
		VehicleInfo[ i ][ vRearBumper ] = -1;
		VehicleInfo[ i ][ vRightVent ] = -1;
		VehicleInfo[ i ][ vLeftVent ] = -1;
		VehicleInfo[ i ][ vPaintJob ] = 255;
	}
	return 1;
}
//==============================================================================
public OnFilterScriptExit( ) {
	return 1;
}
//==============================================================================
public OnPlayerConnect( playerid ) {
    CreatePlayerTextDraws( playerid );
    ResetTuningInfo( playerid );
	return 1;
}
//==============================================================================
public OnPlayerDisconnect( playerid, reason ) {
	return 1;
}
//==============================================================================
public OnDialogResponse( playerid, dialogid, response, listitem, inputtext[] ) {
	switch( dialogid ) {
	    case dialog_TUNING: {
	        if( response ) {
	            if( !IsPlayerInAnyVehicle( playerid ) ) return SendErrorMessage( playerid, "Vocк Precisa Estar Em Um Veiculo." );
	            if( GetPlayerState( playerid ) != PLAYER_STATE_DRIVER ) return SendErrorMessage( playerid, "Vocк Precisa Ser O Motorista." );
				new vehicleid = GetPlayerVehicleID( playerid ), Float:Pos[ 6 ];

	            TPInfo[ playerid ][ tID ] = -1;

				switch( listitem ) {
	                case 0: {
						
						for( new i = 0; i < NUMBER_TYPE_PAINTJOB; i++ ) {
			                if( pjInfo[ i ][ vehID ] == GetVehicleModel( vehicleid ) ) {
				            	TPInfo[ playerid ][ tID ] = i;
								break;
							}
			           	}
						if( TPInfo[ playerid ][ tID ] == -1 ) return SendErrorMessage( playerid, "Nenhum Paintjob Compativel Com Esse Veiculo." );
						
						new pid = TPInfo[ playerid ][ tID ];
						TPInfo[ playerid ][ tPaintjob ] = true;
						
						GetVehicleColor( vehicleid, TPInfo[ playerid ][ PJColor ][ 0 ], TPInfo[ playerid ][ PJColor ][ 1 ] );
						
						TogglePlayerControllable( playerid, false );
	                    TuningTDControl( playerid, true );

                        ChangeVehicleColor( vehicleid, 1, 1 );
                        ChangeVehiclePaintjob( vehicleid, pjInfo[ pid ][ pNumber ] );

	                    format( globalstring, sizeof( globalstring ), "%s", pjInfo[ pid ][ pName ] );
						PlayerTextDrawSetString( playerid, TuningBuy[ playerid ][ 3 ], globalstring );
						format( globalstring, sizeof( globalstring ), "price: ~w~%d$", pjInfo[ pid ][ pPrice ] );
						PlayerTextDrawSetString( playerid, TuningBuy[ playerid ][ 4 ], globalstring );
						
						GetVehicleCameraPos( vehicleid, Pos[ 0 ], Pos[ 1 ], Pos[ 2 ], 4, 0, 5 );
						SetPlayerCameraPos( playerid, Pos[ 0 ], Pos[ 1 ], Pos[ 2 ] );

						GetVehiclePos( vehicleid, Pos[ 0 ],Pos[ 1 ],Pos[ 2 ] );
						SetPlayerCameraLookAt( playerid, Pos[ 0 ],Pos[ 1 ],Pos[ 2 ] );
						
						SelectTextDraw( playerid, COLOR_ORANGE );
					}
	                case 1: {
						SPD( playerid, dialog_TUNING_2, DSI, D_TOP, "Coloque Cor1 ID E Cor2 ID.\nExemplo: 0 1", D_OK, D_CANCEL );
	                }
	                case 2: {

	                    for( new i = 0; i < MAX_COMPONENTS; i++ ) {
			                if( cInfo[ i ][ cType ] == CARMODTYPE_EXHAUST ) {
			                    if( cInfo[ i ][ cID ] == IsComponentidCompatible( GetVehicleModel( vehicleid ), cInfo[ i ][ cID ] ) ) {
				                    TPInfo[ playerid ][ tID ] = i;
									break;
								}
			                }
						}
	                    if( TPInfo[ playerid ][ tID ] == -1 ) return SendErrorMessage( playerid, "Nenhum dos componentes compatнveis espйcies selecionadas para o seu modelo de veнculo." );

						new cid = TPInfo[ playerid ][ tID ];
						TPInfo[ playerid ][ tType ] = CARMODTYPE_EXHAUST;
						TPInfo[ playerid ][ tPaintjob ] = false;

	                    TogglePlayerControllable( playerid, false );
	                    TuningTDControl( playerid, true );

	                    format( globalstring, sizeof( globalstring ), "%s", cInfo[ cid ][ cName ] );
						PlayerTextDrawSetString( playerid, TuningBuy[ playerid ][ 3 ], globalstring );
						format( globalstring, sizeof( globalstring ), "Preco: ~w~%d$", cInfo[ cid ][ cPrice ] );
						PlayerTextDrawSetString( playerid, TuningBuy[ playerid ][ 4 ], globalstring );

                        AddVehicleComponent( vehicleid, cInfo[ cid ][ cID ] );

						GetVehicleCameraPos( vehicleid, Pos[ 0 ], Pos[ 1 ], Pos[ 2 ], -2, -5, 0 );
						SetPlayerCameraPos( playerid, Pos[ 0 ], Pos[ 1 ], Pos[ 2 ] );

						GetVehiclePos( vehicleid, Pos[ 0 ],Pos[ 1 ],Pos[ 2 ] );
						SetPlayerCameraLookAt( playerid, Pos[ 0 ],Pos[ 1 ],Pos[ 2 ] );

						SelectTextDraw( playerid, COLOR_ORANGE );
	                }
	                case 3: {

	                    for( new i = 0; i < MAX_COMPONENTS; i++ ) {
			                if( cInfo[ i ][ cType ] == CARMODTYPE_FRONT_BUMPER ) {
			                    if( cInfo[ i ][ cID ] == IsComponentidCompatible( GetVehicleModel( vehicleid ), cInfo[ i ][ cID ] ) ) {
				                    TPInfo[ playerid ][ tID ] = i;
									break;
								}
			                }
						}
	                    if( TPInfo[ playerid ][ tID ] == -1 ) return SendErrorMessage( playerid, "Nenhum dos componentes compatнveis espйcies selecionadas para o seu modelo de veнculo." );

						new cid = TPInfo[ playerid ][ tID ];
						TPInfo[ playerid ][ tType ] = CARMODTYPE_FRONT_BUMPER;
						TPInfo[ playerid ][ tPaintjob ] = false;

	                    TogglePlayerControllable( playerid, false );
	                    TuningTDControl( playerid, true );

	                    format( globalstring, sizeof( globalstring ), "%s", cInfo[ cid ][ cName ] );
						PlayerTextDrawSetString( playerid, TuningBuy[ playerid ][ 3 ], globalstring );
						format( globalstring, sizeof( globalstring ), "Preco: ~w~%d$", cInfo[ cid ][ cPrice ] );
						PlayerTextDrawSetString( playerid, TuningBuy[ playerid ][ 4 ], globalstring );

                        AddVehicleComponent( vehicleid, cInfo[ cid ][ cID ] );

						GetVehicleCameraPos( vehicleid, Pos[ 0 ], Pos[ 1 ], Pos[ 2 ], 0, 6, 0.5 ); // done
						SetPlayerCameraPos( playerid, Pos[ 0 ], Pos[ 1 ], Pos[ 2 ] );

						GetVehiclePos( vehicleid, Pos[ 0 ],Pos[ 1 ],Pos[ 2 ] );
						SetPlayerCameraLookAt( playerid, Pos[ 0 ],Pos[ 1 ],Pos[ 2 ] );

						SelectTextDraw( playerid, COLOR_ORANGE );
	                }
	                case 4: { 

	                    for( new i = 0; i < MAX_COMPONENTS; i++ ) {
			                if( cInfo[ i ][ cType ] == CARMODTYPE_REAR_BUMPER ) {
			                    if( cInfo[ i ][ cID ] == IsComponentidCompatible( GetVehicleModel( vehicleid ), cInfo[ i ][ cID ] ) ) {
				                    TPInfo[ playerid ][ tID ] = i;
									break;
								}
			                }
						}
	                    if( TPInfo[ playerid ][ tID ] == -1 ) return SendErrorMessage( playerid, "Nenhum dos componentes compatнveis espйcies selecionadas para o seu modelo de veнculo." );

						new cid = TPInfo[ playerid ][ tID ];
						TPInfo[ playerid ][ tType ] = CARMODTYPE_REAR_BUMPER;
						TPInfo[ playerid ][ tPaintjob ] = false;

	                    TogglePlayerControllable( playerid, false );
	                    TuningTDControl( playerid, true );

	                    format( globalstring, sizeof( globalstring ), "%s", cInfo[ cid ][ cName ] );
						PlayerTextDrawSetString( playerid, TuningBuy[ playerid ][ 3 ], globalstring );
						format( globalstring, sizeof( globalstring ), "Preco: ~w~%d$", cInfo[ cid ][ cPrice ] );
						PlayerTextDrawSetString( playerid, TuningBuy[ playerid ][ 4 ], globalstring );

                        AddVehicleComponent( vehicleid, cInfo[ cid ][ cID ] );

						GetVehicleCameraPos( vehicleid, Pos[ 0 ], Pos[ 1 ], Pos[ 2 ], 0, -6, 0.5 ); // done
						SetPlayerCameraPos( playerid, Pos[ 0 ], Pos[ 1 ], Pos[ 2 ] );

						GetVehiclePos( vehicleid, Pos[ 0 ],Pos[ 1 ],Pos[ 2 ] );
						SetPlayerCameraLookAt( playerid, Pos[ 0 ],Pos[ 1 ],Pos[ 2 ] );

						SelectTextDraw( playerid, COLOR_ORANGE );
	                }
	                case 5: {

	                    for( new i = 0; i < MAX_COMPONENTS; i++ ) {
			                if( cInfo[ i ][ cType ] == CARMODTYPE_ROOF ) {
			                    if( cInfo[ i ][ cID ] == IsComponentidCompatible( GetVehicleModel( vehicleid ), cInfo[ i ][ cID ] ) ) {
				                    TPInfo[ playerid ][ tID ] = i;
									break;
								}
			                }
						}
	                    if( TPInfo[ playerid ][ tID ] == -1 ) return SendErrorMessage( playerid, "Nenhum dos componentes compatнveis espйcies selecionadas para o seu modelo de veнculo." );

						new cid = TPInfo[ playerid ][ tID ];
						TPInfo[ playerid ][ tType ] = CARMODTYPE_ROOF;
						TPInfo[ playerid ][ tPaintjob ] = false;

	                    TogglePlayerControllable( playerid, false );
	                    TuningTDControl( playerid, true );

	                    format( globalstring, sizeof( globalstring ), "%s", cInfo[ cid ][ cName ] );
						PlayerTextDrawSetString( playerid, TuningBuy[ playerid ][ 3 ], globalstring );
						format( globalstring, sizeof( globalstring ), "Preco: ~w~%d$", cInfo[ cid ][ cPrice ] );
						PlayerTextDrawSetString( playerid, TuningBuy[ playerid ][ 4 ], globalstring );

                        AddVehicleComponent( vehicleid, cInfo[ cid ][ cID ] );

						GetVehicleCameraPos( vehicleid, Pos[ 0 ], Pos[ 1 ], Pos[ 2 ], 0, 6, 2 ); // done
						SetPlayerCameraPos( playerid, Pos[ 0 ], Pos[ 1 ], Pos[ 2 ] );

						GetVehiclePos( vehicleid, Pos[ 0 ],Pos[ 1 ],Pos[ 2 ] );
						SetPlayerCameraLookAt( playerid, Pos[ 0 ],Pos[ 1 ],Pos[ 2 ] );

						SelectTextDraw( playerid, COLOR_ORANGE );
	                }
	                case 6: {
	                    
	                    for( new i = 0; i < MAX_COMPONENTS; i++ ) {
			                if( cInfo[ i ][ cType ] == CARMODTYPE_SPOILER ) {
			                    if( cInfo[ i ][ cID ] == IsComponentidCompatible( GetVehicleModel( vehicleid ), cInfo[ i ][ cID ] ) ) {
				                    TPInfo[ playerid ][ tID ] = i;
									break;
								}
			                }
						}
	                    if( TPInfo[ playerid ][ tID ] == -1 ) return SendErrorMessage( playerid, "Nenhum dos componentes compatнveis espйcies selecionadas para o seu modelo de veнculo." );

						new cid = TPInfo[ playerid ][ tID ];
						TPInfo[ playerid ][ tType ] = CARMODTYPE_SPOILER;
						TPInfo[ playerid ][ tPaintjob ] = false;
	                
	                    TogglePlayerControllable( playerid, false );
	                    TuningTDControl( playerid, true );
	                
	                    format( globalstring, sizeof( globalstring ), "%s", cInfo[ cid ][ cName ] );
						PlayerTextDrawSetString( playerid, TuningBuy[ playerid ][ 3 ], globalstring );
						format( globalstring, sizeof( globalstring ), "Preco: ~w~%d$", cInfo[ cid ][ cPrice ] );
						PlayerTextDrawSetString( playerid, TuningBuy[ playerid ][ 4 ], globalstring );

                        AddVehicleComponent( vehicleid, cInfo[ cid ][ cID ] );
						
						GetVehicleCameraPos( vehicleid, Pos[ 0 ], Pos[ 1 ], Pos[ 2 ], 0, -6, 2 ); // done
						SetPlayerCameraPos( playerid, Pos[ 0 ], Pos[ 1 ], Pos[ 2 ] );
						
						GetVehiclePos( vehicleid, Pos[ 0 ],Pos[ 1 ],Pos[ 2 ] );
						SetPlayerCameraLookAt( playerid, Pos[ 0 ],Pos[ 1 ],Pos[ 2 ] );
						
						SelectTextDraw( playerid, COLOR_ORANGE );
	                }
	                case 7: {

	                    for( new i = 0; i < MAX_COMPONENTS; i++ ) {
			                if( cInfo[ i ][ cType ] == CARMODTYPE_SIDESKIRT ) {
			                    if( cInfo[ i ][ cID ] == IsComponentidCompatible( GetVehicleModel( vehicleid ), cInfo[ i ][ cID ] ) ) {
				                    TPInfo[ playerid ][ tID ] = i;
									break;
								}
			                }
						}
	                    if( TPInfo[ playerid ][ tID ] == -1 ) return SendErrorMessage( playerid, "Nenhum dos componentes compatнveis espйcies selecionadas para o seu modelo de veнculo." );

						new cid = TPInfo[ playerid ][ tID ];
						TPInfo[ playerid ][ tType ] = CARMODTYPE_SIDESKIRT;
						TPInfo[ playerid ][ tPaintjob ] = false;

	                    TogglePlayerControllable( playerid, false );
	                    TuningTDControl( playerid, true );

	                    format( globalstring, sizeof( globalstring ), "%s", cInfo[ cid ][ cName ] );
						PlayerTextDrawSetString( playerid, TuningBuy[ playerid ][ 3 ], globalstring );
						format( globalstring, sizeof( globalstring ), "Preco: ~w~%d$", cInfo[ cid ][ cPrice ] );
						PlayerTextDrawSetString( playerid, TuningBuy[ playerid ][ 4 ], globalstring );

                        AddVehicleComponent( vehicleid, cInfo[ cid ][ cID ] );

						GetVehicleCameraPos( vehicleid, Pos[ 0 ], Pos[ 1 ], Pos[ 2 ], 4, 0, 0.5 );
						SetPlayerCameraPos( playerid, Pos[ 0 ], Pos[ 1 ], Pos[ 2 ] );

						GetVehiclePos( vehicleid, Pos[ 0 ],Pos[ 1 ],Pos[ 2 ] );
						SetPlayerCameraLookAt( playerid, Pos[ 0 ],Pos[ 1 ],Pos[ 2 ] );

						SelectTextDraw( playerid, COLOR_ORANGE );
	                }
	                case 8: {

	                    for( new i = 0; i < MAX_COMPONENTS; i++ ) {
			                if( cInfo[ i ][ cType ] == CARMODTYPE_WHEELS ) {
			                    if( cInfo[ i ][ cID ] == IsComponentidCompatible( GetVehicleModel( vehicleid ), cInfo[ i ][ cID ] ) ) {
				                    TPInfo[ playerid ][ tID ] = i;
									break;
								}
			                }
						}
	                    if( TPInfo[ playerid ][ tID ] == -1 ) return SendErrorMessage( playerid, "Nenhum dos componentes compatнveis espйcies selecionadas para o seu modelo de veнculo." );

						new cid = TPInfo[ playerid ][ tID ];
						TPInfo[ playerid ][ tType ] = CARMODTYPE_WHEELS;
						TPInfo[ playerid ][ tPaintjob ] = false;

	                    TogglePlayerControllable( playerid, false );
	                    TuningTDControl( playerid, true );

	                    format( globalstring, sizeof( globalstring ), "%s", cInfo[ cid ][ cName ] );
						PlayerTextDrawSetString( playerid, TuningBuy[ playerid ][ 3 ], globalstring );
						format( globalstring, sizeof( globalstring ), "Preco: ~w~%d$", cInfo[ cid ][ cPrice ] );
						PlayerTextDrawSetString( playerid, TuningBuy[ playerid ][ 4 ], globalstring );

                        AddVehicleComponent( vehicleid, cInfo[ cid ][ cID ] );

						GetVehicleCameraPos( vehicleid, Pos[ 0 ], Pos[ 1 ], Pos[ 2 ], 4, 0, 0.5 ); // done
						SetPlayerCameraPos( playerid, Pos[ 0 ], Pos[ 1 ], Pos[ 2 ] );

						GetVehiclePos( vehicleid, Pos[ 0 ],Pos[ 1 ],Pos[ 2 ] );
						SetPlayerCameraLookAt( playerid, Pos[ 0 ],Pos[ 1 ],Pos[ 2 ] );

						SelectTextDraw( playerid, COLOR_ORANGE );
	                }
	                case 9: {

	                    for( new i = 0; i < MAX_COMPONENTS; i++ ) {
			                if( cInfo[ i ][ cType ] == CARMODTYPE_STEREO ) {
			                    if( cInfo[ i ][ cID ] == IsComponentidCompatible( GetVehicleModel( vehicleid ), cInfo[ i ][ cID ] ) ) {
				                    TPInfo[ playerid ][ tID ] = i;
									break;
								}
			                }
						}
	                    if( TPInfo[ playerid ][ tID ] == -1 ) return SendErrorMessage( playerid, "Nenhum dos componentes compatнveis espйcies selecionadas para o seu modelo de veнculo." );

						new cid = TPInfo[ playerid ][ tID ];
						TPInfo[ playerid ][ tType ] = CARMODTYPE_STEREO;
						TPInfo[ playerid ][ tPaintjob ] = false;

	                    TogglePlayerControllable( playerid, false );
	                    TuningTDControl( playerid, true );

	                    format( globalstring, sizeof( globalstring ), "%s", cInfo[ cid ][ cName ] );
						PlayerTextDrawSetString( playerid, TuningBuy[ playerid ][ 3 ], globalstring );
						format( globalstring, sizeof( globalstring ), "Preco: ~w~%d$", cInfo[ cid ][ cPrice ] );
						PlayerTextDrawSetString( playerid, TuningBuy[ playerid ][ 4 ], globalstring );

                        AddVehicleComponent( vehicleid, cInfo[ cid ][ cID ] );

						GetVehicleCameraPos( vehicleid, Pos[ 0 ], Pos[ 1 ], Pos[ 2 ], 0, -6, 2 );
						SetPlayerCameraPos( playerid, Pos[ 0 ], Pos[ 1 ], Pos[ 2 ] );

						GetVehiclePos( vehicleid, Pos[ 0 ],Pos[ 1 ],Pos[ 2 ] );
						SetPlayerCameraLookAt( playerid, Pos[ 0 ],Pos[ 1 ],Pos[ 2 ] );

						SelectTextDraw( playerid, COLOR_ORANGE );
	                }
	                case 10: {

	                    for( new i = 0; i < MAX_COMPONENTS; i++ ) {
			                if( cInfo[ i ][ cType ] == CARMODTYPE_HYDRAULICS ) {
			                    if( cInfo[ i ][ cID ] == IsComponentidCompatible( GetVehicleModel( vehicleid ), cInfo[ i ][ cID ] ) ) {
				                    TPInfo[ playerid ][ tID ] = i;
									break;
								}
			                }
						}
	                    if( TPInfo[ playerid ][ tID ] == -1 ) return SendErrorMessage( playerid, "Nenhum dos componentes compatнveis espйcies selecionadas para o seu modelo de veнculo." );

						new cid = TPInfo[ playerid ][ tID ];
						TPInfo[ playerid ][ tType ] = CARMODTYPE_HYDRAULICS;
						TPInfo[ playerid ][ tPaintjob ] = false;

	                    TogglePlayerControllable( playerid, false );
	                    TuningTDControl( playerid, true );

	                    format( globalstring, sizeof( globalstring ), "%s", cInfo[ cid ][ cName ] );
						PlayerTextDrawSetString( playerid, TuningBuy[ playerid ][ 3 ], globalstring );
						format( globalstring, sizeof( globalstring ), "Preco: ~w~%d$", cInfo[ cid ][ cPrice ] );
						PlayerTextDrawSetString( playerid, TuningBuy[ playerid ][ 4 ], globalstring );

                        AddVehicleComponent( vehicleid, cInfo[ cid ][ cID ] );

						GetVehicleCameraPos( vehicleid, Pos[ 0 ], Pos[ 1 ], Pos[ 2 ], 2, 2, 2 );
						SetPlayerCameraPos( playerid, Pos[ 0 ], Pos[ 1 ], Pos[ 2 ] );

						GetVehiclePos( vehicleid, Pos[ 0 ],Pos[ 1 ],Pos[ 2 ] );
						SetPlayerCameraLookAt( playerid, Pos[ 0 ],Pos[ 1 ],Pos[ 2 ] );

						SelectTextDraw( playerid, COLOR_ORANGE );
	                }
	                case 11: {

	                    for( new i = 0; i < MAX_COMPONENTS; i++ ) {
			                if( cInfo[ i ][ cType ] == CARMODTYPE_NITRO ) {
			                    if( cInfo[ i ][ cID ] == IsComponentidCompatible( GetVehicleModel( vehicleid ), cInfo[ i ][ cID ] ) ) {
				                    TPInfo[ playerid ][ tID ] = i;
									break;
								}
			                }
						}
	                    if( TPInfo[ playerid ][ tID ] == -1 ) return SendErrorMessage( playerid, "Nenhum dos componentes compatнveis espйcies selecionadas para o seu modelo de veнculo." );

						new cid = TPInfo[ playerid ][ tID ];
						TPInfo[ playerid ][ tType ] = CARMODTYPE_NITRO;
						TPInfo[ playerid ][ tPaintjob ] = false;

	                    TogglePlayerControllable( playerid, false );
	                    TuningTDControl( playerid, true );

	                    format( globalstring, sizeof( globalstring ), "%s", cInfo[ cid ][ cName ] );
						PlayerTextDrawSetString( playerid, TuningBuy[ playerid ][ 3 ], globalstring );
						format( globalstring, sizeof( globalstring ), "Preco: ~w~%d$", cInfo[ cid ][ cPrice ] );
						PlayerTextDrawSetString( playerid, TuningBuy[ playerid ][ 4 ], globalstring );

                        AddVehicleComponent( vehicleid, cInfo[ cid ][ cID ] );

						GetVehicleCameraPos( vehicleid, Pos[ 0 ], Pos[ 1 ], Pos[ 2 ], 0, -6, 2 ); // done
						SetPlayerCameraPos( playerid, Pos[ 0 ], Pos[ 1 ], Pos[ 2 ] );

						GetVehiclePos( vehicleid, Pos[ 0 ],Pos[ 1 ],Pos[ 2 ] );
						SetPlayerCameraLookAt( playerid, Pos[ 0 ],Pos[ 1 ],Pos[ 2 ] );

						SelectTextDraw( playerid, COLOR_ORANGE );
	                }
	            }
	        }
	        else if( !response ) {
	            SetCameraBehindPlayer( playerid );
	        }
	    }
	    case dialog_TUNING_2: {
	        if( !response ) return 1;
			if( response ) {
			    if( !IsPlayerInAnyVehicle( playerid ) ) return SendErrorMessage( playerid, "Vocк Precisa Estar Em Um Veiculo." );
	            if( GetPlayerState( playerid ) != PLAYER_STATE_DRIVER ) return SendErrorMessage( playerid, "Vocк Precisa Ser O Motorista" );
				new vehicleid = GetPlayerVehicleID( playerid );
			    if( GetPlayerMoney( playerid ) < COLOR_PRICE ) return SendErrorMessage( playerid, "O Seu Dinheiro й insuficiente." );
			    new b1, b2;
			    if( sscanf( inputtext, "ii", b1, b2 ) ) return SPD( playerid, dialog_TUNING_2, DSI, D_TOP, "Coloque Cor1 ID E Cor2 ID.\nExemplo: 0 1", D_OK, D_CANCEL );
				if( b1 < 0 || b2 < 0 || b1 > 255 || b2 > 255 ) return SendErrorMessage( playerid, "Cor ID nгo pode ser superior a partir de 255 ou inferior a 0!");
				
				ChangeVehicleColor( vehicleid, b1, b2 );
				GivePlayerMoney( playerid, COLOR_PRICE );
				
				SPD( playerid, dialog_TUNING, DSL, D_TOP, D_TEXT, D_OK, D_CANCEL );
			}
		}
	}
	return true;
}
//==============================================================================
public OnVehicleSpawn( vehicleid ) {
	SetTune( vehicleid );
	return true;
}
//==============================================================================
public OnPlayerClickPlayerTextDraw( playerid, PlayerText:playertextid ) {
    if( _:playertextid != INVALID_TEXT_DRAW ) {
        if( playertextid == TuningBuy[ playerid ][ 7 ] ) { // desno
            if( !IsPlayerInAnyVehicle( playerid ) ) return SendErrorMessage( playerid, "Vocк Precisa Estar Em Um Veiculo." );
	        if( GetPlayerState( playerid ) != PLAYER_STATE_DRIVER ) return SendErrorMessage( playerid, "Vocк Precisa Ser O Motorista." );
	            
            if( TPInfo[ playerid ][ tPaintjob ] == false ) {
            
				new compid = -1, vehicleid = GetPlayerVehicleID( playerid );
            
	            for( new i = ( TPInfo[ playerid ][ tID ]+1 ); i < MAX_COMPONENTS; i++ ) {
					if( cInfo[ i ][ cType ] == TPInfo[ playerid ][ tType ] ) {
						if( cInfo[ i ][ cID ] == IsComponentidCompatible( GetVehicleModel( vehicleid ), cInfo[ i ][ cID ] ) ) {
							compid = i;
							break;
						}
					}
				}
				if( compid == -1 ) return SendErrorMessage( playerid, "Nenhum dos componentes compatнveis espйcies selecionadas para o seu modelo de veнculo" );

	            RemoveVehicleComponent( vehicleid, cInfo[ TPInfo[ playerid ][ tID ] ][ cID ] );

	            TPInfo[ playerid ][ tID ] = compid;

	            format( globalstring, sizeof( globalstring ), "%s", cInfo[ compid ][ cName ] );
				PlayerTextDrawSetString( playerid, TuningBuy[ playerid ][ 3 ], globalstring );
				format( globalstring, sizeof( globalstring ), "Preco: ~w~%d$", cInfo[ compid ][ cPrice ] );
				PlayerTextDrawSetString( playerid, TuningBuy[ playerid ][ 4 ], globalstring );

				AddVehicleComponent( vehicleid, cInfo[ compid ][ cID ] );

				SelectTextDraw( playerid, COLOR_ORANGE );
			}
			else if( TPInfo[ playerid ][ tPaintjob ] == true ) {
			
			    new paintid = -1, vehicleid = GetPlayerVehicleID( playerid );
			    
			    for( new i = ( TPInfo[ playerid ][ tID ]+1 ); i < NUMBER_TYPE_PAINTJOB; i++ ) {
			    	if( pjInfo[ i ][ vehID ] == GetVehicleModel( vehicleid ) ) {
						paintid = i;
						break;
					}
			   	}
			   	if( paintid == -1 ) return SendErrorMessage( playerid, "Nenhum paintjob compatнvel com o seu modelo de veнculo." );

                TPInfo[ playerid ][ tID ] = paintid;
                
                format( globalstring, sizeof( globalstring ), "%s", pjInfo[ paintid ][ pName ] );
				PlayerTextDrawSetString( playerid, TuningBuy[ playerid ][ 3 ], globalstring );
				format( globalstring, sizeof( globalstring ), "Preco: ~w~%d$", pjInfo[ paintid ][ pPrice ] );
				PlayerTextDrawSetString( playerid, TuningBuy[ playerid ][ 4 ], globalstring );
                
                ChangeVehiclePaintjob( vehicleid, pjInfo[ paintid ][ pNumber ] );
                
                SelectTextDraw( playerid, COLOR_ORANGE );
			}
        }
        if( playertextid == TuningBuy[ playerid ][ 8 ] ) { // levo
            if( TPInfo[ playerid ][ tPaintjob ] == false ) {
            
	            if( !IsPlayerInAnyVehicle( playerid ) ) return SendErrorMessage( playerid, "Vocк Precisa Estar Em Um Veiculo." );
		        if( GetPlayerState( playerid ) != PLAYER_STATE_DRIVER ) return SendErrorMessage( playerid, "Vocк Precisa Ser O Motorista." );

	            new compid = -1, vehicleid = GetPlayerVehicleID( playerid );

	            for( new i = (TPInfo[ playerid ][ tID ]-1); i > 0; i-- ) {
					if( cInfo[ i ][ cType ] == TPInfo[ playerid ][ tType ] ) {
						if( cInfo[ i ][ cID ] == IsComponentidCompatible( GetVehicleModel( vehicleid ), cInfo[ i ][ cID ] ) ) {
							compid = i;
							break;
						}
					}
				}
				if( compid == -1 ) return SendErrorMessage( playerid, "Nenhum dos componentes compatнveis espйcies selecionadas para o seu modelo de veнculo." );

				RemoveVehicleComponent( vehicleid, cInfo[ TPInfo[ playerid ][ tID ] ][ cID ] );

	            TPInfo[ playerid ][ tID ] = compid;

	            format( globalstring, sizeof( globalstring ), "%s", cInfo[ compid ][ cName ] );
				PlayerTextDrawSetString( playerid, TuningBuy[ playerid ][ 3 ], globalstring );
				format( globalstring, sizeof( globalstring ), "Preco: ~w~%d$", cInfo[ compid ][ cPrice ] );
				PlayerTextDrawSetString( playerid, TuningBuy[ playerid ][ 4 ], globalstring );

				AddVehicleComponent( vehicleid, cInfo[ compid ][ cID ] );

				SelectTextDraw( playerid, COLOR_ORANGE );
			}
			else if( TPInfo[ playerid ][ tPaintjob ] == true ) {

			    new paintid = -1, vehicleid = GetPlayerVehicleID( playerid );

			    for( new i = (TPInfo[ playerid ][ tID ]-1); i > 0; i-- ) {
			    	if( pjInfo[ i ][ vehID ] == GetVehicleModel( vehicleid ) ) {
						paintid = i;
						break;
					}
			   	}
			   	if( paintid == -1 ) return SendErrorMessage( playerid, "Nenhum paintjob compatнvel com o seu modelo de veнculo." );

                TPInfo[ playerid ][ tID ] = paintid;

                format( globalstring, sizeof( globalstring ), "%s", pjInfo[ paintid ][ pName ] );
				PlayerTextDrawSetString( playerid, TuningBuy[ playerid ][ 3 ], globalstring );
				format( globalstring, sizeof( globalstring ), "Preco: ~w~%d$", pjInfo[ paintid ][ pPrice ] );
				PlayerTextDrawSetString( playerid, TuningBuy[ playerid ][ 4 ], globalstring );

                ChangeVehiclePaintjob( vehicleid, pjInfo[ paintid ][ pNumber ] );

                SelectTextDraw( playerid, COLOR_ORANGE );
			}
        }
        if( playertextid == TuningBuy[ playerid ][ 9 ] ) { // buy
            if( !IsPlayerInAnyVehicle( playerid ) ) return SendErrorMessage( playerid, "Vocк Precisa Estar Em Um Veiculo." );
	        if( GetPlayerState( playerid ) != PLAYER_STATE_DRIVER ) return SendErrorMessage( playerid, "Vocк Precisa Ser O Motorista." );

            new Float:Pos[ 6 ], vehicleid = GetPlayerVehicleID( playerid );

            if( TPInfo[ playerid ][ tPaintjob ] == false ) {
            
				if( GetPlayerMoney( playerid ) < cInfo[ TPInfo[ playerid ][ tID ] ][ cPrice ] ) return SendErrorMessage( playerid, "O Seu Dinheiro й insuficiente." );

				new cid = TPInfo[ playerid ][ tID ];

		        RemoveVehicleComponent( vehicleid, cInfo[ TPInfo[ playerid ][ tID ] ][ cID ] );

		        VehicleInfo[ vehicleid ][ vTuned ] = true;

		        AddComponentToVehicle( vehicleid, cInfo[ cid ][ cID ] );
		        
		        GivePlayerMoney( playerid, -cInfo[ TPInfo[ playerid ][ tID ] ][ cPrice ] );

			}
			else if( TPInfo[ playerid ][ tPaintjob ] == true ) {
			
			    if( GetPlayerMoney( playerid ) < pjInfo[ TPInfo[ playerid ][ tID ] ][ pPrice ] ) return SendErrorMessage( playerid, "O Seu Dinheiro й insuficiente." );
			
			    new paintid = TPInfo[ playerid ][ tID ];
			
			    VehicleInfo[ vehicleid ][ vTuned ] = true;
			    
			    VehicleInfo[ vehicleid ][ vPaintJob ] = pjInfo[ paintid ][ pNumber ];
			    
			    GivePlayerMoney( playerid, -pjInfo[ TPInfo[ playerid ][ tID ] ][ pPrice ] );
			    
			    ChangeVehicleColor( vehicleid, TPInfo[ playerid ][ PJColor ][ 0 ], TPInfo[ playerid ][ PJColor ][ 1 ] );
			    
			    ChangeVehiclePaintjob( vehicleid, pjInfo[ paintid ][ pNumber ] );
			
			}
			GetVehicleCameraPos( vehicleid, Pos[ 0 ], Pos[ 1 ], Pos[ 2 ], 0, 6, 2 );
			SetPlayerCameraPos( playerid, Pos[ 0 ], Pos[ 1 ], Pos[ 2 ] );

			GetVehiclePos( vehicleid, Pos[ 0 ],Pos[ 1 ],Pos[ 2 ] );
			SetPlayerCameraLookAt( playerid, Pos[ 0 ],Pos[ 1 ],Pos[ 2 ] );
			
			CancelSelectTextDraw( playerid );

		    TuningTDControl( playerid, false );
		    TogglePlayerControllable( playerid, true );

			SPD( playerid, dialog_TUNING, DSL, D_TOP, D_TEXT, D_OK, D_CANCEL );
        }
        if( playertextid == TuningBuy[ playerid ][ 13 ] ) { // close
        
            if( !IsPlayerInAnyVehicle( playerid ) ) return SendErrorMessage( playerid, "Vocк Precisa Estar Em Um Veiculo." );
	        if( GetPlayerState( playerid ) != PLAYER_STATE_DRIVER ) return SendErrorMessage( playerid, "Vocк Precisa Ser O Motorista." );

            new Float:Pos[ 6 ], vehicleid = GetPlayerVehicleID( playerid );

			if( TPInfo[ playerid ][ tPaintjob ] == false ) {

		        RemoveVehicleComponent( vehicleid, cInfo[ TPInfo[ playerid ][ tID ] ][ cID ] );

				SetTune( vehicleid );
			}
			else if( TPInfo[ playerid ][ tPaintjob ] == true ) {
			    ChangeVehiclePaintjob( vehicleid, 3 );
				ChangeVehicleColor( vehicleid, TPInfo[ playerid ][ PJColor ][ 0 ], TPInfo[ playerid ][ PJColor ][ 1 ] );
			}
			GetVehicleCameraPos( vehicleid, Pos[ 0 ], Pos[ 1 ], Pos[ 2 ], 0, 6, 2 );
			SetPlayerCameraPos( playerid, Pos[ 0 ], Pos[ 1 ], Pos[ 2 ] );

			GetVehiclePos( vehicleid, Pos[ 0 ],Pos[ 1 ],Pos[ 2 ] );
			SetPlayerCameraLookAt( playerid, Pos[ 0 ],Pos[ 1 ],Pos[ 2 ] );

	        CancelSelectTextDraw( playerid );
	            
			TuningTDControl( playerid, false );
		    TogglePlayerControllable( playerid, true );

			SPD( playerid, dialog_TUNING, DSL, D_TOP, D_TEXT, D_OK, D_CANCEL );
        }
    }
    return true;
}

//================================[ Commands ]==================================

CMD:tunar( playerid, params[] ) {
	if( GetNearestTGarage( playerid ) == -1 ) return SendErrorMessage( playerid, "Vocк Primeiro Precisa Estar Em Um Ponto De Equipaзгo." );
	SPD( playerid, dialog_TUNING, DSL, D_TOP, D_TEXT, D_OK, D_CANCEL );
	return true;
}
//==============================================================================
CMD:removertunar( playerid, params[] ) {
	if( GetNearestTGarage( playerid ) == -1 ) return SendErrorMessage( playerid, "Vocк Primeiro Precisa Estar Em Um Ponto De Equipaзгo." );
    if( !IsPlayerInAnyVehicle( playerid ) ) return SendErrorMessage( playerid, "Vocк Precisa Estar Em Um Veiculo." );
	if( GetPlayerState( playerid ) != PLAYER_STATE_DRIVER ) return SendErrorMessage( playerid, "Vocк Precisa Ser O Motorista." );
	new vehicleid = GetPlayerVehicleID( playerid ), componentid;

    ResetTuning( vehicleid );
    
	ChangeVehiclePaintjob( vehicleid, 3 );
	for( new i; i < 14; i++ ) {
		componentid = GetVehicleComponentInSlot( vehicleid, i );
		if( componentid != 0 )
			RemoveVehicleComponent( vehicleid, componentid );
	}
	SendClientMessage( playerid, -1, "Tunaзгo Removida." );
	return true;
}
//==============================================================================
CMD:salvartunar( playerid, params[] ) {
	new file[ 80 ], tuningname[ 40 ];
	if( sscanf( params,"s[40]", tuningname ) ) return SendClientMessage( playerid, -1, "Use: /salvartunar [ nome ]");
	if( !IsPlayerInAnyVehicle( playerid ) ) return SendErrorMessage( playerid, "Vocк Precisa Estar Em Um Veiculo." );
	if( GetPlayerState( playerid ) != PLAYER_STATE_DRIVER ) return SendErrorMessage( playerid, "Vocк Precisa Ser O Motorista." );
	new vehicleid = GetPlayerVehicleID( playerid );
	format( file, sizeof( file ), T_FILE, tuningname );
	if( fexist( file ) ) return SendErrorMessage( playerid, "Jб existe salvo com esse nome!");
	
	format( globalstring, sizeof( globalstring ), "Salvo com sucesso com nome%s", tuningname );
	SendClientMessage( playerid, -1, globalstring );
	
	SaveTuning( playerid, vehicleid, tuningname );
	return true;
}
//==============================================================================
CMD:carregartunar( playerid, params[] ) {
	new file[ 80 ], tuningname[ 40 ];
	if( sscanf( params,"s[40]", tuningname ) ) return SendClientMessage( playerid, -1, "Use: /carregartunar [ nome ]");
	if( !IsPlayerInAnyVehicle( playerid ) ) return SendErrorMessage( playerid, "Vocк Precisa Estar Em Um Veiculo." );
	if( GetPlayerState( playerid ) != PLAYER_STATE_DRIVER ) return SendErrorMessage( playerid, "Vocк Precisa Ser O Motorista." );
	new vehicleid = GetPlayerVehicleID( playerid );
    if( VehicleInfo[ vehicleid ][ vTuned ] == true ) return SendErrorMessage( playerid, "Este Veiculo Ja Estб Tunado." );
	format( file, sizeof( file ), T_FILE, tuningname );
	if( !fexist( file ) ) return SendErrorMessage( playerid, "Nгo existem salvo com esse nome!");
    INI_ParseFile( file, "LoadTuning", .bExtra = true, .extra = vehicleid );
	if( strcmp( GetName( playerid ), VehicleInfo[ vehicleid ][ vOwner ], true ) == 0 ) {

		if( GetVehicleModel( vehicleid ) != VehicleInfo[ vehicleid ][ vVehID ] ) return SendErrorMessage( playerid, "Esta Funзгo Nгo Й Disponivel Para Seu Veiculo." );

		format( globalstring, sizeof( globalstring ), "carregado com кxito com o nome %s", tuningname );
		SendClientMessage( playerid, -1, globalstring );

		SetTune( vehicleid );
		ChangeVehicleColor( vehicleid, VehicleInfo[ vehicleid ][ vColor1 ], VehicleInfo[ vehicleid ][ vColor2 ] );
	}
	else return SendErrorMessage( playerid, "vocк nгo й um proprietбrio." );
	return true;
}
//==============================================================================
CMD:criargaragem( playerid, params[] ) {
    if( !IsPlayerAdmin( playerid ) ) return SendErrorMessage( playerid, "Vocк Precisa Estar Logado Na Rcon." );
    new i = NextIDGarage( MAX_GARAGES ), Float:Pos[ 3 ], file[ 40 ];
	GetPlayerPos( playerid, Pos[ 0 ], Pos[ 1 ], Pos[ 2 ] );
	format( file, sizeof( file ), TG_FILE, i );
	if( fexist( file ) ) return SendErrorMessage( playerid, "ID de garagem jб existe!" );
	tGarage[ i ][ Position ][ 0 ] = Pos[ 0 ];
	tGarage[ i ][ Position ][ 1 ] = Pos[ 1 ];
	tGarage[ i ][ Position ][ 2 ] = Pos[ 2 ];
	tGarage[ i ][ tg3D ] = Create3DTextLabel( "{FFFFFF}Para Tunar Seu Veiculo Use\n{ff6600}[ /tunar ]", -1, tGarage[ i ][ Position ][ 0 ], tGarage[ i ][ Position ][ 1 ], tGarage[ i ][ Position ][ 2 ], 15.0, 0, 1 );
	tGarage[ i ][ tgPickup ] = CreatePickup( 1239, 1, tGarage[ i ][ Position ][ 0 ], tGarage[ i ][ Position ][ 1 ], tGarage[ i ][ Position ][ 2 ], -1 );
	SaveTGarage( i );
	return true;
}
//==============================================================================
CMD:removergaragem( playerid, params[] ) {
    if( !IsPlayerAdmin( playerid ) ) return SendErrorMessage( playerid, "Vocк Precisa Estar Logado Na Rcon." );
	new i = GetNearestTGarage( playerid );
	if( i == -1 ) return SendErrorMessage( playerid, "Vocк deve estar em pickup para remover." );
	
	tGarage[ i ][ Position ][ 0 ] = 0.0;
	tGarage[ i ][ Position ][ 1 ] = 0.0;
	tGarage[ i ][ Position ][ 2 ] = 0.0;
	
	DestroyPickup( tGarage[ i ][ tgPickup ] );
	Delete3DTextLabel( tGarage[ i ][ tg3D ] );
	
    new file[ 50 ];
	format( file, sizeof( file ), TG_FILE, i );
	if( fexist( file ) ) { fremove( file ); }

	SendClientMessage( playerid, COLOR_RED, "Garagem Removida." );
	return true;
}
//==============================================================================
CMD:blablak( playerid, params[] ) { // test cmd
	GivePlayerMoney( playerid, 10000 );
	return true;
}
//==============================================================================
CMD:veh1( playerid, params[] ) { // test cmd
	
	new Float:Pos[ 3 ];
	GetPlayerPos( playerid, Pos[ 0 ],Pos[ 1 ],Pos[ 2 ] );
	new carid = CreateVehicle( 560, Pos[ 0 ],Pos[ 1 ],Pos[ 2 ], 0.0, -1, -1, -1 );
	
	new engine, lights, alarm, doors, bonnet, boot, objective;

    GetVehicleParamsEx(carid, engine, lights, alarm, doors, bonnet, boot, objective);
    SetVehicleParamsEx(carid, 1, lights, alarm, 0, 0, 0, objective);
	return true;
}
//==============================================================================
CMD:veh2( playerid, params[] ) { // test cmd

	new Float:Pos[ 3 ];
	GetPlayerPos( playerid, Pos[ 0 ],Pos[ 1 ],Pos[ 2 ] );
	new carid = CreateVehicle( 402, Pos[ 0 ],Pos[ 1 ],Pos[ 2 ], 0.0, -1, -1, -1 );

	new engine, lights, alarm, doors, bonnet, boot, objective;

    GetVehicleParamsEx(carid, engine, lights, alarm, doors, bonnet, boot, objective);
    SetVehicleParamsEx(carid, 1, lights, alarm, 0, 0, 0, objective);
	return true;
}
//==============================================================================
CMD:veh3( playerid, params[] ) { // test cmd

	new Float:Pos[ 3 ];
	GetPlayerPos( playerid, Pos[ 0 ],Pos[ 1 ],Pos[ 2 ] );
	new carid = CreateVehicle( 562, Pos[ 0 ],Pos[ 1 ],Pos[ 2 ], 0.0, -1, -1, -1 );

	new engine, lights, alarm, doors, bonnet, boot, objective;

    GetVehicleParamsEx(carid, engine, lights, alarm, doors, bonnet, boot, objective);
    SetVehicleParamsEx(carid, 1, lights, alarm, 0, 0, 0, objective);
	return true;
}
See: filterscript this was on all normal, add a filterscript administration and stopped showing the dialag functions, plus I already changed the id not know why nothing appears
Reply
#6

Replace return 1 with return 0 under OnDialogResponse in all the Filterscripts and Gamemode.

pawn Код:
public OnDialogResponse(....)
{
    return 0;//here, it will pass the dialog id to another script if the dialog id is not found here.
}
Make sure you do it in all the scripts you are using.
Reply
#7

Quote:
Originally Posted by De4dpOol
Посмотреть сообщение
Replace return 1 with return 0 under OnDialogResponse in all the Filterscripts and Gamemode.

pawn Код:
public OnDialogResponse(....)
{
    return 0;//here, it will pass the dialog id to another script if the dialog id is not found here.
}
Make sure you do it in all the scripts you are using.
i love you, it works perfect, you're pro!! nice human you are, continue helping more peoples.
+Rep
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)