Привет еще раз. public grenade_throw ( index, greindex, wId )
{
new gren
gren = create_entity("info_target")
static Float:origin[3], Float:velocity[3], Float:v_angle[3]
new eOwner = pev(greindex, pev_owner)
new eid = create_entity("info_target")
entity_get_vector(eOwner,EV_VEC_origin,origin);
entity_get_vector(eOwner,EV_VEC_angles,velocity);
entity_set_string(eid, EV_SZ_classname, "w_hegranade")
entity_set_model(eid, "models/w_hegrenade.mdl")
origin[2]=origin[2]+20.00;
entity_set_origin(eid, origin)
entity_set_vector(eid, EV_VEC_angles, velocity)
entity_set_int(eid, EV_INT_solid, SOLID_BBOX);
entity_set_edict(eid, EV_ENT_owner, eOwner)
new fuck;
fuck = entity_get_int(greindex, EV_INT_movetype)
entity_set_int(eid, EV_INT_movetype, fuck)
entity_get_vector(eOwner,EV_VEC_v_angle,origin);
new Float:view_vector[3];
angle_vector(origin, 1, view_vector);
v_angle[0]=view_vector[0]*400.00;
v_angle[1]=view_vector[1]*400.00;
v_angle[2]=view_vector[2]*400.00;
entity_set_vector(eid,EV_VEC_velocity,v_angle);
remove_entity(greindex);
}
Этот код удаляет стандартную гранату и создает энтити. У энтити должны быть такая же физика как и у стандартной гранаты.
Тип движения я передал:
new fuck;
fuck = entity_get_int(greindex, EV_INT_movetype)
entity_set_int(eid, EV_INT_movetype, fuck)
Но в итоге получается что она бесконечно прыгает по карте. Хотя должна по идеи замедляться и остановиться.
В чем проблема? Понятно что замедление можно сделать уменьшая сообщаемый вектор. Но это немного накладно, хотелось бы попроще.