[spoiler="Фишки и функции:"]
Функция и ее работа:
Погодные условия на нашем сервер такие же как и в реальной жизни: периоды ясной и солнечной погоды сменяются периодами пасмурной погоды и даже дождями. Каждые 12 часов сервер генерирует 144 10-минутных погодных цикла. Каждые 10 минут на сервере устанавливается новая погода. Чаще встречается солнечная погода, реже туман и не чаще раза в 2 часа - дожди.
Предсказание погоды:
Эта функция доступна только репортерам, которые используя свои возможности могут проводить прогнозы погоды на радио. Для получения информации о погоде, репортеры используют метеостанцию (вы ее можете увидеть на скриншоте).
Команда:
/meteostat - доступно только репортёрам, и команду нужно ввести только у метеостанции.
[/spoiler]
[spoiler="Скриншоты:"]
[/spoiler]
[spoiler="Код функции:"]
Код
#define METEODIALOG 6543
Код
new weathtimer;//TIMER PAGODA
new currentweather = 13;//PAGODA SEICHAS
new futureweather = 13;//PAGODA POTOM
new weathercycle = 1;//CYCLE PAGODA
new weathercycle2 = 1;//CYCLE PAGODA
new stormweather = 1;//PAGODKA DOJD
new cloudweather = 3;//PAGODKA TYMAN
new hourscloud = 0;//CHASI TYMAN
new hoursstorm = 0;//CHASI STORM
Код
forward Weatherrand();
В public OnGameModeInit()
PHP код:
Weatherrand();
weathtimer = SetTimer("Weatherrand",1000*60*10,true);
Цитата
В public GameModeExitFunc()
Код
KillTimer(weathtimer);
Цитата
В конец public PayDay()
Код
hourscloud --;
hoursstorm --;
if(hourscloud == 0)
{
weathercycle2 = 1;
cloudweather = 3;
}
if(hoursstorm == 0)
{
weathercycle = 1;
stormweather = 1;
}
Код
public Weatherrand()
{
currentweather = futureweather;
SetWeather(currentweather);
new weathka = random(6);
switch(weathka)
{
case 0: futureweather = 13;
case 1:
{
if(weathercycle == 1)
{
if(stormweather == 0)
{
weathercycle = 0;
hoursstorm = 2;
Weatherrand();
}
else
{
stormweather--;
futureweather = 8;
}
}
else Weatherrand();
}
case 2: futureweather = 13;
case 3:
{
if(weathercycle2 == 1)
{
if(cloudweather == 0)
{
weathercycle2 = 0;
hourscloud = 2;
Weatherrand();
}
else
{
cloudweather--;
futureweather = 9;
}
}
else Weatherrand();
}
case 4: futureweather = 7;
case 5: futureweather = 13;
}
return 1;
}
Цитата
в public OnPlayerCommandText
Код
if(strcmp(cmd, "/meteostat", true) == 0)
{
if(PlayerInfo[playerid][pMember] != 9) return SendClientMessage(playerid,-1,"PremiumGam: Вы не репортёр!");
if(!IsPlayerInRangeOfPoint(playerid,5.0,1458.6010,-778.0778,93.1008)) return SendClientMessage(playerid,-1,"Вы не у метеостанции!");
new strokes[256];
new weatherka[20],weatherka2[20];
switch(currentweather)
{
case 8: format(weatherka,sizeof(weatherka),"Дождливая");
case 7: format(weatherka,sizeof(weatherka),"Пасмурная");
case 13: format(weatherka,sizeof(weatherka),"Солнечная");
case 9: format(weatherka,sizeof(weatherka),"Туманы");
}
switch(futureweather)
{
case 8: format(weatherka2,sizeof(weatherka2),"Дождливая");
case 7: format(weatherka2,sizeof(weatherka2),"Пасмурная");
case 13: format(weatherka2,sizeof(weatherka2),"Солнечная");
case 9: format(weatherka2,sizeof(weatherka2),"Туманы");
}
format(strokes,sizeof(strokes),">> <<\n\nТекущаяя погода: %s\nПогода в следующие 10 минут: %s",weatherka,weatherka2);
ShowPlayerDialog(playerid,METEODIALOG,DIALOG_STYLE_MSGBOX,"Погода PremiumGame",strokes,"ОК","");
return 1;
}
[/spoiler]