Guest User

Untitled

a guest
Nov 20th, 2011
397
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 2.48 KB | None | 0 0
  1. /**********
  2. **
  3. ** Snijeg
  4. **
  5. **********/
  6.  
  7. #include <a_samp>
  8. #include <streamer>
  9. #include <zcmd>
  10. #include <foreach>
  11.  
  12. #undef MAX_PLAYERS
  13. #define MAX_SLOTS   50
  14. #define MAX_SNOW_OBJECTS    10
  15. #define UPDATE_INTERVAL     2000
  16.  
  17.  
  18. #define ploop(%0)           for(new %0 = 0; %0 < MAX_SLOTS; %0++)
  19. #define CB:%0(%1)           forward %0(%1); public %0(%1)
  20. #define SCMTA(%0,%1)        SendClientMessageToAll(%0,%1)
  21.  
  22. new bool:snowOn[MAX_SLOTS char],
  23.     snowObject[MAX_SLOTS][MAX_SNOW_OBJECTS],
  24.     updateTimer[MAX_SLOTS char];
  25.  
  26. public OnFilterScriptExit()
  27. {
  28.     ploop(i)
  29.     {
  30.         if(snowOn{i})
  31.         {
  32.             for(new j = 0; j < MAX_SNOW_OBJECTS; j++) DestroyDynamicObject(snowObject[i][j]);
  33.             KillTimer(updateTimer{i});
  34.         }
  35.     }
  36.     return 1;
  37. }
  38.  
  39. public OnPlayerDisconnect(playerid)
  40. {   foreach(Player,i) {
  41.     if(snowOn{i})
  42.     {
  43.         for(new s = 0; s < MAX_SNOW_OBJECTS; s++) DestroyDynamicObject(snowObject[i][s]);
  44.         snowOn{i} = false;
  45.         KillTimer(updateTimer{i});
  46.     } }
  47.     return 1;
  48. }
  49.  
  50. stock PlayAudioStreamForAll(link[])
  51. {
  52.   foreach(Player,i)
  53.   {
  54.    PlayAudioStreamForPlayer(i,link);
  55.   }
  56.   return true;
  57. }
  58.  
  59. stock StopAudioStreamForAll()
  60. {
  61.   foreach(Player,i)
  62.   {
  63.    StopAudioStreamForPlayer(i);
  64.   }
  65.   return true;
  66. }
  67.  
  68. CB:UpdateSnow(playerid)
  69. {
  70.     foreach(Player,i) {
  71.     if(!snowOn{i}) return false;
  72.     new Float:pPos[3];
  73.     GetPlayerPos(i, pPos[0], pPos[1], pPos[2]);
  74.     for(new s = 0; i < MAX_SNOW_OBJECTS; s++) SetDynamicObjectPos(snowObject[i][s], pPos[0] + random(25), pPos[1] + random(25), pPos[2] - 5); }
  75.     return true;
  76. }
  77.  
  78. stock CreateSnowForAll()
  79. {
  80.     foreach(Player,i) {
  81.     if(snowOn{i}) return false;
  82.     new Float:pPos[3];
  83.     GetPlayerPos(i, pPos[0], pPos[1], pPos[2]);
  84.     snowObject[i][i] = CreateDynamicObject(18864, pPos[0] + random(25), pPos[1] + random (25), pPos[2] - 5, random(100), random(100), random(100), -1, -1, i);
  85.     snowOn{i} = true;
  86.     updateTimer{i} = SetTimerEx("UpdateSnow", UPDATE_INTERVAL, true, "i", i); }
  87.     return 1;
  88. }
  89.  
  90. stock DeleteSnowForAll()
  91. {
  92.    foreach(Player,i) {
  93.    if(!snowOn{i}) return false;
  94.    DestroyDynamicObject(snowObject[i][i]);
  95.    KillTimer(updateTimer{i});
  96.    snowOn{i} = false; }
  97.    return true;
  98. }
  99.  
  100. CMD:snowforall(playerid,params[]) {
  101.   foreach(Player,i) {
  102.   if(snowOn{i})
  103.   {
  104.       DeleteSnowForAll();
  105.       StopAudioStreamForAll();
  106.       SCMTA(-1,"Snijeg je prestao padati!");
  107.   }
  108.   else
  109.   {
  110.       CreateSnowForAll();
  111.       PlayAudioStreamForAll("http://www.thebunkerusa.com/LetItSnow.mp3");
  112.       SCMTA(-1,"Snijeg je počeo padati!"); }
  113.   }
  114.   return true; }
  115.  
Advertisement
Add Comment
Please, Sign In to add comment