Ситуация такова:
Существует некая команда, которая запускает двигатель у автомобиля. Эта команда сначала берёт параметры автомобиля и, в зависимости от состояния параметра engine, запускает либо глушит двигатель. Я решил отследить этот параметр.
PHP код:
GetVehicleParamsEx(GetPlayerVehicleID(playerid),engine,lights,alarm,doors,bonnet,boot,objective);//беру параметры
printf("step 1 | engine - %d", engine);//вывожу в лог состояние параметра engine
if(engine < 1)//если двигатель заглушен
{
print("start engine");//сообщаю в лог, что происходит запуск двигателя
SetVehicleParamsEx(GetPlayerVehicleID(playerid),1,lights,alarm,doors,bonnet,boot,objective);//запускаю двигатель
return printf("step 2 | engine - %d", engine);//вывожу в лог новое состояние параметра engine
}
else//если двигатель запущен
{
print("stop engine");//сообщаю в лог, что происходит остановка двигателя
SetVehicleParamsEx(GetPlayerVehicleID(playerid),0,lights,alarm,doors,bonnet,boot,objective);//глушу двигатель
return printf("step 2 | engine - %d", engine);//вывожу в лог новое состояние параметра engine
}
Всё прекрасно, двигатель действительно запускается и глушится тогда, когда это нужно. Компилируется тоже всё отлично. То есть, нареканий никаких нет. Но вот если открыть логи...
PHP код:
[08:23:13]
//запуск двигателя
step 1 | engine - 0 //двигатель заглушен, лог говорит то же самое
[08:23:13] start engine //начинаем запуск
[08:23:13] step 2 | engine - 0 //в игре двигатель запущен, но логи говорят, что по прежнему заглушен
//теперь заглушу двигатель
[08:23:25] step 1 | 1 //двигатель запущен, лог говорит то же самое (непонятно, как так получилось, если на предыдущем шаге логи показывали нам engine = 0 после запуска двигателя. а сейчас на этом же автомобиле, через 12 секунд engine равен 1)
[08:23:25] stop engine //глушим двигатель
[08:23:25] step 2 | 1 //в игре двигатель заглушен, но логи говорят, что по прежнему запущен
Пойдём дальше. Я запилил ещё одну команду, которая будет возвращать состояние engine в консоль.
PHP код:
return printf("test command | engine - %d", engine);
И действительно, когда я использую команду запуска двигателя, в игре он запускается. Но при использовании второй команды логи показывают, что двигатель заглушен. Теперь мы получаем такую картину:
PHP код:
[08:23:13]
//запуск двигателя
step 1 | engine - 0 //двигатель заглушен, лог говорит то же самое
[08:23:13] start engine //начинаем запуск
[08:23:13] step 2 | engine - 0 //в игре двигатель запущен, но логи говорят, что по прежнему заглушен
[08:23:14] test command | engine - 0 //в игре двигатель запущен, но логи говорят, что по прежнему заглушен
[08:23:15] test command | engine - 0 //в игре двигатель запущен, но логи говорят, что по прежнему заглушен
[08:23:16] test command | engine - 0 //в игре двигатель запущен, но логи говорят, что по прежнему заглушен
А теперь вопрос: Как всё это объяснить?
P.S. Может у кого-то возникнет вопрос, для чего я вообще в этом копаюсь, ведь в игре всё работает.
Ответ: пишу функцию, в которой нужно корректное отображение состояния engine.