void AddTrails() { if (g_LocalPlayer && g_LocalPlayer->IsAlive() && g_EngineClient->IsInGame() && g_EngineClient->IsConnected()) { static float rainbow; rainbow += 0.001f; if (rainbow > 1.f) rainbow = 0.f; auto rainbow_col = Color::FromHSB(rainbow, 1, 1); auto local_pos = g_LocalPlayer->m_vecOrigin(); DrawBeamPaw(local_pos, Vector(local_pos.x, local_pos.y + 10, local_pos.z), rainbow_col); } } void DrawBeamPaw(Vector src, Vector end, Color color) { BeamInfo_t beamInfo; beamInfo.m_nType = 0; //TE_BEAMPOINTS beamInfo.m_vecStart = src; beamInfo.m_vecEnd = end; beamInfo.m_pszModelName = "sprites/glow01.vmt"; beamInfo.m_pszHaloName = "sprites/glow01.vmt"; beamInfo.m_flHaloScale = 3.0; beamInfo.m_flWidth = 4.5f; beamInfo.m_flEndWidth = 4.5f; beamInfo.m_flFadeLength = 0.5f; beamInfo.m_flAmplitude = 0; beamInfo.m_flBrightness = 255.f; beamInfo.m_flSpeed = 0.0f; beamInfo.m_nStartFrame = 0.0; beamInfo.m_flFrameRate = 0.0; beamInfo.m_flRed = color.r(); beamInfo.m_flGreen = color.g(); beamInfo.m_flBlue = color.b(); beamInfo.m_nSegments = 1; beamInfo.m_bRenderable = true; beamInfo.m_flLife = 1; beamInfo.m_nFlags = 256 | 512 | 32768; //FBEAM_ONLYNOISEONCE | FBEAM_NOTILE | FBEAM_HALOBEAM Beam_t* myBeam = g_pViewRenderBeams->CreateBeamPoints(beamInfo); if (myBeam) g_pViewRenderBeams->DrawBeam(myBeam); } BeamInfo_t -> https://github.com/ValveSoftware/source-sdk-2013/blob/0d8dceea4310fde5706b3ce1c70609d72a38efdf/mp/src/game/client/iviewrender_beams.h#L46 class IViewRenderBeams -> https://github.com/ValveSoftware/source-sdk-2013/blob/master/mp/src/game/client/view_beams.cpp#L59 g_pViewRenderBeams = *(IViewRenderBeams**) (IdaScan(client, "B9 ? ? ? ? A1 ? ? ? ? FF 10 A1 ? ? ? ? B9") + 1); P.S Длина меняется в m_flLife (в секундах).