entity_maths.inc
Original include source with line numbers.
| 1 | stock entity_set_follow(entity, target, Float:speed) { |
| 2 | |
| 3 | if (!is_valid_ent(entity) || !is_valid_ent(target)) return 0 |
| 4 | |
| 5 | new Float:entity_origin[3], Float:target_origin[3] |
| 6 | entity_get_vector(entity, EV_VEC_origin, entity_origin) |
| 7 | entity_get_vector(target, EV_VEC_origin, target_origin) |
| 8 | |
| 9 | new Float:diff[3] |
| 10 | diff[0] = target_origin[0] - entity_origin[0] |
| 11 | diff[1] = target_origin[1] - entity_origin[1] |
| 12 | diff[2] = target_origin[2] - entity_origin[2] |
| 13 | |
| 14 | new Float:length = floatsqroot(floatpower(diff[0], 2.0) + floatpower(diff[1], 2.0) + floatpower(diff[2], 2.0)) |
| 15 | |
| 16 | new Float:Velocity[3] |
| 17 | Velocity[0] = diff[0] * (speed / length) |
| 18 | Velocity[1] = diff[1] * (speed / length) |
| 19 | Velocity[2] = diff[2] * (speed / length) |
| 20 | |
| 21 | entity_set_vector(entity, EV_VEC_velocity, Velocity) |
| 22 | |
| 23 | return 1 |
| 24 | } |