Szerző Téma: Idõjárás  (Megtekintve 1053 alkalommal)

Idõjárás
« Dátum: 2014. Február 23. - 12:54:52 »
0
Sziasztok ezt az idõjárás filtersciptet valaki át tudná módosítani hogy egymást kövessék az idõk ? Mert most össze vissza keveredik ha többet rakok hozzá
http://sampforum.hu/index.php?topic=4613.0

Idõjárás
« Válasz #1 Dátum: 2014. Február 24. - 00:18:59 »
0
Ez egy random idõjárást csináló, benne is van a random... :D
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 8)
{
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 random miatt véletlenszerû lesz :\'D
« Utoljára szerkesztve: 2014. Február 24. - 00:31:13 írta kiakovi »

Idõjárás
« Válasz #2 Dátum: 2014. Február 24. - 12:11:25 »
0
Én nem vagyok evvel tisztában hogy hogy kis kéne hozzá írni idõjárás jelentést ahogy egymást követik az idõk

Idõjárás
« Válasz #3 Dátum: 2014. Február 24. - 13:15:57 »
0
Nézzél bele, mert a // jelek mellett ott az infó.

Idõjárás
« Válasz #4 Dátum: 2014. Február 24. - 13:59:42 »
0
Én az elsõt raktam be de akkor sem értem

Nem elérhető Flash

  • 5726
  • (っ◕‿◕)っ
    • Profil megtekintése
Idõjárás
« Válasz #5 Dátum: 2014. Február 24. - 16:40:00 »
+1
Tessék!
 
#include a_samp
#define COLOR_GREEN 0x33aa33ff
new holtart;
forward IdojarasJelentes();
public OnFilterScriptInit() { // GM esetén: OnGameModeInit
SetTimer(\"IdojarasJelentes\", 400000,1);//A timer idejét állítsátok át kedvetek szerint
return 1;
}
public IdojarasJelentes() {
    holtart ++;
    switch(holtart) {
        case 0:{
            SendClientMessageToAll(COLOR_GREEN, \"*[ IDOJÁRÁS JELENTÉS ]--> Az ég tiszta és meleg van! \");
            SetWeather(1);
         }
         case 1: {
           SendClientMessageToAll(COLOR_GREEN, \"*[ IDOJÁRÁS JELENTÉS ]--> Suru köd van! Hamarosan esni fog! \");
           SetWeather(9);
         }
         case 2: {
           SendClientMessageToAll(COLOR_GREEN, \"*[ IDOJÁRÁS JELENTÉS ]--> Alap idõ várható..xd! \");
           SetWeather(0);
         }
         case 3: holtart = 0;
      }
}
« Utoljára szerkesztve: 2014. Február 24. - 17:52:46 írta BoOy »

Idõjárás
« Válasz #6 Dátum: 2014. Február 24. - 17:50:14 »
0
Kösz mûködik !

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal