Szerző Téma: GMX  (Megtekintve 920 alkalommal)

GMX
« Dátum: 2012. augusztus 25. - 22:39:47 »
0 Show voters
Sziasztok!
Egy olyan gmxet szeretnék kérni amit ha beírok akkor elkezd visszafele számolni 10-tõl és ha lejárt a 10másodperc akkor lesz restart

Nem elérhető ZeRo

  • 4620
  • Ex Globális Moderátor
    • Profil megtekintése
GMX
« Válasz #1 Dátum: 2012. augusztus 25. - 23:28:09 »
0 Show voters

public OnPlayerCommandText( playerid, cmdtext[  ] ) {
if( !strcmp( \"/gmx\", cmdtext, true ) ) {
    SetTimer( \"DoGmx\", 10000, false );
    SendClientMessageToAll( 0xFF9100AA, \">> 10 másodperc múlva a szerver újraindul! <<\" );
    return 1;
}
return 0;
}
public DoGmx(  );
public DoGmx(  ) { SendRconCommand( \"gmx\" ); }

 
Esetleg beleírhatod, hogy csak admin tudja használni, meg ilyesmi.

GMX
« Válasz #2 Dátum: 2012. augusztus 25. - 23:32:38 »
+1 Show voters
10 darab timer? Egy is simán megoldja:
 

new szamok;
 
COMMAND:restart(playerid)
{
   if(!IsPlayerAdmin(playerid))
   {
       SendClientMessage(playerid, -1, \"Nem vagy admin \");
       return 1;
    }
    szamok = 10;
    SetTimer(\"Visszaszamlalas\", 1*1000, true);
    GameTextForAll(\"~r~A szerver hamarosan ujraindul!\",1000,2);
   return 1;
}
forward Visszaszamlalas();
public Visszaszamlalas()
{
   szamok --;
   if(szamok > 0)
   {
       new szoveg[15];
       format(szoveg, 15, \"~r~%d\", szamok);
       GameTextForAll(szoveg,1000,2);
   
    }
    else
    {
       SendRconCommand(\"gmx\");
       //A timert nem szükséges változóra kötni majd killtimerezni ugyanis a restart megteszi ezt nekünk :)
    }
    return 1;
}

GMX
« Válasz #3 Dátum: 2012. augusztus 26. - 10:35:54 »
0 Show voters
Ebben az esetben szerintem teljesen mindegy, hogy hány timer, mert restart után már úgy sem \"emlékszik\" a szerver arra, hogy hány timer volt elõtte.

GMX
« Válasz #4 Dátum: 2012. augusztus 26. - 11:10:10 »
0 Show voters
Idézetet írta: Walaky date=1345970154\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"26870\" data-ipsquote-contentclass=\"forums_Topic
Ebben az esetben szerintem teljesen mindegy, hogy hány timer, mert restart után már úgy sem \"emlékszik\" a szerver arra, hogy hány timer volt elõtte.
 
Nem lenne jó ha pont elõtte fagyna be az egész nem? Restartig el is kell jutni.

GMX
« Válasz #5 Dátum: 2012. augusztus 26. - 12:15:37 »
0 Show voters
Normális esetben nem fagy be, ha még is, akkor ott más javítanivaló is van.

GMX
« Válasz #6 Dátum: 2012. augusztus 26. - 14:11:14 »
0 Show voters
Idézetet írta: Gentleman date=1345930358\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"26870\" data-ipsquote-contentclass=\"forums_Topic
10 darab timer? Egy is simán megoldja:
 

new szamok;
 
COMMAND:restart(playerid)
{
   if(!IsPlayerAdmin(playerid))
   {
       SendClientMessage(playerid, -1, \"Nem vagy admin \");
       return 1;
    }
    szamok = 10;
    SetTimer(\"Visszaszamlalas\", 1*1000, true);
    GameTextForAll(\"~r~A szerver hamarosan ujraindul!\",1000,2);
   return 1;
}
forward Visszaszamlalas();
public Visszaszamlalas()
{
   szamok --;
   if(szamok > 0)
   {
       new szoveg[15];
       format(szoveg, 15, \"~r~%d\", szamok);
       GameTextForAll(szoveg,1000,2);
   
    }
    else
    {
       SendRconCommand(\"gmx\");
       //A timert nem szükséges változóra kötni majd killtimerezni ugyanis a restart megteszi ezt nekünk :)
    }
    return 1;
}

 

Ez a jó megoldás.
Én ezt használnám a kérdezõ helyében.
Gentle: Adtam rá 1 pluszt :)
Kérdezõ: Szerintem ezt használd! Ez a legjobb megoldás.
[ Bocs az offért :D ]
Dexter

GMX
« Válasz #7 Dátum: 2012. augusztus 26. - 14:52:51 »
0 Show voters
Köszi!
Zárok.

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal