JeuxOnLineForumsPlusConnectés : 752 (sites) | 1358 (forums)Créer un compte
Forum jeux-vidéo>Neverwinter Nights
Maskado
Les forums JOL > Forum jeux-vidéo > Neverwinter Nights > NWN - Maskado > [HELP] : Logiciel pour Lancer un Serveur RSS
   
Répondre
Partager Outils Rechercher
Avatar de SidSilver
SidSilver
Roi
 
Avatar de SidSilver
 
Question

[HELP] : Logiciel pour Lancer un Serveur

Bonjour à tous,

Je veux créer un logiciel qui lorsqu'il est lancé liste tous les serveurs actifs d'un module particulier et affiche le nombre de joueurs online / joueurs max.

J'ai besoin d'aide... Je veux, avec Visual Basic 6.0, me "connecter" à Gamespy pour récupérer ces infos...

Merci d'avance à ceux qui pourront m'aider.
__________________
SidSilver... Harbar forever !
Lien direct vers le message - Vieux
Sire Pom-pom
Roi
 
Citation:
J'ai besoin d'aide... Je veux, avec Visual Basic 6.0, me "connecter" à Gamespy pour récupérer ces infos...
Je ne crois pas que l'on sache comment faire. Et il est fort probable que ce protocole soit "sécurisé" , d'une façon ou d'une autre.
Ce que tu peux faire en revanche c'est te connecter au serveur lui-même (UDP en fait, pas de connexion) et lui demander ces infos ("\\status\\" te renverra tout mais ne marche que pour les serveurs publiés sur Gamespy, le reste est incomplet autant que je sache). Comment récupérer l'IP au départ, ça je ne sais pas, à toi de voir.
Lien direct vers le message - Vieux
Avatar de Drak Valer
Drak Valer
Alpha & Oméga
 
Avatar de Drak Valer
 
Oue en gros..
Il faut comme donnée de base :
1)Adresse ip d'un server gamespy , je crois qu'il y a un master0.gamespy.com
2) Protocole utilisé : apparemment c'est UDP
3) Ports utilisés ?
4) Securisé par mot de passe ?
5) Données renvoyées : cryptées ?
6) Protocole de dialogue ?

Une fois que t'as ca ,t'as plus rien a faire..
une petite socket dans un projet vb qui se connecte au server , qui envoie les commandes adéquetes , recupère des trucs , et les parsent pour trier ce qui est renvoyer..

vala...
donc si tu trouves des infos sur les points precedents , je veux bien t'aider pour le reste.
Merci qui ??

Dis Sid , tu commences à trainer à fond sur Jol, dis donc
Lien direct vers le message - Vieux
Avatar de Adau
Adau
Alpha & Oméga
 
Avatar de Adau
 
tu passes par un script en php avec la fonction getinfo() sur le port du serveur.

