Raised This Month: $ Target: $400
 0% 

Set entity velocity


Post New Thread Reply   
 
Thread Tools Display Modes
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
Emp`
AMX Mod X Plugin Approver
Join Date: Aug 2005
Location: Decapod 10
Old 01-28-2010 , 14:56   Re: Set entity velocity
Reply With Quote #2

I would guess that enemy is not a valid entity.
Emp` is offline
Send a message via AIM to Emp` Send a message via MSN to Emp` Send a message via Yahoo to Emp` Send a message via Skype™ to Emp`
xbatista
Veteran Member
Join Date: Mar 2008
Location: Lithuania
Old 01-28-2010 , 15:01   Re: Set entity velocity
Reply With Quote #3

I changed, but nothing
PHP Code:
    if(!pev_valid(ent1) || !is_user_alive(ent2))
        return 
0
The Enemy is just player and I already put is enemy alive, still won't follow, just plays animation
__________________
xbatista is offline
Send a message via Skype™ to xbatista
Emp`
AMX Mod X Plugin Approver
Join Date: Aug 2005
Location: Decapod 10
Old 01-28-2010 , 15:17   Re: Set entity velocity
Reply With Quote #4

Show how you are getting the enemy.
Emp` is offline
Send a message via AIM to Emp` Send a message via MSN to Emp` Send a message via Yahoo to Emp` Send a message via Skype™ to Emp`
xbatista
Veteran Member
Join Date: Mar 2008
Location: Lithuania
Old 01-28-2010 , 15:21   Re: Set entity velocity
Reply With Quote #5

PHP Code:
// init
register_think"Skeleton""Skeleton_Think" );

public 
Skeleton_Think(ent)
{
    if ( !
pev_valid(ent) )
        return 
PLUGIN_CONTINUE;

    
//new creator = entity_get_edict(ent, EV_ENT_owner);

    
new Float:COrigin[3], Float:EOrigin[3], Float:TOrigin[3];

    
peventpev_originEOrigin)

    
//if ( !is_user_alive(creator) )
        //return PLUGIN_CONTINUE;
    
    //pev( creator, pev_origin, COrigin)

    //if( get_distance_f( COrigin, EOrigin) > 1200.0 )
    //{
        //remove_entity(ent);
        //return PLUGIN_CONTINUE;
    //}
    //else
    //{
    
for(new enemy 1enemy <= g_iMaxPlayersenemy++) 
    {
        if ( 
is_user_alive(enemy) )
        {
            
pevenemypev_originTOrigin)
                    
            if ( 
get_distance_fTOriginEOrigin) <= 70.0 )
            {
                
set_peventpev_sequence76)
                
set_peventpev_framerate0.5)
                        
                
entity_set_aimentTOrigin)
            }
            else
            {
                new 
Float:velocity[3];
                
get_speed_vector3entenemy200.0velocity)
                            
                
set_peventpev_velocityvelocity);
                            
                
entity_set_aim(ent TOrigin)
                        
                
set_peventpev_sequence4)
                
set_peventpev_framerate1.0)
            }
        }
    }
        
//}

    
set_peventpev_nextthinkget_gametime() + 0.01)
    
    return 
PLUGIN_CONTINUE;

__________________
xbatista is offline
Send a message via Skype™ to xbatista
joropito
AlliedModders Donor
Join Date: Mar 2009
Location: pfnAddToFullPack
Old 01-28-2010 , 20:28   Re: Set entity velocity
Reply With Quote #6

Entity follow using pev_aiming it's only valid for weapons or attached entities.

If you want to make an entity and it follow something but like an npc, you should make the first entity think and make some movements acording to the position of the other entity.
__________________

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
Emp`
AMX Mod X Plugin Approver
Join Date: Aug 2005
Location: Decapod 10
Old 01-28-2010 , 20:49   Re: Set entity velocity
Reply With Quote #7

Show the function that creates the entity/entities.
Emp` is offline
Send a message via AIM to Emp` Send a message via MSN to Emp` Send a message via Yahoo to Emp` Send a message via Skype™ to Emp`
xbatista
Veteran Member
Join Date: Mar 2008
Location: Lithuania
Old 01-29-2010 , 07:58   Re: Set entity velocity
Reply With Quote #8

The problem is in MOVETYPES, there are no good movetypes
With TOSS works fine, but won't set it's velocity, with FLY,STEP etc. server crash and sets velocity, what to do?

