Вопросы

Приветствую всех. При написании сдачи на права, после того, как сажусь в авто, ничего не происходит. Метка "гонки" не появляется. Также появляются варнинги в паблике OnPlayerEnterRace, в этой строке: SdachaCar[playerid] = SDACHA_CHECKPOINT_1;
.Заранее за помощь огромное спасибо.
OnPlayerKeyStateChange:

 

if(newcar >=LicCar[0] && newcar <=LicCar[10])
 {
      if(Player[playerid][pCarlic] == 0 && SdachaPrav[playerid] == 1)
         {
                SdachaCar[playerid] = SDACHA_CHECKPOINT_1;
                SetPlayerRaceCheckpoint(playerid, 0, 1268.5393,-1336.6180,13.0590, 1266.3180,-1285.5385,13.0454,  10.0);
                SCM(playerid, COLOR_WHITE, "Следуйте по красным меткам.");
         }
    }

 

OnPlayerEnterRace:

 

new string[256];
if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
{
  if(SdachaCar[playerid] == 1)
  {
    switch(SdachaCar[playerid])
    {
      case SDACHA_CHECKPOINT_1:
        {
          pSdachaCar[playerid] = SDACHA_CHECKPOINT_2;
          SetPlayerRaceCheckpoint(playerid, 0, 1266.3180,-1285.5385,13.0454, 1295.4679,-1284.0054,13.1099, 5.0);
        }
      case SDACHA_CHECKPOINT_2:
        {
          pSdachaCar[playerid] = SDACHA_CHECKPOINT_3;
          SetPlayerRaceCheckpoint(playerid, 0, 295.4679,-1284.0054,13.1099,  1338.1318,-1287.9012,13.1374, 5.0);
        }

    }
}

 

Отредактировано пользователем odosenok

Заметка от Cawfee , создано

3.2. Код больше 10 строк необходимо брать в теги "Код" и "Спойлер". Как это сделать рассказано в разделе "FAQ".

Устное предупреждение.

Поделиться сообщением


Ссылка на сообщение

11 ответов на этот вопрос

  • 0

@yan2348 либо Player[playerid][pCarlic] равна 1, либо SdachaPrav[playerid] равна 0. Напиши команду, которая выводит эти значения и смотри, что не так

Поделиться сообщением


Ссылка на сообщение
  • 0

@yan2348, а какие предупреждения кидает компилятор?

Поделиться сообщением


Ссылка на сообщение
  • 0

@yan2348, покажите, как объявлены переменные SDACHA_CHECKPOINT_1 и SdachaCar.

Поделиться сообщением


Ссылка на сообщение
  • 0

Странно как-то. Ты переменной "SdachaCar[playerid]" приравниваешь "SDACHA_CHECKPOINT_1", потом проверяешь, равна ли эта переменная 1, потом через switch работаешь со значением этой переменной, не с числом, а с дефайном или, что это у тебя.

Начнём давай с другого, текст "Следуйте по красным меткам." выводится в чате?

Поделиться сообщением


Ссылка на сообщение
  • 0

@SCRIPTMAN там две разные переменные. 

 if(SdachaCar[playerid] == 1)
pSdachaCar[playerid] = SDACHA_CHECKPOINT_2;

@yan2348 

Решение тут думаю вот такое: 

switch(SdachaCar[playerid])// Проверять не эту переменную, а
switch(pSdachaCar[playerid])//Вот эту. - Верное

И тобишь, как я понимаю в OnPlayerKeyStateChange: будет вот так:

pSdachaCar[playerid] = SDACHA_CHECKPOINT_1;

 

Отредактировано пользователем Nekit_Krut18
Причина: Подправил.

Поделиться сообщением


Ссылка на сообщение
  • 0

@odosenok В диалоге на согласие на сдачу приравниваю к 1-му, после нажатия на "Да", чекпоинты SDACHA_CHECKPOINT_1 и т.д в enum'e

@Nekit_Krut18 Не изменилось, так и чекпоинты не появляются
@SCRIPTMAN Текст не выводится в чате

Поделиться сообщением


Ссылка на сообщение
  • 0

@yan2348 Попробуйте поставить в коде маячки: 

printf("DEBUG - 1");
printf("DEBUG - 2");
printf("DEBUG - 3");

И отслеживать какой код выполняется, какой нет.

Поделиться сообщением


Ссылка на сообщение
  • 0

@Nekit_Krut18 Вставил маячки, консоль сервера - 0 реакции, в любую часть кода засовывал, также в консоли ничего.

Поделиться сообщением


Ссылка на сообщение
  • 0

Замени код на этот и проследи, будет ли что-то писать в чате. Видимо что-то не соответствует проверке.

if(newcar >=LicCar[0] && newcar <=LicCar[10])
 {
      if(Player[playerid][pCarlic] == 0 && SdachaPrav[playerid] == 1)
         {
                SdachaCar[playerid] = SDACHA_CHECKPOINT_1;
                SetPlayerRaceCheckpoint(playerid, 0, 1268.5393,-1336.6180,13.0590, 1266.3180,-1285.5385,13.0454,  10.0);
                SCM(playerid, COLOR_WHITE, "Следуйте по красным меткам.");
         }
  	else return SendClientMessage(playerid, -1, "Косяк с проверкой внутри");
    }
else return SendClientMessage(playerid, -1, "Косяк с тачками");

Будет отталкиваться далее от текста, который выведет в чат

Поделиться сообщением


Ссылка на сообщение
  • 0

@SCRIPTMAN  Косяк в проверке, в тестовую команду всунул без проверки, метка гонки появилась. Что-то у меня не так с проверкой на лицензию и сдачу авто

Поделиться сообщением


Ссылка на сообщение
Эта тема закрыта для публикации ответов.
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

  • Похожий контент

    • От MrNARTI
      всем привет появилась ошибка со входам в автосалон, ерроров нету но при попытки входа показывает что есть транспорт загруженный хотя его нету. Но когда ввожу /car показывает что есть хотя повторяюсь его нет.
       
      код
       
      команда /саr
       
       
       
      если понадобится что то еще скинуть то скажите я скину.
    • От MrNARTI
      всем привет можете пожалуйста подсказать с командой от анти слива /aban
       
      чтобы банило и администратора который использовал эту кмд и адм которого указал в айди.