15.10.2011, 06:16
Вообщем у меня есть 2 команды, которые заводят и глушать двигатель.
/stop и /start
Хочу сделать что бы они выполнялись по кнопку "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;
}
В чем у меня ошибка?
Код:
if(newkeys == KEY_SUBMISSION)
{
if(Engine[carid] == 0)
{
OnPlayerCommandText(playerid,"/stop");
return 1;
}
else if(Engine[carid] == 1)
{
OnPlayerCommandText(playerid,"/start");
return 1;
}
}

