Où se trouvent les images des ressources ?

Labo

Membre Actif
Inscrit
16 Aout 2013
Messages
799
Reactions
15
#1
Salut tout le monde,

Je me dois de poser la première question sur le nouveau Cadernis !
Pour mon prochain tuto qui va sortir ce soir ou demain, j'ai besoin des images des ressources (en fait je pourrais faire sans, je comparerai peut-être les deux méthodes mais c'est une surprise pour le moment).
Et comme je les trouve pas parmi les png du dossier gfx, c'est que c'est sûrement dans un d2p, mais lequel ?
 
Inscrit
15 Avril 2011
Messages
457
Reactions
1
#2
Il n'y a que des maps dans les d2p non ?!
 

BlueDream

Administrateur
Membre du personnel
Inscrit
8 Decembre 2012
Messages
2 010
Reactions
149
#3
Non non des images aussi, mais je n'ai pas trouvé les interactives.
 

Labo

Membre Actif
Inscrit
16 Aout 2013
Messages
799
Reactions
15
#4
Bon, j'ai écumé à peu près tout le dossier content sans les trouver… Je pense que c'est dans un swf parce que les ressources s'animent lors de la récolte, mais j'en sais pas plus (et je me suis quand même tapé une grande partie des png dans les d2p du dossier world) :'(
 

nowis13

Contributeur
Inscrit
11 Janvier 2015
Messages
22
Reactions
1
#5
Salut,
Y'a un blé dans world/gfx0_2 mais c'est peut être une ressource déprécié, j'ai checké les swf et c'est souvent des statues ou des ateliers et j'ai pas trouvé de ressources.
Plus sérieusement ça m’intéresse aussi et comme pour gfx/monsters on a le même résultat : pas une seule animation. je suis allé faire un tour du coté de gfx/sprites.

En gros ici dans sprites/skins c'est les animations des heros. Dans les sprites/bones, c'est le reste, majoritairement des mobs. L'idéal serai de trouver un fichier de correspondance entre le swf de l'animation et l'id|nom de la ressource, mais la je connais pas encore assez les sources pour sortir un fichier. Il est fort probable que les ressources animées se trouve dans le coin.

Edit: Après une rapide lecture des sources, en partant de bone -> StealthBones -> GameData -> GameDataFileAccessor, il semblerait que le boneId soit contenu dans les fichiers d2o. Pour l'instant j'ai rien pour les ouvrir.
 
Dernière édition:

Labo

Membre Actif
Inscrit
16 Aout 2013
Messages
799
Reactions
15
#6
Oui les d2o sont les plus chiants à ouvrir.
Le gros problème là c'est qu'on n'a aucun swf de ressources...
Moi aussi j'étais tombé sur un arbre mais c'était juste un décor pas quelque chose de récoltable, peut-être que ce blé aussi. Je regarderai quand je serai chez moi.
 

nowis13

Contributeur
Inscrit
11 Janvier 2015
Messages
22
Reactions
1
#7
Salut,
J'ai un début de parser de d2o en python. J'ai encore quelques problèmes pour le moment, notamment un fichier items.json de 48Mo. Je peux quand même ouvrir interactives.d2o mais pas de boneId a l'horizon.
Exemple pour le frêne, j'ai seulement :

JavaScript:
{
        "id": 1,
        "nameId": 2655,
        "actionId": 1,
        "displayTooltip": true
}
Avec MountsBones.d2o en revanche, j'ai que les ids des bones des montures

JavaScript:
{
        "id": 639
},
Ici je cherche 639.swf dans les gfx/sprite/bones décompilés et je tombe sur une dragodinde.

Mais où sont donc cachées ces ressources ?

Edit: je viens de trouver ça https://github.com/vendethiel/reader.d2o/tree/master/extracted. J'ai a peu près le même résultat du coup je me suis permis de pull request sur le dépôt de sorrow.

Je suis tombé sur ça aussi, http://cadernis.fr/index.php?threads/localisation-des-images-des-interactive-elements.1207/ et on est arrivé au mêmes conclusions. ça m'a pas l'air d’être dans elements.ele non plus.
 
