Ez egy random idõjárást csináló, benne is van a random...
Ha scriptben alapjáraton beállított idõjárást szeretnél beállítani:
new currid; //tároló az aktuális idõjárásról
new idojaras[8] = { 1, 2, 3, 4, 5, 6, 7, 8}; // [8] ennyi idõjárással dolgozol, a kapcsosban vannak az idõjárás id-i
OnGameModeInit fölé:
forward wtimer();
OnGameModeInit alá:
SetTimer(\"wtimer\", 60*60*1000, true); //így óránként fog váltakozni, a true az, hogy ismétlõdik
Szinte bárhova:
public wtimer()
{
if(currid < 7) //Ha a maximumnál kisebb az aktuális idõjárás (az 0. elem a 0, 7. elem a
{
currid = currid+1; //váltjuk a tárolót a következõre
SetWeather(idojaras[currid]); //beálítjuk az idõjárást következõre
}else{ //ha nem kisebb (ez esetben egyenlõ 7-tel)
currid = 0; //váltjuk a tárolót az elsõ elemre
SetWeather(idojaras[currid]); //beálítjuk az elsõ idõjárásra
}
return 1;
}
Ez olyan sorrendben fog dolgozni, ahogy te akarod, de ha szeretnél igényesebb lenni és a mód futása közben is befolyásolnád az idõjárást, írd át parancsba (kelleni fog a zcmd + sscanf)
Itt adott órában lévõ idõjárás fog dolgozni FIGYELEM néhány idõjárás esti játékórákban bugos, tehát ésszel bánj vele! Ha bugosat fogsz ki, rconban átállíthatod az idõjárást.
new idojaras[24];
//24 elemû tároló
OnGameModeInit fölé:
forward wtimer();
OnGameModeInit alá:
SetTimer(\"wtimer\", 60*60*1000, true); //így óránként fog váltakozni, a true az, hogy ismétlõdik
CMD:idojaras(playerid, params[])
{
new ipont; //idõpont
new wid; //idõjárás
if(sscanf(params, \"ii\", ipont, wid)) return SendClientMessage(playerid, -1, \"Használat: /idojaras [óra] [idõjárás id]\"); //feltételek
if(IsPlayerAdmin(playerid)) return SendClientMessage(playerid, -1, \"Nem vagy admin!\"); //RCON login
if(ipont < 0 || ipont > 23) return SendClientMessage(playerid, -1, \"0-23 óra!\");
idojaras[ipont] = wid; //megkapja az idõjárást az óra
return 1;
}
public wtimer()
{
new hours, minutes, seconds; //reális idõt tárolók
gettime(hours, minutes, seconds); //reális idõ lekérése
SetWeather(idojaras[hours]); //beálítjuk az idõjárást következõre
SetWorldTime(hours); //ha váltakozó napszakot is szeretnél
return 1;
}
Egy kis ész használatával idõjárás jelentést is tudsz tenni mind2 fajtába (elsõbe egyszerûbb, csak SendClientMessage ): tanulj a tárolókról, meg amirõl akarsz, máskor meg vedd észre, hogy nem összecseréli neked az idõjárásokat, hanem a
miatt véletlenszerû lesz :\'D