• Страница 1 из 1
  • 1
[Мануал] Погода с предсказанием для репортёров
Дмитрий Дата: Вторник, 25.06.2013, 17:37 | Сообщение # 1 | Сообщить о нерабочей теме


Аватар для Дмитрий

[spoiler="Фишки и функции:"]
Функция и ее работа:
Погодные условия на нашем сервер такие же как и в реальной жизни: периоды ясной и солнечной погоды сменяются периодами пасмурной погоды и даже дождями. Каждые 12 часов сервер генерирует 144 10-минутных погодных цикла. Каждые 10 минут на сервере устанавливается новая погода. Чаще встречается солнечная погода, реже туман и не чаще раза в 2 часа - дожди.

Предсказание погоды:
Эта функция доступна только репортерам, которые используя свои возможности могут проводить прогнозы погоды на радио. Для получения информации о погоде, репортеры используют метеостанцию (вы ее можете увидеть на скриншоте).

Команда:
/meteostat - доступно только репортёрам, и команду нужно ввести только у метеостанции.
[/spoiler]

[spoiler="Скриншоты:"]




[/spoiler]

[spoiler="Код функции:"]
Цитата
В Define

Код

#define METEODIALOG 6543  

Цитата
Ко всем new

Код

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

Код

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

Код

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]
Прикрепления: 3983489.png (6.7 Kb) · 1074414.png (5.4 Kb) · 4093970.jpg (15.7 Kb) · 1116796.jpg (11.9 Kb)


From Russia With Love!
  • Страница 1 из 1
  • 1
Поиск: