Aller au contenu

Nouveau membre ?! Pense à te présenter pour accéder au contenu du forum !

New member ?! Introduce yourself to get access to the forum !

Kijaru

 tutoriel / partage Les différents fichiers du client et du serveur

Messages recommandés

Bonjour à tous,

 

Aujourd'hui petit tutoriel sur les différents fichiers que peuvent contenir un serveur et un client Metin2, à la suite de nombreuses demandes de membres ;)

Ce tutoriel est compatible uniquement avec des files supérieures à 2013 ! Une partie des fichiers ont changé côté serveur notamment, donc le tutoriel ne sera pas strictement applicable à des files antérieures.

 

Nous allons traiter dossier par dossier, et fichiers par fichiers le cas échéant, s'il manque des choses ou que vous voulez des précisions, n'hésitez pas à demander ! :P

 

Sommaire très... sommaire  :) :

I) Partie serveur

II) Partie client

 

I) Partie serveur

 

Dossier channelX

Révélation

 

Ces dossiers contiennent chacun une série de dossiers "coreX", ou X est le numéro du core.

Ces dossiers "core" contiennent chacun une partie d'un channel Metin2.

 

En effet, chaque core gère une partie des maps du channel: cela permet de mieux répartir l'utilisation du processeur par le channel. Ainsi, si vous allez d'une map à l'autre, vous pouvez passer d'un core à l'autre.

Exemple: Vous êtes map1 rouge; en vous rendant map orc, le serveur vous basculera automatiquement et sans que vous vous en rendiez compte sur un autre core, car le core1 ne gère pas la map orc.

 

Fichiers importants: CONFIG, syslog, syserr

 

Les fichiers CONFIG contiennent la configuration du core: adresse, nom d'utilisateur et mot de passe des bases de données, port du core, nom du core, etc...

La liste d'options des CONFIG est très, très, très longue. Pour connaitre toutes les options disponibles, rendez vous dans le code source du game, fichier config.cpp

 

Le fichier syslog contient tout le fonctionnement "normal" du core: il s'agit de toutes les actions importantes effectuées par le core dans son fonctionnement normal.

 

Le fichier syserr contient toutes les erreurs de fonctionnement du core: moins il est rempli, mieux c'est !  :zen:

 

 

Dossier db

Révélation

 

Le dossier db contient un programme particulier, la db, qui gère presque toute la partie base de donnée du serveur.

 

Fichiers importants: db, conf.txt, syslog, syserr

 

Le fichier db, qui est en vérité un programme informatique, se charge, entre autres, de faire en partie la liaison entre la base de donnée et le game.

Il s'agit d'un élément clé du serveur Metin2.

 

Le fichier conf.txt contient toute la configuration de la db: port, informations de connexion à la base de donnée, etc...

 

Le fichier syslog contient tout le fonctionnement normal de la db: il s'agit de toutes les actions importantes effectuées par la db dans son fonctionnement normal.

 

Le fichier syserr contient toutes les erreurs de fonctionnement de la db: moins il est rempli, mieux c'est !  :zen:

Information: il contient 99% du temps une erreur sur la table 'monarch' : cette erreur est normale, puisque le monarque doit être élu pour que cette erreur disparaisse.

 

 

 

 

Dossier share:

 

Révélation

 

Le dossier share contient trois dossiers et un fichier qui sont essentiels au serveur:

Le dossier package, le dossier locale, le dossier data et le fichier game.

 

Les dossiers sont expliqués après, pour le moment on va se concentrer sur le fichier game.

En somme, ce fichier (en vérité c'est un programme informatique, au même titre que le Notepad++, ou Firefox, ou Chrome) contient tout le programme du serveur de jeu. genre, toutes les instructions du serveur sont là, dans ce programme.

 

Quand vous lancez un channel (et donc plusieurs core  :tongue: ), vous lancez plusieurs fois ce programme, mais avec des paramètres différents.

 

Ce programme game, il est possible de le modifier entièrement en se servant de son code source, ou de faire des petites modifications en utilisant des fichiers .diff .

 

 

Les sous-dossiers de share

Révélation

package

Ce dossier contient les fichiers .package qui permettent ensuite au client de décompresser certains packs (voir dossier pack, dans le client).

Il s'agit de clés de décompression, qui sont utilisées pour une certaine compression des packs du jeu.

 

data

Le dossier data contient des informations sur les animations et certaines instances.

 

locale

Le dossier locale contient les informations de configuration globales des channel.

Tous les fichiers présents dans ce dossier sont communs à tous les core, et sont donc utilisés pour une configuration "commune" des core.

 

II) Partie client

 

