Add infos into target window
[ryzomcore.git] / ryzom / client / data / gamedev / interfaces_v3 / news_gamedev.txt
blob755f8ad805346b47b042b9308794dd9328795e21
1 //
2 Ecrire dans la database pour tout les swap (même quand rien ne change) => pouvoir forcer l'update
3 Voir avec Olivier le pb d'init d'interfaces qui envoit un message reseau alors que la couche reseau n'est pas initialisée.
6 Les sources sont balisées avec des TODO_GAMEDEV pour indiquer les endroits à modifier ou checker par le gamedev
8 // Done: Il faudra revenir sur le checksum et le remplacer par un compteur d'action
9 *  database.xml: SERVER:BUILDING_SENTENCE:BRICKS  supprimé.
10         Plus de communication server vers client pour la construction de la sentence courante.
11         Le client envoie toujours les messages SENTENCE:ADDBRICK etc... mais seulement pour que le serveur:
12                 - se mette à jour
13                 - renplisse VALID, COST, STRING, comme avant
14                 - remplisse CHECKSUM qui est calculé avec 
15                         CDBCheckSum.add(RootSheetId)
16                         CDBCheckSum.addVector(MandatorySheetId)  Taille du tableau en accord avec la RootBrick
17                         CDBCheckSum.addVector(OptionalSheetId)   Taille du tableau en accord avec la RootBrick
18                 NB: sheetId en sint32. Si une brique optionnelle n'est pas voulu, 0 est ajouté au checksum.
20         Ainsi le client ne peut valider la sentence que si CHECKSUM et VALID sont bons.
22         Le CHECKSUM sert pour éviter que le client, après VALID=1 du serveur, change une brique, puis clique OK tout de suite (avant possible invalidation)
24 // Done: Ne pas oublier de mettre à jour la database avec la quand un perso monte de niveau ou acquiere un nouveau metier
25 * database.xml: SERVER:CHARACTER_INFO:CAREER modifiée.
26         - LEVEL indique le level de la carriere (0,carriere non entreprise) (1-25,carriere valide)
27         - JOB0 à JOB7 correcpondent a tout les metier d'une carriere
28                 - LEVEL pareil que pour la carriere mais pour le metier
29                 - PROGRESS est l'indice de progression du metier (pour les progress bar des skills ?)
31 // Done
32 * message ITEM:SWAP doit marcher pas seulement de main à autre mais de n'importe quel inventory a nimporte quel autre
34 // Done
35 * message SENTENCE:MEMORIZE
37         Il faut maintenant rajouter un numéro de slot pour la mémorisation des sorts (car fait par un glisser/deplacer now):
40 / Ok
41 * Note: sentences.name a changé de format... (c deja codé)
44 * FABER: changements:
45         - le joueur ne peut choisir que le meme nombre de MP requis par la formule.
47         par consequent le message SENTENCE:CLEAR doit le remettre à 0
49         - De la meme facon qu'avec la magie, 
50                 SERVER:BUILDING_SENTENCE:TOOL  et
51                 SERVER:BUILDING_SENTENCE:MPS
53         sont supprimés, car la gestion est faite sur le client. VALID, STRING et COST (cout en stamina) sont remplis de la meme facon
55                 CHECKSUM est calculé selon:
56                         CDBCheckSum.add(OptionalSheetId)        (sint32) Taille du tableau en accord avec la RootBrick. 0 si brique optionnelle non voulue
57                         CDBCheckSum.addVector(Mps-Quality)      (sint32) Taille du tableau en accord avec la RootBrick
58                         CDBCheckSum.add(OBJECT:SHEET)           (sint32) sheetId de l'obet à créer
59                         CDBCheckSum.add(OBJECT:QUANTITY)        (sint32) quantités de l'obet à créer (objets stackables)
60                 
61         Ainsi le client ne peut valider que si le client et le serveurs sont raccords et que la sentence est valide.
63         - FABER:ADD_MP et FABER:REMOVE_MP sont remplacés par 
65                 FABER:SET_MP_QUALITY
66                 format="u16 u8" => "Quality  MpSlot"
68                 Ainsi le serveur doit verifier que le client a ce qu'il faut dans son inventaire pour selectionner le MP.
69                 L'execution de la sentence devra enlever "au mieux" les MPs, si necessaire en supprimant plusieurs slots
71         - Pour les items stackable (fleches etc...) on peut en créer plusieurs d'un coup (Les MPs sont multipliés)
72                 Le message FABER:SET_NUM_ITEM (format="u8") permet de changer le nombre voulu d'items.
73                 il devra aussi surement changer tout ce qui est cout en stamina etc...
74                 Le message SENTENCE:CLEAR reset le nombre d'items du Faber à 1
77         - Ya pas de briques racines de FABER! Pour la création, à la place de l'ADD_BRICK du root, 
78                 avant le message FABER:EXECUTE, un message est envoyé:
80                 FABER:START_CREATE
81                 format="u32"            => "SheetId"
83         - pour la réparation et le rafinage, l'objet n'est pas enlevé de l'inventaire. A la place de l'ADD_BRICK du root, et
84                 avant le message FABER:EXECUTE, un message est envoyé:
85                 
86                 FABER:START_REPAIR
87                 format="u16 u16"        => "InventoryId  SlotId"
89                 ou
90                 FABER:START_REFINE
91                 format="u16 u16"        => "InventoryId  SlotId"
94                 L'objet est alors locked (fait par le serveur)
95                 (à voir pour plus tard quand les swap_items se feront sur le client, c'est le client qui devra locker)
96                 L'objet doit etre delocké sur un SENTENCE:CLEAR
98         - INFO: Pour La selection du tool je scan les sheaths et le bag (dans l'ordre)
99         - INFO: Pour La selection des MP, je scan seulement les bag
101         NOTE: msg.xml n'est pas modifié!
104 * A voir : pour les cheveux il n'y a pas de difference dans le character summary entre tete et cheveux