Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ////////////////////////////////////////////////////////////////////////////////
- // Ninsoare pe Server, versiune functionala by ARTIST //
- // Data proiectarii: 30/11/2011 //
- ////////////////////////////////////////////////////////////////////////////////
- #include <a_samp>
- #include <streamer>
- #include <zcmd>
- #undef MAX_PLAYERS
- #define MAX_SLOTS 50 //Indicam numarul sloturilor pe serverul nostru
- #define MAX_SNOW_OBJECTS 20
- #define UPDATE_INTERVAL 750
- #if MAX_SLOTS == -1
- #endif
- #define ploop(%0) for(new %0 = 0; %0 < MAX_SLOTS; %0++) if(IsPlayerConnected(%0))
- #define CB:%0(%1) forward %0(%1); public %0(%1)
- new bool:ShowOn[MAX_SLOTS char],
- snowObject[MAX_SLOTS][MAX_SNOW_OBJECTS],
- updateTimer[MAX_SLOTS char]
- ;
- public OnFilterScriptExit()
- {
- ploop(i)
- {
- if(ShowOn{i})
- {
- for(new j = 0; j < MAX_SNOW_OBJECTS; j++) DestroyDynamicObject(snowObject[i][j]);
- KillTimer(updateTimer{i});
- }
- }
- return true;
- }
- public OnPlayerDisconnect(playerid)
- {
- if(ShowOn{playerid})
- {
- for(new i = 0; i < MAX_SNOW_OBJECTS; i++) DestroyDynamicObject(snowObject[playerid][i]);
- ShowOn{playerid} = false;
- KillTimer(updateTimer{playerid});
- }
- return true;
- }
- CB:UpdateSnow(playerid)
- {
- if(!ShowOn{playerid}) return false;
- new Float:pPos[3];
- GetPlayerPos(playerid, pPos[0], pPos[1], pPos[2]);
- for(new i = 0; i < MAX_SNOW_OBJECTS; i++) SetDynamicObjectPos(snowObject[playerid][i], pPos[0] + random(25), pPos[1] + random(25), pPos[2] - 5);
- return true;
- }
- stock CreateSnow(playerid)
- {
- if(ShowOn{playerid}) return false;
- new Float:pPos[3];
- GetPlayerPos(playerid, pPos[0], pPos[1], pPos[2]);
- 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);
- ShowOn{playerid} = true;
- updateTimer{playerid} = SetTimerEx("UpdateSnow", UPDATE_INTERVAL, true, "i", playerid);
- return true;
- }
- stock DeleteSnow(playerid)
- {
- if(!ShowOn{playerid}) return false;
- for(new i = 0; i < MAX_SNOW_OBJECTS; i++) DestroyDynamicObject(snowObject[playerid][i]);
- KillTimer(updateTimer{playerid});
- ShowOn{playerid} = false;
- return true;
- }
- CMD:snow(playerid, params[])
- {
- if(ShowOn{playerid})
- {
- DeleteSnow(playerid);
- SendClientMessage(playerid, 0x00FF00AA, "Ninsoarea a incetat...");
- }
- else
- {
- CreateSnow(playerid);
- SendClientMessage(playerid, 0x00FF00AA, "A inceput sa ninga! A venit Iarna !!!");
- }
- return true;
- }
- CMD:snowon(playerid, params[]) //Activeaza ninsoarea pentru toti jucatorii
- {
- if(!IsPlayerAdmin(playerid)) return false;
- ploop(i)
- {
- if(ShowOn{i}) continue;
- CreateSnow(i);
- }
- return true;
- }
- CMD:snowoff(playerid, params[]) //Dezactiveaza ninsoarea la toti jucatorii
- {
- if(!IsPlayerAdmin(playerid)) return false;
- ploop(i)
- {
- if(!ShowOn{i}) continue;
- DeleteSnow(i);
- }
- return true;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement