Jump to content
×
×
  • Create New...
  • 0

C++ commande MAJ


nono24

Question

Bonjour,

 

Pour m'initié,

j'essaie actuellement de créer une commande qui avertirais les joueurs d'un restart.

Une fois le compte à rebours terminé, la console World ce ferme...

C'est un petit code simple...me dirrons les connaisseurs, je vous l'accord !!! mais faut bien commencer par quelque chose :P

En plus il est bouré de faut :S (c'est pour ça que je post :D)

 

bool ChatHandler::HandlemajCommand(const char* /*args*/)
{
PSendSysMessage ("Faite une sauvegard");
   int tmps = 30;
   while(tmps != 0)
   {
       PSendSysMessage("Redemarage du serveur dans %2d\b\b", tmps);
       if (tmps != 0)
       {
          Sleep(1000);
       }
       tmps--;
   }

   return 0;
}

 

Ma question est exist-il une fonction qui ferme la console World? (moi je connais que return 0...mais cela retourne 'Systhaxe incorrect')

 

J'aimerais par la suite créer une commande qui arrêterais .maj.

Pour cela je pense utiliser un pointeur qui changerais un variable de ma commande maj...du coup la boucle s'arrêteras.

Je vois juste?

 

Ps: la fonction sleep() est dans la bibliothèque windows.h

 

Cordialement


Une fois terminé, je ferais un tutu si ça intéresse quelqu'un...

Link to comment
  • Answers 6
  • Created
  • Last Reply

Top Posters For This Question

6 answers to this question

Recommended Posts

  • 0

En effet,

bool ChatHandler::HandleServerRestartCommand(const char *args)
{
   if (!*args)
       return false;

   char* time_str = strtok ((char*) args, " ");
   char* exitcode_str = strtok (NULL, "");

   int32 time = atoi (time_str);

   ///- Prevent interpret wrong arg value as 0 secs shutdown time
   if ((time == 0 && (time_str[0] != '0' || time_str[1] != '\0')) || time < 0)
       return false;

   if (exitcode_str)
   {
       int32 exitcode = atoi (exitcode_str);

       // Handle atoi() errors
       if (exitcode == 0 && (exitcode_str[0] != '0' || exitcode_str[1] != '\0'))
           return false;

       // Exit code should be in range of 0-125, 126-255 is used
       // in many shells for their own return codes and code > 255
       // is not supported in many others
       if (exitcode < 0 || exitcode > 125)
           return false;

       sWorld.ShutdownServ (time, SHUTDOWN_MASK_RESTART, exitcode);
   }
   else
       sWorld.ShutdownServ(time, SHUTDOWN_MASK_RESTART, RESTART_EXIT_CODE);
   return true;
}

 

Bon je ne sais pas trop comment définir le temps dans la BDD mais bon je vais trouver.

Merci

 

Ps: moi qui était content d'avoir créer une petite commande...


Dans ma table command il y a trois commandes:

-Syntax: .server idleshutdown cancel

Cancel the restart/shutdown timer if any.

-Syntax: .server exit

Terminate mangosd NOW. Exit code 0.

-Syntax: .server idleshutdown #delay [#exist_code]

Shut the server down after #delay seconds if no active connections are present (no players). Use #exist_code or 0 as program exist code.

 

 

 

J'ai du mal à comprendre...

.server idleshutdown 30000 ?

 

Ps: joli la neige

Link to comment
  • 0
  • Retraité

Tu peux faire, par exemple :

else
{
PSendSysMessage("Le serveur va être éteint pour subir une mise à jour");
sWorld.ShutdownServ(time, SHUTDOWN_MASK_RESTART, RESTART_EXIT_CODE);
}

 

Enfin si c'est ça que tu veux :P

 

Et tu utilises la commande : .server idleshutdown 30000

Link to comment


Important Information

Terms of Use / Privacy Policy / Guidelines / We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.