Raised This Month: $51 Target: $400
 12% 

Ayuda con Entidades


  
 
 
Thread Tools Display Modes
Author Message
aguchox
Member
Join Date: Aug 2010
Old 09-11-2012 , 23:08   Ayuda con Entidades
#1

hola, como dice el titulo, necesito qe me den una manito con una cosa qe qiero hacer.. yo qiero qe una entidad se mueva a una distancia X y qe al llegar vuelva al punto de origen. se muy poco sobre entidades lo unico qe pude hacer asta ahora es qe se mueva pero se mueve todo lo qe qiere asta qe toca una pared o a mi, qiero qe si me toca me empuje no se frene.. si me pueden tirar una mano mejor Gracias.!
aguchox is offline
fearAR
Veteran Member
Join Date: Oct 2010
Old 09-12-2012 , 00:02   Re: Ayuda con Entidades
#2

TIP: Con SOLID_NOT no hay colisión alguna, seria lo ideal para tu idea, pero el problema es que no se puede detectar el evento de colisión por lo tanto se anularía el efecto de rebote al colisionar.

Para que no se frene al tocar alguna entidad en su camino podrías darle la propiedad SOLID_TRIGGER y verificar al momento de colisión entre las 2 entidades y indicarle una velocidad a dicha entidad en sentido contrario.

Luego para verificar si llego a su punto de destino es fácil, primero si tienes el origen de destino, calculas la velocidad dandole un escalar velocidad constante, con ello puedes hacer lo siguiente que no es lo mas conveniente:

( No es lo mas conveniente, ya que puede que sea inestable ).
- Calcular el tiempo con un simple calculo obteniendo la distancia entre origen de partida y origen de destino y la velocidad escalar constante.

Calculo:

Tiempo = Distancia / Velocidad ... [ m / s ]

Y luego con ese tiempo obtenido dar comienzo a un TASK para que vuelva a su origen de partida

( Este es el mas conveniente, ya que verifica constantemente )
- Una vez que la entidad es lanzada en su trayectoria mediante la velocidad aplicada, inicias un THINK referido a dicha entidad, y repites el llamado del mismo THINK varias veces, verificando dentro del HANDLER registrado [ register_think ( ENGINE ) ], si el origen de la entidad es igual al origen de destino.

PHP Code:
register_think"String: sClassname""handler_think" );

// handler_think
{
    static 
Float:v_fOrigin];
    
peventpev_originv_fOrigin );
    
    
// v_fStartOrigin es la variable que salva el vector de partida de la entidad...
    
if( v_fOrigin] == v_fStartOrigin] && v_fOrigin] == v_fStartOrigin] && v_fOrigin] == v_fStartOrigin] )
    {
        
// Llego...
        
return 1;
    }

    
set_peventpev_nextthinkget_gametime() + 0.2 );

    return 
0;

Saludos y espero poder ayudarte.
__________________
~~~~ NPC AI ~~~~

[ Pathfinding - OK ]
[ Citizen AI - OK ]
[ Handle Weapons - --- ]

Last edited by fearAR; 09-12-2012 at 00:04.
fearAR is offline
Send a message via MSN to fearAR
aguchox
Member
Join Date: Aug 2010
Old 09-12-2012 , 22:47   Re: Ayuda con Entidades
#3

Muchas Gracias, me sirvio mucho.! para tener una idea masomenos.
aguchox is offline
fearAR
Veteran Member
Join Date: Oct 2010
Old 09-13-2012 , 17:59   Re: Ayuda con Entidades
#4

De nada y si necesitas ayuda podes comunicarte conmigo mediante MP.

Saludos.
__________________
~~~~ NPC AI ~~~~

[ Pathfinding - OK ]
[ Citizen AI - OK ]
[ Handle Weapons - --- ]
fearAR is offline
Send a message via MSN to fearAR
 



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 18:39.


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