Вопросы

Приветствую всех. При написании сдачи на права, после того, как сажусь в авто, ничего не происходит. Метка "гонки" не появляется. Также появляются варнинги в паблике 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 пользователей онлайн

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

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

    • gooding
      От gooding


      Скачать файл ELITE RP | МОД БОНУСНОГО ПРОЕКТА
      Доброго времени суток, уважаемые читатели, я выставил на продажу мод ELITE RP !
      Что же в этом моде уникального?
      - Работы из реальной жизни. (Яндекс Еда  CDEK  Инкассатор)
      - Кланы. (Тиктокеры, Блоггеры, Хамы, Министры, Звери, Сосиски, Сладкие, Ублюдки, Цари и Прокуроры)
      - Радужный, Мигающий клист.
      - Донат-плюшки.
      - Неон на автомобиль, Supreme-наклейка.
      - Брони-транспорт.
      - Кейсы. (SILVER, MEGA, SUPER)
      - ДМ-зона.
      - Эксклюзивные аксессуары.
      - Lamborgini Gold.
      - Новые мафии. (ОПГ)
      - Привилегии для машины. (10.000 HP, телепортация личного транспорта)
      - Система банкоматов.
      - Таксопарки. (VIP-класса и Business)
      - Уникальная система управления личным транспортом. (/cars)
      - Новая система казино.
      - Свой маппинг.
      И многое другое!

      Мод будет дополняться!
      Добавил gooding Добавлено 20.04.2024 Категория Моды Автор gooding  
    • tivan666ban
      От tivan666ban
      Скажите пожалуйста почему этот код(знаю что ещё не допиленный) 
      выдаёт эти ошибки