Jackson2840
Новичок
Обнаружена рекурсия в функции Weatherrand, помогите её убрать пожалуйста.
PHP:
//В начало мода где все 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()
//=======================================================
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;
}
