Es/Hitscan: Difference between revisions
< Es
		
		
		
		Jump to navigation
		Jump to search
		| m (Using L template for links) | m (obsolete language category) | ||
| Line 24: | Line 24: | ||
| Esta función puede adaptarse a otras definiciones de distintos formatos. Simplemente genera {{L|FireBulletsInfo_t}} en la estructura dada. | Esta función puede adaptarse a otras definiciones de distintos formatos. Simplemente genera {{L|FireBulletsInfo_t}} en la estructura dada. | ||
| {{ACategory|Weapons programming}} | |||
Latest revision as of 03:23, 22 August 2024
Para un artículo más técnico sobre este tema, véase TraceLines.
Half-Life 2 tiene diversas armas de este tipo (que realmente no lanzan proyectiles, sino que trazan líneas y generan daño al final de su trayecto). El usuario XenoTrout tomó el código de CBaseEntity::FireBullets() para crear CBaseEntity::HitScan() e introdujo el código en baseentity_shared.ccp.
Vector CBaseEntity::HitScan( const FireBulletsInfo_t &info, unsigned int mask )
{
	trace_t tr;
	CTraceFilterSkipTwoEntities traceFilter( this, info.m_pAdditionalIgnoreEnt, COLLISION_GROUP_NONE );
	Vector vecEnd = info.m_vecSrc + info.m_vecDirShooting * info.m_flDistance;
	AI_TraceLine(info.m_vecSrc, vecEnd, mask, &traceFilter, &tr);
	return tr.endpos;
}
y la definición en BaseEntity.h.
	virtual Vector			HitScan( const FireBulletsInfo_t &info, unsigned int mask );
Esta función puede adaptarse a otras definiciones de distintos formatos. Simplemente genera FireBulletsInfo_t en la estructura dada.

























