Вопросы

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

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

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

    • Redmondd
      От Redmondd
      При запуске сервера в консоли пишет: Started server on port: 7777, with maxplayers: 500 lanmode is OFF.
      И когда захожу на сервер пишет server didnt respond
       
      ---------- Loaded log file: "server_log.txt". ---------- SA-MP Dedicated Server ---------------------- v0.3.7-R2, (C)2005-2015 SA-MP Team filterscripts = ""  (string) Server Plugins --------------  Loading plugin: mysql   > MySQL plugin R7-2 successfully loaded.   Loaded.  Loading plugin: sscanf  ===============================       sscanf plugin loaded.          Version:  2.8.1    (c) 2012 Alex "Y_Less" Cole  ===============================   Loaded.  Loading plugin: dc_cmd   Daniel's CMD plugin v2.8     (c) 2014 Daniel_Cortez         www.pro-pawn.ru   Loaded.  Loading plugin: streamer *** Streamer Plugin v2.7.9 by Incognito loaded ***   Loaded.  Loaded 4 plugins. Started server on port: 7777, with maxplayers: 500 lanmode is OFF. Filterscripts ---------------   Loaded 0 filterscripts. Подключение к базе данных MYSQL успешно ---------------------------------- --------Redmond RP 01-------- ---------------------------------- Number of vehicle models: 5 Склады загружены успешно Дома (15 шт) загружены успешно