GMX

Indította bruti1999, 2012. augusztus 25. - 22:39:47

Előző téma - Következő téma

bruti1999

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

ZeRo


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.

Gentleman

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;
}

Walaky

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.

Gentleman

Idézetet írta: Walaky date=1345970154\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"26870\" data-ipsquote-contentclass=\"forums_TopicEbben 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.

Walaky

Normális esetben nem fagy be, ha még is, akkor ott más javítanivaló is van.

_I[TM]I_Dexter[CL]

Idézetet írta: Gentleman date=1345930358\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"26870\" data-ipsquote-contentclass=\"forums_Topic10 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

bruti1999