Вопросы

вот код паблика

public getspeed(playerid)
{
    new Float:cord[3];
    GetVehicleVelocity(GetPlayerVehicleID(playerid),cord[0], cord[1], cord[2]);
    new Float:veloc = floatsqroot(floatpower(floatabs(cord[0]), 2.0) + floatpower(floatabs(cord[1]), 2.5) + floatpower(floatabs(cord[2]), 2.0)) * 181.3;
    new str[25];
    format(str,sizeof(str),"KM/H %d",veloc);
    PlayerTextDrawSetString(playerid,speed[playerid],str);
    return 1;

}

вот OnPlayerStateChange(function)

Спойлер

    if(newstate == PLAYER_STATE_DRIVER)
    {

        PlayerTextDrawShow(playerid,speed[playerid]);
        SetTimerEx("getspeed", 1, true, "%f", playerid);
   
    }
    if(newstate == PLAYER_STATE_ONFOOT)
    {
        PlayerTextDrawHide(playerid,speed[playerid]);
    }

тд:

new PlayerText:speed[MAX_PLAYERS];

new PlayerText:speed[MAX_PLAYERS];
// в onplayerconnect
speed[playerid] = PlayerText:CreatePlayerTextDraw(playerid,68.750000163.333328"KM/H");

 

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


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

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

  • 1

@Antoxa39%f используется при передаче вещественных чисел. Для передачи целочисленных, коим и является ID игрока (playerid), используют %d или %i. Также обращаю ваше внимание на то, что интервал для вызова таймера задается в миллисекундах. Боюсь, каждую миллисекунду вызывать таймер для расчета скорости - перебор. Поменяю это значение на половину секунды (1000 миллисекунд = 1 секунда).

SetTimerEx("getspeed"0.5 * 1000true"%i", playerid);

Следующая проблема состоит в том, что вы имеете вещественное число, но выводите его как целое. Следует либо округлить соответствующей функцией, либо все же выводить вещественное число. Но, коль уж вы ожидаете увидеть целочисленное, выполним округление.

public getspeed(playerid) {
    new Float:cord[3];
    GetVehicleVelocity(GetPlayerVehicleID(playerid),cord[0], cord[1], cord[2]);
    new Float:veloc = floatsqroot(floatpower(floatabs(cord[0]), 2.0) + floatpower(floatabs(cord[1]), 2.5) + floatpower(floatabs(cord[2]), 2.0)) * 181.3;
    new str[25];
    format(str,sizeof(str),"KM/H %d",floatround(veloc));
    PlayerTextDrawSetString(playerid,speed[playerid],str);
    return 1;
}

Сходу больше не вижу проблем.

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


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

@Antoxa39, %.1f - точность (количество цифр после запятой). По аналогии, например, %03d означает, что целое число должно быть представлено как минимум 3 разрядами. В случае нехватки добавляются незначащие нули в целой или дробной частях. Например,

printf("%.1f"37.1234); // 37.1
printf("%.4f"37.1234); // 37.1234
printf("%.6f"37.1234); // 37.123400
printf("%03d"7); // 007
printf("%09d"7); // 000000007
printf("%03d"7000); // 7000 

 

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


Ссылка на сообщение
  • 0
format(str,sizeof(str),"KM/H %.1f",veloc);

 

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


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

@Klebitz извиняюсь,а можно обьяснение?) что значит %.1

@Cawfee я пытался округлить в переменной но не вышло. Сейчас затещу)

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


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

@Cawfee спасибо за ответ))) удачи в скриптинге!

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


Ссылка на сообщение
Гость
Эта тема закрыта для публикации ответов.
  • Последние посетители   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
      Скажите пожалуйста почему этот код(знаю что ещё не допиленный) 
      выдаёт эти ошибки