Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
fr:toutcommenceparlereseau [2020/08/26 18:49] – aleajactaest | fr:toutcommenceparlereseau [2021/12/03 19:19] (Version actuelle) – modification externe 127.0.0.1 | ||
---|---|---|---|
Ligne 53: | Ligne 53: | ||
Ce qui suit n'est pas clair. Je propose une reformulation, | Ce qui suit n'est pas clair. Je propose une reformulation, | ||
- | --- //[[wiki:user: | + | --- // |
</ | </ | ||
+ | |||
+ | <WRAP center round help 60%> | ||
+ | Mise à jour afin de voir si cela convient | ||
+ | --- // | ||
+ | </ | ||
+ | |||
+ | On lance une requette WEB avec la forme suivante | ||
Le lien dans l' | Le lien dans l' | ||
Ligne 67: | Ligne 74: | ||
* '' | * '' | ||
* '' | * '' | ||
+ | |||
+ | |||
+ | Exemple: | ||
+ | |||
+ | | ||
Ligne 90: | Ligne 102: | ||
**1. Client -> Serveur** | **1. Client -> Serveur** | ||
- | Demande le grain de sable((Le sel du mot de passe? Je ne suis pas sûre de comprendre... | + | Demande |
URL formatée de la façon suivante : | URL formatée de la façon suivante : | ||
Ligne 417: | Ligne 429: | ||
+---------+ | +---------+ | ||
- | Puis pour chaque paquet Z on lit paquet Z((Ici, je ne suis pas sûre de mon ajout de '' | + | Puis pour chaque paquet Z on lit le champ '' |
+----------+ | +----------+ | ||
- | | Packet Z | | next | ActionFactory | + | | Packet Z | | next | ActionFactory |
| X bits | --> | 1 bit | X bits | 1 bit | X bits | 1 bit | | | X bits | --> | 1 bit | X bits | 1 bit | X bits | 1 bit | | ||
+----------+ | +----------+ | ||
Ligne 771: | Ligne 783: | ||
Maintenant, vous savez comment décoder l' | Maintenant, vous savez comment décoder l' | ||
+ | |||
+ | |||
+ | |||
+ | == Lecture du fichier database.xml == | ||
+ | |||
+ | En complément des messages provenant de msg.xml, nous avons une autre référence database.xml qui a un mode de fonctionnement un peu différent. | ||
+ | Certainne commande Impulse (msg.xml), auront un message encodé via database.xml | ||
+ | |||
+ | Structure du fichier: | ||
+ | |||
+ | <code xml> | ||
+ | < | ||
+ | <!-- dans cette zone existe des informations non utilisés par le client --> | ||
+ | </ | ||
+ | <branch name=x1 bank=" | ||
+ | < | ||
+ | </ | ||
+ | <branch name=x3 bank=" | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | <branch name=x6 bank=" | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | Nous trouvons le mot de clef branch, que l'on va traduire par branche, et le mot de clef leaf que l'on traduit par feuille. | ||
+ | |||
+ | Ici le premier niveau qui nous interrese est database_description, | ||
+ | Pour la partie branche, cet élément peut contenir d' | ||
+ | |||
+ | Si une branch contient le mot de clef " | ||
+ | |||
+ | Ensuite, nous avons la possibilité d' | ||
+ | |||
+ | L' | ||
+ | |||
+ | Un petit exemple: | ||
+ | |||
+ | <code xml> | ||
+ | < | ||
+ | | ||
+ | | ||
+ | <branch name=" | ||
+ | count=" | ||
+ | < | ||
+ | | ||
+ | | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | bank=" | ||
+ | atom=" | ||
+ | <leaf name=" | ||
+ | type=" | ||
+ | <branch name=" | ||
+ | count=" | ||
+ | <leaf name=" | ||
+ | type=" | ||
+ | </ | ||
+ | <branch name=" | ||
+ | count=" | ||
+ | <leaf name=" | ||
+ | type=" | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | bank=" | ||
+ | <branch name="" | ||
+ | count=" | ||
+ | atom=" | ||
+ | <leaf name=" | ||
+ | type=" | ||
+ | <leaf name=" | ||
+ | type=" | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | * Entities | ||
+ | * E0 | ||
+ | * P0 (type : I8) | ||
+ | * P1 (type : I8) | ||
+ | * P2 (type : I8) | ||
+ | * E1 | ||
+ | * P0 (type : I8) | ||
+ | * P1 (type : I8) | ||
+ | * P2 (type : I8) | ||
+ | * USER (Atom) | ||
+ | * SKILL_POINTS_0 | ||
+ | * VALUE (type : I32) | ||
+ | * SKILL_POINTS_1 | ||
+ | * VALUE (type : I32) | ||
+ | * SKILL_POINTS_2 | ||
+ | * VALUE (type : I32) | ||
+ | * SKILL_POINTS_3 | ||
+ | * VALUE (type : I32) | ||
+ | * FACTION_POINTS_0 | ||
+ | * VALUE (type : I32) | ||
+ | * FACTION_POINTS_1 | ||
+ | * VALUE (type : I32) | ||
+ | * FACTION_POINTS_2 | ||
+ | * VALUE (type : I32) | ||
+ | * FACTION_POINTS_3 | ||
+ | * VALUE (type : I32) | ||
+ | * FACTION_POINTS_4 | ||
+ | * VALUE (type : I32) | ||
+ | * FACTION_POINTS_5 | ||
+ | * VALUE (type : I32) | ||
+ | * FACTION_POINTS_6 | ||
+ | * VALUE (type : I32) | ||
+ | * GROUP | ||
+ | * 0 (Atom) | ||
+ | * PRESENT (Type : I1 == Booléen) | ||
+ | * UID (Type I20) | ||
+ | * 1 (Atom) | ||
+ | * PRESENT (Type : I1 == Booléen) | ||
+ | * UID (Type I20) | ||
+ | * 2 (Atom) | ||
+ | * PRESENT (Type : I1 == Booléen) | ||
+ | * UID (Type I20) | ||
+ | * 3 (Atom) | ||
+ | * PRESENT (Type : I1 == Booléen) | ||
+ | * UID (Type I20) | ||
+ | * 4 (Atom) | ||
+ | * PRESENT (Type : I1 == Booléen) | ||
+ | * UID (Type I20) | ||
+ | </ | ||
+ | |||
+ | Par exemple le message suivant : | ||
+ | 00.0.10.11111111 | ||
+ | * 00 : < | ||
+ | * 0 : <E0> le 2ème niveau, nous avons ici le choix entre E0 & E1, (1 bit suffit pour trouver l' | ||
+ | * 10 : <P1> le 3ème niveau, nous avons ici le choix entre P0, P1 & P2 (2 bits suffisent pour trouver l' | ||
+ | * 11111111 : <I8> le 4ème niveau, la valeur de la branche | ||
+ | * Résumé : | ||
+ | * Entities: | ||
+ | | ||
+ | 2ème exemple : | ||
+ | 01.0010100.11111111111111111111111111111111.01111111111111111111111111111111 | ||
+ | |||
+ | * 01 : < | ||
+ | * 0010100 : < | ||
+ | * 11111111111111111111111111111111 : < | ||
+ | * 01111111111111111111111111111111 : < | ||
+ | * Résumé: | ||
+ | * USER.SKILL_POINTS_2 = 4294967295 | ||
+ | * USER.SKILL_POINTS_4 = 2147483647 | ||
+ | |||
+ | 3ème exemple : | ||
+ | 10.010.0.1 | ||
+ | |||
+ | * 10 : < | ||
+ | * 010 : < | ||
+ | * 0 : < | ||
+ | * 1 : VALUE = 1 | ||
+ | |||
+ | |||
+ | Les types : | ||
+ | * Ixxx : Entier non signé ou xxx et le nombre de bit à récupèrer | ||
+ | * Sxxx : Entier signé, ou xxx et le nombre de bit à récupèrer | ||
+ | * TEXT : Entier non-signé de 32 bit (dont le bit de poids fort est forcé à zero (jamais négatif - si signé) | ||
+ | |||
+ | |||
+ | |||
Ligne 1379: | Ligne 1569: | ||
Bref, pour en savoir plus, il va falloir faire des tests ! S'il y a des exemples de filtres, demander à des joueuses de Ryzom (il y en a sur le canal XMPP Khaganat) si ça leur évoque quelque chose. S'il n'y a aucun exemple, donner la piste pour les trouver, et on demandera à quelqu' | Bref, pour en savoir plus, il va falloir faire des tests ! S'il y a des exemples de filtres, demander à des joueuses de Ryzom (il y en a sur le canal XMPP Khaganat) si ça leur évoque quelque chose. S'il n'y a aucun exemple, donner la piste pour les trouver, et on demandera à quelqu' | ||
- | --- //[[wiki:user: | + | --- // |
</ | </ | ||
<WRAP center round tip 60%> | <WRAP center round tip 60%> | ||
En fait, tout ce qui est ' | En fait, tout ce qui est ' | ||
- | --- //[[wiki:user: | + | --- // |
</ | </ | ||
Ligne 2135: | Ligne 2325: | ||
+ | |||
+ | ===== Annexe : Exemple de communication ===== | ||
+ | |||
+ | ==== Exemple d' | ||
+ | |||
+ | +-------------------+--------------------------------+-------------- | ||
+ | | Source -> Dest. | Message | ||
+ | +-------------------+--------------------------------+-------------- | ||
+ | | Serveur -> Client | CONNECTION/ | ||
+ | +-------------------+--------------------------------+-------------- | ||
+ | | Client -> Serveur | CONNECTION/ | ||
+ | +-------------------+--------------------------------+-------------- | ||
+ | | Serveur -> Client | CONNECTION/ | ||
+ | +-------------------+--------------------------------+-------------- | ||
+ | | Client -> Serveur | CONNECTION/ | ||
+ | +-------------------+--------------------------------+-------------- | ||
+ | | Serveur -> Client | CONNECTION/ | ||
+ | +-------------------+--------------------------------+-------------- | ||
+ | | Client -> Serveur | CONNECTION/ | ||
+ | +-------------------+--------------------------------+-------------- | ||
+ | | Serveur -> Client | CONNECTION/ | ||
+ | +-------------------+--------------------------------+-------------- | ||
+ | | Client -> Serveur | CONNECTION/ | ||
+ | +-------------------+--------------------------------+-------------- | ||
+ | | Serveur -> Client | CONNECTION/ | ||
+ | +-------------------+--------------------------------+-------------- | ||
+ | | Serveur -> Client | TEAM/ | ||
+ | +-------------------+--------------------------------+-------------- | ||
+ | | Serveur -> Client | PHRASE/ | ||
+ | +-------------------+--------------------------------+-------------- | ||
+ | | Serveur -> Client | GUILD/ | ||
+ | +-------------------+--------------------------------+-------------- | ||
+ | | Client -> Serveur | BOTCHAT/ | ||
+ | +-------------------+--------------------------------+-------------- | ||
+ | | Client -> Serveur | POSITION (X, Y, Z, Heading) | ||
+ | +-------------------+--------------------------------+-------------- | ||
+ | | Client -> Serveur | DEBUG/ | ||
+ | +-------------------+--------------------------------+-------------- | ||
+ | | Serveur -> Client | DEATH/ | ||
+ | +-------------------+--------------------------------+-------------- | ||
+ | | Serveur -> Client | STRING/ | ||
+ | +-------------------+--------------------------------+-------------- | ||
+ | | Serveur -> Client | PHRASE/ | ||
+ | +-------------------+--------------------------------+-------------- | ||
+ | | Serveur -> Client | ENCYCLOPEDIA/ | ||
+ | +-------------------+--------------------------------+-------------- | ||
+ | | Serveur -> Client | DB_INIT/ | ||
+ | +-------------------+--------------------------------+-------------- | ||
+ | | Client -> Serveur | NPC_ICON/ | ||
+ | +-------------------+--------------------------------+-------------- | ||
+ | | Serveur -> Client | STRING_MANAGER/ | ||
+ | +-------------------+--------------------------------+-------------- | ||
+ | | Serveur -> Client | USER/ | ||
+ | +-------------------+--------------------------------+-------------- | ||
+ | | Serveur -> Client | NPC_ICON/ | ||
+ | +-------------------+--------------------------------+-------------- | ||
+ | | Serveur -> Client | VisualProperty/ | ||
+ | +-------------------+--------------------------------+-------------- | ||
+ | | Serveur -> Client | DB_INIT/ | ||
+ | +-------------------+--------------------------------+-------------- | ||
+ | | Serveur -> Client | DB_GROUP/ | ||
+ | +-------------------+--------------------------------+-------------- | ||
+ | | Serveur -> Client | DB_UPD_PLR | ||
+ | +-------------------+--------------------------------+-------------- | ||
+ | | Serveur -> Client | PVP_EFFECTS/ | ||
+ | +-------------------+--------------------------------+-------------- | ||
+ | | Serveur -> Client | DB_UPD_PLR/ | ||
+ | +-------------------+--------------------------------+-------------- | ||
+ | |||
+ | |||
+ | ==== Exemple d' | ||
+ | |||
+ | Dans les faits, le serveur envoie des identifiant pour le message, si le client ne connais pas l' | ||
+ | |||
+ | +-------------------+--------------------------------+-------------- | ||
+ | | Source -> Dest. | Message | ||
+ | +-------------------+--------------------------------+-------------- | ||
+ | | Serveur -> Client | STRING_MANAGER/ | ||
+ | +-------------------+--------------------------------+-------------- | ||
+ | | Client -> Serveur | STRING_MANAGER/ | ||
+ | +-------------------+--------------------------------+-------------- | ||
+ | | Serveur -> Client | STRING_MANAGER/ | ||
+ | +-------------------+--------------------------------+-------------- | ||
+ | |||
+ | Ex.: | ||
+ | Le serveur demande d' | ||
+ | 7705 : & | ||
+ | 7849 : Dispensaire | ||
+ | 7859 : Terres Contrôlées | ||
+ | | ||
+ | Cela donne le message : & | ||
+ | |||
+ | |||
+ | |||
+ | ===== Annexe : Exemple de communication ===== | ||
+ | |||
+ | ==== Exemple d' | ||
+ | |||
+ | +-------------------+--------------------------------+-------------- | ||
+ | | Source -> Dest. | Type de message | ||
+ | +-------------------+--------------------------------+-------------- | ||
+ | | Serveur -> Client | CONNECTION/ | ||
+ | +-------------------+--------------------------------+-------------- | ||
+ | | Client -> Serveur | CONNECTION/ | ||
+ | +-------------------+--------------------------------+-------------- | ||
+ | | Serveur -> Client | CONNECTION/ | ||
+ | +-------------------+--------------------------------+-------------- | ||
+ | | Client -> Serveur | CONNECTION/ | ||
+ | +-------------------+--------------------------------+-------------- | ||
+ | | Serveur -> Client | CONNECTION/ | ||
+ | +-------------------+--------------------------------+-------------- | ||
+ | | Client -> Serveur | CONNECTION/ | ||
+ | +-------------------+--------------------------------+-------------- | ||
+ | | Serveur -> Client | CONNECTION/ | ||
+ | +-------------------+--------------------------------+-------------- | ||
+ | | Client -> Serveur | CONNECTION/ | ||
+ | +-------------------+--------------------------------+-------------- | ||
+ | | Serveur -> Client | CONNECTION/ | ||
+ | +-------------------+--------------------------------+-------------- | ||
+ | | Serveur -> Client | TEAM/ | ||
+ | +-------------------+--------------------------------+-------------- | ||
+ | | Serveur -> Client | PHRASE/ | ||
+ | +-------------------+--------------------------------+-------------- | ||
+ | | Serveur -> Client | GUILD/ | ||
+ | +-------------------+--------------------------------+-------------- | ||
+ | | Client -> Serveur | BOTCHAT/ | ||
+ | +-------------------+--------------------------------+-------------- | ||
+ | | Client -> Serveur | POSITION (X, Y, Z, Heading) | ||
+ | +-------------------+--------------------------------+-------------- | ||
+ | | Client -> Serveur | DEBUG/ | ||
+ | +-------------------+--------------------------------+-------------- | ||
+ | | Serveur -> Client | DEATH/ | ||
+ | +-------------------+--------------------------------+-------------- | ||
+ | | Serveur -> Client | STRING/ | ||
+ | +-------------------+--------------------------------+-------------- | ||
+ | | Serveur -> Client | PHRASE/ | ||
+ | +-------------------+--------------------------------+-------------- | ||
+ | | Serveur -> Client | ENCYCLOPEDIA/ | ||
+ | +-------------------+--------------------------------+-------------- | ||
+ | | Serveur -> Client | DB_INIT/ | ||
+ | +-------------------+--------------------------------+-------------- | ||
+ | | Client -> Serveur | NPC_ICON/ | ||
+ | +-------------------+--------------------------------+-------------- | ||
+ | | Serveur -> Client | STRING_MANAGER/ | ||
+ | +-------------------+--------------------------------+-------------- | ||
+ | | Serveur -> Client | USER/ | ||
+ | +-------------------+--------------------------------+-------------- | ||
+ | | Serveur -> Client | NPC_ICON/ | ||
+ | +-------------------+--------------------------------+-------------- | ||
+ | | Serveur -> Client | VisualProperty/ | ||
+ | +-------------------+--------------------------------+-------------- | ||
+ | | Serveur -> Client | DB_INIT/ | ||
+ | +-------------------+--------------------------------+-------------- | ||
+ | | Serveur -> Client | DB_GROUP/ | ||
+ | +-------------------+--------------------------------+-------------- | ||
+ | | Serveur -> Client | DB_UPD_PLR | ||
+ | +-------------------+--------------------------------+-------------- | ||
+ | | Serveur -> Client | PVP_EFFECTS/ | ||
+ | +-------------------+--------------------------------+-------------- | ||
+ | | Serveur -> Client | DB_UPD_PLR/ | ||
+ | +-------------------+--------------------------------+-------------- | ||
+ | |||
+ | ==== Exemple d' | ||
+ | |||
+ | Dans les faits, le serveur envoie des identifiant pour le message, si le client ne connais pas l' | ||
+ | |||
+ | +-------------------+--------------------------------+-------------- | ||
+ | | Source -> Dest. | Type de message | ||
+ | +-------------------+--------------------------------+-------------- | ||
+ | | Serveur -> Client | STRING_MANAGER/ | ||
+ | +-------------------+--------------------------------+-------------- | ||
+ | | Client -> Serveur | STRING_MANAGER/ | ||
+ | +-------------------+--------------------------------+-------------- | ||
+ | | Serveur -> Client | STRING_MANAGER/ | ||
+ | +-------------------+--------------------------------+-------------- | ||
+ | |||
+ | Ex.: | ||
+ | Le serveur demande d' | ||
+ | 7705 : & | ||
+ | 7849 : Dispensaire | ||
+ | 7859 : Terres Contrôlées | ||
+ | | ||
+ | Cela donne le message : & | ||
+ | |||
+ | |||
+ | ===== Annexe : Analyse des structures ===== | ||
+ | |||
+ | ==== Structure du personnage ==== | ||
+ | |||
+ | La structure du personnage est différente entre la création et l' | ||
+ | Il en résulte une contrainte sur les paramètres pour faire coincidé les deux structures. | ||
+ | Dans un premier cas, on retrouve toutes les propriétés sur un mutltiple de 8 bits, and le deuxième cas, on contracte les données en trois entier de 64 bits. (bref moins de place donc certain paramètres on pas la possibilité d' | ||
+ | De plus quand on recharge les personnages, | ||
+ | * * Liste à puce | ||
+ | === Structure création du personnage === | ||
+ | |||
+ | == Structure création du personnage == | ||
+ | |||
+ | Type de message : CONNECTION/ | ||
+ | |||
+ | * (Uint8) Slot | ||
+ | * (Uint32) SheetId | ||
+ | * (Uint32) CSessionId | ||
+ | * (Uint32) name:size | ||
+ | * (UString) name: | ||
+ | * (Uint8) People | ||
+ | * (Uint8) Sex | ||
+ | * (Uint8) NbPointFighter | ||
+ | * (Uint8) NbPointCaster | ||
+ | * (Uint8) NbPointCrafter | ||
+ | * (Uint8) NbPointHarvester | ||
+ | * (Sint32) StartPoint | ||
+ | * (Sint8) HairType | ||
+ | * (Sint8) HairColor | ||
+ | * (Sint8) GabaritHeight | ||
+ | * (Sint8) GabaritTorsoWidth | ||
+ | * (Sint8) GabaritArmsWidth | ||
+ | * (Sint8) GabaritLegsWidth | ||
+ | * (Sint8) GabaritBreastSize | ||
+ | * (Sint8) MorphTarget1 | ||
+ | * (Sint8) MorphTarget2 | ||
+ | * (Sint8) MorphTarget3 | ||
+ | * (Sint8) MorphTarget4 | ||
+ | * (Sint8) MorphTarget5 | ||
+ | * (Sint8) MorphTarget6 | ||
+ | * (Sint8) MorphTarget7 | ||
+ | * (Sint8) MorphTarget8 | ||
+ | * (Sint8) EyesColor | ||
+ | * (Sint8) Tattoo | ||
+ | * (Sint8) JacketColor | ||
+ | * (Sint8) TrousersColor | ||
+ | * (Sint8) HatColor | ||
+ | * (Sint8) ArmsColor | ||
+ | * (Sint8) HandsColor | ||
+ | * (Sint8) FeetColor | ||
+ | |||
+ | Source : | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | |||
+ | === Structure reception pour les autres joueurs === | ||
+ | |||
+ | Ils existent plusieurs messages qui receptionne les caractèristiques. | ||
+ | |||
+ | * Les messages du type CONNECTION/ | ||
+ | * Utilise la structure VPA, VPB & VPC | ||
+ | * Les messages du type VisualProperty (on réception les caractèristiques des différentes entités [personnages d' | ||
+ | * Utilise la structure VPA & VPC (pas la VPB - étrange) | ||
+ | |||
+ | == Structure VisualPropA == | ||
+ | |||
+ | VPA: VisualPropA est de type Uint64 (unsigned int 64 bits). | ||
+ | |||
+ | [Source: khanat-opennel-code/ | ||
+ | |||
+ | * Sex : 1 bit/ | ||
+ | * JacketModel : 8 bits (max: 255) | ||
+ | * JacketColor : 3 bits (max: 7) | ||
+ | * TrouserModel : 8 bits (max 255) | ||
+ | * TrouserColor : 3 bits (max: 7) | ||
+ | * WeaponRightHand : 10 bits (max: 1023) | ||
+ | * WeaponLeftHand : 8 bits (max: 255) | ||
+ | * ArmModel : 8 bits (max: 255) | ||
+ | * ArmColor : 3 bits (max: 7) | ||
+ | * HatModel : 9 bits (max: 511) | ||
+ | * HatColor : 3 bits (max: 7) | ||
+ | |||
+ | Remarque concernant le sexe : | ||
+ | On peut noter qu'il n'y a que 2 possibilités pour le sexe, mâle ou femelle. | ||
+ | (on peut dire adieu aux autres formes de reproduction (asexuée, clonnage, changement de sexe suivant l' | ||
+ | |||
+ | == Structure VisualPropB == | ||
+ | |||
+ | VPB: VisualPropB est de type Uint64 (unsigned int 64 bits). | ||
+ | |||
+ | [Source: khanat-opennel-code/ | ||
+ | |||
+ | * Name : 16 bits (max: 65535) -> ID qui permettrant de retrouver dans la liste des mots stockés | ||
+ | * HandsModel : 9 bits (max: 511) | ||
+ | * HandsColor : 3 bits (max: 7) | ||
+ | * FeetModel : 9 bits (max: 511) | ||
+ | * FeetColor : 3 bits (max: 7) | ||
+ | * RTrail : 4 bits (max: 15) | ||
+ | * LTrail : 3 bits (max: 7) | ||
+ | * Reste : 17 bits non utilisée | ||
+ | |||
+ | == Structure VisualPropC == | ||
+ | |||
+ | VPC: VisualPropC est de type Uint64 (unsigned int 64 bits). | ||
+ | |||
+ | [Source: khanat-opennel-code/ | ||
+ | |||
+ | * MorphTarget1 : 3 bits (max: 7) | ||
+ | * MorphTarget2 : 3 bits (max: 7) | ||
+ | * MorphTarget3 : 3 bits (max: 7) | ||
+ | * MorphTarget4 : 3 bits (max: 7) | ||
+ | * MorphTarget5 : 3 bits (max: 7) | ||
+ | * MorphTarget6 : 3 bits (max: 7) | ||
+ | * MorphTarget7 : 3 bits (max: 7) | ||
+ | * MorphTarget8 : 3 bits (max: 7) | ||
+ | * EyesColor : 3 bits (max: 7) | ||
+ | * Tattoo : 7 bits (max: 127) | ||
+ | * CharacterHeight : 4 bits (max: 15) | ||
+ | * TorsoWidth : 4 bits (max: 15) | ||
+ | * ArmsWidth : 4 bits (max: 15) | ||
+ | * LegsWidth : 4 bits (max: 15) | ||
+ | * BreastSize : 4 bits (max: 15) | ||
+ | * Reste : 10 bits non utilisée | ||
{{tag> | {{tag> |