En poursuivant votre navigation sur ce site ou en cliquant sur la croix, vous acceptez le dépôt de cookies destinés à réaliser des statistiques de visites ainsi qu'à vous proposer des vidéos, des boutons de partage, des publicités personnalisées et un service de chat. Pour en savoir plus et paramétrer les cookies X

FR EN ES PT
Naviguer dans les forums 
Trackers Ankama

[JSON] Mini guide d'utilisation

Par Verty 12 Mars 2019 - 11:54:32
AnkaTracker

Bonjour à tous,

Je me permet d’écrire un petit guide sur les JSON pour les devs qui s’y intéresseraient mais qui ne souhaitent pas non plus passer trop de temps à tout comprendre. En espérant que ça aide !

Prologue

Le sujet initial se trouve sur ce lien. Je souhaite aussi préciser que l’utilisation des JSON est soumise à un contrat de licence supplémentaire disponible par ici. Si vous avez des questions ou souhaitez apporter des corrections, n’hésitez pas !

Récupérer la version

Les données sont versionnées ce qui veut dire qu’à l’avenir, il existera des fichiers JSON différents pour chaque version. Sauf cas exceptionnel, il est conseillé (et logique) d’utiliser la version courante. Pour la récupérer, rien de plus simple, un seul endroit :

https://s.ankama.com/games/wakfu/gamedata/config.json

Accéder aux fichiers

Les fichiers JSON sont accessibles via cette URL :

https://s.ankama.com/games/wakfu/gamedata/{version}/{file}.json

{version} est à remplacer par la version sur laquelle vous souhaitez travailler. {file} par le nom du fichier. Par exemple :

https://s.ankama.com/games/wakfu/gamedata/1.62.7.166389/items.json

Les différents fichiers

Voici la liste des fichiers actuellement disponibles :

- items.json
- itemProperties.json
- equipmentItemTypes.json
- actions.json
- states.json

Items.json

Je ne vais pas forcément suivre l’architecture exacte des données ni expliquer tous les champs. Il s’agit là juste d’apporter certaines précisions personnelles. J'aimerai aussi préciser que tous les items du jeu ne sont pas présents, seulement ceux qui sont équipables.

- id : ID de l’item
- lvl : Le niveau de l’item. 0 si le niveau est variable (montures, familiers, items maka)
- itemTypeId : ID du type de l’item. À utiliser avec le fichier equipmentItemTypes.json
- itemSetId : ID de la pano, inutilisable pour le moment
- rarity : ID de la rareté. Voir "ID des raretés" dans la partie Bonus.
- bindType : Item lié, item de quête

- useCost.. : Coût en PA, PM ou WP lors d’une utilisation
- useRange… : Min et Max de la range
- useTestFreeCell :  Utilisé pour les casts. Vérifie si la case est vide
- useTestLos : Line of sight, “ligne de vue
- useTestOnlyLine : Utilisation en ligne uniquement
- useTestNoBorderCell : Utilisé pour les casts. Vérifie une “bulle” en combat
- useWorldTarget : Utilisé pour certains items spécifiques (fées, emotes, etc..)

- gfxId : Nom de l'image de l’item
- femaleGfxId : Même chose que gfxId mais pour indiquer une variante dans la version féminine. Peu utile.

- gemElementType : Type de runes
- gemNum : Nombre de slots de runes

- properties : propriétés spécifiques. À utiliser avec le fichier itemProperties.json
- useEffects : Effets lors de l’utilisation de l'item (exemple : Attaque avec une arme)
- useCriticalEffects : Critiques des effets lors de l’utilisation
- equipEffects : Effets lorsque l’item est équipé

Pour en savoir plus, voir "Effets" dans la partie Bonus.

- id : id de l’effet
- actionId : type d’effet. A utiliser avec le fichier actions.json.
- areaShape : Forme de la zone d’effet. 32676 = EMPTY
- areaSize : Taille de la zone d’effet
- params : Paramètres de l’effet. Voir "Effets" dans la partie Bonus.
- description : Indique une locale spécifique à l’effet. Non présent sur tous les effets. Voir "Effets" dans la partie Bonus.
- subEffects : Effets enfants d’un effet. Non présent sur tous les effets.

