Question

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

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");

 

Share this post


Link to post

5 answers to this question

  • 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;
}

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

Share this post


Link to post
  • 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 

 

Share this post


Link to post
  • 0
format(str,sizeof(str),"KM/H %.1f",veloc);

 

Share this post


Link to post
  • 0

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

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

Share this post


Link to post
  • 0

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

Share this post


Link to post
Guest
This topic is now closed to further replies.
  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • Артём Профиков
      By Артём Профиков
      Скачал чистую Криминальную Россию beta 2.0, после добавлению любого объекта вылетает
      Вот строчки как я добавляю
      crteam.ide
      15000, avtosalon, avtosalon, 200, 0 crteam.ipl
      15000, avtosalon, 0, 1673.34351, 1671.97498, 14.84240, 0, 0, 0, 1, -1 И после этого начинает вылетать. Саму модель добавил в gta3.img. Кто знает из-за чего вылетает напишите пожалуйста
    • Доналдо Фарекелка
      By Доналдо Фарекелка


      Скачать файл Arizona RolePlay || Ser
      Приветствую, этот мод я нашёл на просторах интернета. 
      Скачал мод у автора:  Developer Stravinskiy
      Доработал мод: Donaldo_Farekelka
       
      Предупреждаю! Мод сырой, багов стало меньше, но они есть.
      Мод: Баня, Подвал, В некоторых местах маппинг, система коронавируса, 9 лвл админок
       
      Информация:
      1) Dc_Cmd
      2) Mysql, mode, language - Всё настраивается теперь в pawno ( UPDATE: 1.1.0 )
      3) Административные права в данный момент можно выдать только через MYSQL ( BD ).
       
      То что я сделал:
       
      Добавил Доналдо Фарекелка Добавлено 13.04.2023 Категория Моды Автор shenol (vk.com/donaldo_farekelka)  
    • Доналдо Фарекелка
      By Доналдо Фарекелка
      Приветствую, этот мод я нашёл на просторах интернета. 
      Скачал мод у автора:  Developer Stravinskiy
      Доработал мод: Donaldo_Farekelka
       
      Предупреждаю! Мод сырой, багов стало меньше, но они есть.
      Мод: Баня, Подвал, В некоторых местах маппинг, система коронавируса, 9 лвл админок
       
      Информация:
      1) Dc_Cmd
      2) Mysql, mode, language - Всё настраивается теперь в pawno ( UPDATE: 1.1.0 )
      3) Административные права в данный момент можно выдать только через MYSQL ( BD ).
       
      То что я сделал:
       
    • Tookie Johnson
      By Tookie Johnson
      Здравствуйте. Пишу РП мод с нуля. Поделитесь, пожалуйста, системой ввода реферала при регистрации и проверкой на ввод своего имени.