verteich
27.07.2019, 20:21
Добрый вечер, делал прогресс бар здоровья игрока, но такая дичь он отображается некорректно
new
Float:Health,
Float:Armour;
GetPlayerHealth(target, Health);
GetPlayerArmour(target, Armour);
368 = полная полоска
PlayerTextDrawTextSize(playerid, PTarget[playerid][1], Health*3.68, 0.0000);
PlayerTextDrawTextSize(playerid, PTarget[playerid][2], Armour*3.68, 0.0000);
Отображалось все некорректно, полоска выходила за свои границы и с ней был хауос
Я понял то что это из за того что ХП и бронь игрока плавающее значение, решил пофиксить таким макаром:
PlayerTextDrawTextSize(playerid, PTarget[playerid][1], floatround(Health, floatround_round)*3.68, 0.0000);
PlayerTextDrawTextSize(playerid, PTarget[playerid][2], floatround(Armour, floatround_round)*3.68, 0.0000);
Посмотрел, такая же дичь, и удивился
Решил задебажить эти значения и понял, то что если не умножать, то floatround выводит как надо число
Почему так и как можно это профиксить?
new
Float:Health,
Float:Armour;
GetPlayerHealth(target, Health);
GetPlayerArmour(target, Armour);
368 = полная полоска
PlayerTextDrawTextSize(playerid, PTarget[playerid][1], Health*3.68, 0.0000);
PlayerTextDrawTextSize(playerid, PTarget[playerid][2], Armour*3.68, 0.0000);
Отображалось все некорректно, полоска выходила за свои границы и с ней был хауос
Я понял то что это из за того что ХП и бронь игрока плавающее значение, решил пофиксить таким макаром:
PlayerTextDrawTextSize(playerid, PTarget[playerid][1], floatround(Health, floatround_round)*3.68, 0.0000);
PlayerTextDrawTextSize(playerid, PTarget[playerid][2], floatround(Armour, floatround_round)*3.68, 0.0000);
Посмотрел, такая же дичь, и удивился
Решил задебажить эти значения и понял, то что если не умножать, то floatround выводит как надо число
Почему так и как можно это профиксить?