Question

Всем привет. Заметил такой баг: Если в СТО выбрать например для машины новый цвет, то можно просто нажать ESC, тогда вы выйдите из СТО, цвет машины сохранится и деньги не снимутся. Как сделать, что бы при выходе через ESC - изменения не сохранились, если ты не оплатил?

P.S. СТО на текстдравах

 

Код:

Спойлер

else if(PI[playerid][P_TUNING_TYPE] != -1)
		{
			if(!GetPVarInt(playerid, "UsedCTO")) return 0;
			new bizzid = GetPVarInt(playerid,"CTObizzid");
			if(GetPlayerState(playerid) != 2) return SKick(playerid, 12221);
			new pveh = GetPlayerVehicleID(playerid);
			SetVehiclePos(pveh,BizzInfo[bizzid][bEntrx],BizzInfo[bizzid][bEntry],BizzInfo[bizzid][bEntrz]);
			SetVehicleZAngle(pveh, g_vehicle[pveh][veh_a]);
			SetVehicleHealth(pveh, 1000.0);
			DeletePVar(playerid,"UsedCTO");
			SetPVarInt(playerid, "AntiBreik", 3);
			SetVehicleZAngle(pveh, 90.0);
			SetPlayerInterior(playerid,0);
			SetPlayerVirtualWorld(playerid,0);
			SetVehicleVirtualWorld(pveh,0);
			LinkVehicleToInterior(pveh,0);
			PutPlayerInVehicle(playerid, pveh, 0);
			TogglePlayerControllable(playerid,true);
			SetCameraBehindPlayer(playerid);

    		for(new i = 0; i < sizeof sto_td_player; i ++) PlayerTextDrawHide(playerid, sto_td_player[i][playerid]);
			for(new i; i < sizeof sto_td_global; i ++) TextDrawHideForPlayer(playerid, sto_td_global[i]);

    		CancelSelectTextDraw(playerid);

			PI[playerid][P_TUNING_TYPE] = -1;
		}
		else if(PI[playerid][SalonCarID] != INVALID_VEHICLE_ID)
		{
			if(1 <= InShop[playerid] <= 2)
			{
				BuyCloseCar(playerid);
			}
		}
    }
	if(clickedid == autosalon_global_td[54])
	{
		BuyCar(playerid);
	}
	if(clickedid == autosalon_global_td[66])
	{
		BuyCloseCar(playerid);
	}
	if(clickedid == autosalon_global_td[20])
	{
		if((GetTickCount() - PlayerLastTick[playerid]) < 1000) return 1;

		new salon = PI[playerid][P_SALON];

		if(salon == 0)
		{
			if(pPressed[playerid] == 0)
				pPressed[playerid] = 24;
			else
				pPressed[playerid] -- ;
		}
		else if(salon == 1)
		{
			if(pPressed[playerid] == 0)
				pPressed[playerid] = 4;
			else
				pPressed[playerid] -- ;
		}

		new idx = pPressed[playerid];

		DestroyVehicle(PI[playerid][SalonCarID]);
		PI[playerid][SalonCarID] = CreateVehicle(car_market_data[salon][idx][0],  -358.7720, 379.9233, 1002.0958, -140.0000, PI[playerid][P_COLOR][0], PI[playerid][P_COLOR][1], 10000);
		LinkVehicleToInterior(PI[playerid][SalonCarID],3);
		SetVehicleVirtualWorld(PI[playerid][SalonCarID],playerid);
		PutPlayerInVehicle(playerid,PI[playerid][SalonCarID],0);

		SetPlayerCameraPos(playerid, -351.8433, 373.5243, 1004.1419);
		SetPlayerCameraLookAt(playerid, -352.5201, 374.2586, 1003.8023);

		STRING_GLOBAL[0] = EOS;
		format(STRING_GLOBAL, sizeof STRING_GLOBAL, "%s", g_vehicle_info[car_market_data[salon][idx][0]-400][VI_NAME]);
		PlayerTextDrawSetString(playerid, autosalon_player_td[playerid][1], STRING_GLOBAL);

		STRING_GLOBAL[0] = EOS;
		format(STRING_GLOBAL, sizeof STRING_GLOBAL, "%d_руб", g_vehicle_info[car_market_data[salon][idx][0]-400][VI_COST]);
		PlayerTextDrawSetString(playerid, autosalon_player_td[playerid][0], STRING_GLOBAL);

		PlayerLastTick[playerid] = GetTickCount();
	}
	if(clickedid == autosalon_global_td[21])
	{
		if((GetTickCount() - PlayerLastTick[playerid]) < 1000) return 1;

		new salon = PI[playerid][P_SALON];

		if(salon == 0)
		{
			if(pPressed[playerid] == 24)
				pPressed[playerid] = 0;
			else
				pPressed[playerid] ++;
		}
		else if(salon == 1)
		{
			if(pPressed[playerid] == 4)
				pPressed[playerid] = 0;
			else
				pPressed[playerid] ++;
		}

		new idx = pPressed[playerid];

		DestroyVehicle(PI[playerid][SalonCarID]);
		PI[playerid][SalonCarID] = CreateVehicle(car_market_data[salon][idx][0],  -358.7720, 379.9233, 1002.0958, -140.0000, PI[playerid][P_COLOR][0], PI[playerid][P_COLOR][1], 10000);

		LinkVehicleToInterior(PI[playerid][SalonCarID],3);
		SetVehicleVirtualWorld(PI[playerid][SalonCarID],playerid);
		PutPlayerInVehicle(playerid,PI[playerid][SalonCarID],0);

		SetPlayerCameraPos(playerid, -351.8433, 373.5243, 1004.1419);
		SetPlayerCameraLookAt(playerid, -352.5201, 374.2586, 1003.8023);

		STRING_GLOBAL[0] = EOS;
		format(STRING_GLOBAL, sizeof STRING_GLOBAL, "%s", g_vehicle_info[car_market_data[salon][idx][0]-400][VI_NAME]);
		PlayerTextDrawSetString(playerid, autosalon_player_td[playerid][1], STRING_GLOBAL);

		STRING_GLOBAL[0] = EOS;
		format(STRING_GLOBAL, sizeof STRING_GLOBAL, "%d_руб", g_vehicle_info[car_market_data[salon][idx][0]-400][VI_COST]);
		PlayerTextDrawSetString(playerid, autosalon_player_td[playerid][0], STRING_GLOBAL);

		PlayerLastTick[playerid] = GetTickCount();
	}
	if(clickedid == autosalon_global_td[32])
	{
		if((GetTickCount() - PlayerLastTick[playerid]) < 1000) return 1;

		if(PI[playerid][P_COLOR][0] == 255)
			PI[playerid][P_COLOR][0] = 0;
		else
			PI[playerid][P_COLOR][0] += 1;

		ChangeVehicleColor(PI[playerid][SalonCarID], PI[playerid][P_COLOR][0], PI[playerid][P_COLOR][1]);

		PlayerLastTick[playerid] = GetTickCount();
	}
	if(clickedid == autosalon_global_td[33])
	{
		if((GetTickCount() - PlayerLastTick[playerid]) < 1000) return 1;

		if(PI[playerid][P_COLOR][0] == 0)
			PI[playerid][P_COLOR][0] = 255;
		else
			PI[playerid][P_COLOR][0] -= 1;

		ChangeVehicleColor(PI[playerid][SalonCarID], PI[playerid][P_COLOR][0], PI[playerid][P_COLOR][1]);

		PlayerLastTick[playerid] = GetTickCount();
	}
	if(clickedid == autosalon_global_td[45])
	{
		if((GetTickCount() - PlayerLastTick[playerid]) < 1000) return 1;

		if(PI[playerid][P_COLOR][1] == 255)
			PI[playerid][P_COLOR][1] = 0;
		else
			PI[playerid][P_COLOR][1] += 1;

		ChangeVehicleColor(PI[playerid][SalonCarID], PI[playerid][P_COLOR][0], PI[playerid][P_COLOR][1]);

		PlayerLastTick[playerid] = GetTickCount();
	}
	if(clickedid == autosalon_global_td[46])
	{
		if((GetTickCount() - PlayerLastTick[playerid]) < 1000) return 1;

		if(PI[playerid][P_COLOR][1] == 0)
			PI[playerid][P_COLOR][1] = 255;
		else
			PI[playerid][P_COLOR][1] -= 1;

		ChangeVehicleColor(PI[playerid][SalonCarID], PI[playerid][P_COLOR][0], PI[playerid][P_COLOR][1]);

		PlayerLastTick[playerid] = GetTickCount();
	}
	if(PI[playerid][P_TUNING_TYPE] != -1)
	{
		if(clickedid == sto_td_global[6])
		{
			PI[playerid][P_TUNING_TYPE] = 1;

			PlayerTextDrawSetString(playerid, sto_td_player[0][playerid], "цвет");

			PlayerTextDrawSetString
			(
				playerid,
				sto_td_player[1][playerid],
				"используя_элементы_интерфейса,~n~выберите_предпочитаемый_цвет~n~для_личного_автомобиля."
			);


			new biz_id = GetPVarInt(playerid, "CTObizzid"),
			price = BizzInfo[biz_id][bTill]*5;

			STRING_GLOBAL[0] = EOS;
			format
			(
				STRING_GLOBAL, sizeof STRING_GLOBAL,
				"основной_цвет:_%d~n~доп.цвет:_%d~n~К_ОПЛАТЕ:_%d_руб.", PI[playerid][P_COLOR][0], PI[playerid][P_COLOR][1], price
			);
			PlayerTextDrawSetString(playerid, sto_td_player[2][playerid], STRING_GLOBAL);

			for(new idx; idx < 4; idx ++) TextDrawHideForPlayer(playerid, sto_td_global[idx]);
			for(new idx = 2; idx < 4; idx ++) TextDrawShowForPlayer(playerid, sto_td_global[idx]);

			//TextDrawHideForPlayer(playerid, sto_td_global[0]);
			//TextDrawHideForPlayer(playerid, sto_td_global[1]);

			// основной_цвет:_24~n~доп.цвет:_52~n~К_ОПЛАТЕ:_200_руб.
			//ShowPlayerTuningColor(playerid);
		}
		if(clickedid == sto_td_global[9])
		{
			PI[playerid][P_TUNING_TYPE] = 2;

			PlayerTextDrawSetString(playerid, sto_td_player[0][playerid], "гидравлика");

			new biz_id = GetPVarInt(playerid, "CTObizzid"),
			price = BizzInfo[biz_id][bTill]*100;

			STRING_GLOBAL[0] = EOS;
			format
			(
				STRING_GLOBAL, sizeof STRING_GLOBAL,
				"к_оплате:_%d_рублей.", price
			);
			PlayerTextDrawSetString(playerid, sto_td_player[2][playerid], STRING_GLOBAL);

			PlayerTextDrawSetString
			(
				playerid,
				sto_td_player[1][playerid],
				"вы_действительно_хотите_~n~установить_гидравлику_~n~на_свой_транспорт?"
			);

			for(new idx; idx < 4; idx ++) TextDrawHideForPlayer(playerid, sto_td_global[idx]);

			//ShowPlayerTuningButton(playerid);
		}
		if(clickedid == sto_td_global[12])
		{
			PI[playerid][P_TUNING_TYPE] = 3;

			PlayerTextDrawSetString(playerid, sto_td_player[0][playerid], "нитро");

			PlayerTextDrawSetString
			(
				playerid,
				sto_td_player[1][playerid],
				"выберите_нитро_для~n~_вашего_транспорта,_~n~используя_стрелки"
			);

			new nitro_amount[3] = {2, 5, 10};

			new tun_state = PI[playerid][P_TUNING_STATE];

			new bizzid = GetPVarInt(playerid,"CTObizzid");
			new till = BizzInfo[bizzid][bTill];

			new price;

			switch(tun_state)
			{
				case 1: price = till*80;
				case 2: price = till*150;
				case 3: price = till*300;
			}

			STRING_GLOBAL[0] = EOS;
			format
			(
				STRING_GLOBAL, sizeof STRING_GLOBAL,
				"балон_нитро:_%d~N~объем:_%d_л~n~стоимость:_%d_рублей", tun_state, nitro_amount[tun_state-1], price
			);
			PlayerTextDrawSetString(playerid, sto_td_player[2][playerid], STRING_GLOBAL);

			for(new idx; idx < 4; idx ++) TextDrawHideForPlayer(playerid, sto_td_global[idx]);
			for(new idx; idx < 2; idx ++) TextDrawShowForPlayer(playerid, sto_td_global[idx]);

			//ShowPlayerTuningSelect(playerid);
		}
		if(clickedid == sto_td_global[15])
		{
			PI[playerid][P_TUNING_STATE] = 1;
			AddVehicleComponent(GetPlayerVehicleID(playerid), g_tuning_disks[0][D_COMPONENT]);

			PI[playerid][P_TUNING_TYPE] = 4;

			PlayerTextDrawSetString(playerid, sto_td_player[0][playerid], "диски");

			PlayerTextDrawSetString
			(
				playerid,
				sto_td_player[1][playerid],
				"выберите_диски_для~n~вашего_транспорта,~n~используя_стрелки"
			);

			new tun_state = PI[playerid][P_TUNING_STATE];

			new bizzid = GetPVarInt(playerid,"CTObizzid");
			new till = BizzInfo[bizzid][bTill];

			AddVehicleComponent(GetPlayerVehicleID(playerid), g_tuning_disks[tun_state-1][D_COMPONENT]);

			STRING_GLOBAL[0] = EOS;
			format(STRING_GLOBAL, sizeof STRING_GLOBAL, "диски:_%d~N~название:_%s~n~стоимость:_%d_рублей", tun_state, g_tuning_disks[tun_state-1][D_NAME], till*g_tuning_disks[tun_state-1][D_PRICE]);
			PlayerTextDrawSetString(playerid, sto_td_player[2][playerid], STRING_GLOBAL);

			for(new idx; idx < 4; idx ++) TextDrawHideForPlayer(playerid, sto_td_global[idx]);
			for(new idx; idx < 2; idx ++) TextDrawShowForPlayer(playerid, sto_td_global[idx]);

			//ShowPlayerTuningSelect(playerid);
		}
		if(clickedid == sto_td_global[18])
		{
			PI[playerid][P_TUNING_TYPE] = 5;

			PlayerTextDrawSetString(playerid, sto_td_player[0][playerid], "винилы");

			PlayerTextDrawSetString
			(
				playerid,
				sto_td_player[1][playerid],
				"выберите_винилы_для~n~вашего_транспорта,~n~используя_стрелки"
			);

			new tun_state = PI[playerid][P_TUNING_STATE];

			new bizzid = GetPVarInt(playerid,"CTObizzid");
			new till = BizzInfo[bizzid][bTill];

			new price_paintjob[3] = {30, 35, 40};

			ChangeVehiclePaintjob(GetPlayerVehicleID(playerid), tun_state-1);

			STRING_GLOBAL[0] = EOS;
			format(STRING_GLOBAL, sizeof STRING_GLOBAL, "винилы:_%d~N~стоимость:_%d_рублей", tun_state, till*price_paintjob[tun_state-1]);
			PlayerTextDrawSetString(playerid, sto_td_player[2][playerid], STRING_GLOBAL);

			for(new idx; idx < 4; idx ++) TextDrawHideForPlayer(playerid, sto_td_global[idx]);
			for(new idx; idx < 2; idx ++) TextDrawShowForPlayer(playerid, sto_td_global[idx]);

			//ShowPlayerTuningSelect(playerid);
		}
		if(clickedid == sto_td_global[21])
		{
			PI[playerid][P_TUNING_TYPE] = 6;

			PlayerTextDrawSetString(playerid, sto_td_player[0][playerid], "ремонт");

			PlayerTextDrawSetString
			(
				playerid,
				sto_td_player[1][playerid],
				"вы_действительно_хотите_~n~отремонтировать_,~n~свой_транспорт?"
			);

			PlayerTextDrawSetString(playerid, sto_td_player[2][playerid], "стоимость:_1000 рублей");

			for(new idx; idx < 4; idx ++) TextDrawHideForPlayer(playerid, sto_td_global[idx]);

			//ShowPlayerTuningButton(playerid);
		}
		if(clickedid == sto_td_global[24])
		{
			PI[playerid][P_TUNING_TYPE] = 7;

			PlayerTextDrawSetString(playerid, sto_td_player[0][playerid], "улучш._двиг");

			PlayerTextDrawSetString
			(
				playerid,
				sto_td_player[1][playerid],
				"выберите_двигатель_для~n~вашего_транспорта,~n~используя_стрелки?"
			);

			new tun_state = PI[playerid][P_TUNING_STATE];

			PI[playerid][P_TUNING_STATE] = tun_state;

			STRING_GLOBAL[0] = EOS;
			format(STRING_GLOBAL, sizeof STRING_GLOBAL, "двигатель:_%s~N~прибавка_к_макс._скор.:_%d_км/ч~n~стоимость:_%d_млн._рублей", g_tuning_engine[tun_state-1][E_NAME], g_tuning_engine[tun_state-1][E_MAX_SPEED], g_tuning_engine[tun_state-1][E_PRICE]);
			PlayerTextDrawSetString(playerid, sto_td_player[2][playerid], STRING_GLOBAL);

			for(new idx; idx < 4; idx ++) TextDrawHideForPlayer(playerid, sto_td_global[idx]);
			for(new idx; idx < 2; idx ++) TextDrawShowForPlayer(playerid, sto_td_global[idx]);

			//ShowPlayerTuningSelect(playerid);
		}
		/* COMPLETE */


		if(PI[playerid][P_TUNING_TYPE] == 1)
		{
			if(clickedid == sto_td_global[2])
			{
				ShowPlayerDialog
				(
					playerid, DIALOG_STO_CHANGE_COLOR, DIALOG_STYLE_INPUT,
					"{FFCC00}Смена цвета",
					"{FFFFFF}Введите номер цвета:",
					"Далее", "Отмена"
				);

				SetPVarInt(playerid, "color_type", 1);
			}
			if(clickedid == sto_td_global[3])
			{
				ShowPlayerDialog
				(
					playerid, DIALOG_STO_CHANGE_COLOR, DIALOG_STYLE_INPUT,
					"{FFCC00}Смена цвета",
					"{FFFFFF}Введите номер цвета:",
					"Далее", "Отмена"
				);

				SetPVarInt(playerid, "color_type", 2);
			}
		}

		if(PI[playerid][P_TUNING_TYPE] == 3)
		{
			if(clickedid == sto_td_global[0])
			{
				new tun_state = PI[playerid][P_TUNING_STATE];

				if(tun_state == 1)
					tun_state = 3;
				else
					tun_state -= 1;

				PI[playerid][P_TUNING_STATE] = tun_state;

				new nitro_amount[3] = {2, 5, 10};

				new bizzid = GetPVarInt(playerid,"CTObizzid");
                new till = BizzInfo[bizzid][bTill];

				new price;

				switch(tun_state)
				{
					case 1: price = till*80;
					case 2: price = till*150;
					case 3: price = till*300;
				}

				STRING_GLOBAL[0] = EOS;
				format
				(
					STRING_GLOBAL, sizeof STRING_GLOBAL,
					"балон_нитро:_%d~N~объем:_%d_л~n~стоимость:_%d_рублей", tun_state, nitro_amount[tun_state-1], price
				);
				PlayerTextDrawSetString(playerid, sto_td_player[2][playerid], STRING_GLOBAL);
			}
			if(clickedid == sto_td_global[1])
			{
				new tun_state = PI[playerid][P_TUNING_STATE];

				if(tun_state == 3)
					tun_state = 1;
				else
					tun_state += 1;

				PI[playerid][P_TUNING_STATE] = tun_state;

				new nitro_amount[3] = {2, 5, 10};

				new bizzid = GetPVarInt(playerid,"CTObizzid");
                new till = BizzInfo[bizzid][bTill];

				new price;

				switch(tun_state)
				{
					case 1: price = till*80;
					case 2: price = till*150;
					case 3: price = till*300;
				}

				STRING_GLOBAL[0] = EOS;
				format
				(
					STRING_GLOBAL, sizeof STRING_GLOBAL,
					"балон_нитро:_%d~N~объем:_%d_л~n~стоимость:_%d_рублей", tun_state, nitro_amount[tun_state-1], price
				);
				PlayerTextDrawSetString(playerid, sto_td_player[2][playerid], STRING_GLOBAL);
			}
		}

		if(PI[playerid][P_TUNING_TYPE] == 4)
		{
			if(clickedid == sto_td_global[0])
			{
				new tun_state = PI[playerid][P_TUNING_STATE];

				new bizzid = GetPVarInt(playerid,"CTObizzid");
                new till = BizzInfo[bizzid][bTill];

				if(tun_state == 1)
					tun_state = 10;
				else
					tun_state -= 1;

				PI[playerid][P_TUNING_STATE] = tun_state;

				AddVehicleComponent(GetPlayerVehicleID(playerid), g_tuning_disks[tun_state-1][D_COMPONENT]);
				printf("tun_state: %d componentid %d", tun_state, g_tuning_disks[tun_state-1][D_COMPONENT]);

				STRING_GLOBAL[0] = EOS;
				format(STRING_GLOBAL, sizeof STRING_GLOBAL, "диски:_%d~N~название:_%s~n~стоимость:_%d_рублей", tun_state, g_tuning_disks[tun_state-1][D_NAME], till*g_tuning_disks[tun_state-1][D_PRICE]);
				PlayerTextDrawSetString(playerid, sto_td_player[2][playerid], STRING_GLOBAL);
			}
			if(clickedid == sto_td_global[1])
			{
				new tun_state = PI[playerid][P_TUNING_STATE];

				new bizzid = GetPVarInt(playerid,"CTObizzid");
                new till = BizzInfo[bizzid][bTill];

				if(tun_state == 10)
					tun_state = 1;
				else
					tun_state += 1;

				PI[playerid][P_TUNING_STATE] = tun_state;

				AddVehicleComponent(GetPlayerVehicleID(playerid), g_tuning_disks[tun_state-1][D_COMPONENT]);

				STRING_GLOBAL[0] = EOS;
				format(STRING_GLOBAL, sizeof STRING_GLOBAL, "диски:_%d~N~название:_%s~n~стоимость:_%d_рублей", tun_state, g_tuning_disks[tun_state-1][D_NAME], till*g_tuning_disks[tun_state-1][D_PRICE]);
				PlayerTextDrawSetString(playerid, sto_td_player[2][playerid], STRING_GLOBAL);
			}
		}

		if(PI[playerid][P_TUNING_TYPE] == 5)
		{
			if(clickedid == sto_td_global[0])
			{
				new tun_state = PI[playerid][P_TUNING_STATE];

				new bizzid = GetPVarInt(playerid,"CTObizzid");
                new till = BizzInfo[bizzid][bTill];

				new price_paintjob[3] = {30, 35, 40};

				if(tun_state == 1)
					tun_state = 3;
				else
					tun_state -= 1;

				PI[playerid][P_TUNING_STATE] = tun_state;

				ChangeVehiclePaintjob(GetPlayerVehicleID(playerid), tun_state-1);

				STRING_GLOBAL[0] = EOS;
				format(STRING_GLOBAL, sizeof STRING_GLOBAL, "винилы:_%d~N~стоимость:_%d_рублей", tun_state, till*price_paintjob[tun_state-1]);
				PlayerTextDrawSetString(playerid, sto_td_player[2][playerid], STRING_GLOBAL);
			}
			if(clickedid == sto_td_global[1])
			{
				new tun_state = PI[playerid][P_TUNING_STATE];

				new bizzid = GetPVarInt(playerid,"CTObizzid");
                new till = BizzInfo[bizzid][bTill];

				new price_paintjob[3] = {30, 35, 40};

				if(tun_state == 3)
					tun_state = 1;
				else
					tun_state += 1;

				PI[playerid][P_TUNING_STATE] = tun_state;

				ChangeVehiclePaintjob(GetPlayerVehicleID(playerid), tun_state-1);

				STRING_GLOBAL[0] = EOS;
				format(STRING_GLOBAL, sizeof STRING_GLOBAL, "винилы:_%d~N~стоимость:_%d_рублей", tun_state, till*price_paintjob[tun_state-1]);
				PlayerTextDrawSetString(playerid, sto_td_player[2][playerid], STRING_GLOBAL);
			}
		}
		if(PI[playerid][P_TUNING_TYPE] == 7)
		{
			if(clickedid == sto_td_global[0])
			{
				new tun_state = PI[playerid][P_TUNING_STATE];

				if(tun_state == 1)
					tun_state = 3;
				else
					tun_state -= 1;

				PI[playerid][P_TUNING_STATE] = tun_state;

				STRING_GLOBAL[0] = EOS;
				format(STRING_GLOBAL, sizeof STRING_GLOBAL, "двигатель:_%s~N~прибавка_к_макс._скор.:_%d_км/ч~n~стоимость:_%d_млн._рублей", g_tuning_engine[tun_state-1][E_NAME], g_tuning_engine[tun_state-1][E_MAX_SPEED], g_tuning_engine[tun_state-1][E_PRICE]);
				PlayerTextDrawSetString(playerid, sto_td_player[2][playerid], STRING_GLOBAL);
			}
			if(clickedid == sto_td_global[1])
			{
				new tun_state = PI[playerid][P_TUNING_STATE];

				if(tun_state == 3)
					tun_state = 1;
				else
					tun_state += 1;

				PI[playerid][P_TUNING_STATE] = tun_state;

				STRING_GLOBAL[0] = EOS;
				format(STRING_GLOBAL, sizeof STRING_GLOBAL, "двигатель:_%s~N~прибавка_к_макс._скор.:_%d_км/ч~n~стоимость:_%d_млн._рублей", g_tuning_engine[tun_state-1][E_NAME], g_tuning_engine[tun_state-1][E_MAX_SPEED], g_tuning_engine[tun_state-1][E_PRICE]);
				PlayerTextDrawSetString(playerid, sto_td_player[2][playerid], STRING_GLOBAL);
			}
		}

		if(clickedid == sto_td_global[25])
		{
			switch(PI[playerid][P_TUNING_TYPE])
			{
				case 1:
				{
					new i = GetPVarInt(playerid,"CTObizzid");
					new till = BizzInfo[i][bTill];
					new vehicleid = GetPlayerVehicleID(playerid);
					if(GetMoney(playerid) < till*5) return SendMess(playerid, MSG_NOT_MONEY);
					GiveMoney(playerid, -till*5);
					if(BizzInfo[i][bProduct] > 0)
					{
						BizzInfo[i][bMoney] += till*5;
						BizzInfo[i][bProduct] -= 5;
						BizzPay[i] += till*5;
						MysqlUpdateBizzInt(i, "money", BizzInfo[i][bMoney]);
						MysqlUpdateBizzInt(i, "product", BizzInfo[i][bProduct]);
					}
					g_vehicle[vehicleid][veh_color][0] = PI[playerid][P_COLOR][0];
					g_vehicle[vehicleid][veh_color][1] = PI[playerid][P_COLOR][1];
					ChangeVehicleColor(vehicleid, PI[playerid][P_COLOR][0], PI[playerid][P_COLOR][1]);

					STRING_GLOBAL[0] = EOS;

					format(STRING_GLOBAL, sizeof STRING_GLOBAL, "UPDATE ownable_cars SET color_1=%d, color_2=%d WHERE id=%d", PI[playerid][P_COLOR][0], PI[playerid][P_COLOR][1], GetVehicleData(vehicleid, veh_sql_id));
					mysql_query(dbHandle, STRING_GLOBAL);

					SendClientMessage(playerid, C_OSNOV, "Вы успешно перекрасили свой транспорт");
				}
				case 2:
				{
					if(GetVehicleComponentInSlot(GetPlayerVehicleID(playerid), CARMODTYPE_HYDRAULICS) != 1087)
					{
						new i = GetPVarInt(playerid,"CTObizzid");
						new till = BizzInfo[i][bTill];

						if(GetMoney(playerid) < till*100) return SendMess(playerid, MSG_NOT_MONEY);
						GiveMoney(playerid, -till*100);
						if(BizzInfo[i][bProduct] > 0)
						{
							BizzInfo[i][bMoney] += till*100;
							BizzInfo[i][bProduct] -= 100;
							BizzPay[i] += till*100;
							MysqlUpdateBizzInt(i, "money", BizzInfo[i][bMoney]);
							MysqlUpdateBizzInt(i, "product", BizzInfo[i][bProduct]);
						}
						SendClientMessage(playerid, C_OSNOV, "Вы успешно установили гидравлику на свой транспорт");
						AddVehicleComponent(GetPlayerVehicleID(playerid), 1087);
					}
					else
					{
						SendClientMessage(playerid, C_OSNOV, "Вы успешно удалили гидравлику со своего транспорта");
						RemoveVehicleComponent(GetPlayerVehicleID(playerid), 1087);
					}
					SaveVehicleTuning(playerid);
				}
				case 3:
				{
					new tun_state = PI[playerid][P_TUNING_STATE]-1;

					new i = GetPVarInt(playerid,"CTObizzid");
					new till = BizzInfo[i][bTill];

					new nitro_names[3][10] = {"Nitro x2", "Nitro x5", "Nitro x10"};
					new nitro_component[3] = {1009, 1008, 1010};
					new nitro_price[3] = {80, 150, 300};

					if(GetMoney(playerid) < till*nitro_price[tun_state]) return SendMess(playerid, MSG_NOT_MONEY);
					GiveMoney(playerid, -till*nitro_price[tun_state]);
					if(BizzInfo[i][bProduct] > 0)
					{
						BizzInfo[i][bMoney] += till*80;
						BizzInfo[i][bProduct] -= 80;
						BizzPay[i] += till*80;
						MysqlUpdateBizzInt(i, "money", BizzInfo[i][bMoney]);
						MysqlUpdateBizzInt(i, "product", BizzInfo[i][bProduct]);
					}
					STRING_GLOBAL[0] = EOS;
					format(STRING_GLOBAL, sizeof STRING_GLOBAL, "Вы успешно установили на свой транспорт %s за %d рублей", nitro_names[tun_state], till*nitro_price[tun_state]);
					SendClientMessage(playerid, C_OSNOV, STRING_GLOBAL);

					AddVehicleComponent(GetPlayerVehicleID(playerid), nitro_component[tun_state]);
					SaveVehicleTuning(playerid);

					PI[playerid][P_TUNING_STATE] = 1;
				}
				case 4:
				{
					new tun_state = PI[playerid][P_TUNING_STATE];

					new i = GetPVarInt(playerid,"CTObizzid");
					new till = BizzInfo[i][bTill];

					if(GetMoney(playerid) < till*g_tuning_disks[tun_state-1][D_PRICE]) return SendMess(playerid, MSG_NOT_MONEY);
					GiveMoney(playerid, -till*g_tuning_disks[tun_state-1][D_PRICE]);

					if(BizzInfo[i][bProduct] > 0)
					{
						BizzInfo[i][bMoney] += till*g_tuning_disks[tun_state-1][D_PRICE];
						BizzInfo[i][bProduct] -= g_tuning_disks[tun_state-1][D_PRODUCT];
						BizzPay[i] += till*g_tuning_disks[tun_state-1][D_PRICE];
						MysqlUpdateBizzInt(i, "money", BizzInfo[i][bMoney]);
						MysqlUpdateBizzInt(i, "product", BizzInfo[i][bProduct]);
					}
					STRING_GLOBAL[0] = EOS;
					format(STRING_GLOBAL, sizeof STRING_GLOBAL, "Вы успешно установили диски %s на свой транспорт за %d рублей", g_tuning_disks[tun_state-1][D_NAME], till*g_tuning_disks[tun_state-1][D_PRICE]);
					SendClientMessage(playerid, C_OSNOV, STRING_GLOBAL);

					SaveVehicleTuning(playerid);

					PI[playerid][P_TUNING_STATE] = 1;
				}
				case 5:
				{
					new tun_state = PI[playerid][P_TUNING_STATE];
					new vehicleid = GetPlayerVehicleID(playerid);
					new i = GetPVarInt(playerid,"CTObizzid");
					new till = BizzInfo[i][bTill];

					new price_paintjob[3] = {30, 35, 40};

					if(GetMoney(playerid) < till*price_paintjob[tun_state-1]) return SendMess(playerid, MSG_NOT_MONEY);
					GiveMoney(playerid, -till*price_paintjob[tun_state-1]);

					if(BizzInfo[i][bProduct] > 0)
					{
						BizzInfo[i][bMoney] += till*price_paintjob[tun_state-1];
						BizzInfo[i][bProduct] -= price_paintjob[tun_state-1];
						BizzPay[i] += till*price_paintjob[tun_state-1];
						MysqlUpdateBizzInt(i, "money", BizzInfo[i][bMoney]);
						MysqlUpdateBizzInt(i, "product", BizzInfo[i][bProduct]);
					}
					STRING_GLOBAL[0] = EOS;
					format(STRING_GLOBAL, sizeof STRING_GLOBAL, "Вы успешно установили покрасочную работу %d на свой транспорт за %d рублей", tun_state, till*price_paintjob[tun_state-1]);
					SendClientMessage(playerid, C_OSNOV, STRING_GLOBAL);

					SetVehicleData(vehicleid, veh_paintjob, tun_state-1);

					SaveVehicleTuning(playerid);

					PI[playerid][P_TUNING_STATE] = 1;
				}
				case 6:
				{
					new i = GetPVarInt(playerid,"CTObizzid");
					if(GetMoney(playerid) < 1000) return SendMess(playerid, MSG_NOT_MONEY);
					GiveMoney(playerid, -1000);
					new vehicleid = GetPlayerVehicleID(playerid);
					g_vehicle[vehicleid][veh_wear] += 1.0; // 0.1 процент
					if(BizzInfo[i][bProduct] > 0)
					{
						BizzInfo[i][bMoney] += 1000;
						BizzInfo[i][bProduct] -= 100;
						BizzPay[i] += 1000;
						MysqlUpdateBizzInt(i, "money", BizzInfo[i][bMoney]);
						MysqlUpdateBizzInt(i, "product", BizzInfo[i][bProduct]);
						RepairVehicle(GetPlayerVehicleID(playerid));
					}
					RepairVehicle(GetPlayerVehicleID(playerid));
					SetVehicleHealth(GetPlayerVehicleID(playerid), 1000.0);
					SendClientMessage(playerid, C_OSNOV, "Вы успешно отремонтировали свой транспорт за 1000 рублей");
				}
				case 7:
				{
					new tun_state = PI[playerid][P_TUNING_STATE];
					new vehicleid = GetPlayerVehicleID(playerid);

					if(g_vehicle[vehicleid][veh_improve] == tun_state)
						return SendClientMessage(playerid, C_RED, "У Вас уже куплено это улучшение");

					new i = GetPVarInt(playerid,"CTObizzid");
					if(GetMoney(playerid) < g_tuning_engine[tun_state-1][E_PRICE]*1000000) return SendMess(playerid, MSG_NOT_MONEY);
					GiveMoney(playerid, -g_tuning_engine[tun_state-1][E_PRICE]*1000000);
					if(BizzInfo[i][bProduct] > 0)
					{
						BizzInfo[i][bMoney] += g_tuning_engine[tun_state-1][E_PRICE]*1000000;
						BizzInfo[i][bProduct] -= 500;
						BizzPay[i] += g_tuning_engine[tun_state-1][E_PRICE]*1000000;
						MysqlUpdateBizzInt(i, "money", BizzInfo[i][bMoney]);
						MysqlUpdateBizzInt(i, "product", BizzInfo[i][bProduct]);
					}

					PI[playerid][P_TYPE_SPEED] = 0;

					SetVehicleData(vehicleid, veh_improve, tun_state);

					STRING_GLOBAL[0] = EOS;
					format(STRING_GLOBAL, sizeof STRING_GLOBAL, "UPDATE ownable_cars SET engine=%d WHERE id=%d", tun_state, g_vehicle[vehicleid][veh_sql_id]);
					mysql_query(dbHandle, STRING_GLOBAL);

					STRING_GLOBAL[0] = EOS;
					format(STRING_GLOBAL, sizeof STRING_GLOBAL, "Вы успешно установили двигатель %s на свой транспорт за %d рублей", g_tuning_engine[tun_state-1][E_NAME], g_tuning_engine[tun_state-1][E_PRICE]*1000000);
					SendClientMessage(playerid, C_OSNOV, STRING_GLOBAL);
				}
			}
		}
	}

 

 

Share this post


Link to post

0 answers to this question

There have been no answers to this question yet

Guest
This topic is now closed to further replies.
Sign in to follow this  
Followers 0
  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • Tappert
      By Tappert
      Диалог команды работает и отображается, после выбора любой должности пустота
      CMD:ahelp(playerid) {     if (admin_level[playerid] < 1 || !admin_logged[playerid]) return 1;     SPD(playerid, 1234, DIALOG_STYLE_LIST, ""c_server"Команды администрации","\         "c_server"1 "c_white"- Помощник администрации\n\         "c_server"}2 "c_white"- Стажёр модерации\n\         "c_server"3 "c_white"- Младший администратор\n\         "c_server"4 "c_white"- Опытный администратор\n\         "c_server"5 "c_white"- Куратор сервера\n\         "c_server"6 "c_white"- Заместитель главы администрации\n\         "c_server"7 "c_white"- Глава администрации\n\         "c_server"8 "c_white"- Куратор игрового процесса\n\         "c_server"9 "c_white"- Директор проекта\n\         "c_server"10 "c_white"- Создатель", "Выбрать", "Закрыть");          return 1; }         case 9992: return pc_cmd_leaders(playerid, "");         case 9993: return pc_cmd_offleaders(playerid, "");         case 9996: return MenuAtms(playerid); // основной банковский счет         case 9997: return OprDialog(playerid); // система счетов банк         case 9998: return BankDialog(playerid); // банкдиалог         case 9999: return pc_cmd_menu(playerid, ""); // /mm         case 1234:         {         if (!response) return 1;         switch (listitem)         {                 case 0:                 {                     if (admin_level[playerid] < 1 || !admin_logged[playerid])                     {                         SendClientMessage(playerid, col_grey, "Вы не достигли такого уровня.");                         return 1;                     }                                          SPD(playerid, 1234, DIALOG_STYLE_MSGBOX, "", "\                     "c_server"/sc"c_white" — чат игровых помощников\n\                     "c_server"/alogin"c_white" — авторизоваться в панели администратора\n\                     "c_server"/aexit"c_white" — выйти из панели администратора\n\                     "c_server"/ans"c_white" — ответить игроку\n\                     "c_server"/srep"c_white" — список вопросов в порядке живой очереди\n\                     "c_server"/admins"c_white" — список администрации в сети", "Закрыть", "");                 }                 case 1:                 {                     if (admin_level[playerid] < 2 || !admin_logged[playerid])                     {                         SendClientMessage(playerid, col_grey, "Вы не достигли такого уровня.");                         return 1;                     }                          SPD(playerid, 1234, DIALOG_STYLE_MSGBOX, "", "\                     "c_server"/a"c_white" — чат администрации\n\                     "c_server"/arep"c_white" — список жалоб в порядке живой очереди\n\                     "c_server"/sp | /offsp"c_white" — начать / завершить слежку за игроком\n\                     "c_server"/pstats | /offpstats"c_white" — посмотреть статистику игрока\n\                     "c_server"/frz"c_white" — заморозить / разморозить игрока\n\                     "c_server"/ajail"c_white" — посадить игрока в тюрьму (< 30)\n\                     "c_server"/mute"c_white" — заблокировать чат игроку (< 60)\n\                     "c_server"/spawn"c_white" — отправить игрока на место возрождение\n\                     "c_server"/kick"c_white" — отключить игрока от сервера\n\                     "c_server"/hp"c_white" — восстановить здоровье игроку\n\                     "c_server"/okay"c_white" — подтвердить изменение nonRP ник\n\                     "c_server"/nookay"c_white" — отменить изменение nonRP ника", "Закрыть", "");                 }                 case 2:                 {                     if (admin_level[playerid] < 3 || !admin_logged[playerid])                     {                         SendClientMessage(playerid, col_grey, "Вы не достигли такого уровня.");                         return 1;                     }                          SPD(playerid, 1234, DIALOG_STYLE_MSGBOX, "", "\                     "c_server"/ban"c_white" — заблокировать аккаунт игроку (< 10)\n\                     "c_server"/warn"c_white" — выдать предупреждение игроку\n\                     "c_server"/ajail"c_white" — посадить игрока в тюрьму (< 120)\n\                     "c_server"/mute"c_white" — заблокировать чат игроку (< 120)\n\                     "c_server"/goto"c_white" — телепортироватся к игроку\n\                     "c_server"/gethere"c_white" — телепортировать игрока к себе\n\                     "c_server"/fix"c_white" — починить транспорт (ID)\n\                     "c_server"/gotcar"c_white" — телепортироваться к транспорту\n\                     "c_server"/getcar"c_white" — телепортировать транспорт к себе\n\                     "c_server"/recar"c_white" — заспавнить транспорт (ID)\n\                     "c_server"/skick"c_white" — тихо отключить игрока от сервера", "Закрыть", "");                 }                 case 3:                 {                     if (admin_level[playerid] < 4 || !admin_logged[playerid])                     {                         SendClientMessage(playerid, col_grey, "Вы не достигли такого уровня.");                         return 1;                     }                     SPD(playerid, 1234, DIALOG_STYLE_MSGBOX, "", "\                     "c_server"/ban"c_white" — заблокировать аккаунт игроку (< 30)\n\                     "c_server"/fip"c_white" — имеющиеся аккаунты по IP адресу\n\                     "c_server"/banip"c_white" — заблокировать IP адрес\n\                     "c_server"/unwarn"c_white" — снять предупреждение с игрока\n\                     "c_server"/unmute"c_white" — разблокировать чат игроку\n\                     "c_server"/unajail"c_white" — выпустить игрока из тюрьмы\n\                     "c_server"/slap"c_white" — подкинуть игрока\n\                     "c_server"/veh"c_white" — создать транспорт\n\                     "c_server"/delveh"c_white" — удалить созданный транспорт\n\                     "c_server"/delvehall"c_white" — удалить весь созданный транспорт\n\                     "c_server"/plveh"c_white" — выдать временный транспорт игроку\n\                     "c_server"/getip"c_white" — узнать IP игрока\n\                     "c_server"/offmute"c_white" — заблокировать чат игроку в оффлайне\n\                     "c_server"/offajail"c_white" — посадить игрока в тюрьму в оффлайне\n\                     "c_server"/offwarn"c_white" — выдать предупруждение игроку в оффлайне\n\                     "c_server"/offban"c_white" — заблокировать аккаунт в оффлайне\n\                     "c_server"/spveh"c_white" — заспавнить транспорт в радиусе\n\                     "c_server"/spawncars"c_white" — заспавнить весь свободный транспорт", "Закрыть", "");                 }                 case 4:                 {                     if (admin_level[playerid] < 5 || !admin_logged[playerid])                     {                         SendClientMessage(playerid, col_grey, "Вы не достигли такого уровня.");                         return 1;                     }                     SPD(playerid, 1234, DIALOG_STYLE_MSGBOX, "", "\                     "c_server"/aad"c_white" — OOC сообщение для игроков\n\                     "c_server"/skin"c_white" — выдать временную одежду игроку\n\                     "c_server"/setskin"c_white" — выдать постоянную одежду игроку\n\                     "c_server"/templeader"c_white" — назначить себя временным руководителем\n\                     "c_server"/getonline"c_white" — информация онлайна игрока\n\                     "c_server"/unban"c_white" — разблокировать аккаунт\n\                     "c_server"/unbanip"c_white" — разблокировать IP адрес\n\                     "c_server"/setfaction"c_white" — принять игрока в организацию\n\                     "c_server"/infoip"c_white" — информация о IP адресе\n\                     "c_server"/getfake"c_white" — поиск информации по IP адресу\n\                     "c_server"/setvw"c_white" — переместиться в другой виртуальный мир\n\                     "c_server"/setint"c_white" — переместиться в другой интерьер", "Закрыть", "");                 }                 case 5:                 {                     if (admin_level[playerid] < 6 || !admin_logged[playerid])                     {                         SendClientMessage(playerid, col_grey, "Вы не достигли такого уровня.");                         return 1;                     }                     SPD(playerid, 1234, DIALOG_STYLE_MSGBOX, "", "\                     "c_server"/givegun"c_white" — выдать оружие игроку\n\                     "c_server"/settime"c_white" — изменить время на сервере\n\                     "c_server"/agl"c_white" — выдать лицензии игроку\n\                     "c_server"/fullgwh"c_white" — пополнить склады всем организациям\n\                     "c_server"/auninvite"c_white" — уволить игрока из организации", "Закрыть", "");                 }                 case 6:                 {                     if (admin_level[playerid] < 7 || !admin_logged[playerid])                     {                         SendClientMessage(playerid, col_grey, "Вы не достигли такого уровня.");                         return 1;                     }                     SPD(playerid, 1234, DIALOG_STYLE_MSGBOX, "", "\                     "c_server"/makeadmin"c_white" — назначить администратора\n\                     "c_server"/unadmin"c_white" — снять администратора\n\                     "c_server"/createpromo"c_white" — создать новый промокод\n\                     "c_server"/promo"c_white" — список доступных промокодов\n\                     "c_server"/ahouse"c_white" — телепортироваться к дому\n\                     "c_server"/abiz"c_white" — телепортироваться к бизнесу\n\                     "c_server"/afuel"c_white" — телепортироваться к заправке\n\                     "c_server"/freezepanel"c_white" — статусы заморозки банд\n\                     "c_server"/delacc"c_white" — удалить аккаунт", "Закрыть", "");                 }                 case 7:                 {                     if (admin_level[playerid] < 8 || !admin_logged[playerid])                     {                         SendClientMessage(playerid, col_grey, "Вы не достигли такого уровня.");                         return 1;                     }                     SPD(playerid, 1234, DIALOG_STYLE_MSGBOX, "", "\                     "c_server"/alog"c_white" — действия администратора\n\                     "c_server"/addnotify"c_white" — добавить сообщение для игрока (при входе)\n\                     "c_server"/asellhouse"c_white" — продать дом государству\n\                     "c_server"/asellbiz"c_white" — продать бизнес государству\n\                     "c_server"/asellfuel"c_white" — продать запраку государству\n\                     "c_server"/bonus"c_white" — панель управления бонусами\n\                     "c_server"/setprod"c_white" — установить всем бизнесам 20,000 продуктов\n\                     "c_server"/setbizname"c_white" — изменить название бизнеса\n\                     "c_server"/sptext"c_white" — написать сообщение от лица игрока", "Закрыть", "");                 }                 case 8:                 {                     if (admin_level[playerid] < 9 || !admin_logged[playerid])                     {                         SendClientMessage(playerid, col_grey, "Вы не достигли такого уровня.");                         return 1;                     }                     SPD(playerid, 1234, DIALOG_STYLE_MSGBOX, "", "\                     "c_server"/saveall"c_white" — сохранить все данные\n\                     "c_server"/payday"c_white" — запустить PayDay\n\                     "c_server"/setlevel"c_white" — установить игроку уровень", "Закрыть", "");                 }                 case 9:                 {                     if (admin_level[playerid] < 10 || !admin_logged[playerid])                     {                         SendClientMessage(playerid, col_grey, "Вы не достигли такого уровня.");                         return 1;                     }                     SPD(playerid, 1234, DIALOG_STYLE_MSGBOX, "", "\                     "c_server"/restart"c_white" — перезагрузить сервер\n\                     "c_server"/anticheat"c_white" — настройки античита\n\                     "c_server"/givemoney"c_white" — выдать игровую валюту игроку\n\                     "c_server"/givedonate"c_white" — выдать донат рубли игроку\n\                     "c_server"/giveoskolok"c_white" — выдать осколки тайника игроку", "Закрыть", "");                 }                            }         }  
    • Владислав2
      By Владислав2
      Всем привет, я вставляю команду 

      CMD:rep(playerid, params[])
      {     if(!GetPlayerAdminEx(playerid)) return SendClientMessage(playerid, 0xFFFFFFFF, "{FF0000}| {FFFFFF}Доступно только администрации проекта!");     if(!g_report_created) return SendClientMessage(playerid, 0xCECECEFF, "{FF0000}| {FFFFFF}Нет обращений для проверки!");     new fmt_text[360],         bool: rep_is_found;     for(new idx; idx < g_report_created; idx ++)     {         if(GetReportData(idx, REP_EDIT) || GetReportData(idx, REP_CREATOR) == INVALID_PLAYER_ID) continue;         format         (             fmt_text, sizeof fmt_text,             "{FFFF00}|{FFFFFF}Отправитель: {FFFF00}%s[%d]\n\n{FFFF00}|{FFFFFF}Содержимое: {FFFF00}%s \n\n"\             "{FFFFFF}Вам необходимо сформулировать, а затем ввести ответ на\n"\             "жалобу игрока в диалоговое поле ниже.",             GetPlayerNameEx(GetReportData(idx, REP_CREATOR)), GetReportData(idx, REP_CREATOR), GetReportData(idx, REP_TEXT)         );         Dialog(playerid, DIALOG_REPORT_EDIT, DIALOG_STYLE_INPUT, "{EB4C42}"SERVER_NAME" {FFFFFF}| Жалобы", fmt_text, "Далеее", "Отмена");         SetReportData(idx, REP_EDIT, true);         SetPVarInt(playerid, "report_id", idx);         rep_is_found = true;         break;     }     if(!rep_is_found) return SendClientMessage(playerid, 0xCECECEFF, "{FF0000}| {FFFFFF}Нет актуальных обращений для рассмотрения!");     return 1; } И после у меня появляются варнинги:

      error 017: undefined symbol "g_report_created"
      error 017: undefined symbol "g_report"
      error 017: undefined symbol "g_report_created"
      error 001: expected token: ";", but found "]"

      Можете помочь, как убрать ошибки?