Karto marche plus, cherche kkchose similaire

Vous voulez discuter de Ryzom ? Prenez une chaise et venez siroter un cocktail dans le Général.
User avatar
bruno33
Posts: 474
Joined: Tue Sep 21, 2004 2:26 am

Re: Karto marche plus, cherche kkchose similaire

Post by bruno33 »

J'ai le logiciel qui decode le fichier mais le hic c que le dev n'a plus le source(2ans)

Si qqun sait lire de l'assembleur, j'ai le code asm du soft.
Bruno, seigneur artisantdesSeigneurs de l'Aube
Artisant Maitre Bouclier / Piques /Amplificateurs/Lance-grenades/Pistolet
Spécialiste de l'artisanat Tryker
Braconier exotique en tous genres

http://lioncorps.free.fr/vrac/signature.gifhttp://lioncorps.free.fr/site/vrac/signature.gif
User avatar
holkan
Posts: 1444
Joined: Tue Sep 21, 2004 2:26 am

Re: Karto marche plus, cherche kkchose similaire

Post by holkan »

bruno33 wrote:J'ai le logiciel qui decode le fichier mais le hic c que le dev n'a plus le source(2ans)

Si qqun sait lire de l'assembleur, j'ai le code asm du soft.

En assembleur ??
Houlaaa, y'a pas plus simple à ton avis? :D

(Janta t'es bon toi en assembleur je me souviens :p )
Holkan, Chef des Rodeurs et fan de Choule
Auteur du "prend ta boite Smergol"

Createur du portail d'échange de MP/Craft (en developpement)
"Si à 50 ans on a pas une full sup, c'est qu'on a raté sa vie..."
User avatar
cyrille5
Posts: 517
Joined: Tue Sep 21, 2004 2:26 am

Re: Karto marche plus, cherche kkchose similaire

Post by cyrille5 »

Met l'exe sur un ftp/site de partage, je tenterais de jetter un oeil si j'ai le temps :)

Mais je pense avoir la solution du codage .. un chti test et je confirme ca dans 5min :p
Amina, jeune et jolie trykette, un peu peste et fusilière folle.
Les tryker, c'est beau, le reste, bah c'est moche !
User avatar
kervala
Posts: 2903
Joined: Tue Sep 21, 2004 2:26 am

Re: Karto marche plus, cherche kkchose similaire

Post by kervala »

Bah, y avait un éditeur de maps (Landmarks Editor) sur http://www.seolia.net même qu'il était open-source et utilisait GTK :)

Sinon pour les coordonnées d'Amina :

C7 0A 57 46 62 05 E6 C6 04

Je pense que les 8 premiers octets sont 2 entiers signés 32 bits et le dernier octet indique la zone :)
Xiombarg, Akenak et Fonctionnaire Impérial, Érudit de la Confrérie du Grand Dragon
Ryzom Core manager - CeB developper
User avatar
cyrille5
Posts: 517
Joined: Tue Sep 21, 2004 2:26 am

Re: Karto marche plus, cherche kkchose similaire

Post by cyrille5 »

bah c'est ce que j'avais pensé, mais ca me parait etrange vu que toutes les coordonnée ig sont donnée en flottant.. voila la base sur laquelle je bosse en ce moment (coordonnée IG puis coordonnée du drapeau correspondant). La je me souviens plus comment qu'on fait un floatToHex .. :p (pour info, chaque chaine commence par 00 00 et finit par 00 00 00, mais je sais pas a quel moment commence le nom du drapeau)


Etable de FH :
UserPosition= 17277.29 -32941.33 -2.07
94 FA 86 46 56 AD 00 C7 06
-------------------
Messakan :
UserPosition= 17326.47 -32538.25 -2.55
F2 5C 87 46 7F 34 FE C6 08
-------------------
Tp Kami de la loria
UserPosition= 19299.07 -32043.55 -3.03
26 C6 96 46 19 57 FA C6 04
Amina, jeune et jolie trykette, un peu peste et fusilière folle.
Les tryker, c'est beau, le reste, bah c'est moche !
User avatar
kervala
Posts: 2903
Joined: Tue Sep 21, 2004 2:26 am

Re: Karto marche plus, cherche kkchose similaire

Post by kervala »

Hum, c'est bizarre pour les chaînes car, en général, dans le NeL les fichiers générés sont sérialisés et la sérialisaition les chaînes contient leur taille avant leur contenu, mais c'est peut-être une exception :)

Bon, ben voici le format (merci Noth) :p

float = axe x
float = axe y
int = nombre de caractères 16bits dans le nom du repère