Bonus

1 - ID des raretés

0 = Commun
1 = Inhabituel
2 = Rare
3 = Mythique
4 = Légendaire
5 = Relique
6 = Souvenir
7 = Epique

2 - Effets

Il n'est pas forcément simple de comprendre les effets quand on tombe dessus la première fois. Voici quelques explications basiques.

Chaque effet a un type qui indique son action. Ce type est indiqué dans le champs actionId de l'effetL'action peut ensuite être retrouvée dans le fichier actions.json qui précise ce que l'action fait et ce qui doit être affiché en texte. Un petit exemple :

- L'item avec l'id 2021(Amulette du Bouftou) à l'effet 184047.
- L'effet 184047 a l'actionId 20.
- L'action 20 (depuis actions.json) indique que c'est un "Boost : PdV"
- Le texte a affiché en français de cette action est : "[#1] Point{[>1]?s:} de Vie"

Une fois que l'action est déterminée, il faut souvent formater la locale de l'effet. Pour cela, on utilise le champs "params" de l'effet :

"params":[6.0,0.0,1.0,0.0,0.0,0.0];

La partie [#1] correspond à la première paire de valeur de params (params[0] et params[1]). Tout ça avec un calcul simple :

params[1] * LVLITEM + params[0] = 0.0 * 6.0 + 6.0 = 6.0

[#1] est donc à remplacer par 6.

Les { } dans une locale permettent d'indiquer un ternaire. Très simplement, {[>1]?s:} vérifie si le #1 > 1 et ajoute un 's' si c'est le cas. On se retrouve donc avec la locale d'effet :

+6 Points de Vie

Et voilà !

ATTENTION : Certains effets disposent d'un champ description qui indique une locale spécifique (souvent unique) à un effet et qui supplante donc la locale de l'action de l'effet. Pensez-y !

Si vous avez des questions sur les locales des effets, encore une fois, n'hésitez pas à poser vos questions.

C'est tout pour ce mini guide, à vos claviers maintenant !

4 0
Première intervention Ankama

Salut,

Merci pour ce mini-guide, je l'avais raté.

Le sujet était dans la mauvaise section, je l'ai donc déplacé et j'en ai profité pour l'ajouter au topic de référencement wink

[Enio].

Voir le message dans son contexte
Réactions 7
Score : 2713

Très bon guide, merci !

Il me paraît intéressant/important de préciser également que le fichier items.json mis à disposition par Ankama ne recense que les objets qu'il est possible d'équiper.

C'est à dire qu'il ne comprend pas, par exemple, les ressources, et les consommables.

Ainsi, on y retrouve tous les types d'armures, les armes, les familiers, ainsi que les objets pouvant rentrer dans le slot d'emblème (Comme.. Les Emblèmes. Ou le Feu de l'Amour!), et les costumes.

Et je crois ne rien oublier.

Hâte de voir ce que la communauté pourra créer avec ça !

0 0
Score : 418

Merci pour la précision ! Je le rajoute !

0 0
Score : 138

Bonjour,
Je suis arrivé à la même conclusion que toi sur le calcul des valeurs des effets (à savoir valeur = params[1] * level + params[0]) en essayant de retrouver les dégâts des armes, mais je me demande si tu l'a trouvé aussi en tâtonnant ou s'il y a une vraie logique derrière tout ça...?

Slummp

0 0
Score : 418

Il y a une vraie logique. Base + modifier. Ça sert pour tout ce qui a un niveau modulable (items ou spells, je suppose).

0 0
Score : 138

Moui, c'est le même principe que sur les sorts, mais c'était pas vraiment ma question, je me demandais s'il l'avait trouvé "au pif" ou autrement. Bref, j'avais mal formulé quoi

0 0

Salut,

Merci pour ce mini-guide, je l'avais raté.

Le sujet était dans la mauvaise section, je l'ai donc déplacé et j'en ai profité pour l'ajouter au topic de référencement wink

[Enio].

Réagir à ce sujet