Es/Hitscan: Difference between revisions

From Valve Developer Community
< Es
Jump to navigation Jump to search
(Created page with "{{otherlang2 |title=Registro de impacto |de=Hitscan:de |en=Hitscan |fr=Hitscan:fr |ka=Hitscan:ka |nl=Hitscan:nl |pl=Hitscan:pl |ru=Hitscan:ru |zh-cn=Hitscan:zh-cn |zh-tw=Hitsc...")
 
mNo edit summary
Line 1: Line 1:
{{otherlang2
{{lang|Hitscan|title=Registro de impacto}}
|title=Registro de impacto
 
|de=Hitscan:de
|en=Hitscan
|fr=Hitscan:fr
|ka=Hitscan:ka
|nl=Hitscan:nl
|pl=Hitscan:pl
|ru=Hitscan:ru
|zh-cn=Hitscan:zh-cn
|zh-tw=Hitscan:zh-tw
}}
<small>''Para un artículo más técnico sobre este tema, véase [[UTIL_TraceLine:es|TraceLines]].''</small>
<small>''Para un artículo más técnico sobre este tema, véase [[UTIL_TraceLine:es|TraceLines]].''</small>



Revision as of 11:28, 14 November 2022

English (en)Español (es)Translate (Translate)

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.