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édenteDernière révisionLes deux révisions suivantes | ||
fr:toutcommenceparlereseau [2020/11/28 22:59] – Ajout du décodage de Database.xml aleajactaest | fr:toutcommenceparlereseau [2021/01/12 21:01] – Modification sur l'annexe "Analyse des structures" aleajactaest | ||
---|---|---|---|
Ligne 55: | Ligne 55: | ||
--- // | --- // | ||
</ | </ | ||
+ | |||
+ | <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 2313: | 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> |