Профиль
Информация Управление
Здравствуйте, уважаемый посетитель. К сожалению, Вы не были распознаны форумом, как зарегистрированный пользователь. Для полноценного использования возможностей нашего форума вам необходимо зарегистрироваться. Если вы уже зарегистрированы на форуме, то вам необходимо пройти авторизацию, используя Ваш логин и пароль. Зарегистрированные пользователи получают возможность возможность общения на нашем форуме.


[Новые сообщения · Правила форума · RSS ]
  • Страница 1 из 1
  • 1
GetVehicleParamsEx возвращает -1
SlootLite Дата: Воскресенье, 27.02.2011, 02:45 | Сообщение # 1
Рядовой
Группа: Проверенные
Зарегистрирован: 24.02.2011
Сообщений: 14
Репутация: 0
Статус: Offline
Привет)
Парюсь уже где то часа 3 над этой фигней. Беру значения через GetVehicleParamsEx и значения заводимости двигателя возвращается -1. Причем сегодня днем все работало отлично. Уже голову сломал себе. Кстате, даже ставил проверку, если равно -1 то чтоб завелась, но тупо игнорит меня эта проверка. Ппц кароч...
Code

if(newkeys == 512 && GetPlayerState(playerid) == 2)
  {
      new carid2 = GetPlayerVehicleID(playerid);
      new engine2,lights2,alarm2,doors2,bonnet2,boot2,objective2;
   new playernames[MAX_PLAYER_NAME];
   GetVehicleParamsEx(carid2,engine2,lights2,alarm2,doors2,bonnet2,boot2,objective2);
   printf("%d",engine2);
   if(engine2 == 0)
   {

далее код ненужен, так как он останавливается после принта
 
OKStyle Дата: Воскресенье, 27.02.2011, 02:56 | Сообщение # 2
Архивариус
Группа: Администраторы
Зарегистрирован: 19.02.2011
Сообщений: 125
Репутация: 8
Статус: Offline
Ну правильно, тут либо не указано ручное включение параметров, либо нигде не задаётся значение оных. Покажу на примере мини-скрипта: контроль над транспортом с помощью диалога, вызываемого по клавише "2".

В начало:

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

В OnGameModeInit:

Code
ManualVehicleEngineAndLights();

В OnPlayerStateChange:

Code
if(newstate == PLAYER_STATE_DRIVER)
{
  GetVehicleParamsEx(GetPlayerVehicleID(playerid),engine,lights,alarm,doors,bonnet,boot,objective);
  SetVehicleParamsEx(GetPlayerVehicleID(playerid),#,0,0,0,0,0,0); // #: 1 - если движок должен быть заведён, 0 - если нет
}

В OnPlayerKeyStateChange:

Code
if(newkeys & KEY_SUBMISSION)
{
  GetVehicleParamsEx(GetPlayerVehicleID(playerid),engine,lights,alarm,doors,bonnet,boot,objective);
  new
   engine_string[50],
   lights_string[50],
   alarm_string[50],
   doors_string[50],
   bonnet_string[50],
   boot_string[50];
  if(engine == VEHICLE_PARAMS_ON) format(engine_string,sizeof(engine_string),"{FF0000}Заглушить");
  if(engine == VEHICLE_PARAMS_OFF) format(engine_string,sizeof(engine_string),"{00FF00}Завести");
  if(lights == VEHICLE_PARAMS_ON) format(lights_string,sizeof(lights_string),"{FF0000}Выключить");
  if(lights == VEHICLE_PARAMS_OFF) format(lights_string,sizeof(lights_string),"{00FF00}Включить");
  if(alarm == VEHICLE_PARAMS_ON) format(alarm_string,sizeof(alarm_string),"{FF0000}Выключить");
  if(alarm == VEHICLE_PARAMS_OFF) format(alarm_string,sizeof(alarm_string),"{00FF00}Включить");
  if(doors == VEHICLE_PARAMS_ON) format(doors_string,sizeof(doors_string),"{00FF00}Открыть");
  if(doors == VEHICLE_PARAMS_OFF) format(doors_string,sizeof(doors_string),"{FF0000}Закрыть");
  if(bonnet == VEHICLE_PARAMS_ON) format(bonnet_string,sizeof(bonnet_string),"{FF0000}Закрыть");
  if(bonnet == VEHICLE_PARAMS_OFF) format(bonnet_string,sizeof(bonnet_string),"{00FF00}Открыть");
  if(boot == VEHICLE_PARAMS_ON) format(boot_string,sizeof(boot_string),"{FF0000}Закрыть");
  if(boot == VEHICLE_PARAMS_OFF) format(boot_string,sizeof(boot_string),"{00FF00}Открыть");
}
new string[768];
format(string,sizeof(string),"Двигатель {FFFF00}| %s\nФары {FFFF00}| %s\nСигнализация {FFFF00}| %s\nДвери {FFFF00}| %s\nКапот {FFFF00}| %s\nБагажник {FFFF00}| %s",engine_string,lights_string,alarm_string,doors_string,bonnet_string,boot_string);
ShowPlayerDialog(playerid,666,DIALOG_STYLE_LIST,"Меню действий с транспортом",string,"Выбрать","Выход");

В OnDialogResponse:

Code
if(dialogid == 666)
{
  if(response)
   {
    switch(listitem)
    {
    case 0:
    {
     GetVehicleParamsEx(GetPlayerVehicleID(playerid),engine,lights,alarm,doors,bonnet,boot,objective);
     if(engine == 1) SetVehicleParamsEx(GetPlayerVehicleID(playerid),0,lights,alarm,doors,bonnet,boot,objective);
     if(engine == 0) SetVehicleParamsEx(GetPlayerVehicleID(playerid),1,lights,alarm,doors,bonnet,boot,objective);
    }
    case 1:
    {
     GetVehicleParamsEx(GetPlayerVehicleID(playerid),engine,lights,alarm,doors,bonnet,boot,objective);
     if(lights == 1)    SetVehicleParamsEx(GetPlayerVehicleID(playerid),engine,0,alarm,doors,bonnet,boot,objective);
     if(lights == 0)    SetVehicleParamsEx(GetPlayerVehicleID(playerid),engine,1,alarm,doors,bonnet,boot,objective);
    }
    case 2:
    {
     GetVehicleParamsEx(GetPlayerVehicleID(playerid),engine,lights,alarm,doors,bonnet,boot,objective);
     if(alarm == 1) SetVehicleParamsEx(GetPlayerVehicleID(playerid),engine,lights,0,doors,bonnet,boot,objective);
     if(alarm == 0)    SetVehicleParamsEx(GetPlayerVehicleID(playerid),engine,lights,1,doors,bonnet,boot,objective);
    }
    case 3:
    {
     GetVehicleParamsEx(GetPlayerVehicleID(playerid),engine,lights,alarm,doors,bonnet,boot,objective);
     if(doors == 1) SetVehicleParamsEx(GetPlayerVehicleID(playerid),engine,lights,alarm,0,bonnet,boot,objective);
     if(doors == 0) SetVehicleParamsEx(GetPlayerVehicleID(playerid),engine,lights,alarm,1,bonnet,boot,objective);
    }
    case 4:
    {
     GetVehicleParamsEx(GetPlayerVehicleID(playerid),engine,lights,alarm,doors,bonnet,boot,objective);
     if(bonnet == 1) SetVehicleParamsEx(GetPlayerVehicleID(playerid),engine,lights,alarm,doors,0,boot,objective);
     if(bonnet == 0) SetVehicleParamsEx(GetPlayerVehicleID(playerid),engine,lights,alarm,doors,1,boot,objective);
    }
    case 5:
    {
     GetVehicleParamsEx(GetPlayerVehicleID(playerid),engine,lights,alarm,doors,bonnet,boot,objective);
     if(boot == 1) SetVehicleParamsEx(GetPlayerVehicleID(playerid),engine,lights,alarm,doors,bonnet,0,objective);
     if(boot == 0) SetVehicleParamsEx(GetPlayerVehicleID(playerid),engine,lights,alarm,doors,bonnet,1,objective);
    }
   }
  }
}


 
SlootLite Дата: Воскресенье, 27.02.2011, 03:00 | Сообщение # 3
Рядовой
Группа: Проверенные
Зарегистрирован: 24.02.2011
Сообщений: 14
Репутация: 0
Статус: Offline
ManualVehicleEngineAndLights(); стоит
и проблема не в том что незаводится, проблема в том что возвращает число, которое неможет быть
 
OKStyle Дата: Воскресенье, 27.02.2011, 03:04 | Сообщение # 4
Архивариус
Группа: Администраторы
Зарегистрирован: 19.02.2011
Сообщений: 125
Репутация: 8
Статус: Offline
Значит точно в том, что параметр нигде не устанавливается. Сервер не знает, откуда ему брать параметр и ставит -1.

 
SlootLite Дата: Воскресенье, 27.02.2011, 03:06 | Сообщение # 5
Рядовой
Группа: Проверенные
Зарегистрирован: 24.02.2011
Сообщений: 14
Репутация: 0
Статус: Offline
Хорошо. Допустим) Но почему тогда днем этот же код работал отлично? И почему он игнорирует проверку if(engine == -1) ?
Я даже пробывал проверку if(engine != -1) и он все это тупо игнорит
 
OKStyle Дата: Воскресенье, 27.02.2011, 03:08 | Сообщение # 6
Архивариус
Группа: Администраторы
Зарегистрирован: 19.02.2011
Сообщений: 125
Репутация: 8
Статус: Offline
Изучи мой код, приведённый выше. Я при посадке в транспорт получаю и устанавливаю параметр. А потом уже позволяю манипулировать.

Сделай проверку:

Code
if(engine == -1)
{
     engine = 1;
     SetVehicleParamsEx(GetPlayerVehicleID(playerid),engine...);
}


 
SlootLite Дата: Воскресенье, 27.02.2011, 03:15 | Сообщение # 7
Рядовой
Группа: Проверенные
Зарегистрирован: 24.02.2011
Сообщений: 14
Репутация: 0
Статус: Offline
Действительно. Установил так, возвращает 0.
Другая проблема. Нехочет проверять этот 0.
Code

if(engine2 == 0)
{
траляля
}
 
OKStyle Дата: Воскресенье, 27.02.2011, 03:17 | Сообщение # 8
Архивариус
Группа: Администраторы
Зарегистрирован: 19.02.2011
Сообщений: 125
Репутация: 8
Статус: Offline
Попробуй вот так:

Code
GetVehicleParamsEx(GetPlayerVehicleID(playerid),engine,lights,alarm,doors,bonnet,boot,objective);
SetVehicleParamsEx(GetPlayerVehicleID(playerid),engine,lights,alarm,doors,bonnet,boot,objective);
if(engine == 0)
{
    engine = 1;
}
SetVehicleParamsEx(GetPlayerVehicleID(playerid),engine,lights,alarm,doors,bonnet,boot,objective);


 
SlootLite Дата: Воскресенье, 27.02.2011, 03:23 | Сообщение # 9
Рядовой
Группа: Проверенные
Зарегистрирован: 24.02.2011
Сообщений: 14
Репутация: 0
Статус: Offline
Я нашел ошибку) Оказывается с массивом поругался) И поэтому непроходила проверка дальше) Но все таки непойму одного, почему до этого возвращало без установки начальной, а теперь нужно smile
За двумя массивами погонишся, к окстайлу обратишся :-D


Сообщение отредактировал SlootLite - Воскресенье, 27.02.2011, 03:24
 
OKStyle Дата: Воскресенье, 27.02.2011, 03:25 | Сообщение # 10
Архивариус
Группа: Администраторы
Зарегистрирован: 19.02.2011
Сообщений: 125
Репутация: 8
Статус: Offline
Потому что не должно работать без установки =)

 
SlootLite Дата: Воскресенье, 27.02.2011, 03:28 | Сообщение # 11
Рядовой
Группа: Проверенные
Зарегистрирован: 24.02.2011
Сообщений: 14
Репутация: 0
Статус: Offline
Лан кароч пофиг) Спасибо огромное) Тема клосед мона)
 
  • Страница 1 из 1
  • 1
Поиск:

Сайт управляется системой uCoz