Вопросы

edikzver
Свой человек

Доброго времени суток,дошли руки до автошколы и обнаружился баг. (Очень много теста извиняйте если что )9_9

В поиске была подобная тема,у меня такая же пролема,но код другой,вообщем мне не помогло:D

Теперь конкретнее,при сдаче на права я сначала сдаю тест,после сдачи теста меня отправляет на улицу,где я должен сесть в машину для здачи на права.

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

Вообщем,при выходе на улицу я сажусь в авто,и нет меток куда мне нужно двигаться,но при выходе из машины пишит мол у вас 15 секунд что бы вернутся в машину.

Опять же хотелось бы подметить что подобная ситуация повторяется даже в том случае если я сяду в любой другой транспорт (наземный) ,Мопеды,да без разницы во что сесть.

Так же с воздушным транспортом такая же проблема(водный не пробывал но скорее всего тоже самое)

Простите за столько много текста,кому то может и лень будет читать,но я постарался более детально описать проблему,и всё её ньансы.

Теперь к коду:

===Диалог где меня отправляет на улицу 

	case D_JOB+43:
	    {
	        if(!response) return 1;
			if(GetMoney(playerid) < 600) return SendClientMessage(playerid, COLOR_GREY, ""cER"Недостаточно средств!");
			SendClientMessage(playerid, COLOR_BLUE, ""cPS"Поздравляем, Вы сдали тест");
			SendClientMessage(playerid, COLOR_BLUE, ""cPS"Выходите во двор и садитесь в свободный транспорт");
			SetPVarInt(playerid, "DrivingTest", 1);
			TransferMoney(playerid, -1, 600);
			pPressed[playerid] = 0;
			UseGPS[playerid] = true;
			for(new i; i < 3; i++) TextDrawShowForPlayer(playerid, GPSEnabled[i]);
    		DisablePlayerRaceCheckpoint(playerid);
			SetPlayerRaceCheckpoint(playerid,1,680.3998,435.0675,12.0000,0.0,0.0,0.0,5.0);
			return 1;
	    }