(enfin, getinfo, j'en suis pas vraiment sur, mais voilà ce que ca donne:
http://pub.gameburnworld.com/serverstatus.php)
(serveur Nwn de jeuxfusion... qui pour l'instant (bizzare) est à l'arret)
tout ce qu'il fait, c'est faire une demande d'info sur un port precis du serveur, il recolte toutes les informations envoyées par le serveur/ports et les met en page.

quand le serveur est en ligne, tu as un bon nombre de variables affichés, plus que tu ne le penses
Lien direct vers le message - Vieux
Avatar de SidSilver
SidSilver
Roi
 
Avatar de SidSilver
 
Oui, merci pour vos réponses...
En fait j'ai eu une idée beaucoup plus simple :

Un peu comme le getinfo() faire une sorte de ping pour voir si le serveur est online ou pas...
Je connais l'ip du serveur et son port.

Le problème c'est que je pense pas qu'on puisse récupérer sous vb ou C++ les données d'un ping qui est en fait une commande DOS.

Donc si vous avez encore des astuces...

Sinon j'ai trouvé comment lancer le client multi sans passer par le menu ou gamepsy... me reste a trouver la commande pour le client MJ.

en gros ça donne ça (pour ceux que ça interesse) :
"chemin"\NeverwinterNights\NWN\nwmain.exe +connect ip : port

Voila... Pour ceux qui peuvent encore m'aider... je prend aussi les astuces pour Visual C++ et C#.

Dark Valer : ba oui je traine moi aussi sur Jol...
__________________
SidSilver... Harbar forever !
Lien direct vers le message - Vieux
Avatar de Drak Valer
Drak Valer
Alpha & Oméga
 
Avatar de Drak Valer
 
Citation:
Le problème c'est que je pense pas qu'on puisse récupérer sous vb ou C++ les données d'un ping qui est en fait une commande DOS.
ben tu trouveras en recherchant tout ca sur google

en gros il existe des apis , des fonctions incluses dans icmp.dll.
du genre celle là :
Private Declare Function IcmpSendEcho Lib "icmp.dll" _
(ByVal IcmpHandle As Long, ByVal DestinationAddress As Long, _
ByVal RequestData As String, ByVal RequestSize As Integer, _
RequestOptions As ip_option_information, ReplyBuffer As icmp_echo_reply, _
ByVal ReplySize As Long, ByVal Timeout As Long) As Long

mais bon tous est bien mieux expliqué sur les sites , et surtout des fois c encapsulé dans des beaux objets , comme ca pas besoin de tripatouiller les apis.
Lien direct vers le message - Vieux
Avatar de SidSilver
SidSilver
Roi
 
Avatar de SidSilver
 
J'ai bien avancé sur l'appli, il ne manque plus que :

- le test qui vérifie que le server est bien online.
- le test qui indique le nombre de joueurs connectés (ca c utopique)
- éventuellement un système de news.

Voila.
Les racourcis pour lancer le jeu directement sur le bon server (en PJ ou en MJ) sont bons, et les liens internets aussi...

Au fait, j'ai laissé tomber VB, je suis passé à C#... c'est de la bombe bébé !
__________________
SidSilver... Harbar forever !
Lien direct vers le message - Vieux
Avatar de Rhyghar
Rhyghar
Dauphine
 
Avatar de Rhyghar
 
je sais pas si ca peut aider mais le code source de la page "serverstatus.php" qui est affiché plus haut est telechargeable a cette adresse (la page a été faite par Papillon.)
La page affiche bien le nom, le login et le niveau des personnages connectés au serveur.

D'apres ce que j'ai compris, ca envoie une requete au serveur voulu (ca passe pas par gamespy) et ca parse la réponse obtenue. Ca devrait etre faisable bien que je ne m'y connaisse pas du tout en VB.
__________________
..::Heavenlynet le net paradisiaque ::..
Lien direct vers le message - Vieux
Sire Pom-pom
Roi
 
Pour le nombre de joueurs connectés, c'est ce dont je parlais plus haut, si tu connais l'adresse IP du serveur NWN, pas de problème. Tu envoies le message "\\status\\" au server (sur le port 5121, ça marchera, mais si tu connais le port ouvert c'est mieux, au cas où il y aurait un routeur) , et le serveur répondra avec tout un tas d'info, dont ce que tu veux. C'est ce que fais le script PHP sus-mentionné.
Il existe d'autres messages, qui marchent aussi pour les serveurs non-Gamespy, par exemple LAN. En envoyant "BNES" tu obtiendras les données de base. "BNDS" renverra la description du serveur, c'est ce que mon programme utilise (désolé, je ne peux pas t'aider pour VB, mon programme est en C, je crois que L'API windows est à peu près la même ceci dit). Il y a aussi un équivalent de "\\status\\", "\\status\secure\\" si je me souviens bien, mais il y a une protection que je n'ai pas pris la peine d'investiguer étant donné qu'on est pas sensé utiliser cela.
Lien direct vers le message - Vieux
Avatar de SidSilver
SidSilver
Roi
 
Avatar de SidSilver
 
Vos trucs ont l'air pas mal, merci de votre aide...
Le problème c'est que mon appli est en C# (sous Visual Studio .Net) et que je ne sais pas si je peux ni comment intégrer des commandes PHP à C#...
Enfin je vais voir ca...
__________________
SidSilver... Harbar forever !
Lien direct vers le message - Vieux
Avatar de gaeriel/nekresh
gaeriel/nekresh
Empereur
 
Avatar de gaeriel/nekresh
 
Il suffit de comprendre le script php et de le rentranscrire en C#. Il n'y a pas d'interpréteur php pour le C# (enfin je ne crois pas) et le C# sera un peu plus rapide sans devoir en plus interpréter du php. Ou alors, tu mets la page en php sur un serveur et tu lui fait renvoyer les données dans un format que tu pourras ensuite parser avec un prog en C#.
Lien direct vers le message - Vieux
Avatar de SidSilver
SidSilver
Roi
 
Avatar de SidSilver
 
Hmmm, ce que tu dis à l'air vraiment intéressant...
Mais comment on fait ????

Je suis vraiment débutant en C#, et je connais rien au PHP.
En fait je maitrise C++ mais pas les interfaces visuelles en VC++ d'où l'utilisation de C# pour mon logiciel.

Au fait, j'ai testé la page PHP de Papillon :."ServerStatuts" qui se trouve sur le Vault et cela ne marche pas avec tout les serveurs apparement... notament avec le serveur qui m'intéresse.
Donc l'histoire du php c'est pas si super que ça en fait
__________________
SidSilver... Harbar forever !
Lien direct vers le message - Vieux
Sire Pom-pom
Roi
 
Citation:
Au fait, j'ai testé la page PHP de Papillon :."ServerStatuts" qui se trouve sur le Vault et cela ne marche pas avec tout les serveurs apparement... notament avec le serveur qui m'intéresse.
Si l'admin a choisi de ne pas le rendre publique sur Gamespy c'est normal, comme je le disais plus haut, le message "\\status\\" n'est pas reconnu dans ce cas. Une précision, le principe est le même quelque soit le langage que tu utilises, il n'y a que les fonctions gérant le protocole UDP qui changent, donc tu auras le même résultat en PHP, C, C++, C# ou quoique ce soit d'autre .
Lien direct vers le message - Vieux
Avatar de SidSilver
SidSilver
Roi
 
Avatar de SidSilver
 
Je ne sais pas ce que t'entend exactement par serveur rendu publique sur Gamespy mais le serveur qui m'intéresse est visible sur gamepsy et il ne demande pas de mot de passe aux joueurs.

Alors y a un truc que j'ai pas du bien comprendre ou qui m'a échappé dans le fonctionnement de la requete status...

Est il possible qu'un firewall bloque la requete ?
Sinon ou se trouve la ligne de config "gamepsy = 1" ?
__________________
SidSilver... Harbar forever !
Lien direct vers le message - Vieux
Sire Pom-pom
Roi
 
Citation:
Je ne sais pas ce que t'entend exactement par serveur rendu publique sur Gamespy mais le serveur qui m'intéresse est visible sur gamepsy et il ne demande pas de mot de passe aux joueurs.
simplement le fait qu'il soit visible sur Gamespy, pardon.
Citation:
Alors y a un truc que j'ai pas du bien comprendre ou qui m'a échappé dans le fonctionnement de la requête status...

Est il possible qu'un firewall bloque la requête ?
Oui, s'il bloque le port sur lequel le message UDP est envoyé. Le script PHP doit probablement utiliser le port 5121, je n'ai pas regardé. Si le serveur n'utilise pas ce port pour la connexion des joueurs, il est probable que les messages entrant non sollicités ne soit pas autorisé sur celui ci. Dans ce cas, modifies le port cible pour qu'il corresponde à la configuration du serveur, ou bien ouvres manuellement le port 5121 en plus.
Une autre possibilité, si le serveur est en réseau local, est que le message ne soit pas correctement redirigé. De toute façon utiliser le port de connexion des joueurs réglera ce type de problèmes (je ne sais pas si c'est cela ceci dit), puisque sinon il serait impossible de se connecter à ce serveur.
Lien direct vers le message - Vieux
Répondre
Les forums JOL > Forum jeux-vidéo > Neverwinter Nights > NWN - Maskado > [HELP] : Logiciel pour Lancer un Serveur
   

Outils Rechercher
Rechercher:

Recherche avancée

Les vidéos de Neverwinter Nights RSS
  • Aucune vidéo pour le moment...
Thème visuel : Fuseau horaire GMT +1. Il est actuellement 17h03.
   

© JeuxOnLine, le site des MMO, MMORPG et MOBA. Tous droits réservés. - Conditions générales d'utilisation - Conditions d'utilisation des forums - Traitement des données personnelles - ! Signaler un contenu illicite