PDA

Просмотр полной версии : [Вопрос] Проблема с двигателями



vladivanovx
30.01.2017, 23:01
Есть чистый мод.
Создал файл с пустой файл (инклуд) и подключил его после a_samp.
В файле:


new engine, lights, alarm, doors, bonnet, boot, objective;

stock SetEngineStatus(vehicleid, bool:status) {
return status ? SetVehicleParamsEx(vehicleid, VEHICLE_PARAMS_ON, -1, -1, -1, -1, -1, -1) : SetVehicleParamsEx(vehicleid, VEHICLE_PARAMS_OFF, -1, -1, -1, -1, -1, -1);
}

stock GetEngineStatus(vehicleid) {
GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective);
return engine;
}

OnGameModeInit:

ManualVehicleEngineAndLights();

Команда /en:


CMD:en(playerid, params[]) {
new vehicleid = GetPlayerVehicleID(playerid);
switch(GetEngineStatus(vehicleid)) {
case true: {
SetEngineStatus(vehicleid, false);
GameTextForPlayer(playerid, "~r~ENGINE OFF", 3000, 4);
}
case false: {
SetEngineStatus(vehicleid, true);
GameTextForPlayer(playerid, "~g~ENGINE ON", 3000, 4);
}
}
return 1;
}


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

Для интереса подключил всеми знакомый инклуд a_engine и переписал команду под нее.
Результат: все работает.

В чем же проблема, вроде все правильно в моем варианте, просто изменил имена функций.

P.S.: Знаю велосипед, но кое-что тестирую.

ziggi
30.01.2017, 23:19
switch (GetEngineStatus(vehicleid)) {
case VEHICLE_PARAMS_ON: {
SetEngineStatus(vehicleid, false);
GameTextForPlayer(playerid, "~r~ENGINE OFF", 3000, 4);
}
case VEHICLE_PARAMS_OFF, VEHICLE_PARAMS_UNSET: {
SetEngineStatus(vehicleid, true);
GameTextForPlayer(playerid, "~g~ENGINE ON", 3000, 4);
}
}

vladivanovx
31.01.2017, 21:10
Спасибо!

Кстати, нашел еще такой способ:


stock GetEngineStatus(vehicleid) {
GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective);
if(engine != 1) return 0;
return 1;
}

ziggi
01.02.2017, 01:11
Спасибо!

Кстати, нашел еще такой способ:


stock GetEngineStatus(vehicleid) {
GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective);
if(engine != 1) return 0;
return 1;
}


Тогда используй соответствующее название для функции:

stock IsEngineOn(vehicleid)
{
GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective);
return engine == VEHICLE_PARAMS_ON;
}

vladivanovx
01.02.2017, 14:08
Ясно.
Спасибо, теперь более понятна стала моя ошибка.