Advertisement
Guest User

Untitled

a guest
Dec 2nd, 2011
343
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.75 KB | None | 0 0
  1. #include <a_samp>
  2. #include <streamer>
  3. #include <zcmd>
  4.  
  5. #undef MAX_PLAYERS
  6. #define MAX_SLOTS 30
  7.  
  8. #define MAX_SNOW_OBJECTS 20
  9. #define UPDATE_INTERVAL 750
  10.  
  11. #if MAX_SLOTS == -1
  12. #error Change MAX_SLOTS to the max players of your server! (At line 6)
  13. #endif
  14.  
  15. #define ploop(%0) for(new %0 = 0; %0 < MAX_SLOTS; %0++) if(IsPlayerConnected(%0))
  16. #define CB:%0(%1) forward %0(%1); public %0(%1)
  17.  
  18. new bool:snowOn[MAX_SLOTS char],
  19. snowObject[MAX_SLOTS][MAX_SNOW_OBJECTS],
  20. updateTimer[MAX_SLOTS char]
  21. ;
  22.  
  23. public OnFilterScriptExit()
  24. {
  25. ploop(i)
  26. {
  27. if(snowOn{i})
  28. {
  29. for(new j = 0; j < MAX_SNOW_OBJECTS; j++) DestroyDynamicObject(snowObject[i][j]);
  30. KillTimer(updateTimer{i});
  31. }
  32. }
  33. return 1;
  34. }
  35.  
  36. public OnPlayerDisconnect(playerid)
  37. {
  38. if(snowOn{playerid})
  39. {
  40. for(new i = 0; i < MAX_SNOW_OBJECTS; i++) DestroyDynamicObject(snowObject[playerid][i]);
  41. snowOn{playerid} = false;
  42. KillTimer(updateTimer{playerid});
  43. }
  44. return 1;
  45. }
  46.  
  47. CB:UpdateSnow(playerid)
  48. {
  49. if(!snowOn{playerid}) return 0;
  50. new Float:pPos[3];
  51. GetPlayerPos(playerid, pPos[0], pPos[1], pPos[2]);
  52. for(new i = 0; i < MAX_SNOW_OBJECTS; i++) SetDynamicObjectPos(snowObject[playerid][i], pPos[0] + random(25), pPos[1] + random(25), pPos[2] - 5);
  53. return 1;
  54. }
  55.  
  56. stock CreateSnow(playerid)
  57. {
  58. if(snowOn{playerid}) return 0;
  59. new Float:pPos[3];
  60. GetPlayerPos(playerid, pPos[0], pPos[1], pPos[2]);
  61. for(new i = 0; i < MAX_SNOW_OBJECTS; i++) snowObject[playerid][i] = CreateDynamicObject(18864, pPos[0] + random(25), pPos[1] + random (25), pPos[2] - 5, random(100), random(100), random(100), -1, -1, playerid);
  62. snowOn{playerid} = true;
  63. updateTimer{playerid} = SetTimerEx("UpdateSnow", UPDATE_INTERVAL, true, "i", playerid);
  64. return 1;
  65. }
  66.  
  67. stock DeleteSnow(playerid)
  68. {
  69. if(!snowOn{playerid}) return 0;
  70. for(new i = 0; i < MAX_SNOW_OBJECTS; i++) DestroyDynamicObject(snowObject[playerid][i]);
  71. KillTimer(updateTimer{playerid});
  72. snowOn{playerid} = false;
  73. return 1;
  74. }
  75.  
  76. CMD:snow(playerid, params[])
  77. {
  78. if(snowOn{playerid})
  79. {
  80. DeleteSnow(playerid);
  81. SendClientMessage(playerid, 0x00FF00AA, "* Hóesést leállítottad!");
  82. }
  83. else
  84. {
  85. CreateSnow(playerid);
  86. SendClientMessage(playerid, 0x00FF00AA, "Hóesés elindítva! Boldog karácsonyt és kellemes ünnepeket! :)");
  87. }
  88. return 1;
  89. }
  90.  
  91. CMD:allsnowon(playerid, params[])
  92. {
  93. if(!IsPlayerAdmin(playerid)) return 0;
  94. ploop(i) //This is included in my FS! It's the '#define ploop(%0)' thing.
  95. {
  96. if(snowOn{i}) continue;
  97. CreateSnow(i);
  98. }
  99. return 1;
  100. }
  101.  
  102. CMD:allsnowoff(playerid, params[])
  103. {
  104. if(!IsPlayerAdmin(playerid)) return 0;
  105. ploop(i)
  106. {
  107. if(!snowOn{i}) continue;
  108. DeleteSnow(i);
  109. }
  110. return 1;
  111. }
  112.  
  113.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement