Advertisement
97fresh

Untitled

Nov 30th, 2013
776
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.08 KB | None | 0 0
  1. ////////////////////////////////////////////////////////////////////////////////
  2. // Ninsoare pe Server, versiune functionala by ARTIST //
  3. // Data proiectarii: 30/11/2011 //
  4. ////////////////////////////////////////////////////////////////////////////////
  5. #include <a_samp>
  6. #include <streamer>
  7. #include <zcmd>
  8.  
  9. #undef MAX_PLAYERS
  10. #define MAX_SLOTS 50 //Indicam numarul sloturilor pe serverul nostru
  11.  
  12. #define MAX_SNOW_OBJECTS 20
  13. #define UPDATE_INTERVAL 750
  14.  
  15. #if MAX_SLOTS == -1
  16. #endif
  17.  
  18. #define ploop(%0) for(new %0 = 0; %0 < MAX_SLOTS; %0++) if(IsPlayerConnected(%0))
  19. #define CB:%0(%1) forward %0(%1); public %0(%1)
  20.  
  21. new bool:ShowOn[MAX_SLOTS char],
  22. snowObject[MAX_SLOTS][MAX_SNOW_OBJECTS],
  23. updateTimer[MAX_SLOTS char]
  24. ;
  25.  
  26. public OnFilterScriptExit()
  27. {
  28. ploop(i)
  29. {
  30. if(ShowOn{i})
  31. {
  32. for(new j = 0; j < MAX_SNOW_OBJECTS; j++) DestroyDynamicObject(snowObject[i][j]);
  33. KillTimer(updateTimer{i});
  34. }
  35. }
  36. return true;
  37. }
  38.  
  39. public OnPlayerDisconnect(playerid)
  40. {
  41. if(ShowOn{playerid})
  42. {
  43. for(new i = 0; i < MAX_SNOW_OBJECTS; i++) DestroyDynamicObject(snowObject[playerid][i]);
  44. ShowOn{playerid} = false;
  45. KillTimer(updateTimer{playerid});
  46. }
  47. return true;
  48. }
  49.  
  50. CB:UpdateSnow(playerid)
  51. {
  52. if(!ShowOn{playerid}) return false;
  53. new Float:pPos[3];
  54. GetPlayerPos(playerid, pPos[0], pPos[1], pPos[2]);
  55. for(new i = 0; i < MAX_SNOW_OBJECTS; i++) SetDynamicObjectPos(snowObject[playerid][i], pPos[0] + random(25), pPos[1] + random(25), pPos[2] - 5);
  56. return true;
  57. }
  58.  
  59. stock CreateSnow(playerid)
  60. {
  61. if(ShowOn{playerid}) return false;
  62. new Float:pPos[3];
  63. GetPlayerPos(playerid, pPos[0], pPos[1], pPos[2]);
  64. 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);
  65. ShowOn{playerid} = true;
  66. updateTimer{playerid} = SetTimerEx("UpdateSnow", UPDATE_INTERVAL, true, "i", playerid);
  67. return true;
  68. }
  69.  
  70. stock DeleteSnow(playerid)
  71. {
  72. if(!ShowOn{playerid}) return false;
  73. for(new i = 0; i < MAX_SNOW_OBJECTS; i++) DestroyDynamicObject(snowObject[playerid][i]);
  74. KillTimer(updateTimer{playerid});
  75. ShowOn{playerid} = false;
  76. return true;
  77. }
  78.  
  79. CMD:snow(playerid, params[])
  80. {
  81. if(ShowOn{playerid})
  82. {
  83. DeleteSnow(playerid);
  84. SendClientMessage(playerid, 0x00FF00AA, "Ninsoarea a incetat...");
  85. }
  86. else
  87. {
  88. CreateSnow(playerid);
  89. SendClientMessage(playerid, 0x00FF00AA, "A inceput sa ninga! A venit Iarna !!!");
  90. }
  91. return true;
  92. }
  93.  
  94. CMD:snowon(playerid, params[]) //Activeaza ninsoarea pentru toti jucatorii
  95. {
  96. if(!IsPlayerAdmin(playerid)) return false;
  97. ploop(i)
  98. {
  99. if(ShowOn{i}) continue;
  100. CreateSnow(i);
  101. }
  102. return true;
  103. }
  104.  
  105. CMD:snowoff(playerid, params[]) //Dezactiveaza ninsoarea la toti jucatorii
  106. {
  107. if(!IsPlayerAdmin(playerid)) return false;
  108. ploop(i)
  109. {
  110. if(!ShowOn{i}) continue;
  111. DeleteSnow(i);
  112. }
  113. return true;
  114. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement