Raised This Month: $ Target: $400
 0% 

Tutoriales especificos - HL1 Engine


  
 
 
Thread Tools Display Modes
Author Message
joropito
AlliedModders Donor
Join Date: Mar 2009
Location: pfnAddToFullPack
Old 05-26-2010 , 14:00   Tutoriales especificos - HL1 Engine
#1

Tutoriales HL1 Engine


Voy a comenzar a publicar algunos tutoriales a medida que los necesite y/o alguno lo pida.

Todo lo que voy a subir son tutoriales especificos del motor HL1 y nada de "como hacer tal o cual cosa".

Quien quiera colaborar esta invitado, pero no voy a linkear ningun tutorial mal hecho, sin sentido o que no respete los formatos y el nivel necesario.



Tutoriales
  • Operaciones y Calculos 3D
      • TraceLine: Simula una linea entre 2 puntos y devuelve informacion sobre el primer objeto atravesado o punto de impacto.
__________________

Divide et vinces
approved plugins | steam account

I don't accept PM for support. Just ask on forums.
If you're looking for private work, PM me.

Last edited by joropito; 05-26-2010 at 18:11.
joropito is offline
Send a message via MSN to joropito
joropito
AlliedModders Donor
Join Date: Mar 2009
Location: pfnAddToFullPack
Old 05-26-2010 , 14:00   Re: [ES][TUT] Tutoriales especificos - HL1 Engine
#2

TraceLine:

Esta funcionalidad permite a uno simular una linea entre 2 puntos e identificar el primer objeto contra el cual impacta.

Existen varias formas de llamar esta funcion.

ENGINE: trace_line( IgnoreEnt, Float:Start[3], Float:End[3], Float:vReturn[3] )
En el caso de ENGINE, el resultado es almacenado en el tracehandle global y pueden obtenerse los distintos parametros con la funcion traceresult().
FAKEMETA: engfunc(EngFunc_TraceLine, Float:Start[3], Float:End[3], IgnoreMonsters, IgnoreEnt, TraceResult)
Para FAKEMETA podemos utilizar un traceresult alternativo (esto es si uno quiere generar varios trace dentro de una misma llamada de funcion y no perder los datos del anterior). Para esto se deben crear y limpiar los traces usando las funciones create_tr2() y free_tr2(TraceResult)
Para obtener (y si uno quiere, modificar) los distintos parametros del trace podemos usar get_tr2( TraceResult, TraceResult:tr_member, {Float,_}:... ) y set_tr2( TraceResult, TraceResult:tr_member, {Float,_}:... )
Los distintos parametros que se pueden obtener del TraceResult son los siguientes:
PHP Code:
 TR_AllSolid,       // (int) if true, plane is not valid
 
TR_StartSolid,     // (int) if true, the initial point was in a solid area
 
TR_InOpen,         // (int)
 
TR_InWater,        // (int)
 
TR_Fraction,       // (float) time completed, 1.0 = didn't hit anything
 
TR_EndPos,         // (vector) final position
 
TR_PlaneDist,      // (float)
 
TR_PlaneNormal,    // (vector) surface normal at impact
 
TR_Hit,            // (entity) entity the surface is on
 
TR_Hitgroup        // (int) 0 == generic, non zero is specific body part 
En el caso de IgnoreEnt, se refiere a la entidad que uno quiere ignorar.
Por ejemplo, si la linea entre estos puntos atraviesa dos entidades, siempre devolvera la primera en tocar.
Para ignorar dicha entidad se usa el parametro IgnoreEnt.

Con respecto a IgnoreMonster, la siguiente tabla indica las opciones posibles:
PHP Code:
// The fNoMonsters parameter of EngFunc_TraceLine, EngFunc_TraceMonsterHull, EngFunc_TraceHull, and EngFunc_TraceSphere
#define DONT_IGNORE_MONSTERS            0
#define IGNORE_MONSTERS                 1
#define IGNORE_MISSILE                  2
#define IGNORE_GLASS                    0x100 
__________________

Divide et vinces
approved plugins | steam account

I don't accept PM for support. Just ask on forums.
If you're looking for private work, PM me.

Last edited by joropito; 05-26-2010 at 18:02.
joropito is offline
Send a message via MSN to joropito
Old 05-26-2010, 19:31
Kiske
This message has been deleted by Kiske. Reason: Bueh, las 2 tenían Trace y me confundí T_T....
joropito
AlliedModders Donor
Join Date: Mar 2009
Location: pfnAddToFullPack
Old 05-26-2010 , 20:00   Re: [ES][TUT] Tutoriales especificos - HL1 Engine
#3

Quote:
Originally Posted by Kiske View Post
Muchas gracias, es lo que buscaba hace mucho tiempo.

Una pregunta, si yo quiero que los disparos atraviesen a mis compañeros, uso el IgnoreEnt, pero como debo poner para que lo ignore.
Obviamente si tengo 1 jugador adelante, y otro más adelante, debería hacer Loops.

Pero eso ya es otra cosa, solo quiero saber como hacer que ignore el choque contra un compañero y el disparo siga su trayecto.


Desde ya gracias.

Insisto en lo que puse en el primer post.

Quiero que este thread sea especifico para las funciones y no para implementaciones en particular.

En ningun lugar dije que el traceline es para efectura disparos. Vos queres saber sobre el Ham_TraceAttack y, mas alla que esa llamada en algun momento use esta funcion, no tiene nada que ver con este tutorial.
__________________

Divide et vinces
approved plugins | steam account

I don't accept PM for support. Just ask on forums.
If you're looking for private work, PM me.
joropito is offline
Send a message via MSN to joropito
Good
BANNED
Join Date: May 2010
Location: Argentina, Mendoza
Old 05-26-2010 , 20:14   Re: [ES][TUT] Tutoriales especificos - HL1 Engine
#4

Decime en que apartado de la recopilacion lo coloco.
Good is offline
joropito
AlliedModders Donor
Join Date: Mar 2009
Location: pfnAddToFullPack
Old 05-26-2010 , 20:37   Re: [ES][TUT] Tutoriales especificos - HL1 Engine
#5

Quote:
Originally Posted by Good View Post
Decime en que apartado de la recopilacion lo coloco.
Que cosa?
__________________

Divide et vinces
approved plugins | steam account

I don't accept PM for support. Just ask on forums.
If you're looking for private work, PM me.
joropito is offline
Send a message via MSN to joropito
Good
BANNED
Join Date: May 2010
Location: Argentina, Mendoza
Old 05-26-2010 , 20:38   Re: [ES][TUT] Tutoriales especificos - HL1 Engine
#6

Este tutorial, lo puse en el apartado de Informacion extra.
Good is offline
 



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 14:16.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode