во-первых, объяви метод в хедере, классе Visuals
Ну во первых создай саму опцию velocity_info и привяжи ее к элементу.
? не оч понял, можешь обьяснитьво-первых, объяви метод в хедере, классе Visuals
спасибоНу во первых создай саму опцию velocity_data и привяжи ее к элементу.
Во вторых объяви метод класса Visuals
В третьих юзай не clamp, а std::clamp (Render::RenderLine не воркает именно из за этого)
Ну во первых создай саму опцию velocity_info и привяжи ее к элементу.
Во вторых объяви метод класса Visuals
В третьих юзай не clamp, а std::clamp (Render::RenderLine не воркает именно из за этого)
? не оч понял, можешь обьяснить
в заголовочном файле, в классе Visuals обьяви (создай) метод:Во вторых объяви метод класса Visuals
void VelocityInfo();
во первых выучи c++
ну я учу вот по этому и спрашиваюво первых выучи c++
ладно пастеры симпла и мувмeнт читов не умнее пастеров лв...
Учить так это типо создавать темы на югейме?ну я учу вот по этому и спрашиваю
т.к пытался учить по курсам не интересно, решил учить так
.h или .hpp это заголовочные файлы
можешь velocity_data дать
я же сказал, писать эту строчку надо в хедере. (заголовочном файле) выше чел всё правильно сказал - .h или .hpp
Может потому, что ты пытаешься клампить значение из несуществующей переменной?хм не работает
void VelocityInfo()
void Visuals::VelocityInfo()
{
auto velocity_data = [];
auto last_log = 0;
if (!g_LocalPlayer || !g_LocalPlayer->IsAlive())
return;
if (!g_Options.velocity_info)
return;
int x, y;
g_EngineClient->GetScreenSize(x, y);
Vector vec = g_LocalPlayer->m_vecVelocity();
float velocity = sqrt(vec[0] * vec[0] + vec[1] * vec[1]);
bool in_air = g_LocalPlayer->m_fFlags() & IN_JUMP /*|| g_LocalPlayer->m_fFlags() & IN_SPEED*/;
Render::Get().RenderText(std::to_string(std::round(velocity)), ImVec2(x / 2, y / 2 + 450), 4, Color(245, 245, 220, 255));
Render::Get().RenderText("u/s", ImVec2(x / 2 + 1, y / 2 + 485), 2, Color(255, 255, 255, 255));
Render::Get().RenderLine(x / 2 - 100, y / 2 + 325, x / 2 - 100, y / 2 + 445, Color(100, 100, 100, 125));
Render::Get().RenderLine(x / 2 - 115, y / 2 + 430, x / 2 + 95, y / 2 + 430, Color(100, 100, 100, 125));
if (g_GlobalVars->curtime - last_log > g_GlobalVars->interval_per_tick)
{
last_log = g_GlobalVars->curtime;
velocity_data.unshift([velocity, in_air]);
}
if (velocity_data.length > 40)
velocity_data.pop();
for (auto i = 0; i < velocity_data.length - 1; i++)
{
auto cur = velocity_data[i][0];
auto next = velocity_data[i + 1][0];
auto landed = velocity_data[i][1] && !velocity_data[i + 1][1];
Render::Get().RenderLine(x / 2 + 90 - (i - 1) * 5, y / 2 + 430 - (std::clamp(cur, 0, 450) * 75 / 320), x / 2 + 90 - i * 5, y / 2 + 130 - (std::clamp(next, 0, 450) * 75 / 320), Color(200,200,200,255));
if (landed)
Render::Get().RenderText(std::to_string(std::round(next)), ImVec2(x / 2 + 100 - (i + 1) * 5, y / 2 + 415 - (std::clamp(next, 0, 450) * 75 / 320)), 3, Color(245, 245, 220, 255));
}
}
ты не первый, кто пытается это объяснить :)В features/visuals.hpp в классе Visuals объявляешь
void VelocityInfo()
по фактуво первых выучи c++
ладно пастеры симпла и мувмeнт читов не умнее пастеров лв...
Проект предоставляет различный материал, относящийся к сфере киберспорта, программирования, ПО для игр, а также позволяет его участникам общаться на многие другие темы. Почта для жалоб: admin@yougame.biz