PHP Code:
            new Float:Origin[3];
            
fm_get_aim_origin(idOrigin)

            
Origin[2] += 75.0

            
new ent engfunc(EngFunc_CreateNamedEntityengfunc(EngFunc_AllocString"info_target"));

            
set_pev(entpev_classname"Skeleton");
            
            
set_pev(entpev_takedamage1.0);
            
set_pev(entpev_health100.0);
            
            
set_pev(entpev_movetypeMOVETYPE_TOSS);
            
            
engfunc(EngFunc_SetModelentSkeleton_Mdl);
            
set_pev(entpev_solidSOLID_BBOX);
            
            
set_pev(entpev_controller_0125);
            
set_pev(entpev_controller_1125);
            
set_pev(entpev_controller_2125);
            
set_pev(entpev_controller_3125);
            
            
set_pev(entpev_animtime2.0);
            
set_pev(entpev_framerate1.0);
            
set_pev(entpev_sequence1);
            
            
engfunc(EngFunc_SetSizeentFloat:{-16.0, -16.0, -36.0}, Float:{16.016.036.0});
            
engfunc(EngFunc_SetOriginentOrigin);
            
            
set_pev(entpev_nextthinkget_gametime() + 0.01);
            
            
engfunc(EngFunc_DropToFloorent); 
__________________

Last edited by xbatista; 01-29-2010 at 09:14.
xbatista is offline
Send a message via Skype™ to xbatista
Dr.G
Senior Member
Join Date: Nov 2008
Old 01-29-2010 , 10:10   Re: Set entity velocity
Reply With Quote #9

for the velocity ive used these stocks before, i think i got them from some of pimpdaddys work


PHP Code:
stock get_velocity_to_originentFloat:fOrigin[3], Float:fSpeedFloat:fVelocity[3] )
{
    new 
Float:fEntOrigin[3]
    
entity_get_vectorentEV_VEC_originfEntOrigin )
    
    
// Velocity = Distance / Time
    
    
new Float:fDistance[3]
    
fDistance[0] = fOrigin[0] - fEntOrigin[0]
    
fDistance[1] = fOrigin[1] - fEntOrigin[1]
    
fDistance[2] = fOrigin[2] - fEntOrigin[2]
    
    new 
Float:fTime = (vector_distancefEntOrigin,fOrigin ) / fSpeed)
    
    
fVelocity[0] = fDistance[0] / fTime
    fVelocity
[1] = fDistance[1] / fTime
    fVelocity
[2] = fDistance[2] / fTime
    
    
return (fVelocity[0] && fVelocity[1] && fVelocity[2])
}
////////////////////////////////////////////////////////////////////////////////////////////////////
stock set_velocity_to_origin(entFloat:fOrigin[3], Float:fSpeed )
{
    new 
Float:fVelocity[3]
    
get_velocity_to_origin(entfOriginfSpeedfVelocity )
    
    
entity_set_vector(entEV_VEC_velocityfVelocity)
    
    return (
1)



And created the ent. like this:

PHP Code:
    new iEnt create_entity("info_target")
    
    if(!
iEnt
        return 
PLUGIN_HANDLED

    entity_set_string
(iEntEV_SZ_classnameg_szClassName)
    
    
entity_set_sizeiEntFloat:{-20.0, -20.0, -20.0}, Float:{20.020.020.0})
    
entity_set_model(iEntg_szMODEL)
    
entity_set_vector(iEntEV_VEC_originSpawn_Origin)
    
    
entity_set_int(iEntEV_INT_solidSOLID_BBOX)
    
    
entity_set_int(iEntEV_INT_movetypeMOVETYPE_FLY)
    
    
entity_set_float(iEnt,EV_FL_animtime,2.0)
    
    
entity_set_float(iEnt,EV_FL_framerate,100.0)
    
    
entity_set_int(iEnt,EV_INT_sequence,0
and then set_velocity_to_origin. Cant remember what and why but that worked for me
__________________
Dr.G is offline
xbatista
Veteran Member
Join Date: Mar 2008
Location: Lithuania
Old 01-29-2010 , 10:36   Re: Set entity velocity
Reply With Quote #10

okey thanks will try
__________________
xbatista is offline
Send a message via Skype™ to xbatista
Reply



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