Flares.inc 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. #include <a_samp>
  2. #define MAX_FLARES 80
  3. enum FlaresInfo
  4. {
  5. fCreated,
  6. Float:sX,
  7. Float:sY,
  8. Float:sZ,
  9. sObject,
  10. };
  11. new FlareInfo[MAX_FLARES][FlaresInfo];
  12. stock CreateFlare(Float:x,Float:y,Float:z,Float:Angle)
  13. {
  14. for(new i = 0; i < sizeof(FlareInfo); i++)
  15. {
  16. if(FlareInfo[i][fCreated] == 0)
  17. {
  18. FlareInfo[i][fCreated]=1;
  19. FlareInfo[i][sX]=x;
  20. FlareInfo[i][sY]=y;
  21. FlareInfo[i][sZ]=z-0.1;
  22. FlareInfo[i][sObject] = CreateObject(18728, x, y, z-2.0, 0, 0, Angle-90, 500);
  23. return 1;
  24. }
  25. }
  26. return 0;
  27. }
  28. stock DeleteAllFlare()
  29. {
  30. for(new i = 0; i < sizeof(FlareInfo); i++)
  31. {
  32. if(FlareInfo[i][fCreated] == 1)
  33. {
  34. FlareInfo[i][fCreated]=0;
  35. FlareInfo[i][sX]=0.0;
  36. FlareInfo[i][sY]=0.0;
  37. FlareInfo[i][sZ]=0.0;
  38. DestroyObject(FlareInfo[i][sObject]);
  39. }
  40. }
  41. return 0;
  42. }
  43. stock DeleteClosestFlare(playerid)
  44. {
  45. for(new i = 0; i < sizeof(FlareInfo); i++)
  46. {
  47. if(IsPlayerInRangeOfPoint(playerid, 2.0, FlareInfo[i][sX], FlareInfo[i][sY], FlareInfo[i][sZ]))
  48. {
  49. if(FlareInfo[i][fCreated] == 1)
  50. {
  51. FlareInfo[i][fCreated]=0;
  52. FlareInfo[i][sX]=0.0;
  53. FlareInfo[i][sY]=0.0;
  54. FlareInfo[i][sZ]=0.0;
  55. DestroyObject(FlareInfo[i][sObject]);
  56. return 1;
  57. }
  58. }
  59. }
  60. return 0;
  61. }