Page 6 of 8

Re: Karto marche plus, cherche kkchose similaire

Posted: Mon Aug 21, 2006 12:11 pm
by holkan
Mais finallement combien de personnes bossent sur ce projet.
Vous devriez peut-être mettre en commun vos ressources pour ne faire qu'un seul soft?
Mettez vous d'accord sur un language et chacun fait une partie.

Re: Karto marche plus, cherche kkchose similaire

Posted: Mon Aug 21, 2006 12:19 pm
by bruno33
moi c'etais au depart de pouvoir mettre plusieurs fichiers de drapeaux dans un repertoire et de merger les drapeaux des fichiers en 1 seul
(et valide, ce qui ne marche pas par copier coller de la section adequat)

Re: Karto marche plus, cherche kkchose similaire

Posted: Mon Aug 21, 2006 12:24 pm
by cyrille5
Bah a priori pas tant de monde que ca holkan :) Pour ma part j'aide sur la partie théorique, mais flemme de pondre des lignes de codes pr l'instant :p

Mais bon si vs avez réelement besoin d'un coup de main, je veux bien tenter de me motiver si c'est du C/GTK, Java, asm (la j'ai comme un doute qu'un bourrin s'amuse a en faire pour ca ;) ) ou tout autre langage facilement lisible (syntaxe proche du C ou alors eloignée du Basic :D )

Re: Karto marche plus, cherche kkchose similaire

Posted: Mon Aug 21, 2006 12:28 pm
by holkan
Deja ca pourrait être pas mal de pondre une dll qui puisse macher le boulot et ressortir les informations du fichier facilement :) (cyrile5? Kervala? vous avez l'air de bien maitriser le sujet :D )
Après y'a plus qu'a faire une interface graphique.

Re: Karto marche plus, cherche kkchose similaire

Posted: Mon Aug 21, 2006 12:32 pm
by benletib
Moi j'ai bien envie de faire un lecteur qui affiche les points sur une carte.
Pourquoi pas en shockwave pour être mis sur le site de la guilde.

Mais ce n'est pas en C++ du coup, donc je suis un peu obligé de faire cavalier seul je crois. Du moins je profite de ce que vous écrivez là pour faire ma tambouille avec mes Xtra et mon code Lingo, parce que je n'y connais pas grand chose en enregistrement fichier, code binaire & co :)

Re: Karto marche plus, cherche kkchose similaire

Posted: Mon Aug 21, 2006 1:02 pm
by benletib
cyrille5 wrote:- nom de la zone, caracteres codés sur 8bits (donc a lire caractere par caractere)
- nombre de drapeau, contenu dans un char (codé sur 8bits donc)
- 3 octets nuls
- un float contenant l'axe X du drapeau 1
- un float contenant l'axe Y du drapeau 1
- un char contenant le nombre de caractere du nom du drapeau 1
- 2 octets nuls
- le noms du drapeau 1 caractéres codés sur 16bits (donc lire un octet, zapper le suivant, lire un octet...)
- 3 octets nuls
- un float contenant l'axe X du drapeau 2
[...]
kervala wrote:Toutes les chaines de caractères (du moins dans ce fichier :p ) qu'elles soient 8 ou 16 bits utilisent un int (signé ou pas signé) pour indiquer leur taille, sauf les différents headers de blocs :)
Il semble que chaque nom de zone soit précédée du nombre de caractères sur 4 octets, comme pour le reste.

Exemples :

05 00 00 00 62 61 67 6e 65 00 00 00 00
-> zone "bagne", soit un nom de 5 caractères et aucun marqueur

06 00 00 00 74 72 79 6b 65 72 08 00 00 00
-> zone "trycker", soit un nom de 6 caractères et 8 marqueurs

PS : à noter que les noms de zones sont classés par ordre alphabétique dans le fichier
bagne, corrupted_moor, fyros, fyros_island, fyros_newbie, indoors, matis, matis_island, matis_newbie, newbieland, nexus, r2_desert, r2_forest, r2_jungle, r2_lakes, r2_roots, route_gouffre, sources, terre, testroom, tryker, tryker_island, tryker_newbie, zorai, zorai_island, zorai_newbie

Re: Karto marche plus, cherche kkchose similaire

Posted: Mon Aug 21, 2006 1:19 pm
by cyrille5
Exact ;)

