Advertisement
S4T3K

s_explosions

May 3rd, 2014
227
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 2.52 KB | None | 0 0
  1. #include <a_samp>
  2. #include <streamer>
  3. #include <s_useful>
  4.  
  5. #define CreateObject S_CreateObject
  6. #define CreateExplosion S_CreateExplosion
  7.  
  8. #if defined _EXPLOSIONS_INCLUDED
  9.     #error s_explosion déjà inclus !
  10. #endif
  11.  
  12. #define _EXPLOSIONS_INCLUDED
  13.  
  14.  
  15. enum oInfo
  16. {
  17.     mdid,
  18.     Float:pos[6],
  19.     wid = -1,
  20.     iid = -1,
  21.     pid = -1,
  22.     Float:distance[2],
  23.     objet,
  24. };
  25.  
  26. new InfoObjet[1000][oInfo];
  27.  
  28. #if defined USE_STREAMER
  29.  
  30. stock S_CreateDynamicObject(modelid, Float:x, Float:y, Float:z, Float:rx, Float:ry, Float:rz, worldid = -1, interiorid = -1, playerid = -1, Float:streamdistance = 200.0, Float:drawdistance = 0.0)
  31. {
  32.     new o;
  33.     for(o = 0; o < 1000; o++)
  34.     {
  35.         if(!IsValidDynamicObject(InfoObjet[o][objet])) break;
  36.     }
  37.     InfoObjet[o][mdid] = modelid;
  38.     InfoObjet[o][pos][0] = x;
  39.     InfoObjet[o][pos][1] = y;
  40.     InfoObjet[o][pos][2] = z;
  41.     InfoObjet[o][pos][3] = rx;
  42.     InfoObjet[o][pos][4] = ry;
  43.     InfoObjet[o][pos][5] = rz;
  44.     InfoObjet[o][wid] = worldid;
  45.     InfoObjet[o][iid] = interiorid;
  46.     InfoObjet[o][pid] = playerid;
  47.     InfoObjet[o][distance][0] = streamdistance;
  48.     InfoObjet[o][distance][1] = drawdistance;
  49.     InfoObjet[o][objet] = CreateDynamicObject(modelid, Float:x, Float:y, Float:z, Float:rx, Float:ry, Float:rz, worldid = -1, interiorid = -1, playerid = -1, Float:streamdistance = 200.0, Float:drawdistance = 0.0);
  50.     return 1;
  51. }
  52.  
  53. stock S_CreateExplosion(Float:X, Float:Y, Float:Z, type, Float:radius)
  54. {
  55.     for(new o = 0; o < 1000; o++)
  56.     {
  57.         if(!IsValidDynamicObject(InfoObjet[o][objet])) continue;
  58.         if(IsObjectInRangeOfPoint(InfoObjet[o][objet], X, Y, Z, radius, DYNAMIC_OBJECT)) DestroyDynamicObject(InfoObjet[o][objet]);
  59.     }
  60.     return 1;
  61. }
  62.  
  63. #else
  64.  
  65.    
  66. stock S_CreateObject(modelid, Float:X, Float:Y, Float:Z, Float:rX, Float:rY, Float:rZ, Float:DrawDistance)
  67. {
  68.     new o;
  69.     for(o = 0; o < 1000; o++)
  70.     {
  71.         if(!IsValidObject(InfoObjet[o][objet])) break;
  72.     }
  73.     InfoObjet[o][mdid] = modelid;
  74.     InfoObjet[o][pos][0] = X;
  75.     InfoObjet[o][pos][1] = Y;
  76.     InfoObjet[o][pos][2] = Z;
  77.     InfoObjet[o][pos][3] = rX;
  78.     InfoObjet[o][pos][4] = rY;
  79.     InfoObjet[o][pos][5] = rZ;
  80.     InfoObjet[o][distance][1] = DrawDistance;
  81.     InfoObjet[o][objet] = CreateObject(modelid, Float:X, Float:Y, Float:Z, Float:rX, Float:rY, Float:rZ, Float:DrawDistance);
  82.     return 1;
  83. }
  84.  
  85. stock S_CreateExplosion(Float:X, Float:Y, Float:Z, type, Float:radius)
  86. {
  87.     for(new o = 0; o < 1000; o++)
  88.     {
  89.         if(!IsValidObject(InfoObjet[o][objet])) continue;
  90.         if(IsObjectInRangeOfPoint(InfoObjet[o][objet], X, Y, Z, radius)) DestroyObject(InfoObjet[o][objet]);
  91.     }
  92.     return 1;
  93. }
  94.  
  95. #endif
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement