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

    Статус
    Оффлайн
    Регистрация
    07.05.2014
    Адрес
    Хабаровск
    Сообщений
    25
    Репутация:
    3 ±

    Позиция в гонке

    Ребят, всем привет)
    Пишу систему гонок, тут встал вопрос о позициях гонщиков в гонке.
    Подскажите как примерно ее можно осуществить?

    - Гонка проходит по чекпоинтам

  2. #2
    Аватар для Smile
    Пользователь

    Статус
    Оффлайн
    Регистрация
    08.09.2013
    Сообщений
    22
    Репутация:
    16 ±
    По мере прохождения чекпоинтов, увеличивай переменную игрока и потом уже узнавай у кого значение переменной больше, тот и первый в позиции.

  3. #3
    Аватар для Daniel_Cortez
    "Это не хак, это фича"

    Статус
    Оффлайн
    Регистрация
    06.04.2013
    Адрес
    Novokuznetsk, Russia
    Сообщений
    2,192
    Репутация:
    2589 ±
    Создать 3 массива: в одном будет записываться пройденное кол-во чекпоинтов для каждого игрока, в другом - ID участников гонки, в третьем - время прохождения последнего чекпоинта. При старте гонки в массиве с кол-вом чекпоинтов инициализировать все ячейки нулями, в массиве с временем прохождения чекпоинтов также записать нули (0.00) и в оставшемся массиве записать ID участников. Дальше, когда какой-нибудь игрок пройдёт через чекпоинт, увеличить у этого игрока пройденное кол-во чекпоинтов и отсортировать массив с ID участников по кол-ву чекпоинтов, если у двух игроков кол-во одинаковое - сортировать по времени прохождения чекпоинта.
    Сложно, но можно.
    Индивидуально в ЛС по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).

  4. #4
    Аватар для NewGreen
    Пользователь

    Статус
    Оффлайн
    Регистрация
    29.09.2014
    Сообщений
    61
    Репутация:
    44 ±
    Еще вариант:
    Создадим:
    PHP код:
    #define MAX_TOP_PLAYERS 3 // Количество призовых мест
    new listOfTopPlayers[MAX_TOP_PLAYERS]; // Массив для хранения ID победителей
    new listOfTopPlayersCounter// Счетчик для массива 
    Теперь нам понадобится лишь последний (финишный) чекпоинт, там мы запишем трех финалистов
    в проверке на последний чекпоинт пишем код:
    PHP код:
    //...
    if(listOfTopPlayersCounter MAX_TOP_PLAYERS
    {
        
    listOfTopPlayers[listOfTopPlayersCounter] = playerid;
        
    listOfTopPlayersCounter++;
    }
    //... 
    Теперь у нас в массиве listOfTopPlayers, хранятся ID первых трех игроков, которые пересекли финиш.
    Последний раз редактировалось NewGreen; 14.08.2015 в 20:08.

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

    Статус
    Оффлайн
    Регистрация
    07.05.2014
    Адрес
    Хабаровск
    Сообщений
    25
    Репутация:
    3 ±
    Еще вариант:
    Создадим:
    PHP код:
    #define MAX_TOP_PLAYERS 3 // Количество призовых мест
    new listOfTopPlayers[MAX_TOP_PLAYERS]; // Массив для хранения ID победителей
    new listOfTopPlayersCounter; // Счетчик для массива
    Теперь нам понадобится лишь последний (финишный) чекпоинт, там мы запишем трех финалистов
    в проверке на последний чекпоинт пишем код:
    PHP код:
    //...
    if(listOfTopPlayersCounter < MAX_TOP_PLAYERS)
    {
    listOfTopPlayers[listOfTopPlayersCounter] = playerid;
    listOfTopPlayersCounter++;
    }
    //...
    Теперь у нас в массиве listOfTopPlayers, хранятся ID первых трех игроков, которые пересекли финиш.
    Чуть чуть не то)
    Меня интересовал ТОП игроков во время гонки, когда они еще гоняются)

  6. #6
    Аватар для $continue$
    Пользователь

    Статус
    Оффлайн
    Регистрация
    02.08.2014
    Адрес
    г. Киров (aka Вятка)
    Сообщений
    1,487
    Репутация:
    276 ±
    Цитата Сообщение от BonBon Посмотреть сообщение
    Чуть чуть не то)
    Меня интересовал ТОП игроков во время гонки, когда они еще гоняются)
    Не забывайтесь Вы все таки в SA-MP

  7. #7
    Аватар для Daniel_Cortez
    "Это не хак, это фича"

    Статус
    Оффлайн
    Регистрация
    06.04.2013
    Адрес
    Novokuznetsk, Russia
    Сообщений
    2,192
    Репутация:
    2589 ±
    Цитата Сообщение от $continue$ Посмотреть сообщение
    Не забывайтесь Вы все таки в SA-MP
    Задача вполне решаема и без изменения её условий. Одно из таких решений я уже описал выше.
    Индивидуально в ЛС по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).

 

 

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

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

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

Ваши права

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