Смысл? Это проблема в одном, но не во всём буллет трейсере, нету смысла его весь менятьИдти переписать код, или спасти с норм сурса!
у тебя именно отресовка поломана перепиши или возьми деф лв тогдаСмысл? Это проблема в одном, но не во всём буллет трейсере, нету смысла его весь менять
// This is an independent project of an individual developer. Dear PVS-Studio, please check it.
// PVS-Studio Static Code Analyzer for C, C++, C#, and Java: http://www.viva64.com
#include "bullet_tracers.h"
#include "..\..\sdk\misc\BeamInfo_t.hpp"
#include "..\ragebot\aim.h"
#include "..\..\utils\ctx.hpp"
#include "..\misc\logs.h"
void bullettracers::draw_beam(bool local_tracer, const Vector& src, const Vector& end, Color color)
{
if (src == ZERO)
return;
BeamInfo_t beam_info;
beam_info.m_vecStart = src;
if (local_tracer)
beam_info.m_vecStart.z -= 2.0f;
beam_info.m_vecEnd = end;
beam_info.m_nType = TE_BEAMPOINTS;
beam_info.m_pszModelName = crypt_str("sprites/physbeam.vmt");
beam_info.m_nModelIndex = -1;
beam_info.m_flHaloScale = 0.0f;
beam_info.m_flLife = 4.0f;
beam_info.m_flWidth = 3.0f;
beam_info.m_flEndWidth = 0.0f;
beam_info.m_flFadeLength = 0.0f;
beam_info.m_flAmplitude = 4.0f;
beam_info.m_flBrightness = (float)color.a();
beam_info.m_flSpeed = 0.0f;
beam_info.m_nStartFrame = 0;
beam_info.m_flFrameRate = 0.0f;
beam_info.m_flRed = (float)color.r();
beam_info.m_flGreen = (float)color.g();
beam_info.m_flBlue = (float)color.b();
beam_info.m_nSegments = 2;
beam_info.m_bRenderable = true;
beam_info.m_nFlags = FBEAM_SHADEIN | FBEAM_ONLYNOISEONCE | FBEAM_NOTILE | FBEAM_HALOBEAM;
auto beam = m_viewrenderbeams()->CreateBeamPoints(beam_info);
if (beam)
m_viewrenderbeams()->DrawBeam(beam);
}
void bullettracers::events(IGameEvent* event)
{
auto event_name = event->GetName();
if (!strcmp(event_name, crypt_str("bullet_impact")))
{
auto user_id = event->GetInt(crypt_str("userid"));
auto user = m_engine()->GetPlayerForUserID(user_id);
auto e = static_cast<player_t *>(m_entitylist()->GetClientEntity(user));
if (e->valid(false))
{
if (e == g_ctx.local())
{
auto new_record = true;
Vector position(event->GetFloat(crypt_str("x")), event->GetFloat(crypt_str("y")), event->GetFloat(crypt_str("z")));
for (auto& current : impacts)
{
if (e == current.e)
{
new_record = false;
current.impact_position = position;
current.time = m_globals()->m_curtime;
}
}
if (new_record)
impacts.push_back(
impact_data
{
e,
position,
m_globals()->m_curtime
});
}
else if (e->m_iTeamNum() != g_ctx.local()->m_iTeamNum())
{
auto new_record = true;
Vector position(event->GetFloat(crypt_str("x")), event->GetFloat(crypt_str("y")), event->GetFloat(crypt_str("z")));
for (auto& current : impacts)
{
if (e == current.e)
{
new_record = false;
current.impact_position = position;
current.time = m_globals()->m_curtime;
}
}
if (new_record)
impacts.push_back(
impact_data
{
e,
position,
m_globals()->m_curtime
});
}
}
}
}
void bullettracers::draw_beams()
{
if (impacts.empty())
return;
while (!impacts.empty())
{
if (impacts.begin()->impact_position.IsZero()) //-V807
{
impacts.erase(impacts.begin());
continue;
}
if (fabs(m_globals()->m_curtime - impacts.begin()->time) > 4.0f) //-V807
{
impacts.erase(impacts.begin());
continue;
}
if (!impacts.begin()->e->valid(false))
{
impacts.erase(impacts.begin());
continue;
}
if (TIME_TO_TICKS(m_globals()->m_curtime) > TIME_TO_TICKS(impacts.begin()->time))
{
auto color = g_cfg.esp.enemy_bullet_tracer_color;
if (impacts.begin()->e == g_ctx.local())
{
if (!g_cfg.esp.bullet_tracer)
{
impacts.erase(impacts.begin());
continue;
}
color = g_cfg.esp.bullet_tracer_color;
}
else if (!g_cfg.esp.enemy_bullet_tracer)
{
impacts.erase(impacts.begin());
continue;
}
draw_beam(impacts.begin()->e == g_ctx.local(), impacts.begin()->e == g_ctx.local() ? aim::get().last_shoot_position : impacts.begin()->e->get_shoot_position(), impacts.begin()->impact_position, color);
impacts.erase(impacts.begin());
continue;
}
break;
}
}
C++:// This is an independent project of an individual developer. Dear PVS-Studio, please check it. // PVS-Studio Static Code Analyzer for C, C++, C#, and Java: http://www.viva64.com #include "bullet_tracers.h" #include "..\..\sdk\misc\BeamInfo_t.hpp" #include "..\ragebot\aim.h" #include "..\..\utils\ctx.hpp" #include "..\misc\logs.h" void bullettracers::draw_beam(bool local_tracer, const Vector& src, const Vector& end, Color color) { if (src == ZERO) return; BeamInfo_t beam_info; beam_info.m_vecStart = src; if (local_tracer) beam_info.m_vecStart.z -= 2.0f; beam_info.m_vecEnd = end; beam_info.m_nType = TE_BEAMPOINTS; beam_info.m_pszModelName = crypt_str("sprites/physbeam.vmt"); beam_info.m_nModelIndex = -1; beam_info.m_flHaloScale = 0.0f; beam_info.m_flLife = 4.0f; beam_info.m_flWidth = 3.0f; beam_info.m_flEndWidth = 0.0f; beam_info.m_flFadeLength = 0.0f; beam_info.m_flAmplitude = 4.0f; beam_info.m_flBrightness = (float)color.a(); beam_info.m_flSpeed = 0.0f; beam_info.m_nStartFrame = 0; beam_info.m_flFrameRate = 0.0f; beam_info.m_flRed = (float)color.r(); beam_info.m_flGreen = (float)color.g(); beam_info.m_flBlue = (float)color.b(); beam_info.m_nSegments = 2; beam_info.m_bRenderable = true; beam_info.m_nFlags = FBEAM_SHADEIN | FBEAM_ONLYNOISEONCE | FBEAM_NOTILE | FBEAM_HALOBEAM; auto beam = m_viewrenderbeams()->CreateBeamPoints(beam_info); if (beam) m_viewrenderbeams()->DrawBeam(beam); } void bullettracers::events(IGameEvent* event) { auto event_name = event->GetName(); if (!strcmp(event_name, crypt_str("bullet_impact"))) { auto user_id = event->GetInt(crypt_str("userid")); auto user = m_engine()->GetPlayerForUserID(user_id); auto e = static_cast<player_t *>(m_entitylist()->GetClientEntity(user)); if (e->valid(false)) { if (e == g_ctx.local()) { auto new_record = true; Vector position(event->GetFloat(crypt_str("x")), event->GetFloat(crypt_str("y")), event->GetFloat(crypt_str("z"))); for (auto& current : impacts) { if (e == current.e) { new_record = false; current.impact_position = position; current.time = m_globals()->m_curtime; } } if (new_record) impacts.push_back( impact_data { e, position, m_globals()->m_curtime }); } else if (e->m_iTeamNum() != g_ctx.local()->m_iTeamNum()) { auto new_record = true; Vector position(event->GetFloat(crypt_str("x")), event->GetFloat(crypt_str("y")), event->GetFloat(crypt_str("z"))); for (auto& current : impacts) { if (e == current.e) { new_record = false; current.impact_position = position; current.time = m_globals()->m_curtime; } } if (new_record) impacts.push_back( impact_data { e, position, m_globals()->m_curtime }); } } } } void bullettracers::draw_beams() { if (impacts.empty()) return; while (!impacts.empty()) { if (impacts.begin()->impact_position.IsZero()) //-V807 { impacts.erase(impacts.begin()); continue; } if (fabs(m_globals()->m_curtime - impacts.begin()->time) > 4.0f) //-V807 { impacts.erase(impacts.begin()); continue; } if (!impacts.begin()->e->valid(false)) { impacts.erase(impacts.begin()); continue; } if (TIME_TO_TICKS(m_globals()->m_curtime) > TIME_TO_TICKS(impacts.begin()->time)) { auto color = g_cfg.esp.enemy_bullet_tracer_color; if (impacts.begin()->e == g_ctx.local()) { if (!g_cfg.esp.bullet_tracer) { impacts.erase(impacts.begin()); continue; } color = g_cfg.esp.bullet_tracer_color; } else if (!g_cfg.esp.enemy_bullet_tracer) { impacts.erase(impacts.begin()); continue; } draw_beam(impacts.begin()->e == g_ctx.local(), impacts.begin()->e == g_ctx.local() ? aim::get().last_shoot_position : impacts.begin()->e->get_shoot_position(), impacts.begin()->impact_position, color); impacts.erase(impacts.begin()); continue; } break; } }
beam_info.m_pszModelName = crypt_str("sprites/physbeam.vmt");
Проект предоставляет различный материал, относящийся к сфере киберспорта, программирования, ПО для игр, а также позволяет его участникам общаться на многие другие темы. Почта для жалоб: admin@yougame.biz