là y a le nom du repère en caractères de 16 bits mais on peut se permettre de virer le 2e octet vu qu'il ne contient que des 0.

char = padding

Edit: bon ben j'ai testé un petit prog en C++ et ça marche :

-> Landmark ResineBois (18592.296875,-29668.869141)
-> Landmark CrystabellSkinners (17712.597656,-32239.455078)
Last edited by kervala on Fri Aug 18, 2006 5:50 pm, edited 1 time in total.
Xiombarg, Akenak et Fonctionnaire Impérial, Érudit de la Confrérie du Grand Dragon
Ryzom Core manager - CeB developper
User avatar
bruno33
Posts: 474
Joined: Tue Sep 21, 2004 2:26 am

Re: Karto marche plus, cherche kkchose similaire

Post by bruno33 »

Certes le langage que j'utilise n'est pas tres adapté mais quand j'ouvre le fichier et que je recupere un "segment", j'obtiens :



qqun peut m'aider ?
je suis sensé obtenir :

matis,GROS,3943.676758,-1377.574829
Bruno, seigneur artisantdesSeigneurs de l'Aube
Artisant Maitre Bouclier / Piques /Amplificateurs/Lance-grenades/Pistolet
Spécialiste de l'artisanat Tryker
Braconier exotique en tous genres

http://lioncorps.free.fr/vrac/signature.gifhttp://lioncorps.free.fr/site/vrac/signature.gif
User avatar
cyrille5
Posts: 517
Joined: Tue Sep 21, 2004 2:26 am

Re: Karto marche plus, cherche kkchose similaire

Post by cyrille5 »

Le prbleme viens du fait que tu ouvres le texte en mode texte et non en binaire.

Une méthode qui me vient à l'esprit au saut du lit (y a donc surement plus propre :p )

La premiere chose a faire, c'est de chopper le début de la séquence codant les drapeaux. Pour cela, je pense qu'il faut lire le fichier par bloc de 16octets et rechercher la premiere occurence de la chaine "0x00 0x00 0x00 0x00 0x00 0xff 0xff 0xff 0xff 0x00 0x07 0x00 0x00 0x00 0x00 0x00 0x00". En suite lire octets par octets, jusqu'a trouver la suite de caractere correspondant à ta zone souhaitée ( 'm' 'a' 't' 'i' 's').
Ensuite lire le premier octets suivant pour obtenir le nom du drapeau
Ensuite lire octet par octets pour zapper les 3 0x00.
(1)Ensuite faire un readFloat (ou equivalent ds le langage que tu utilises) pour chopper les coordonnées en X
Faire un readFloat pour les coordonnée en Y
Ensuite un petit readChar pour obtenir la taille de la chaine de caractere à lire
Ensuite sauter les 2 0x00 en lisant 2 octets
Lire caractere par caractere la chaine du nom du drapeau, en sautant un caractere sur deux (les 0x00).
-- Passage au drapeau suivant :
lire 2 0x00 puis recommencer en (1)


Edit : hum apres relecture c'est peut etre pas tres clair, donc voici comment est découpé le fameux fichier :
- 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
[...]
Amina, jeune et jolie trykette, un peu peste et fusilière folle.
Les tryker, c'est beau, le reste, bah c'est moche !
User avatar
kervala
Posts: 2903
Joined: Tue Sep 21, 2004 2:26 am

Re: Karto marche plus, cherche kkchose similaire

Post by kervala »

Le 04 00 00 00 c'est la taille de ton texte, en l'occurence GROS qui fait bien 4 caractères :)

Et avant il y a :
212 122 118 69 = 3943.676758 (x)
101 50 172 196 = -1377.574829 (y)
Xiombarg, Akenak et Fonctionnaire Impérial, Érudit de la Confrérie du Grand Dragon
Ryzom Core manager - CeB developper
User avatar
kervala
Posts: 2903
Joined: Tue Sep 21, 2004 2:26 am

Re: Karto marche plus, cherche kkchose similaire

Post by kervala »

Euh, c'est pas pour chipoter :p
cyrille5 wrote:- nombre de drapeau, contenu dans un char (codé sur 8bits donc)
- 3 octets nuls
Le type qui est le plus utilisé en C++, c'est les int or ils prennent 4 octets :)

Pourquoi mettre des entiers codés sur 1 octet puis rajouter des zéros alors qu'il existe un type qui prend 4 octets et qui est utilisé partout :)

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 :)
Xiombarg, Akenak et Fonctionnaire Impérial, Érudit de la Confrérie du Grand Dragon
Ryzom Core manager - CeB developper
Post Reply

Return to “Général”