Raised This Month: $ Target: $400
 0% 

Set entity velocity


  
 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
Author Message
xbatista
Veteran Member
Join Date: Mar 2008
Location: Lithuania
Old 01-28-2010 , 14:52   Set entity velocity
Reply With Quote #1

Animation playing ,entity won't follow me, whats wrong?

PHP Code:
// Called in entity think
                        
new Float:velocity[3];
                        
get_speed_vector2entenemy200.0velocity)
                            
                        
set_peventpev_velocityvelocity);
                            
                        
entity_set_aim(ent TOrigin)
                        
                        
set_pevent,pev_sequence4)
                        
set_pevent,pev_framerate1.0
PHP Code:
// From CHR_ENGINE
stock get_speed_vector2(ent1ent2Float:speedFloat:new_velocity[3])
{
    if(!
pev_valid(ent1) || !pev_valid(ent2))
        return 
0;

    static 
Float:origin1[3]
    
pev(ent1,pev_origin,origin1)
    static 
Float:origin2[3]
    
pev(ent2,pev_origin,origin2)

    
new_velocity[0] = origin2[0] - origin1[0]
    
new_velocity[1] = origin2[1] - origin1[1]
    
new_velocity[2] = origin2[2] - origin1[2]
    new 
Float:num floatsqroot(speed*speed / (new_velocity[0]*new_velocity[0] + new_velocity[1]*new_velocity[1] + new_velocity[2]*new_velocity[2]))
    
new_velocity[0] *= num
    new_velocity
[1] *= num
    new_velocity
[2] *= num

    
return 1;
}
stock entity_set_aim(ent,const Float:origin2[3],bone=0)
{
    if(!
pev_valid(ent))
        return 
0;

    static 
Float:origin[3]
    
origin[0] = origin2[0]
    
origin[1] = origin2[1]
    
origin[2] = origin2[2]

    static 
Float:ent_origin[3], Float:angles[3]

    if(
bone)
        
engfunc(EngFunc_GetBonePosition,ent,bone,ent_origin,angles)
    else
        
pev(ent,pev_origin,ent_origin)

    
origin[0] -= ent_origin[0]
    
origin[1] -= ent_origin[1]
    
origin[2] -= ent_origin[2]

    static 
Float:v_length
    v_length 
vector_length(origin)

    static 
Float:aim_vector[3]
    
aim_vector[0] = origin[0] / v_length
    aim_vector
[1] = origin[1] / v_length
    aim_vector
[2] = origin[2] / v_length

    
static Float:new_angles[3]
    
vector_to_angle(aim_vector,new_angles)

    
new_angles[0] *= -1

    
if(new_angles[1]>180.0new_angles[1] -= 360
    
if(new_angles[1]<-180.0new_angles[1] += 360
    
if(new_angles[1]==180.0 || new_angles[1]==-180.0new_angles[1]=-179.999999

    set_pev
(ent,pev_angles,new_angles)
    
set_pev(ent,pev_fixangle,1)

    return 
1;

__________________
xbatista is offline
Send a message via Skype™ to xbatista
 


Thread Tools
Display Modes

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 07:22.


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