| DavidLin |
01-11-2016 10:47 |
Entity disappears before hitting the object
Fixed: Yeah it was the size :)
When the entity is tossed by a player hits some sort of other entity the entity that was tossed disappears before touching it ( like a wall or ground near by ). Is it because of the tossed entity size ?
PHP Code:
new Float:minModel[ 3 ] = { -1.5, -1.5, -1.5 } new Float:maxModel[ 3 ] = { 1.5, 1.5, 1.5 }
new Float:Origin[ 3 ], Float:Velocity[ 3 ], Float:Angle[ 3 ]; new spit_speed = get_pcvar_num( c_spit_speed ); entity_get_vector( id, EV_VEC_origin, Origin ); entity_get_vector( id, EV_VEC_v_angle, Angle );
new spit_entity_new = create_entity( "info_target" ); entity_set_string( spit_entity_new, EV_SZ_classname, "spit_entity" ); entity_set_model( spit_entity_new, spit_model ); entity_set_size( spit_entity_new, minModel, maxModel );
entity_set_origin( spit_entity_new, Origin ); entity_set_vector( spit_entity_new, EV_VEC_angles, Angle ); entity_set_int( spit_entity_new, EV_INT_solid, SOLID_TRIGGER ); entity_set_int( spit_entity_new, EV_INT_movetype, MOVETYPE_TOSS ); entity_set_edict( spit_entity_new, EV_ENT_owner, id );
velocity_by_aim( id, 1500, Velocity ); entity_set_vector( spit_entity_new, EV_VEC_velocity, Velocity );
The touch: if( !pev_valid( spitEnt ) ) return;
static ent_t_class[ 32 ]; entity_get_string( victim, EV_SZ_classname, ent_t_class, charsmax( ent_t_class ) ); new Float:Origin[ 3 ]; pev( victim, pev_origin, Origin );
if( equal( ent_t_class, "player" ) ) { if( is_user_alive( victim ) && !is_zombie( victim ) ) { new entity_owner = entity_get_edict( spitEnt, EV_ENT_owner ); new victim_health = get_user_health( victim ); if( victim_health <= get_pcvar_num( damage ) ) ExecuteHamB( Ham_Killed, victim, entity_owner, 0 ); else ExecuteHamB( Ham_TakeDamage, victim, ent_t_class, entity_owner, get_pcvar_float( damage ), DMG_ACID ); } } remove_entity( spitEnt );
|