Вопросы

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

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 пользователей онлайн

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

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

    • KAIF
      От KAIF


      Скачать файл GTA RolePlay-МОД,СБОРКА
      !!!!!ВСЕГО ОДНА КОПИЯ!!!! 
      Единственный мод GTA RP.
       
      Фракции:
      Правительство
      ГИБДД
      Полиция Южного
      ФСБ
      ЦГБ-А
      Автошкола
      Китайская мафия
      Русская Мафия
      Итальянская Мафия
      Американская Мафия
      Чеченская Мафия
      ВВС
      МЧС
      ОПГ Тяп-Ляп
      ОПГ Хади-Такташ
      СМИ Южного
      ФСИН
      В комплекте идёт СБОРКА И МОД.
      Единственный мод GTA RP.
      Добавил KAIF Добавлено 01.01.2024 Категория Моды Автор Aleksandr  
    • gooding
      От gooding
      Доброго времени суток! Я выложил на продажу игровой мод RedRow RolePlay!
       
      17 ТИТУЛОВ, 14 КОСТЮМОВ (КАМЕРМЭН, ФЕЯ, СИ-ДЖЕЙ, ДЭДПУЛ, СПАНЧ БОБ, НИНДЗЯ, ДЕД МОРОЗ и другие!),
      BMW I8, BMW M5, BMW Vision M NEXT, Mercedes-Benz G-CLASS, Rolls-Royce Phantom! Система рулетки  (Исправлена, теперь не выпадает одно и то же),
      Автопарки Фракций (FBI и банд), МОД ОПТИМИЗИРОВАЛИ под ИГРУ, ДОБАВИЛИ НОВЫЙ АНТИЧИТ (Latest Nex-AC) и АНТИЧИТ настроен. Проделано много работы (Над модом работали полгода) и исправили множество багов.
       
      Что было добавлено?
      1. 17 титулов,
      2. 14 костюмов,
      3. Эксклюзивный транспорт (SandKing, Rolls-Royce Phantom, BMW I8, BMW M5, BMW Vision M NEXT, Mercedes-Benz G-CLASS).
      4. Автопарк ФБР и всех банд.
      5. Новый анти-чит.
      6. Оптимизация игрового мода.
      7. Премиум и уникальные возможности для владельцев Премиума.
      8. Команда /bonus, где можно получить бесплатно Red Coins.
      9. За АКТИВ даются Red Coins!
      10. Рестарт сервера в 5:00 по МСК.
      11. Радужный клист.
      12. Уникальный тюнинг для эксклюзивных машин и ускорение.
      13. Новая система банка.
      14. Исправлено множество багов.
      15. Новый маппинг.
    • Redmondd
      От Redmondd
      Хочу сделать команду /gpsoff, которая убирает метку