Bonjour à tous,
Je vais vous présenter un script afin d'afficher les joueurs connectés ainsi que de dire l'état du royaume.
On va commencer par l'état du royaume. Je vous donne le script et on en parle après
- Code:
-
<h3><strong><u>Etat du Royaume :</u></strong></h3>
<?php
$fserv=@fsockopen("xx.xx.xx.xx","8085",$errno,$errstr,1);
if($fserv)
{
echo "Serveur <font color='green'>En Ligne et en cours de fonctionnement!</font></b>";
}
else
{
echo "Serveur <font color='red'>Hors Ligne.</font></b>";
}
?>
Voila maintenant place aux explications.
- Code:
-
$fserv=@fsockopen("xx.xx.xx.xx","xxxx",$errno,$errstr,1);
Cette fonction permet de ping une adresse ip avec son port afin de voir par la suite si cette ip renvoi quelque chose ou pas.
Donc a la place de xx.xx.xx.xx mettez l'adresse de la machine où est situé votre serveur (éventuellement un no-ip). Votre ip doit bien évidement être composé de 4 parties (dit octés).
Ensuite a la place de xxxx mettez le port généralement celui-ci est 8085.
Et le reste ne touchez pas.
- Code:
-
if($fserv)
{
echo "Serveur <font color='green'>En Ligne et en cours de fonctionnement!</font></b>";
}
else
{
echo "Serveur <font color='red'>Hors Ligne.</font></b>";
}
Ce structure conditionnelle renvoi soit Serveur En Ligne ou Serveur Hors Ligne en fonction de ce qu'a renvoyé la variable $fserv.
Voila pour la première partie de ce mini-tutoriel. Il es un peu fastidieux je vous l'accorde mais accrochez vous le résultat en vaut vraiment la peine.
Nous allons maintenant voir la partie joueurs connectés.
Voici le script. Je vous le présente et comme au dessus je vous explique tout sa par la suite.
- Code:
-
<h3><strong><u>Joueurs connéctés :</u></strong></h3>
<?php
if($fserv)
{
?>
<table width="75%" border="1" align="center">
<tr>
<td align="center" width="15%"><strong>Pseudo</strong></td>
<td align="center" width="15%"><strong>Level</strong></td>
</tr>
<?php
mysql_select_db("$db_characters")or die(mysql_error());
$requete = mysql_query("SELECT COUNT(*) FROM characters WHERE online=1");
$reponse = mysql_num_rows($requete);
echo'Il y a '.$reponse.' joueurs connectés';
$requete2 = mysql_query("SELECT * FROM characters WHERE online=1");
while ($reponse2 = mysql_fetch_array($requete2))
{
echo ' <tr>
<td align=\'center\' width=\'15%\'>' . $reponse2['name'] . '</td>
<td align=\'center\' width=\'15%\'>' . $reponse2['level'] . '</td>
</tr>';
}
}
else
{
echo'Le serveur étant Hors Ligne il n\'y a aucun joueur connecté.';
}
?>
</table>
Voila celui la est déjà un peu plus long mais non loin plus dur.
Donc dans l'ordre, on commence par faire une structure conditionnelle en fonction de la valeur renvoyé auparavant par le $fserv.
Ensuite si le fserv renvoit une valeur on commence par créer le tableau puis on fait une requête SQL afin de récupérer le nombre de joueurs connectés et on l'affiche.
- Code:
-
$requete = mysql_query("SELECT COUNT(*) FROM characters WHERE online=1");
$reponse = mysql_num_rows($requete);
echo'Il y a '.$reponse.' joueurs connectés';
Après on va aller chercher les informations nécessaires pour afficher les joueurs connectes (ayant donc la valeur de 1 dans le champ online) et on affiche tout sa dans le tableau fait au préalable en passant bien sur par une boucle while pour afficher tous les joueurs et non un seul.
- Code:
-
$requete2 = mysql_query("SELECT * FROM characters WHERE online=1");
while ($reponse2 = mysql_fetch_array($requete2))
{
echo ' <tr>
<td align=\'center\' width=\'15%\'>' . $reponse2['name'] . '</td>
<td align=\'center\' width=\'15%\'>' . $reponse2['level'] . '</td>
</tr>';
}
Et pour finir
- Code:
-
else
{
echo'Le serveur étant Hors Ligne il n\'y a aucun joueur connecté.';
}
Et oui car lorsque le serveur crash, il est fort probable que les joueurs qui été connectés reste à la valeur de 1 dans la base de données on na va donc pas afficher que le serveur est Hors Ligne alors que le tableau dit qu'ils y en a de connecté (logique hein
).
Voila ainsi encore une fois s'achève se tutoriel qui a été assez long mais j'espère pour vois très constructif.
Mais la vous devez vous dire mais ses scripts ne marche pas à lui. Eh beh oui je vous ai fait faire sa pour rien... Roh mais comment vous avez pu penser cela.
Bon a moi de poser les questions : Pourquoi les scripts ne marchent pas?
Tic, Tac, Tic, Tac...
Eh mince oui mince on ne se connecte pas à la base de données donc dure de lui demander des informations.
- Code:
-
<?php
mysql_connect("localhost", "root", "");
$db_characters = 'characters'; // Nom de la table characters
$db_world = 'world'; // Nom de la table world
$db_auth = 'auth'; // Nom de la table auth
$db_site = ''; // Nom de la table du site
?>
Et bah voila là c'est fini pour de bon. Ces scripts sont fait pour Trinity mais facilement adaptable pour Mangos.
Ce tuto étant mon premier gros tutoriel, n'hésitez pas à critiquez a la foi l'aspect technique de mes scripts mais aussi la façons de rédaction du tuto.
A bientôt
.