===== Диалог который по логике должен отправить меня в путь :) (тут все три,Наземный,воздушный и Водный)

				for(new v = 1; v <= TOTALVEH; v++)
				{
					if(vehicleid == VehInfo[v][vVehicle])
					{
						if(VehInfo[v][vFraction] == TEAM_AUTOSCHOOL && GetPVarInt(playerid, "DrivingTest") > 0
						&& VehInfo[v][vVehicle] == vehicleid && (v >= 1 && v <= 3 || v >= 103 && v <= 105))
						{
						    if(UseGPS[playerid])
							{
						    	DisablePlayerRaceCheckpoint(playerid);
						    	UseGPS[playerid] = false;
						    	for(new i; i < 3; i++) TextDrawHideForPlayer(playerid, GPSEnabled[i]);
							}
							SendClientMessage(playerid, COLOR_BLUE, ""cPS"Следуйте по чекпоинтам, соблюдая правила дорожного движения");
       						ShowPlayerDialog(playerid, D_NULL, 0, " ", "\n\n{ffffff}Ваша задача следовать по чекпоинтам. Вперед\n\n", "Закрыть", "");
							new i = pPressed[playerid];
							SetPlayerRaceCheckpoint(playerid,0,DrivingTest[i][0],DrivingTest[i][1],DrivingTest[i][2],DrivingTest[i][3],DrivingTest[i][4],DrivingTest[i][5],5.0);
						}
						else if(VehInfo[v][vFraction] == TEAM_AUTOSCHOOL && GetPVarInt(playerid, "FlyTest") > 0
						&& VehInfo[v][vVehicle] == vehicleid && (v >= 6 && v <= 6))
						{
						    if(UseGPS[playerid])
							{
						    	DisablePlayerRaceCheckpoint(playerid);
						    	UseGPS[playerid] = false;
						    	for(new i; i < 3; i++) TextDrawHideForPlayer(playerid, GPSEnabled[i]);
							}
						    SendClientMessage(playerid, COLOR_BLUE, ""cPS"Следуйте по чекпоинтам, соблюдая правила полёта");
   						 	ShowPlayerDialog(playerid, D_NULL, 0, " ", "\n\n{ffffff}Ваша задача следовать по чекпоинтам. Вперед\n\n", "Закрыть", "");
							new i = pPressed[playerid];
							SetPlayerRaceCheckpoint(playerid,3,FlyTest[i][0],FlyTest[i][1],FlyTest[i][2],FlyTest[i][3],FlyTest[i][4],FlyTest[i][5],5.0);
						}
						else if(VehInfo[v][vFraction] == TEAM_AUTOSCHOOL && GetPVarInt(playerid, "WaterTest") > 0
						&& VehInfo[v][vVehicle] == vehicleid && (v >= 4 && v <= 5))
						{
						    if(UseGPS[playerid])
							{
						    	DisablePlayerRaceCheckpoint(playerid);
						    	UseGPS[playerid] = false;
						    	for(new i; i < 3; i++) TextDrawHideForPlayer(playerid, GPSEnabled[i]);
							}
						    SendClientMessage(playerid, COLOR_BLUE, ""cPS"Следуйте по чекпоинтам, соблюдая правила движения");
   						 	ShowPlayerDialog(playerid, D_NULL, 0, " ", "\n\n{ffffff}Ваша задача следовать по чекпоинтам. Вперед\n\n", "Закрыть", "");
							new i = pPressed[playerid];
							if(!GetPVarInt(playerid, "WaterTestTimeOn")) SetPVarInt(playerid, "WaterTestTimeOn", 1);
							SetPlayerRaceCheckpoint(playerid,0,WaterTest[i][0],WaterTest[i][1],WaterTest[i][2],WaterTest[i][3],WaterTest[i][4],WaterTest[i][5],5.0);
						}

 

 

 

 

 

Поделиться сообщением


Ссылка на сообщение

6 ответов на этот вопрос

  • 0
edikzver
Свой человек

Проблема решена всем спасибо)

Решена грубым но рабочим способом :dance:

Вырезал с другого мода,с аналогично автошколой и всё работает B|

Поделиться сообщением


Ссылка на сообщение
  • 0
edikzver
Свой человек

@Talex Да потом выйдете во двор там Maркер у машин на него иду он пропадает и всё (и пишит мол вы добрались до нужного места) ну вообщем как GPS

 

Поделиться сообщением


Ссылка на сообщение
  • 0
edikzver
Свой человек

@Talex 

DrivingTest

	if(GetPVarInt(playerid, "DrivingTest"))
	{
		DeletePVar(playerid, "DrivingTest");
		DeletePVar(playerid, "DrivingTestHealth");
		DeletePVar(playerid, "DrivingTestError");
		SendClientMessage(playerid, COLOR_RED, ""cER"Вы провалили экзамен на управление наземным транспортом");
	}
else if(areaid == AreaInfo[arArhTest] && player_state == PLAYER_STATE_ONFOOT)
	{
		if(GetPVarInt(playerid, "DrivingTest")) return ShowPlayerDialog(playerid, D_NULL, 0, " ", "\
		{ffffff}Вы уже сдаете экзамен на управление наземным транспортом!", "Закрыть", "");
		else if(GetPVarInt(playerid, "FlyTest")) return ShowPlayerDialog(playerid, D_NULL, 0, " ", "\
		{ffffff}Вы уже сдаете экзамен на управление воздушным транспортом!", "Закрыть", "");
		else if(GetPVarInt(playerid, "WaterTest")) return ShowPlayerDialog(playerid, D_NULL, 0, " ", "\
		{ffffff}Вы уже сдаете экзамен на управление водным транспортом!", "Закрыть", "");
		
		new string[256], status[16];
        switch(LP4[0])
        {
			case 0: status = "{FF0000}Закрыт";
			case 1: status = "{63BD4E}Открыт";
		}
	    format(string, sizeof(string), "\
			{ffffff}1. Управление наземным транспортом\t{"#cSV"}(600р)\n\
			2. Управление воздушным транспортом\t{"#cSV"}(6000р)\n\
			3. Управление водным транспортом\t\t{"#cSV"}(4000р)\n\
            4. Набор в организацию Автошкола\t\t%s", status);
		ShowPlayerDialog(playerid, D_JOB+42, 2, "{"#cSV"}Автошкола г.Арзамас", string, "Принять", "Отмена");
	}
case 1: //Игрок пешком (можно писать PLAYER_STATE_ONFOOT)
		{
			KillTimer(STimer[playerid]);
			HideSpeedometer(playerid);
			if(GetPVarInt(playerid, "DrivingTest"))
			{
				SendClientMessage(playerid, COLOR_RED, ""cER"У вас есть 15 секунд, чтобы вернуться");
				DisablePlayerRaceCheckpoint(playerid);
				DrivingTestTime[playerid] = 15;
			}
for(new v = 1; v <= TOTALVEH; v++)
				{
					if(vehicleid == VehInfo[v][vVehicle])
					{
						if(VehInfo[v][vFraction] == TEAM_AUTOSCHOOL && GetPVarInt(playerid, "DrivingTest") > 0
						&& VehInfo[v][vVehicle] == vehicleid && (v >= 1 && v <= 3 || v >= 103 && v <= 105))
						{
						    if(UseGPS[playerid])
							{
						    	DisablePlayerRaceCheckpoint(playerid);
						    	UseGPS[playerid] = false;
						    	for(new i; i < 3; i++) TextDrawHideForPlayer(playerid, GPSEnabled[i]);
							}
							SendClientMessage(playerid, COLOR_BLUE, ""cPS"Следуйте по чекпоинтам, соблюдая правила дорожного движения");
       						ShowPlayerDialog(playerid, D_NULL, 0, " ", "\n\n{ffffff}Ваша задача следовать по чекпоинтам. Вперед\n\n", "Закрыть", "");
							new i = pPressed[playerid];
							SetPlayerRaceCheckpoint(playerid,0,DrivingTest[i][0],DrivingTest[i][1],DrivingTest[i][2],DrivingTest[i][3],DrivingTest[i][4],DrivingTest[i][5],5.0);
						}
if(VehInfo[v][vFraction] != PI[playerid][pMember])
						{
							if(VehInfo[v][vFraction] == TEAM_AUTOSCHOOL && (GetPVarInt(playerid, "DrivingTest") > 0 || GetPVarInt(playerid, "FlyTest") > 0 || GetPVarInt(playerid, "WaterTest") > 0)) { }
							else
							{
								SendClientMessage(playerid, COLOR_GREY, ""cER"Этот транспорт вам недоступен!");
								RemoveFromVehicle(playerid);
								return 1;
							}
						}
						//else break;
					}
				}
if(GetPVarInt(playerid, "DrivingTest") > 0)
	{
		if(GetPlayerState(playerid) != 2) return SendClientMessage(playerid, COLOR_GREY, ""cPS"Вы должны находиться за рулем!");
		if(pPressed[playerid] == 28)
		{
			if(GetPVarInt(playerid, "DrivingTestError") > 2)
			{
				SendClientMessage(playerid, COLOR_RED, ""cER"Вы провалили экзамен на управление наземным транспортом");
				ShowPlayerDialog(playerid, D_NULL, 0, " ", "\n\n{F04245}К сожалению вы не сдали экзамен на управление наземным транспортом\n\n", "Закрыть", "");
			}
			else
			{
				SendClientMessage(playerid, COLOR_GREEN, ""cDA"Поздравляем! Вы сдали экзамен на управление наземным транспортом");
				ShowPlayerDialog(playerid, D_NULL, 0, " ", "\n\n{ffffff}Поздравляем, вы сдали экзамен на управление наземным транспортом\n\n", "Закрыть", "");
				PI[playerid][pLic][0] = 1;
			}
			DeletePVar(playerid, "DrivingTest");
			DeletePVar(playerid, "DrivingTestHealth");
			DeletePVar(playerid, "DrivingTestError");
			Fuel[GetPlayerVehicleID(playerid)] = 45;
			SetVehicleToRespawn(GetPlayerVehicleID(playerid));
			DisablePlayerRaceCheckpoint(playerid);
		}
		else
		{
			pPressed[playerid]++;
			new Float:health, i = pPressed[playerid];
			GetVehicleHealth(GetPlayerVehicleID(playerid), health);
			if(health < GetPVarFloat(playerid, "DrivingTestHealth"))
			{
				SendMes(playerid, COLOR_RED, ""cER"Вы повредили транспорт. Ошибок: {ffffff}%i", GetPVarInt(playerid, "DrivingTestError") + 1);
				SetPVarInt(playerid, "DrivingTestError", GetPVarInt(playerid, "DrivingTestError") + 1);
			}
			if(SpeedVehicle(playerid) / 2 > 60)
			{
				SendMes(playerid, COLOR_RED, ""cER"Вы привысили скорость. Ошибок: {ffffff}%i", GetPVarInt(playerid, "DrivingTestError") + 1);
				SetPVarInt(playerid, "DrivingTestError", GetPVarInt(playerid, "DrivingTestError") + 1);
			}
			if(pPressed[playerid] < 27) SetPlayerRaceCheckpoint(playerid, 0, DrivingTest[i][0],DrivingTest[i][1],DrivingTest[i][2],DrivingTest[i][3],DrivingTest[i][4],DrivingTest[i][5], 5.0);
			else SetPlayerRaceCheckpoint(playerid,1, DrivingTest[i][0],DrivingTest[i][1],DrivingTest[i][2],DrivingTest[i][3],DrivingTest[i][4],DrivingTest[i][5], 5.0);
			SetPVarFloat(playerid, "DrivingTestHealth", health);
		}
	}
	case D_JOB+43:
	    {
	        if(!response) return 1;
			if(GetMoney(playerid) < 600) return SendClientMessage(playerid, COLOR_GREY, ""cER"Недостаточно средств!");
			SendClientMessage(playerid, COLOR_BLUE, ""cPS"Поздравляем, Вы сдали тест");
			SendClientMessage(playerid, COLOR_BLUE, ""cPS"Выходите во двор и садитесь в свободный транспорт");
			SetPVarInt(playerid, "DrivingTest", 1);
			TransferMoney(playerid, -1, 600);
			pPressed[playerid] = 0;
			UseGPS[playerid] = true;
			for(new i; i < 3; i++) TextDrawShowForPlayer(playerid, GPSEnabled[i]);
    		DisablePlayerRaceCheckpoint(playerid);
			SetPlayerRaceCheckpoint(playerid,1,680.3998,435.0675,12.0000,0.0,0.0,0.0,5.0);
			return 1;
	    }

OnPlayerStateChange

public OnPlayerStateChange(playerid, newstate, oldstate)
{
    if(!ac_1{playerid} && newstate == PLAYER_STATE_ONFOOT && oldstate == PLAYER_STATE_NONE) return SKick(playerid, 5341);
	Air_Gettime(playerid,4);
	if(PI[playerid][pAdmin] == ADM_NONE)
	{
		if(newstate == PLAYER_STATE_DRIVER) PlayerEnterTime[playerid] = GetTickCount();
		else if(oldstate == PLAYER_STATE_DRIVER)
		{
			if((GetTickCount()-PlayerEnterTime[playerid]) < 220)
			{
			    new string[128];
				format(string, sizeof(string), ""aAC"%s[%d] кикнут за использование читов (Car Hack)", GetName(playerid), playerid);
	            SendAdminMessage(COLOR_GREY, string);
	            SendLog("CheatLog",string);
			    CheatKick(playerid, 6224);
				return 0;
			}
		}
	}
	if(oldstate == PLAYER_STATE_DRIVER && newstate == PLAYER_STATE_PASSENGER || oldstate == PLAYER_STATE_PASSENGER && newstate == PLAYER_STATE_DRIVER) CheatKick(playerid, 2918); // краш машинами
 	if(oldstate == PLAYER_STATE_DRIVER && newstate == PLAYER_STATE_DRIVER)
    {
        if(GetPVarInt(playerid, "CarHackUsing") > 2) CheatKick(playerid, 1957);
        SetPVarInt(playerid, "CarHackUsing", GetPVarInt(playerid, "CarHackUsing")+1);
    }
    if(newstate == PLAYER_STATE_DRIVER || newstate == PLAYER_STATE_PASSENGER)
    {
        new carid = GetPlayerVehicleID(playerid), Float:X, Float:Y, Float:Z;
        GetVehiclePos(carid, X, Y, Z);
        VehiclePos[carid][0] = X;
        VehiclePos[carid][1] = Y;
        VehiclePos[carid][2] = Z;
    }
	if(newstate == PLAYER_STATE_DRIVER)
	{
		new model = GetPlayerVehicleSeat(playerid);
		if(model != 128)
		{
			if(!model)
			{
				model = GetVehicleModel(GetPlayerVehicleID(playerid));
				if(!(400 <= model <= 611) || MaxPassengers[model - 400 >>> 3] >>> ((model - 400 & 7) << 2) & 0xF == 15) return CheatKick(playerid, 12);
			}
			else return CheatKick(playerid, 62);
		}
	}
	if(oldstate == 2 || oldstate == PLAYER_STATE_PASSENGER)
	{
	    EnterVehicle[playerid] = INVALID_VEHICLE_ID;
	}
    if(newstate == PLAYER_STATE_PASSENGER)
	{
	    switch(GetPlayerWeapon(playerid))
	    {
	        case 24,31,26,28,29,30,33: SetPlayerArmedWeapon(playerid, 0);
	    }
    }
    if((newstate == 2 && oldstate == 3) || (newstate == 3 && oldstate == 2)  || (newstate == 2 && oldstate == 2))
	{
		SetPVarInt(playerid, "AC124", GetPVarInt(playerid,"AC124") + 1);
		if(GetPVarInt(playerid,"AC124") >= 3)
		{
			SetVehicleToRespawn(GetPlayerVehicleID(playerid));
			return CheatKick(playerid, 115);
		}
	}
	switch(newstate)
	{
		case 1: //Игрок пешком (можно писать PLAYER_STATE_ONFOOT)
		{
			KillTimer(STimer[playerid]);
			HideSpeedometer(playerid);
			if(GetPVarInt(playerid, "DrivingTest"))
			{
				SendClientMessage(playerid, COLOR_RED, ""cER"У вас есть 15 секунд, чтобы вернуться");
				DisablePlayerRaceCheckpoint(playerid);
				DrivingTestTime[playerid] = 15;
			}
			if(GetPVarInt(playerid, "FlyTest"))
			{
				SendClientMessage(playerid, COLOR_RED, ""cER"У вас есть 15 секунд, чтобы вернуться");
				DisablePlayerRaceCheckpoint(playerid);
				FlyTestTime[playerid] = 15;
			}
			if(GetPVarInt(playerid, "WaterTest") && GetPVarInt(playerid, "WaterTestTimeOn"))
			{
				SendClientMessage(playerid, COLOR_RED, ""cER"У вас есть 15 секунд, чтобы вернуться");
				DisablePlayerRaceCheckpoint(playerid);
				WaterTestTime[playerid] = 15;
			}
			if(GetPVarInt(playerid, "PriceBus"))
			{
				SendClientMessage(playerid, COLOR_RED, ""cER"У вас есть 15 секунд, чтобы вернуться");
				DisablePlayerRaceCheckpoint(playerid);
				SetPVarInt(playerid, "BusTime", 15);
				DeletePVar(playerid, "TimeBus");
			}
		}
		case 2: //Игрок в машине, на месте водителя (можно писать PLAYER_STATE_DRIVER)
		{
			new cars = 0;
			if(InShop[playerid] < 1 || GetPVarInt(playerid, "InShop") == 0)
			{
				new vehicleid = GetPlayerVehicleID(playerid);
				new temp = GetVehicleModel(GetPlayerVehicleID(playerid));
				BE_Play_Check[playerid] = true;
				for(new i; i != sizeof(BE_Bad_Vehs); i++)
				{
					if(temp == BE_Bad_Vehs[i]) cars++, BE_Play_Check[playerid] = false;
				}
				if(IsABoat(vehicleid))
				{
					if(PI[playerid][pLic][1] != 1)
					{
					    if(GetPVarInt(playerid, "WaterTest")) { }
						else
						{
							SendClientMessage(playerid, COLOR_GREY, ""cER"У вас нет лицензии на водный транспорт!");
							RemoveFromVehicle(playerid);
							return 1;
						}
					}
				}
				if(IsAPlane(vehicleid))
				{
					if(PI[playerid][pLic][2] != 1)
					{
					    if(GetPVarInt(playerid, "FlyTest")) { }
					    else
					    {
							SendClientMessage(playerid, COLOR_GREY, ""cER"У вас нет лицензии на воздушный транспорт!");
							RemoveFromVehicle(playerid);
							return 1;
						}
					}
					if(Engine[vehicleid] == false) SendClientMessage(playerid, COLOR_WHITE, "Чтобы завести двигатель воздушного транспорта введите /engine");
				}
				for(new v = 1; v <= TOTALVEH; v++)
				{
					if(vehicleid == VehInfo[v][vVehicle])
					{
						if(VehInfo[v][vFraction] == TEAM_AUTOSCHOOL && GetPVarInt(playerid, "DrivingTest") > 0
						&& VehInfo[v][vVehicle] == vehicleid && (v >= 1 && v <= 3 || v >= 103 && v <= 105))
						{
						    if(UseGPS[playerid])
							{
						    	DisablePlayerRaceCheckpoint(playerid);
						    	UseGPS[playerid] = false;
						    	for(new i; i < 3; i++) TextDrawHideForPlayer(playerid, GPSEnabled[i]);
							}
							SendClientMessage(playerid, COLOR_BLUE, ""cPS"Следуйте по чекпоинтам, соблюдая правила дорожного движения");
       						ShowPlayerDialog(playerid, D_NULL, 0, " ", "\n\n{ffffff}Ваша задача следовать по чекпоинтам. Вперед\n\n", "Закрыть", "");
							new i = pPressed[playerid];
							SetPlayerRaceCheckpoint(playerid,0,DrivingTest[i][0],DrivingTest[i][1],DrivingTest[i][2],DrivingTest[i][3],DrivingTest[i][4],DrivingTest[i][5],5.0);
						}
						else if(VehInfo[v][vFraction] == TEAM_AUTOSCHOOL && GetPVarInt(playerid, "FlyTest") > 0
						&& VehInfo[v][vVehicle] == vehicleid && (v >= 6 && v <= 6))
						{
						    if(UseGPS[playerid])
							{
						    	DisablePlayerRaceCheckpoint(playerid);
						    	UseGPS[playerid] = false;
						    	for(new i; i < 3; i++) TextDrawHideForPlayer(playerid, GPSEnabled[i]);
							}
						    SendClientMessage(playerid, COLOR_BLUE, ""cPS"Следуйте по чекпоинтам, соблюдая правила полёта");
   						 	ShowPlayerDialog(playerid, D_NULL, 0, " ", "\n\n{ffffff}Ваша задача следовать по чекпоинтам. Вперед\n\n", "Закрыть", "");
							new i = pPressed[playerid];
							SetPlayerRaceCheckpoint(playerid,3,FlyTest[i][0],FlyTest[i][1],FlyTest[i][2],FlyTest[i][3],FlyTest[i][4],FlyTest[i][5],5.0);
						}
						else if(VehInfo[v][vFraction] == TEAM_AUTOSCHOOL && GetPVarInt(playerid, "WaterTest") > 0
						&& VehInfo[v][vVehicle] == vehicleid && (v >= 4 && v <= 5))
						{
						    if(UseGPS[playerid])
							{
						    	DisablePlayerRaceCheckpoint(playerid);
						    	UseGPS[playerid] = false;
						    	for(new i; i < 3; i++) TextDrawHideForPlayer(playerid, GPSEnabled[i]);
							}
						    SendClientMessage(playerid, COLOR_BLUE, ""cPS"Следуйте по чекпоинтам, соблюдая правила движения");
   						 	ShowPlayerDialog(playerid, D_NULL, 0, " ", "\n\n{ffffff}Ваша задача следовать по чекпоинтам. Вперед\n\n", "Закрыть", "");
							new i = pPressed[playerid];
							if(!GetPVarInt(playerid, "WaterTestTimeOn")) SetPVarInt(playerid, "WaterTestTimeOn", 1);
							SetPlayerRaceCheckpoint(playerid,0,WaterTest[i][0],WaterTest[i][1],WaterTest[i][2],WaterTest[i][3],WaterTest[i][4],WaterTest[i][5],5.0);
						}
						if(VehInfo[v][vFraction] != PI[playerid][pMember])
						{
							if(VehInfo[v][vFraction] == TEAM_AUTOSCHOOL && (GetPVarInt(playerid, "DrivingTest") > 0 || GetPVarInt(playerid, "FlyTest") > 0 || GetPVarInt(playerid, "WaterTest") > 0)) { }
							else
							{
								SendClientMessage(playerid, COLOR_GREY, ""cER"Этот транспорт вам недоступен!");
								RemoveFromVehicle(playerid);
								return 1;
							}
						}
						//else break;
					}
				}
				if(cars == 0)
				{
					if(PI[playerid][pLic][0] == 0)
					{
						if(GetPVarInt(playerid, "DrivingTest") > 0) { }
						else
						{
                            if(!IsAMoped(vehicleid) && !IsAVel(vehicleid))
							{
								SendClientMessage(playerid, COLOR_GREY, ""cER"У вас нет водительских прав!");
								RemoveFromVehicle(playerid);
								return 1;
							}
						}
					}
					if(Engine[vehicleid] == false)
					{
						if(IsAVel(vehicleid))
						{
							GetVehicleParamsEx(vehicleid,engine,lights,alarm,doors,bonnet,boot,objective);
							SetVehicleParamsEx(vehicleid,true,lights,alarm,doors,bonnet,boot,objective);
						}
						else
						{
						    if(!InShop[playerid]) SendClientMessage(playerid, COLOR_GREEN, ""cPS"Нажмите клавишу '2', чтобы завести двигатель, меню машины (/cm)");
						}
					}
					if(!IsAMoped(vehicleid) && !IsAVel(vehicleid) && !IsABoat(vehicleid))
					{
						STimer[playerid] = SetTimerEx("UpdateSpeedometr", 500, true, "i", playerid);
						ShowSpeedometer(playerid);
					}
					if(vehicleid >= mechanic[0] && vehicleid <= mechanic[1])
					{
						if(PI[playerid][pJob] != JOB_MECHANIC)
						{
							SendClientMessage(playerid, COLOR_GREY, ""cER"Вы не автомеханик!");
							RemoveFromVehicle(playerid);
							return 1;
						}
					}
					if((vehicleid >= trucker1lvl[0] && vehicleid <= trucker1lvl[1]) || (vehicleid >= trucker2lvl[0] && vehicleid <= trucker2lvl[1]))
					{
						if(PI[playerid][pJob] != JOB_TRUCKER)
						{
						    SendClientMessage(playerid, COLOR_GREY, ""cER"Вы не дальнобойщик!");
							RemoveFromVehicle(playerid);
							return 1;
						}
						new trucklevel, price;
						if(vehicleid >= trucker1lvl[0] && vehicleid <= trucker1lvl[1]) { trucklevel = 1; price = 200; }
						else if(vehicleid >= trucker2lvl[0] && vehicleid <= trucker2lvl[1]) { trucklevel = 2; price = 300; }
						if((trucklevel == 2 && PI[playerid][pTruckSkill] < TRUCK_LEVEL_2))
						{
							SendClientMessage(playerid, COLOR_GREY, "Ваш опыт работы дальнобойщиком не достаточен для этого транспорта");
							RemoveFromVehicle(playerid);
							return 1;
						}
						if(GetMoney(playerid) < price)
						{
							new string[128];
							format(string, sizeof(string), "Вам нужно %dр чтобы арендовать этот грузовик", price);
							SendClientMessage(playerid, COLOR_GREY, string);
							RemoveFromVehicle(playerid);
							return 1;
						}
						SetPVarInt(playerid, "truckprice", price);
						new string[150];
						if(PI[playerid][TruckerCarID] == vehicleid) { }
						else
						{
						    SetTimerEx("CheckRentCar",8000,0,"i",playerid);
							format(string, sizeof(string), "{ffffff}Вы хотите арендовать данный тягач?\nСтоимость аренды: {33ccff}%iр", price);
							ShowPlayerDialog(playerid, 11212, DIALOG_STYLE_MSGBOX, "{"#cSV"}Аренда", string, "Да", "Нет");
						}
					}
					/*if(GetMoney(playerid) < 200)
					{
						SendClientMessage(playerid, COLOR_GREY, "Вам нужно 200р чтобы арендовать это транспорт");
						RemoveFromVehicle(playerid);
						return 1;
					}*/
					if(PI[playerid][MechanicCarID] == vehicleid)
					{
						    SetTimerEx("CheckRentCar",8000,0,"i",playerid);
							ShowPlayerDialog(playerid, D_JOB+66, 0, "{ffffff}Аренда", "{ffffff}Вы хотите арендовать данный транспорт?\n\nСтоимость: {33CCFF}200р", "Да", "Нет");
					}
					if(vehicleid >= taxicar[0] && vehicleid <= taxicar[1])
					{
						if(PI[playerid][pJob] != JOB_TAXI)
						{
							SendClientMessage(playerid, COLOR_GREY, ""cER"Вы не таксист!");
							RemoveFromVehicle(playerid);
							return 1;
						}
						if(GetMoney(playerid) < 200)
						{
							SendClientMessage(playerid, COLOR_GREY, ""cPS"Вам нужно 200р чтобы арендовать это такси");
							RemoveFromVehicle(playerid);
							return 1;
						}
						if(PI[playerid][TaxiCarID] == vehicleid) { }
						else
						{
							SetTimerEx("CheckRentCar",8000,0,"i",playerid);
							ShowPlayerDialog(playerid, D_JOB+59, 0, "{"#cSV"}Аренда", "{ffffff}Вы хотите арендовать данное такси?\nСтоимость аренды: {33CCFF}200р", "Да", "Нет");
						}
					}
					if(vehicleid >= buscar[0] && vehicleid <= buscar[1])
					{
						if(PI[playerid][pJob] != JOB_BUS)
						{
							SendClientMessage(playerid, COLOR_GREY, ""cER"Вы не работаете водителем маршрутки!");
							RemoveFromVehicle(playerid);
							return 1;
						}
						if(GetPVarInt(playerid, "BusTime") > 0 && GetPVarInt(playerid, "PriceBus") > 0 && PI[playerid][BusCarID] == vehicleid)
						{
							new i = pPressed[playerid], type = GetPVarInt(playerid, "TypeBus"), name[30], string[128];
							switch(type)
							{
								case 1: name = "Лесопилка - Шахта - Завод",        SetPlayerRaceCheckpoint(playerid,0,BusCityLS[i][0],BusCityLS[i][1],BusCityLS[i][2],BusCityLS[i][3],BusCityLS[i][4],BusCityLS[i][5],5.0);
								case 2: name = "Автовокзал - Мэрия",            SetPlayerRaceCheckpoint(playerid,0,BusCitySF[i][0],BusCitySF[i][1],BusCitySF[i][2],BusCitySF[i][3],BusCitySF[i][4],BusCitySF[i][5],5.0);
								case 3: name = "Автовокзал - Новый район",      SetPlayerRaceCheckpoint(playerid,0,BusCityLV[i][0],BusCityLV[i][1],BusCityLV[i][2],BusCityLV[i][3],BusCityLV[i][4],BusCityLV[i][5],5.0);
								case 4: name = "Автовокзал - Автошкола",        SetPlayerRaceCheckpoint(playerid,0,BusSchool[i][0],BusSchool[i][1],BusSchool[i][2],BusSchool[i][3],BusSchool[i][4],BusSchool[i][5],5.0);
								case 5: name = "Автовокзал - Анашан",            SetPlayerRaceCheckpoint(playerid,0,BusLS[i][0],BusLS[i][1],BusLS[i][2],BusLS[i][3],BusLS[i][4],BusLS[i][5],5.0);
							}
							format(string, sizeof(string), "%s\n{FFFFFF}Стоимость проезда: {63BD4E}%iр", name, GetPVarInt(playerid, "PriceBus"));
							if(!IsValidDynamic3DTextLabel(BusText3D[playerid])) BusText3D[playerid] = CreateDynamic3DTextLabel(string, 0xffa500FF, 0.0, 0.0, 1.0, 20.0, INVALID_PLAYER_ID, vehicleid);
							DeletePVar(playerid, "BusTime");
						}
						if(GetMoney(playerid) < 200)
						{
							SendClientMessage(playerid, COLOR_GREY, "Вам нужно 200р чтобы арендовать эту маршрутку");
							RemoveFromVehicle(playerid);
							return 1;
						}
						if(PI[playerid][BusCarID] == vehicleid) { }
						else
						{
							SetTimerEx("CheckRentCar",15000,0,"i",playerid);
							ShowPlayerDialog(playerid, D_JOB+58, 0, "{"#cSV"}Аренда", "{ffffff}Вы хотите арендовать данную маршрутку?\n\nСтоимость: {33CCFF}200р", "Да", "Нет");
						}
					}
					new arend_id = INVALID_PLAYER_ID;
			     	if(GetArendCarID(vehicleid, arend_id) != (-1))
					{
			      	    new string[200];
						if(arend_id == INVALID_PLAYER_ID || !IsPlayerConnected(arend_id))
						{
						    new rc = GetArendCarID(vehicleid);
						    format(string,sizeof(string), "{FFFFFF}Транспорт для аренды!\n\n- Модель: {46ca00}%s{FFFFFF}\n- Стоимость: {46ca00}%iр{FFFFFF}\n\n{afafaf}Чтобы арендовать, нажмите `Аренда`", VehicleNames[GetVehicleModel(vehicleid)-400], ArendInfo[rc][aCost]);
							ShowPlayerDialog(playerid, D_JOB+23, 0, "{"#cSV"}Аренда", string, "Аренда", "Отмена");
						}
						else if(arend_id != playerid)
						{
						    SendClientMessage(playerid, COLOR_FADE1, "Этот транспорт уже арендуют");
						    RemoveFromVehicle(playerid);
						}
					}
					if(gVehicleGun[vehicleid][vGunLoading] || gVehicleGun[vehicleid][vGunUnloading])
					{
						ShowPlayerDialog(playerid, D_STOPLOAD, DIALOG_STYLE_MSGBOX, "{"#cSV"}Погрузка", "{FFFFFF}Вы хотите прекратить загрузку боеприпасов в автомобиль?", "Да", "Нет");
					}
				}
			}
		}
		case 3: //Игрок в машине, на месте пассажира - (можно писать PLAYER_STATE_PASSENGER)
		{
			new vehicleid = GetPlayerVehicleID(playerid);
			foreach(new i: Player)
			{
				if(PlayerLogged[i] == false) continue;
				if(IsPlayerInVehicle(i, vehicleid) && GetPlayerState(i) == 2)
				{
				    new string[32];
					if(GetPVarInt(i, "PriceBus") > 0)
					{
						if(GetMoney(playerid) < GetPVarInt(i, "PriceBus"))
						{
							SendClientMessage(playerid, COLOR_GREY, ""cER"У вас не хватает денег!");
							RemoveFromVehicle(playerid);
						}
						else
						{
							TransferMoney(playerid, -1, GetPVarInt(i, "PriceBus"));
							SendMes(playerid, COLOR_BLUE, "Вы заплатили %iр за проезд водителю %s",GetPVarInt(i, "PriceBus"), GetName(i));
							PI[i][pPayCheck] += GetPVarInt(i, "PriceBus");
							SendMes(i, COLOR_BLUE, "Пассажир %s заплатил %iр за проезд", GetName(playerid), GetPVarInt(i, "PriceBus"));
							format(string, sizeof(string), "~r~-%iр",  GetPVarInt(i, "PriceBus"));
							GameTextForPlayer(playerid, string, 5000, 1);
							format(string, sizeof(string), "~b~+%iр", GetPVarInt(i, "PriceBus"));
							GameTextForPlayer(i, string, 5000, 1);
						}
					}
					if(GetPVarInt(i, "PriceTaxi") > 0)
					{
						if(GetMoney(playerid) < GetPVarInt(i, "PriceTaxi"))
						{
							SendClientMessage(playerid, COLOR_GREY, ""cER"У вас не хватает денег!");
							RemoveFromVehicle(playerid);
						}
						else
						{
							TransferMoney(playerid, -1, GetPVarInt(i, "PriceTaxi"));
							PI[i][pPayCheck] += GetPVarInt(i, "PriceTaxi");
							SetPVarInt(playerid, "TimeTaxi", 30);
							SetPVarInt(playerid, "TaxiPrice",GetPVarInt(i, "PriceTaxi"));
							SetPVarInt(playerid, "PlayerTaxi", i);
							format(string, sizeof(string), "~r~-%iр", GetPVarInt(i, "PriceTaxi"));
							GameTextForPlayer(playerid, string, 5000, 1);
							format(string, sizeof(string), "~b~+%iр", GetPVarInt(i, "PriceTaxi"));
							GameTextForPlayer(i, string, 5000, 1);
							SetPVarInt(i, "TaxiMoney", GetPVarInt(i, "TaxiMoney") + GetPVarInt(i, "PriceTaxi"));
						}
					}
				}
			}
		}
	case 4: //Игрок вышел из машины
		{
			BE_Play_Check[playerid] = false;
		}
	case 5: //Игрок сел в машину на место водителя
		{
		}
	case 6: //Игрок сел в машину на место пассажира
		{
		}
	case 7: //Игрок выбирает скин (можно писать PLAYER_STATE_WASTED)
		{
		}
	case 8: //Игрок возродился (можно писать PLAYER_STATE_SPAWNED)
		{
		}
	case 9: //Игрок наблюдает с помощью функции SPECTATING (можно писать PLAYER_STATE_SPECTATING)
		{
		}
	}
	return 1;
}

 

Поделиться сообщением


Ссылка на сообщение
  • 0
Cawfee
Великий Гуру
В 14.06.2018 в 17:48, edikzver сказал:

for(new v = 1; v <= TOTALVEH; v++)

 

Проверяйте, срабатывает ли этот цикл и до куда система в нем доходит.

Поделиться сообщением


Ссылка на сообщение
Гость
Эта тема закрыта для публикации ответов.
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

  • Похожий контент

    • patrickk
      От patrickk
      Всем привет, решил написать dm сервер и довольно хорошим получился, даже на голову выше Goat dm. Оставил не решенную проблему тем что  у меня есть 4 локации с rp run и cj run ну а как добавить cj бег на те локации не знаю и как эта система работает. Надеюсь мне помогут знающие люди
    • Samolet
      От Samolet
      Здраствуйте, cоздаю копию Arizona на ОМП, опен мультиплеер, загрузил и подключил бд, но сервер не хочет вот лог :[2026-10-20T21:03:32+0300] [Info] Log file reloaded. Starting open.mp server (1.5.8.3079) from commit c6759bd8d265171ae3d86598895a23d5a8d92a3b Loading component $CAPI.so Successfully loaded component C-API (1.5.8.3079) with UID 10467dd8d4c56fc6 Loading component LegacyConfig.so Successfully loaded component LegacyConfig (1.5.8.3079) with UID 24ef6216838f9ffc Loading component NPCs.so Successfully loaded component NPCs (1.5.8.3079) with UID 3d0e59e87f4e90bc Loading component Recordings.so Successfully loaded component Recordings (1.5.8.3079) with UID 871144d399f5f613 Loading component Checkpoints.so Successfully loaded component Checkpoints (1.5.8.3079) with UID 44a937350d611dde Loading component TextDraws.so Successfully loaded component TextDraws (1.5.8.3079) with UID 9b5dc2b1d15c992a Loading component Pawn.so Successfully loaded component Pawn (1.5.8.3079) with UID 78906cd9f19c36a6 Loading component GangZones.so Successfully loaded component GangZones (1.5.8.3079) with UID b3351d11ee8d8056 Loading component Actors.so Successfully loaded component Actors (1.5.8.3079) with UID c81ca021eae2ad5c Loading component Pickups.so Successfully loaded component Pickups (1.5.8.3079) with UID cf304faa363dd971 Loading component Dialogs.so Successfully loaded component Dialogs (1.5.8.3079) with UID 44a111350d611dde Loading component Objects.so Successfully loaded component Objects (1.5.8.3079) with UID 59f8415f72da6160 Loading component Console.so Successfully loaded component Console (1.5.8.3079) with UID bfa24e49d0c95ee4 Loading component TextLabels.so Successfully loaded component TextLabels (1.5.8.3079) with UID a0c57ea80a009742 Loading component Variables.so Successfully loaded component Variables (1.5.8.3079) with UID 75e121848bc01fa2 Loading component Databases.so Successfully loaded component Databases (1.5.8.3079) with UID 80092e7eb5821a96 Loading component LegacyNetwork.so Successfully loaded component RakNetLegacyNetwork (1.5.8.3079) with UID ea9799fd79cf8442 Loading component CustomModels.so Successfully loaded component CustomModels (1.5.8.3079) with UID 15e3cb1e7c77ffff Loading component Menus.so Successfully loaded component Menus (1.5.8.3079) with UID 621e219eb97ee0b2 Loading component Vehicles.so Successfully loaded component Vehicles (1.5.8.3079) with UID 3f1f62ee9e22ab19 Loading component Classes.so Successfully loaded component Classes (1.5.8.3079) with UID 8cfb3183976da208 Loading component Timers.so Successfully loaded component Timers (1.5.8.3079) with UID 2ad8124c5ea257a3 Loaded 22 component(s) from /home/gs113492/components Executing Server Config... [2026-10-20T21:03:33+0300] [Info] Loading plugin: crashdetect.so [2026-10-20T21:03:33+0300] [Info] CrashDetect plugin 4.19 [2026-10-20T21:03:33+0300] [Info] Loading plugin: mapandreas.so [2026-10-20T21:03:33+0300] [Info] Loading plugin: streamer.so [2026-10-20T21:03:33+0300] [Info] *** Streamer Plugin v2.9.4 by Incognito loaded *** [2026-10-20T21:03:33+0300] [Info] Loading plugin: sscanf.so [2026-10-20T21:03:33+0300] [Info] [2026-10-20T21:03:33+0300] [Info] =============================== [2026-10-20T21:03:33+0300] [Info] sscanf plugin loaded. [2026-10-20T21:03:33+0300] [Info] Version: 2.8.3 [2026-10-20T21:03:33+0300] [Info] (c) 2018 Alex "Y_Less" Cole [2026-10-20T21:03:33+0300] [Info] =============================== [2026-10-20T21:03:33+0300] [Info] Loading plugin: TOTP.so [2026-10-20T21:03:33+0300] [Info] TOTP plugin v1.0.1 by Games loaded. [2026-10-20T21:03:33+0300] [Info] Loading plugin: mysql_static.so [2026-10-20T21:03:33+0300] [Info] >> plugin.mysql: R39-6 successfully loaded. [2026-10-20T21:03:33+0300] [Info] Loading plugin: libpawn_json.so [2026-10-20T21:03:34+0300] [Error] Function not registered: YSF_SetTickRate [2026-10-20T21:03:34+0300] [Error] Function not registered: PC_Init [2026-10-20T21:03:34+0300] [Info] [debug] Run time error 19: "File or function is not found" [2026-10-20T21:03:34+0300] [Info] [debug] PC_Init [2026-10-20T21:03:34+0300] [Info] [debug] YSF_SetTickRate [2026-10-20T21:03:34+0300] [Error] File or function is not found [2026-10-20T21:03:34+0300] [Error] Function not registered: PC_RegAlias [2026-10-20T21:03:34+0300] [Error] Function not registered: BS_GetWriteOffset [2026-10-20T21:03:34+0300] [Error] Function not registered: BS_Reset [2026-10-20T21:03:34+0300] [Error] Function not registered: PR_RegHandler [2026-10-20T21:03:34+0300] [Error] Function not registered: BS_Delete [2026-10-20T21:03:34+0300] [Error] Function not registered: BS_New [2026-10-20T21:03:34+0300] [Error] Function not registered: BS_ResetReadPointer [2026-10-20T21:03:34+0300] [Error] Function not registered: BS_SetWriteOffset [2026-10-20T21:03:34+0300] [Error] Function not registered: BS_IgnoreBits [2026-10-20T21:03:34+0300] [Error] Function not registered: PR_Init [2026-10-20T21:03:34+0300] [Error] Function not registered: PR_SendRPC [2026-10-20T21:03:34+0300] [Error] Function not registered: PR_SendPacket [2026-10-20T21:03:34+0300] [Error] Function not registered: BS_WriteValue [2026-10-20T21:03:34+0300] [Error] Function not registered: BS_GetNumberOfBytesUsed [2026-10-20T21:03:34+0300] [Error] Function not registered: BS_ReadValue [2026-10-20T21:03:34+0300] [Error] Function not registered: PC_Init [2026-10-20T21:03:34+0300] [Info] [debug] Run time error 19: "File or function is not found" [2026-10-20T21:03:34+0300] [Info] [debug] PC_Init [2026-10-20T21:03:34+0300] [Info] [debug] BS_ReadValue [2026-10-20T21:03:34+0300] [Info] [debug] BS_GetNumberOfBytesUsed [2026-10-20T21:03:34+0300] [Info] [debug] BS_WriteValue [2026-10-20T21:03:34+0300] [Info] [debug] PR_SendPacket [2026-10-20T21:03:34+0300] [Info] [debug] PR_SendRPC [2026-10-20T21:03:34+0300] [Info] [debug] PR_Init [2026-10-20T21:03:34+0300] [Info] [debug] BS_IgnoreBits [2026-10-20T21:03:34+0300] [Info] [debug] BS_SetWriteOffset [2026-10-20T21:03:34+0300] [Info] [debug] BS_ResetReadPointer [2026-10-20T21:03:34+0300] [Info] [debug] BS_New [2026-10-20T21:03:34+0300] [Info] [debug] BS_Delete [2026-10-20T21:03:34+0300] [Info] [debug] PR_RegHandler [2026-10-20T21:03:34+0300] [Info] [debug] BS_Reset [2026-10-20T21:03:34+0300] [Info] [debug] BS_GetWriteOffset [2026-10-20T21:03:34+0300] [Info] [debug] PC_RegAlias [2026-10-20T21:03:34+0300] [Error] File or function is not found [2026-10-20T21:03:34+0300] [Info] [debug] Run time error 19: "File or function is not found" [2026-10-20T21:03:34+0300] [Info] [debug] PC_Init [2026-10-20T21:03:34+0300] [Info] [debug] YSF_SetTickRate [2026-10-20T21:03:34+0300] [Error] File or function is not found [2026-10-20T21:03:34+0300] [Info] [debug] Run time error 19: "File or function is not found" [2026-10-20T21:03:34+0300] [Info] [debug] PC_Init [2026-10-20T21:03:34+0300] [Info] [debug] BS_ReadValue [2026-10-20T21:03:34+0300] [Info] [debug] BS_GetNumberOfBytesUsed [2026-10-20T21:03:34+0300] [Info] [debug] BS_WriteValue [2026-10-20T21:03:34+0300] [Info] [debug] PR_SendPacket [2026-10-20T21:03:34+0300] [Info] [debug] PR_SendRPC [2026-10-20T21:03:34+0300] [Info] [debug] PR_Init [2026-10-20T21:03:34+0300] [Info] [debug] BS_IgnoreBits [2026-10-20T21:03:34+0300] [Info] [debug] BS_SetWriteOffset [2026-10-20T21:03:34+0300] [Info] [debug] BS_ResetReadPointer [2026-10-20T21:03:34+0300] [Info] [debug] BS_New [2026-10-20T21:03:34+0300] [Info] [debug] BS_Delete [2026-10-20T21:03:34+0300] [Info] [debug] PR_RegHandler [2026-10-20T21:03:34+0300] [Info] [debug] BS_Reset [2026-10-20T21:03:34+0300] [Info] [debug] BS_GetWriteOffset [2026-10-20T21:03:34+0300] [Info] [debug] PC_RegAlias [2026-10-20T21:03:34+0300] [Info] Legacy Network started on ***.**.**.***:2717. Помогите пожалуйста