Dernière édition:
Inscrit
10 Mai 2015
Messages
357
Reactions
55
#8
Euh, je ne sais pas si c'est exactement ce que tu cherches mais les images des D2P ce trouvent là (il me semble) \app\content\gfx\items\bitmap
Il ne reste plus qu'a les lire ;)
 

Labo

Membre Actif
Inscrit
16 Aout 2013
Messages
799
Reactions
15
#10
Inscrit
24 Juin 2015
Messages
53
Reactions
0
#11
Ok look,

The reader of Luaxy save the files in the name of the d2p folder

http://prntscr.com/akb1bq

I save all in the same folder, this is because you don't see all the files

C#:
var filePath = $"./gfx/{pair.Key}";

                        if (!Directory.Exists(Path.GetDirectoryName(filePath)))
                        {
                            Directory.CreateDirectory(Path.GetDirectoryName(filePath));
                        }

                        using (var stream = File.Create(filePath))
                        {
                            var writer = new BigEndianWriter(stream);

                            writer.WriteBytes(reader.ReadBytes(pair.Value.Item2));
                        }
For activate is diferent, all interactives share the same "elementId" that know what gfx is, I don't know how ankama translate it, but by research I activate 70% of interacives in world:

JSON:
"elements": [
            {
              "elementName": "Graphical",
              "elementId": 11045,
              "hue_1": 2,
              "hue_2": 2,
              "hue_3": -34,
              "shadow_1": 0,
              "shadow_2": 0,
              "shadow_3": 0,
              "offsetX": -129,
              "offsetY": -64,
              "altitude": 0,
              "identifier": 0
            },
 

Labo

Membre Actif
Inscrit
16 Aout 2013
Messages
799
Reactions
15
#12
The more I look in the sources, the more I think it might be in the Elements.ele file :
In InteractiveElementBehavior.as there is some call to Atouin.getInstance().getIdentifiedElement(this.interactiveElement.elementId);
And when we look in the MapRenderer.as the gfxId from Elements.as are used to retrieve the graphics. What is nevertheless strange is that the variable that stores the gfxId is called _jpgMap…
 

Labo

Membre Actif
Inscrit
16 Aout 2013
Messages
799
Reactions
15
#13
I didn't understand "For activate is diferent, all interactives share the same "elementId" that know what gfx is, I don't know how ankama translate it, but by research I activate 70% of interacives in world:" nor where you found the json data. Could you explain what you did ?
 
Inscrit
24 Juin 2015
Messages
53
Reactions
0
#14
This .json is a .dlm decompiled with the LuaxY tool, I search in official every item and get it to compare, but I go take a look to the .ele file, maybe you're right :)
 
Inscrit
24 Juin 2015
Messages
53
Reactions
0
#15
Well I found the solution :)

Like I tell you the dlm has a elementId, this is in the .ele too, so when I read the .ele I get a GrapicalelementData, this get a EntityGraphicalElementdata, the entitylook give us a string with the look, this look is he bone, so look :


ElementId 34008:

http://prntscr.com/akblc8

Bone 660:

http://prntscr.com/akblnt

^^
 

Labo

Membre Actif
Inscrit
16 Aout 2013
Messages
799
Reactions
15
#16
I KNEW IT :D
Wow this is like awesome, but what tool did you use for the first screen ? It seems to give you some values of the variables ?
Thank you a lot for your help !
 
Inscrit
24 Juin 2015
Messages
53
Reactions
0
#17
Oh is not a tool, is visual studio in debug mode :)

I use a dlm reader code to get it ^^

You're welcome :), now is hard know all the interactive by string look
 

Labo

Membre Actif
Inscrit
16 Aout 2013
Messages
799
Reactions
15
#18
But visual studio supports as3 ? It's awesome !!!
 
Inscrit
24 Juin 2015
Messages
53
Reactions
0
#19
Oh, this is not as3, this is c# :), but if I'm not bad one ide of as3 you can debug :)
 

nowis13

Contributeur
Inscrit
11 Janvier 2015
Messages
22
Reactions
1
#20
Thx genesis,

I have also open the .ele. I have just some problems to link "Interactive.id" to the list of elements. I have tried to use this id as an index on the list/array filtered by "element.type == 3" but only the first one is ok for me. I think i have missed something.

Someone have found a way to link "entity_look" to Interactive.d2o list ?
 
Haut Bas