Ouip c'est ça !
Si on reprends l'exemple du ExchangeObjectMoveMessage, si on transfert par exemple un anneau brouce, (j'ai pas d'amu stri en stock xD )
ce paquet envoie comme information :
5518 ExchangeObjectMoveMessage:
- objectUID = 164621426
- quantity = -1
puis le serveur met à jour les informations et ajoute, par exemple, l'item dans l'inventaire:
3025 ObjectAddedMessage :
- position = 63
- objectGID = 13115
- effects = AmaknaCore.Protocol.Types.ObjectItem
- objectUID = 164621426
- quantity 1
Si tu regarde dans le fichier Items parmis les fichier d2o à l'id 13115,
tu vas trouver :
Cliquez pour révéler
Cliquez pour masquer
{
"id": 13115,
"nameId": 98101,
"typeId": 9,
"descriptionId": 98819,
"iconId": 9249,
"level": 198,
"realWeight": 10,
"cursed": false,
"useAnimationId": 0,
"usable": false,
"targetable": false,
"exchangeable": true,
"price": 19800.0,
"twoHanded": false,
"etheral": false,
"itemSetId": 240,
"criteria": "null",
"criteriaTarget": "null",
"hideEffects": false,
"enhanceable": true,
"nonUsableOnAnother": false,
"appearanceId": 0,
"secretRecipe": false,
"recipeSlots": 8,
"recipeIds": [],
"dropMonsterIds": [],
"bonusIsSecret": false,
"possibleEffects": [
{
"targetMask": "",
"diceNum": 251,
"visibleInBuffUi": true,
"visibleInFightLog": true,
"targetId": 0,
"effectElement": -1,
"effectUid": 0,
"triggers": "",
"duration": 0,
"random": 0,
"effectId": 125,
"delay": 0,
"diceSide": 300,
"visibleInTooltip": true,
"rawZone": "C",
"value": 0,
"group": 0
},
{
"targetMask": "",
"diceNum": 51,
"visibleInBuffUi": true,
"visibleInFightLog": true,
"targetId": 0,
"effectElement": -1,
"effectUid": 0,
"triggers": "",
"duration": 0,
"random": 0,
"effectId": 118,
"delay": 0,
"diceSide": 70,
"visibleInTooltip": true,
"rawZone": "C",
"value": 0,
"group": 0
},
{
"targetMask": "",
"diceNum": 21,
"visibleInBuffUi": true,
"visibleInFightLog": true,
"targetId": 0,
"effectElement": -1,
"effectUid": 0,
"triggers": "",
"duration": 0,
"random": 0,
"effectId": 124,
"delay": 0,
"diceSide": 30,
"visibleInTooltip": true,
"rawZone": "C",
"value": 0,
"group": 0
},
{
"targetMask": "",
"diceNum": 1,
"visibleInBuffUi": true,
"visibleInFightLog": true,
"targetId": 0,
"effectElement": -1,
"effectUid": 0,
"triggers": "",
"duration": 0,
"random": 0,
"effectId": 117,
"delay": 0,
"diceSide": 0,
"visibleInTooltip": true,
"rawZone": "C",
"value": 0,
"group": 0
},
{
"targetMask": "",
"diceNum": 11,
"visibleInBuffUi": true,
"visibleInFightLog": true,
"targetId": 0,
"effectElement": -1,
"effectUid": 0,
"triggers": "",
"duration": 0,
"random": 0,
"effectId": 430,
"delay": 0,
"diceSide": 15,
"visibleInTooltip": true,
"rawZone": "C",
"value": 0,
"group": 0
},
{
"targetMask": "",
"diceNum": 11,
"visibleInBuffUi": true,
"visibleInFightLog": true,
"targetId": 0,
"effectElement": -1,
"effectUid": 0,
"triggers": "",
"duration": 0,
"random": 0,
"effectId": 422,
"delay": 0,
"diceSide": 15,
"visibleInTooltip": true,
"rawZone": "C",
"value": 0,
"group": 0
},
{
"targetMask": "",
"diceNum": 7,
"visibleInBuffUi": true,
"visibleInFightLog": true,
"targetId": 0,
"effectElement": -1,
"effectUid": 0,
"triggers": "",
"duration": 0,
"random": 0,
"effectId": 213,
"delay": 0,
"diceSide": 10,
"visibleInTooltip": true,
"rawZone": "C",
"value": 0,
"group": 0
},
{
"targetMask": "",
"diceNum": 5,
"visibleInBuffUi": true,
"visibleInFightLog": true,
"targetId": 0,
"effectElement": -1,
"effectUid": 0,
"triggers": "",
"duration": 0,
"random": 0,
"effectId": 161,
"delay": 0,
"diceSide": 7,
"visibleInTooltip": true,
"rawZone": "C",
"value": 0,
"group": 0
},
{
"targetMask": "",
"diceNum": 4,
"visibleInBuffUi": true,
"visibleInFightLog": true,
"targetId": 0,
"effectElement": -1,
"effectUid": 0,
"triggers": "",
"duration": 0,
"random": 0,
"effectId": 752,
"delay": 0,
"diceSide": 5,
"visibleInTooltip": true,
"rawZone": "C",
"value": 0,
"group": 0
}
],
"favoriteSubAreas": [],
"favoriteSubAreasBonus": 0,
"craftXpRatio": -1,
"needUseConfirm": false,
"isDestructible": true,
"nuggetsBySubarea": [
[
54.0,
375.0
],
[
55.0,
44.699996948242188
],
[
181.0,
51.75
],
[
455.0,
115.34999847412109
],
[
464.0,
35.21875
],
[
472.0,
35.21875
],
[
605.0,
65.79998779296875
],
[
608.0,
86.924995422363281
],
[
652.0,
110.84062194824219
]
],
"containerIds": [],
"resourcesBySubarea": []
},
donc le nameId de l'anneau brouce est 98101
on regarde dans le fichier d2i cette fois :
"98101": "Anneau de Brouce",
Dans ce cas la c'est pas très pertinent puisque on sait au debut de quel item il sagit.
Par contre c'est plus intéressant dans le deuxième cas.
Ou encore si le client veut voir tout le contenue de ça banque StorageInventoryContentMessage nous fournis une liste d'Id nous pourrions ainsi grâce au d2i lui afficher en "claire" le contenue de ça banque?
ce paquet renvoie quelque chose du style :
5646 StorageInventoryContentMessage:
- objects = ObjectItem[]
- kamas = 0
ObjectItem contient des classe object qui ont pour attribut :
- postion
- objectGID
- effects
- objectUID
- quantity
http://prntscr.com/g8y9bk
Donc si on veut savoir à quel item correspond l'element 0,
on prend objectGID : 301
puis on va regarder dans les d2o le fichier Items
Cliquez pour révéler
Cliquez pour masquer
{
"id": 301,
"nameId": 53493,
"typeId": 53,
"descriptionId": 428379,
"iconId": 53014,
"level": 14,
"realWeight": 1,
"cursed": false,
"useAnimationId": -1,
"usable": false,
"targetable": false,
"exchangeable": true,
"price": 10.0,
"twoHanded": false,
"etheral": false,
"itemSetId": -1,
"criteria": "null",
"criteriaTarget": "null",
"hideEffects": false,
"enhanceable": true,
"nonUsableOnAnother": false,
"appearanceId": 0,
"secretRecipe": false,
"recipeSlots": 0,
"recipeIds": [
1116,
8108,
1700,
8111,
849,
8114,
11981,
185,
953,
8110,
8112,
8113,
8109,
6600,
8142,
1093,
1092,
1094,
1095,
6724,
10974,
11082,
779,
2412,
2534,
6756,
6909,
6757,
12731,
7921,
1698,
1703,
708
],
"dropMonsterIds": [
794,
382,
801,
805,
1011,
1012,
1013,
2355,
98
],
"bonusIsSecret": false,
"possibleEffects": [],
"favoriteSubAreas": [],
"favoriteSubAreasBonus": 0,
"craftXpRatio": -1,
"needUseConfirm": false,
"isDestructible": true,
"nuggetsBySubarea": [
[
3.0,
0.0028760333079844713
],
[
30.0,
0.0028760333079844713
],
[
44.0,
0.0028760333079844713
],
[
780.0,
0.0028760333079844713
]
],
"containerIds": [],
"resourcesBySubarea": []
},
on trouve pour nameId 53493
et enfin on va regarde à quoi ça correspond dans le fichier d2i
Suspence ...
"53493": "Plumes de Tofu",
Je vais vérifier en banque si j'ai bien 111 plumes de tofu
http://prntscr.com/g8ybtf
Tout est bon :)
Voila en espérant avoir été assez clair.
Je suis pas non plus expert dedans donc, si je me suis trompé quelque part, n'hesiter pas à me corriger .
Bonne soirée
Edit : j'ai oublier de parler du GID vs UID
le UID c'est un id propre à chaque item qui permet de rendre unique chaque item (donc liée au serveur)