func.pwn 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. Float:fixrot(Float:r) {
  2. new laps = floatround(r / 360, floatround_floor);
  3. if( laps != 0 ) {
  4. r -= laps * 360.0;
  5. }
  6. return r;
  7. }
  8. Float:GetDistanceBetweenPoints(Float:x1, Float:y1, Float:z1, Float:x2, Float:y2, Float:z2) {
  9. return VectorSize(x1-x2, y1-y2, z1-z2);
  10. }
  11. // Renamed GetAttachedObjectPos (Original made by Stylock)
  12. PositionFromOffset(
  13. Float: input_x,
  14. Float: input_y,
  15. Float: input_z,
  16. Float: input_rx,
  17. Float: input_ry,
  18. Float: input_rz,
  19. Float: offset_x,
  20. Float: offset_y,
  21. Float: offset_z,
  22. &Float: ret_x,
  23. &Float: ret_y,
  24. &Float: ret_z
  25. ) {
  26. new
  27. Float:cos_x = floatcos(input_rx, degrees),
  28. Float:cos_y = floatcos(input_ry, degrees),
  29. Float:cos_z = floatcos(input_rz, degrees),
  30. Float:sin_x = floatsin(input_rx, degrees),
  31. Float:sin_y = floatsin(input_ry, degrees),
  32. Float:sin_z = floatsin(input_rz, degrees)
  33. ;
  34. ret_x = input_x + offset_x * cos_y * cos_z - offset_x * sin_x * sin_y * sin_z - offset_y * cos_x * sin_z + offset_z * sin_y * cos_z + offset_z * sin_x * cos_y * sin_z;
  35. ret_y = input_y + offset_x * cos_y * sin_z + offset_x * sin_x * sin_y * cos_z + offset_y * cos_x * cos_z + offset_z * sin_y * sin_z - offset_z * sin_x * cos_y * cos_z;
  36. ret_z = input_z - offset_x * cos_x * sin_y + offset_y * sin_x + offset_z * cos_x * cos_y;
  37. }