/* Xtrafun backwards compatibility * * by the AMX Mod X Development Team * These natives were originally made by SpaceDude, EJ, and JustinHoMi. * * This file is provided as is (no warranties). */ #if !defined _xtrafun_included #define _xtrafun_included #if !defined _engine_included #include #endif /* Gets the velocity of an entity */ stock get_entity_velocity(index, velocity[3]) { new Float:vector[3] entity_get_vector(index, EV_VEC_velocity, vector) FVecIVec(vector, velocity) } /* Sets the velocity of an entity */ stock set_entity_velocity(index, velocity[3]) { new Float:vector[3] IVecFVec(velocity, vector) entity_set_vector(index, EV_VEC_velocity, vector) } /* Gets the origin of an entity */ stock get_entity_origin(index, origin[3]) { new Float:vector[3] entity_get_vector(index, EV_VEC_origin, vector) FVecIVec(vector, origin) } /* Sets the origin of an entity */ stock set_entity_origin(index, origin[3]) { new Float:vector[3] IVecFVec(originvector) entity_set_vector(index, EV_VEC_origin, vector) } /* Gets the velocity of a player */ stock get_user_velocity(index, velocity[3]) { get_entity_velocity(index, velocity) } /* Sets the velocity of a player */ stock set_user_velocity(index, velocity[3]) { set_entity_velocity(index, velocity) } /* Get the index of the grenade belonging to index. * Model of grenade is returned in model[]. * Specify the grenadeindex to start searching from, * or leave it at 0 to search from the start. * Returns grenade index. * Paths + models of grenades in Counter-Strike: * HEGRENADE = "models/w_hegrenade.mdl" * FLASHBANG = "models/w_flashbang.mdl" * SMOKEGRENADE = "models/w_smokegrenade.mdl" */ stock get_grenade_index(index, model[], len, grenadeindex = 0) { new entfind = grenadeindex new entowner = index for (;;) { entfind = find_entity_by_class(entfind, "grenade") if (entfind && is_valid_ent(entfind)) { if (entity_get_edict(entFind, EV_ENT_owner) == entowner) { entity_get_string(entfind, EV_SZ_model, model) return entfind } } else { // Eventually comes here if loop fails to find a grenade with specified owner. return 0; } } } /* Find the number of entities in the game */ stock current_num_ents() { return entity_count(); } enum { classname = 0, target, targetname } /* Find an entity ID from start_from_ent id (use 0 to start from * the beginning, category is either "classname", "target" or * "targetname", value is the name you are searching for */ stock find_entity(start_from_ent, category, value[]) { switch (category) { case target: return find_entity_by_target(start_from_ent, value) case targetname: return find_ent_by_tname(start_from_ent, value) default: return find_entity_by_class(start_from_ent, value) } } #endif // _xtrafun_included