Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <a_samp>
- #include <streamer>
- #include <zcmd>
- #include <foreach>
- #undef MAX_PLAYERS
- #define MAX_SLOTS 50
- #define MAX_SNOW_OBJECTS 7
- #define UPDATE_INTERVAL 700
- #pragma tabsize 0
- #define COLOR_SEA 0x00808000
- forward ChangeWeather();
- #if MAX_SLOTS == -1
- #error Change MAX_SLOTS to the max players of your server! (At line 6)
- #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 weather2;
- new bool:snowOn[MAX_SLOTS char],
- snowObject[MAX_SLOTS][MAX_SNOW_OBJECTS],
- updateTimer[MAX_SLOTS char]
- ;
- public OnFilterScriptInit()
- {
- SetTimer("ChangeWeather",1200000, true);
- }
- public OnFilterScriptExit()
- {
- SetTimer("SnegInt",1000,1);
- ploop(i)
- {
- if(snowOn{i})
- {
- for(new j = 0; j < MAX_SNOW_OBJECTS; j++) DestroyDynamicObject(snowObject[i][j]);
- KillTimer(updateTimer{i});
- }
- }
- return 1;
- }
- public OnPlayerDisconnect(playerid)
- {
- if(snowOn{playerid})
- {
- for(new i = 0; i < MAX_SNOW_OBJECTS; i++) DestroyDynamicObject(snowObject[playerid][i]);
- snowOn{playerid} = false;
- KillTimer(updateTimer{playerid});
- }
- return 1;
- }
- CB:UpdateSnow(playerid)
- {
- if(!snowOn{playerid}) return 0;
- 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 + random(10));
- return 1;
- }
- stock CreateSnow(playerid)
- {
- if(snowOn{playerid}) return 0;
- 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(10), random(280), random(280), 0, -1, -1, playerid);
- snowOn{playerid} = true;
- updateTimer{playerid} = SetTimerEx("UpdateSnow", UPDATE_INTERVAL, true, "i", playerid);
- return 1;
- }
- stock DeleteSnow(playerid)
- {
- if(!snowOn{playerid}) return 0;
- for(new i = 0; i < MAX_SNOW_OBJECTS; i++) DestroyDynamicObject(snowObject[playerid][i]);
- KillTimer(updateTimer{playerid});
- snowOn{playerid} = false;
- return 1;
- }
- forward SnegInt();
- public SnegInt()
- {
- foreach(Player,i)
- {
- if(GetPlayerInterior(i) > 0)
- {
- #undef MAX_SNOW_OBJECTS
- #define MAX_SNOW_OBJECTS 0
- }
- if(GetPlayerInterior(i) == 0)
- {
- #undef MAX_SNOW_OBJECTS
- #define MAX_SNOW_OBJECTS 7
- }
- }
- return 1;
- }
- public ChangeWeather()
- {
- foreach (Player, i)
- {
- weather2 = random(22);
- if(weather2 == 1)
- {
- DeleteSnow(i);
- SetWeather(0);
- SendClientMessageToAll(COLOR_SEA,"{E0A51B}[Vremenksa prognoza]: {FFFFFF} Danas {00BFFF}suncano, {FFFFFF}Savrseno za plazu-kupanje!");
- }
- else if(weather2 == 2)
- {
- DeleteSnow(i);
- SetWeather(2);
- SendClientMessageToAll(COLOR_SEA,"{E0A51B}[Vremenksa prognoza]: {FFFFFF} Do umjereno {00BFFF}oblacno,{FFFFFF}savrseno da ostanete kod kuce,moguc pljusak!");
- }
- else if(weather2 == 3)
- {
- DeleteSnow(i);
- SetWeather(3);
- SendClientMessageToAll(COLOR_SEA,"{E0A51B}[Vremenksa prognoza]: {FFFFFF} Suncano, Savrseno za {00BFFF}voznju!");
- }
- else if(weather2 == 4)
- {
- DeleteSnow(i);
- SetWeather(4);
- SendClientMessageToAll(COLOR_SEA,"{E0A51B}[Vremenksa prognoza]: {FFFFFF} Maglovito s {00BFFF}toplinom,{FFFFFF}zelimo vam opreznu voznju i letenje!");
- }
- else if(weather2 == 5)
- {
- DeleteSnow(i);
- SetWeather(5);
- SendClientMessageToAll(COLOR_SEA,"{E0A51B}[Vremenksa prognoza]: {FFFFFF} Predvida se da ce biti {00BFFF}toplinski val{FFFFFF},ne koristite mnogo odjece!");
- }
- else if(weather2 == 6)
- {
- DeleteSnow(i);
- SetWeather(6);
- SendClientMessageToAll(COLOR_SEA,"{E0A51B}[Vremenksa prognoza]: {FFFFFF} Predvida se da ce biti {00BFFF}toplinski val{FFFFFF},ne koristite mnogo odjece!");
- }
- else if(weather2 == 7)
- {
- DeleteSnow(i);
- SetWeather(7);
- SendClientMessageToAll(COLOR_SEA,"{E0A51B}[Vremenksa prognoza]: {FFFFFF} Predvida se {00BFFF}naoblacenje{FFFFFF},vrijeme nije pogodno za izlazak vani!");
- }
- else if(weather2 == 8)
- {
- DeleteSnow(i);
- SetWeather(8);
- SendClientMessageToAll(COLOR_SEA,"{E0A51B}[Vremenksa prognoza]: {FFFFFF} Predvida se {00BFFF}jaka kisa{FFFFFF} moze doci i do leda, bolje biti u domovima,zbog velike opasnosti!");
- }
- else if(weather2 == 9)
- {
- DeleteSnow(i);
- SetWeather(9);
- SendClientMessageToAll(COLOR_SEA,"{E0A51B}[Vremenksa prognoza]: {FFFFFF} Predvida se {00BFFF}Maglovito vrijeme{FFFFFF},opreznu voznju i let vam zelimo!");
- }
- else if(weather2 == 10)
- {
- DeleteSnow(i);
- SetWeather(10);
- SendClientMessageToAll(COLOR_SEA,"{E0A51B}[Vremenksa prognoza]: {FFFFFF} Vrijeme ce biti {00BFFF}suncano danas{FFFFFF}, ali moguca je kisa u toku dana!");
- }
- else if(weather2 == 11)
- {
- DeleteSnow(i);
- SetWeather(11);
- SendClientMessageToAll(COLOR_SEA,"{E0A51B}[Vremenksa prognoza]: {FFFFFF} Suncano {00BFFF}vrijeme ce biti, {FFFFFF}savrseno za voznju biciklom!");
- }
- else if(weather2 == 12)
- {
- DeleteSnow(i);
- SetWeather(12);
- SendClientMessageToAll(COLOR_SEA,"{E0A51B}[Vremenksa prognoza]: {FFFFFF} Oblacno vrijeme {00BFFF}predvideno,{FFFFFF}ne izlazite bez vaseg kisobrana!");
- }
- else if(weather2 == 13)
- {
- DeleteSnow(i);
- SetWeather(13);
- SendClientMessageToAll(COLOR_SEA,"{E0A51B}[Vremenksa prognoza]: {FFFFFF} Vrijeme je {00BFFF}suncano,{FFFFFF}savrseno za letjeti!");
- }
- else if(weather2 == 14)
- {
- DeleteSnow(i);
- SetWeather(14);
- SendClientMessageToAll(COLOR_SEA,"{E0A51B}[Vremenksa prognoza]: {FFFFFF} Predvida se {00BFFF}suncano vrijeme{FFFFFF},Savrseno za setnju!");
- }
- else if(weather2 == 15)
- {
- DeleteSnow(i);
- SetWeather(15);
- SendClientMessageToAll(COLOR_SEA,"{E0A51B}[Vremenksa prognoza]: {FFFFFF} Biti ce {00BFFF}oblacno,{FFFFFF}ne izlazite vani!");
- }
- else if(weather2 == 16)
- {
- DeleteSnow(i);
- SetWeather(16);
- SendClientMessageToAll(COLOR_SEA,"{E0A51B}[Vremenksa prognoza]: {FFFFFF} Predvida se {00BFFF}kisa,{FFFFFF}bilo bi dobro da uzmete vase kisobrane!");
- }
- else if(weather2 == 17)
- {
- DeleteSnow(i);
- SetWeather(17);
- SendClientMessageToAll(COLOR_SEA,"{E0A51B}[Vremenksa prognoza]: {FFFFFF} Vrijeme ce biti {00BFFF}suncano uz veliku toplinu,{FFFFFF}ne uzimati puno odjece!");
- }
- else if(weather2 == 18)
- {
- DeleteSnow(i);
- SetWeather(18);
- SendClientMessageToAll(COLOR_SEA,"{E0A51B}[Vremenksa prognoza]: {FFFFFF} Vrijeme ce biti {00BFFF}suncano uz veliku toplinu,{FFFFFF}ne uzimati puno odjece!");
- }
- else if(weather2 == 19)
- {
- DeleteSnow(i);
- SetWeather(19);
- SendClientMessageToAll(COLOR_SEA,"{E0A51B}[Vremenksa prognoza]: {FFFFFF} Sada ce biti {00BFFF}Jaka Oluja{FFFFFF},preporucuje se da ne vozite ili da ne letite!");
- }
- else if(weather2 == 20)
- {
- DeleteSnow(i);
- SetWeather(20);
- SendClientMessageToAll(COLOR_SEA,"{E0A51B}[Vremenksa prognoza]: {FFFFFF} Vrijeme ce biti {00BFFF}povremeno oblacno{FFFFFF}, budite oprezni i uzmite kisobran!");
- }
- else if(weather2 == 21)
- {
- SetWeather(20);
- CreateSnow(i);
- SendClientMessageToAll(COLOR_SEA,"{E0A51B}[Vremenksa prognoza]: {FFFFFF} Prognozira se {00BFFF}sneg{FFFFFF}, pazi te se klizavih puteva!");
- }
- else if(weather2 == 22)
- {
- SetWeather(20);
- CreateSnow(i);
- SendClientMessageToAll(COLOR_SEA,"{E0A51B}[Vremenksa prognoza]: {FFFFFF} Prognozira se {00BFFF}sneg{FFFFFF}, pazi te se klizavih puteva!");
- }
- }
- return 1;
- }
- CMD:snow(playerid, params[])
- {
- if(snowOn{playerid})
- {
- DeleteSnow(playerid);
- SendClientMessage(playerid, 0x00FF00AA, "* Vise nepada sneg!");
- }
- else
- {
- CreateSnow(playerid);
- SendClientMessage(playerid, 0x00FF00AA, "* Nastimali ste da pada sneg!!");
- }
- return 1;
- }
- CMD:upalisvimasneg(playerid, params[])
- {
- ploop(i) //This is included in my FS! It's the '#define ploop(%0)' thing.
- {
- if(snowOn{i}) continue;
- CreateSnow(i);
- }
- return 1;
- }
- CMD:ugasisvimasneg(playerid, params[])
- {
- ploop(i)
- {
- if(!snowOn{i}) continue;
- DeleteSnow(i);
- }
- return 1;
- }
- CMD:promeniprognozu(playerid, params[])
- {
- ChangeWeather();
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement