Hi, I tried to change the beam length based on HLSDK but it didn't work.
Код:
void CTripmineGrenade :: MakeBeam( void )
{
TraceResult tr;
// ALERT( at_console, "serverflags %f\n", gpGlobals->serverflags );
UTIL_TraceLine( pev->origin, m_vecEnd, dont_ignore_monsters, ENT( pev ), &tr );
m_flBeamLength = tr.flFraction;
// set to follow laser spot
SetThink( &CTripmineGrenade::BeamBreakThink );
pev->nextthink = gpGlobals->time + 0.1;
Vector vecTmpEnd = pev->origin + m_vecDir * 2048 * m_flBeamLength
m_pBeam = CBeam::BeamCreate( g_pModelNameLaser, 10 );
m_pBeam->PointEntInit( vecTmpEnd, entindex() );
m_pBeam->SetColor( 0, 214, 198 );
m_pBeam->SetScrollRate( 255 );
m_pBeam->SetBrightness( 64 );
}
What i do:
Код:
public EmitSound(entity, channel, const sound[])
{
if(equal(sound , "weapons/mine_activate.wav"))
{
//static beam; beam = get_pdata_cbase(tripmine, m_pBeam, extraoffset_linux);
static Float: origin[3]
static Float: vecEnd[3]
static Float: vecDir[3];
static Float: m_fBeamLength
pev(tripmine , pev_origin, origin)
vecEnd[0] = get_pdata_float(tripmine, m_vecEnd_x, extraoffset_linux);
vecEnd[1] = get_pdata_float(tripmine, m_vecEnd_y, extraoffset_linux);
vecEnd[2] = get_pdata_float(tripmine, m_vecEnd_z, extraoffset_linux);
vecDir[0] = get_pdata_float(tripmine, m_vecDir_x, extraoffset_linux)
vecDir[1] = get_pdata_float(tripmine, m_vecDir_y, extraoffset_linux)
vecDir[2] = get_pdata_float(tripmine, m_vecDir_z, extraoffset_linux)
//global_get( glb_v_forward, dir );
//angle_vector(origin, ANGLEVECTOR_FORWARD, dir)
m_fBeamLength = get_pdata_float(tripmine, m_flBeamLength, extraoffset_linux)
vecEnd[0] = origin[0] + vecDir[0] * 2048.0 * m_fBeamLength
vecEnd[1] = origin[1] + vecDir[1] * 2048.0 * m_fBeamLength
vecEnd[2] = origin[2] + vecDir[2] * 2048.0 * m_fBeamLength
set_pdata_float(tripmine, m_vecEnd_x, vecEnd[0], extraoffset_linux)
set_pdata_float(tripmine, m_vecEnd_y, vecEnd[1], extraoffset_linux)
set_pdata_float(tripmine, m_vecEnd_z, vecEnd[2], extraoffset_linux)
//Beam_PointEntInit(beam, vecEnd, tripmine)
client_print(0, print_chat,"============= This ====> Done!")
return FMRES_IGNORED;
//return FMRES_SUPERCEDE;
}
return FMRES_IGNORED;
}
I should change the value of 2048.0 to a lower value, but the method seems wrong because the results remain the same
Is there a way that makes more sense?