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; } }