De plus il y a le nombre de zone qui est aussi indiquée (26 dans notre cas)
1a 00 00 00 05 00 00 00 62 61 67 6e 65 00 00 00 00

Par contre je n'arrive pas a comprendre ce que vient faire le 01 juste avant

Edit : apres recherche, c'est un caractere indiquant le debut d'une nouvelle zone, mais bon, je vois pas de moyen de l'utiliser proprement pour nous

Re: Karto marche plus, cherche kkchose similaire

Posted: Mon Aug 21, 2006 1:23 pm
by benletib
Oui... :confused:

D'ailleurs, comment est-ce que le client se repère dans ce fichier au fait ?
Il lit/ecrit tout d'un coup, mais a-t-il des repères pour différencier chaque partie (liste de contacts, repères de carte, etc.)?

Edit: ah, euh nouvelle zone, càd ?

Re: Karto marche plus, cherche kkchose similaire

Posted: Mon Aug 21, 2006 1:55 pm
by kervala
En fait, le fichier ICFG contient toutes les infos sur l'interface de l'utilisateur : sa liste de contacts, les infos sur chaque fenêtre (opacité, position, verrouillage, etc...), les drapeaux et encore d'autres choses :)

Maintenant, faut voir si on a le droit de faire ça :p Je ne bosserais réellement sur ça que si on a l'accord de Nevrax (ou du moins qu'ils ne nous l'interdisent pas) :p

Sinon un autre sujet qui date de septembre :
http://www.ryzom.com/forum//showthread.php?t=371

Enfin, pour répondre à benletib, en général, Nevrax sérialise ses classes, donc toutes les données sont toujours écrites de la même manières ce qui fait que pour eux c'est facile : tout est lu en une seule fois et écrit en une seule fois aussi.

Maintenant, tout ça c'est des méthodes de programmation donc cherchez sous Google : serialization :p

Edit: bon aller un exemple :)

vous avez une classe "Preferences" :

Code: Select all

class Preferences
{
  Preferences();
  virtual ~Preferences();

  void Serialize(Archive &ar);
  void UnSerialize(Archive &ar);

  list<float> m_floats;
  int m_machin;
  string m_bidule;
};

Preferences: :P references(), m_machin(0), m_bidule("")
{
}

Preferences::~Preferences()
{
}

void Preferences::Serialize(Archive &ar)
{
  ar.Serialize(m_floats);
  ar.Serialize(m_machin);
  ar.Serialize(m_bidule);
}

void Preferences::UnSerialize(Archive &ar)
{
  ar.UnSerialize(m_floats);
  ar.UnSerialize(m_machin);
  ar.UnSerialize(m_bidule);
}
Pour charger un fichier, il faut faire :

Code: Select all

Preferences prefs;

FileArchive file("fichier.bin");

prefs.UnSerialize(ar);
Pour enregistrer un fichier, il faut faire :

Code: Select all

Preferences prefs;

FileArchive file("fichier.bin");

prefs.Serialize(ar);
Dans la classe Archive de base, il y a plein de méthodes Serialize() et UnSerialize() pour chaque type de données de base C++ (float, int, string, char, vector<T>, etc...).

Et on peut faire plein de classes qui héritent d'Archive, XmlArchive pour enregistrer en XML, SocketArchive pour envoyer sur un réseau via les sockets, FileArchive, TextArchive, SQLArchive, etc...

Il suffit juste de réécrire comment vont être enregistrés chaque types de données et ça marchera de façon identique sans tenir compte du format :p C'est pas beau tout ça ? :)

Re: Karto marche plus, cherche kkchose similaire

Posted: Mon Aug 21, 2006 2:17 pm
by cyrille5
La serialization c'est bien joli, mais bon ca veut dire recreer un objet configuration.. Et durdur de recreer a l'identique le meme objet (et le faire au pif, euh .. :p ) Et comme je ne trouve pas d'objet ayant rapport avec ca dans la NeL, j'ai un peu du mal a voir comment le "deserializer" :)

Pour la licence, d'apres ce que je comprends, on a pas le droit de "procéder à l'ingénierie inverse" (gloups ;) ) donc oui, ca serait sympa qu'on ait une petite reponse officielle la dessus :p (si on a le droit d'exporter les drapeaux, d'en ajouter de nouveaux, les deux, aucun...)