Проблема с заводкой и глушение двигателя
#1

Вообщем у меня есть 2 команды, которые заводят и глушать двигатель.
/stop и /start

Код:
if(strcmp(cmd, "/start", true) == 0)
	{
		if(IsPlayerConnected(playerid))
		{
			if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
			{
				new carid = GetPlayerVehicleID(playerid);
	            GetPlayerName(playerid, sendername, sizeof(sendername));
	            if(IsAPlane(carid) || IsABoat(carid) || IsABycicle(carid)) return 1;
				if(Engine[carid] == 1) return 1;
				if(IsAOwnableVehicle(carid))
				{
					if(!strcmp(CarInfo[carid-SIMPLECARS-1][cOwner],"The State",true))
					{
					    SendClientMessage(playerid,COLOR_WHITE," Эта машина на продажу, ее нельзя завести!");
					    return 1;
					}
					if(strcmp(CarInfo[carid-SIMPLECARS-1][cOwner],"The State",true))
					{
					    if(CarInfo[carid-SIMPLECARS-1][cKey] == 0)
					    {
					        SendClientMessage(playerid,COLOR_GREY," Сначала нужно вставить ключи!");
					        return 1;
					    }
	    				if(!strcmp(CarInfo[carid-SIMPLECARS-1][cOwner],sendername,true) && CarAvtoBang[carid] == 1)//Тут если имя владельца авто и Кар Авто Банг = 0 то бабахаем тачку
					    {
						//	EngineStart(playerid, GetPlayerVehicleID(playerid));
							GetPlayerName(playerid, sendername, sizeof(sendername));
			            	format(string, sizeof(string), "* %s пытается завести двигатель ", sendername);
							ProxDetector(15.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
							engine_start[playerid] = 1;
							Babax(carid);//Бабахаем тачку под ид в которой игрок сидит
							return 1;
						}
						else
						{// или если условие if(!strcmp(CarInfo[carid-SIMPLECARS-1][cOwner],sendername,true) && CarAvtoBang[carid] == 0) не совподает с тем что мы имеем то тупо пропускаем его,ну заодит авто и не ббабахем тачку!
							GetPlayerName(playerid, sendername, sizeof(sendername));
	     	                format(string, sizeof(string), "* %s пытается завести двигатель ", sendername);
							ProxDetector(15.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
							engine_start[playerid] = 1;
							return 1;
						}
	 				}
				}
				else
				{
		 			GetPlayerName(playerid, sendername, sizeof(sendername));
		           	format(string, sizeof(string), "* %s пытается завести двигатель ", sendername);
					ProxDetector(15.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
					engine_start[playerid] = 1;
		 		}
		 	}
		 	else
		 	{
		 	    SendClientMessage(playerid, COLOR_GREY, "Вы должны быть за рулём транспортного средства!");
		 	    return 1;
			}
		}
		return 1;
	 }
	if(strcmp(cmd, "/stop", true) == 0)
	{
	    if(IsPlayerConnected(playerid))
	    {
	        if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
	        {
	            new carid = GetPlayerVehicleID(playerid);
	            if(IsAPlane(carid) || IsABoat(carid) || IsABycicle(carid))
				{
				    return 1;
				}
	            if(Engine[carid] == 0)
				{
				    return 1;
				}
	            GetPlayerName(playerid, sendername, sizeof(sendername));
	            format(string, sizeof(string), "* %s глушит двигатель ", sendername);
				ProxDetector(15.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
				SendClientMessage(playerid, COLOR_GREY, "Вы заглушили двигатель. Чтобы выйти, введите /exit.");
				TogglePlayerControllable(playerid, 0);
      			Engine[carid] = 0;
	 		}
	 		else
	 		{
	 		    SendClientMessage(playerid, COLOR_GREY, "Вы должны быть за рулём транспортного средства!");
	 		    return 1;
			}
		}
		return 1;
 	}
Хочу сделать что бы они выполнялись по кнопку "2". Но почему то у меня не получается.
В чем у меня ошибка?

Код:
if(newkeys == KEY_SUBMISSION)
	{
	    if(Engine[carid] == 0)
	    {
	    	OnPlayerCommandText(playerid,"/stop");
           	return 1;
      	}
 	    else if(Engine[carid] == 1)
 	    {
 	    	OnPlayerCommandText(playerid,"/start");
           	return 1;
      	}
	}
Reply
#2

newkeys & KEY_SUBMISSION попробуй
Reply
#3

Неа не помогло(
Reply
#4

up(10 сим)
Reply
#5

if(Engine[carid] == 0)
{
тут попробуй код с самого /start
return 1;
}
else if(Engine[carid] == 1)
{
а тут со стопа
return 1;
}
Reply
#6

пробовал не хера.
Reply
#7

Проблема решена.
Reply
#8

как решил
Reply
#9

Пришлось, перебрать весь паблик, убрать лишний код, перебрать ключи. И то почему то сейчас не на всех кнопках работают. Только на Num 2, Я вот думаю может быть это из-за того что я одни и теже файлы с начало комплеировал на 0.3d а потом перенес на 0.3с..
p.s А может быть где то на шару что то поставил. хз
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)