Même combat pour le client, qui lui contient ENCORE PLUS de dossiers !  :biggrin:

 

Dossier BGM:

Révélation

Le dossier BGM (littéralement BackGround Music, ou en français musique d'ambiance) contient une partie des musiques du jeu.

Il s'agit d'une redondance du contenu du pack "BGM" (voir dossier pack, partie Client).

 

Dossier lib:

Révélation

Le dossier lib contient des librairies écrites en Python. Normalement pas besoin d'y toucher ! 

 

Dossier mark:

Révélation

Contient les images des logos de guilde. Même chose que le dossier lib, en théorie pas besoin d'y toucher !

 

Dossier miles:

Révélation

Contient les informations de configuration du système de son utilisé par Metin2 (Miles)

Même chose: On ne touche pas sans savoir ce qu'on fait !

 

Dossier screenshot:

Révélation

Contient les captures d'écran du jeu, tout simplement.

 

Dossier pack:

Révélation

client.

Le dossier pack est LE dossier important du client: il contient tous les packs du jeu, qui contiennent eux-même les données du client.

Un pack est un ensemble de deux fichiers: un .eix et un .epk .

Le .eix contient une liste de fichiers (codée bien sûr) qui sont présents dans le .epk .

Le .epk est une archive, qui contient des fichiers compressés et parfois cryptés .

 

 

A bientôt !

Partager ce message


Lien à poster
Partager sur d’autres sites

Cool un tuto sur l'architecture du jeu :clap:

 

Bien complété, on peut faire des trucs de fou avec ça...

Faudrait essayer de trouver une arborescence plus parlante, par exemple :

 

  • metin2
    • channelX
      • coreX
        • CONFIG (alors lui, y'a des tas de tutos : genre lui et lui)

      [*]db

      On y trouve mob_proto.txt/item_proto.txt....

      Qui permettent de faire des trucs

      [*]share

      • data
        Contient des infos
      • locale

      • france
        • map -> alors là ! c'est le bordel !
        • quest -> alors ici... c'est pas mieux !
        • Tout un tas de fichier utiles (comme :
          • locale_string.txt, voir son tuto : ici)

      [*]game (-> Le fichier)

 

Bien joué vieux :papy:

Partager ce message


Lien à poster
Partager sur d’autres sites

Merci du tutoriel :)

 

 

Cordialement.

Partager ce message


Lien à poster
Partager sur d’autres sites

Super intéressant, merci beaucoup !

Partager ce message


Lien à poster
Partager sur d’autres sites

Merci vous trois ! :)

 

@Sparks Merci pour ces vecteurs d'amélioration, je me confesse, je l'ai fait en cours de SIGES, sans client ou files sous la main, j'ai mis ce qui me passait par la tête sur le coup, je le complète dès ce soir ou demain soir ! :)

Partager ce message


Lien à poster
Partager sur d’autres sites

Merci Gin ! :)

Partager ce message


Lien à poster
Partager sur d’autres sites

Salut,

 

ça vient peut être de moi, comme je comprends rien ces temps ci mais :

232819qsdf.PNG

 

t'as pas oublié une phrase ? O_o

 

Cordialement.

Partager ce message


Lien à poster
Partager sur d’autres sites

Salut !

 

Excellent ! Merci ! Pour compléter, je peu apporter ça :

 

-Pour le dossier "package", il contient les clé de décryptage (32 bits je crois) qui vont permettre de dépacker le packs autres que locale, uiscript et root si le type "CsHybridCrypt" est utilisé

-Dans Data, les regens chargés dans les instances y sont présent, en général il y a aussi les fichiers d'animation pour que le serveur reconnaisse le mouvement en jeu (autrement, rollback et déconnexion)

-Pour le dossier Mark, il faut y toucher, en effet, en mettant ton logo dedans et en le mettant en jeu sur ta guilde, la lib "devil" se chargera de l'envoyer sur le serveur pour que les autres la voient (en général si tu la mets là dessus, les autres joueurs finiront pas l'avoir aussi) (si je ne dis pas de bêtise)

 

Mais encore bravo l'ami :D

Partager ce message


Lien à poster
Partager sur d’autres sites

Coucou !

 

@Hardy oui c'est un oubli de phrase,n autant pour moi ! :P

@Galet le jeu le fait automatiquement pour les mark, non ? J'ajoute le reste, merci de ta contribution !

@JamesRodriguez de rien !

Partager ce message


Lien à poster
Partager sur d’autres sites

Merci.

Partager ce message


Lien à poster
Partager sur d’autres sites

×

Information importante

By using this site, you agree to our Conditions d’utilisation.