Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Показано с 1 по 5 из 5
  1. #1
    Аватар для vladivanovx
    Пользователь

    Статус
    Оффлайн
    Регистрация
    11.12.2016
    Сообщений
    27
    Репутация:
    0 ±

    Проблема с двигателями

    Есть чистый мод.
    Создал файл с пустой файл (инклуд) и подключил его после a_samp.
    В файле:
    PHP код:
    new enginelightsalarmdoorsbonnetbootobjective;

    stock SetEngineStatus(vehicleidbool:status) {
      return 
    status SetVehicleParamsEx(vehicleidVEHICLE_PARAMS_ON, -1, -1, -1, -1, -1, -1) : SetVehicleParamsEx(vehicleidVEHICLE_PARAMS_OFF, -1, -1, -1, -1, -1, -1);
    }

    stock GetEngineStatus(vehicleid) {
      
    GetVehicleParamsEx(vehicleidenginelightsalarmdoorsbonnetbootobjective);
      return 
    engine;

    OnGameModeInit:
    PHP код:
    ManualVehicleEngineAndLights(); 
    Команда /en:
    PHP код:
    CMD:en(playeridparams[]) {
      new 
    vehicleid GetPlayerVehicleID(playerid);
      switch(
    GetEngineStatus(vehicleid)) {
        case 
    true: {
          
    SetEngineStatus(vehicleidfalse);
          
    GameTextForPlayer(playerid"~r~ENGINE OFF"30004);
        }
        case 
    false: {
          
    SetEngineStatus(vehicleidtrue);
          
    GameTextForPlayer(playerid"~g~ENGINE ON"30004);
        }
      }
      return 
    1;

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

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

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

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

  2. #2
    Аватар для ziggi
    Проверенный

    Статус
    Оффлайн
    Регистрация
    14.05.2015
    Сообщений
    1,181
    Репутация:
    790 ±
    PHP код:
    switch (GetEngineStatus(vehicleid)) {
        case 
    VEHICLE_PARAMS_ON: {
            
    SetEngineStatus(vehicleidfalse);
            
    GameTextForPlayer(playerid"~r~ENGINE OFF"30004);
        }
        case 
    VEHICLE_PARAMS_OFFVEHICLE_PARAMS_UNSET: {
            
    SetEngineStatus(vehicleidtrue);
            
    GameTextForPlayer(playerid"~g~ENGINE ON"30004);
        }


  3. #3
    Аватар для vladivanovx
    Пользователь

    Статус
    Оффлайн
    Регистрация
    11.12.2016
    Сообщений
    27
    Репутация:
    0 ±
    Спасибо!

    Кстати, нашел еще такой способ:
    PHP код:
    stock GetEngineStatus(vehicleid) {
      
    GetVehicleParamsEx(vehicleidenginelightsalarmdoorsbonnetbootobjective);
      if(
    engine != 1) return 0;
      return 
    1;


  4. #4
    Аватар для ziggi
    Проверенный

    Статус
    Оффлайн
    Регистрация
    14.05.2015
    Сообщений
    1,181
    Репутация:
    790 ±
    Цитата Сообщение от vladivanovx Посмотреть сообщение
    Спасибо!

    Кстати, нашел еще такой способ:
    PHP код:
    stock GetEngineStatus(vehicleid) {
      
    GetVehicleParamsEx(vehicleidenginelightsalarmdoorsbonnetbootobjective);
      if(
    engine != 1) return 0;
      return 
    1;

    Тогда используй соответствующее название для функции:
    PHP код:
    stock IsEngineOn(vehicleid)
    {
        
    GetVehicleParamsEx(vehicleidenginelightsalarmdoorsbonnetbootobjective);
        return 
    engine == VEHICLE_PARAMS_ON;


  5. #5
    Аватар для vladivanovx
    Пользователь

    Статус
    Оффлайн
    Регистрация
    11.12.2016
    Сообщений
    27
    Репутация:
    0 ±
    Ясно.
    Спасибо, теперь более понятна стала моя ошибка.

 

 

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •