A
Bonjour les amis,
C'est avec joie que je désire partager ma dernière création. Ce n'est que le début de mon projet que je veux mener.
En effet, je veux créer une bibliothèque qui permettrait d'éviter aux développeurs de programme utilisant la communication D2 de devoir créer les outils communs à tous les programmes.
Tutoriels
[VB.Net] Faciliter la communication D2 avec D2Com
[C#] Faciliter la communication D2 avec D2Com
D2Com.dll
Cet utilitaire vous permet actuellement de gérer une connexion D2 avec deux évènements : un lorsqu'un paquet est reçu et un autre lorsqu'un paquet est envoyé.
La connexion est semi-asynchrone en multi-threading. Vous ne perdez aucun paquet car il y a un système de file d'attente : dès que des données sont reçues, elles sont tout de suite prises en charge et disposées dans la file d'attente pour les décoder.
Il dispose aussi d'un stream : DataWriter et DataReader pour le binaire BigEndian. Il est fonctionnel mais je suis dans le projet de l'améliorer afin d'en profiter d'avantage de la puissace qu'offre C#, notamment en implémentant l'interface IDisposeable.
Et enfin les utilitaires qui permettent de lire les fichiers D2I grâce à D2Idiom, les fichiers D2P grâce à D2Pak et les fichiers D2O grâce à D2Object. Pour ce dernier, l'extension D2Com.Datacenter en utilisera toutes ses capacités.
D2Com.Network.dll
Cette extension permet de profiter des paquets utilisés par le protocole D2 grâce aux classes des paquets traduites, la classe statique singleton ProtocolTypeManager pour gérer les instances des IType qui héritent d'un IType (ObjectEffect par exemple).
Disposez aussi de la classe statique singleton MessageReceiver en multi-client. Ainsi vous recevrez les IMessage propre à chaque connexion D2Connection juste en définissant le nom d'identifiant unique des clients.
D2Com.Datacenter.dll
L'extension D2Com.Datacenter permet d'utiliser pleinement D2Com.Data.D2Object. En effet, vous n'avez qu'à donner les chemin des fichiers D2O et tout se fait automatiquement ! Vous pourrez ainsi avoir la liste des objets, des monstres, des classes, des serveurs et j'en passe et tout ça localisé grâce à D2Com.Data.D2Idiom.
Disponible uniquement sur demande par MP ! Projets non sérieux s'abstenir ! Notez toutefois que si vous êtes un petit rigolo avec 2-3 messages sur le forum, vous pourrez toujours rêver pour leech
D2Com.World.dll (pas encore disponible)
N'avez vous jamais rêvé de faire déplacer votre personnage simplement ? Et bien c'est ce que cette extension propose ! En utilisant l'algorithme A-Star, vous pourrez vous déplacer n'importe où à partir de n'importe où ! En outre du déplacement, vous pourrez aussi obtenir des tas d'informations sur les maps du jeu.
A venir
Ajouter des classes dans D2Com.Datacenter
Ajouter des paquets dans D2Com.Network
D2Com.World n'est pas prévu de sortir bientôt.
Télécharger le pack D2Com en version 1.2.2 (Projet d'exemple C#/VB.Net) (D2Com / D2Com.Network)
Télécharger le pack D2Com en version 1.2.1 (Projet d'exemple C#/VB.Net) (D2Com / D2Com.Network)
Télécharger le pack D2Com en version 1.2.0 (D2Com / D2Com.Datacenter / D2Com.Network)
Télécharger le pack D2Com en version 1.1.3 (D2Com / D2Com.Datacenter / D2Com.Network)
Télécharger le pack D2Com en version 1.1.2 (Documentation incluse + projet d'exemple C#/VB.Net) (D2Com / D2Com.Network)
Télécharger le pack D2Com en version 1.1.1 (Documentation incluse + projet d'exemple C#/VB.Net) (D2Com / D2Com.Network)
Télécharger le pack D2Com en version 1.1.0 (Documentation incluse + projet d'exemple C#/VB.Net) (D2Com / D2Com.Network)
Télécharger D2Com.dll en version 1.0.1 (Documentation incluse)
Télécharger D2Com.dll en version 1.0.0 (Documentation incluse)
Je suis désolé à pour ceux qui suivait le projet et qui utilisait D2Com.
J'ai appris aussi que depuis la MAJ, certains points ont changés ce qui rend D2Com obsolète.
Bon dev à vous tous.
"+" => Ajout
"-" => Retrait
"~" => Modification
Version 1.2.3
D2Com
~ Correction d'un problème lors du parsing : lorsque la taille du paquet indiqué par le paquet était plus grande que la taille du tableau d'octets en traitement cela provoquait un arrêt brusque de l'application. Ce bug dest désormais corrigé.
D2Com.Datacenter
+ Ajout de la classe D2Com.Datacenter.Communication.InfoMessage.
D2Com.Network
/!\ Paquet 226 semble ne pas le déserialiser correctement. Il est par conséquent inutilisanble dans D2Com.Network.
~ Correction de certaines classes Messages utilisant le ProtocolTypeManager.
Version 1.2.2
~ Correction d'un bug du ProtocolTypeManager où parfois certains types ne sont pas correctement renvoyé ce qui provoquait un NullReferenceException
+ Ajout de la classe CharactersListMessage dans D2Com.Network.Messages.
Version 1.2.1
~ Correction d'un bug de D2com.IO.DataWriter lors de l'écriture d'une chaîne, sa longueur y était écrite deux fois.
~ Modification majeure de l'utilisation de D2Com.Network. Il n'est plus nécessaire d'ajouter les espace de noms pour chaque catégorie des messages/types.
L'espace de noms "D2Com.Network.Messages" et "D2Com.Network.Types" incluent tous les messages nécessaires.
~ Ajout de quasiement tous les paquets. Paquets manquants :
ConsoleCommandsListMessage.as
AchievementListMessage.as
GameActionFightDispellableEffectMessage.as
GameActionFightSummonMessage.as
CharactersListMessage.as
CharactersListWithModificationsMessage.as
GameFightEndMessage.as
GameFightSynchronizeMessage.as
HousePropertiesMessage.as
PaddockPropertiesMessage.as
GameRolePlayShowActorMessage.as
GameEntitiesDispositionMessage.as
TaxCollectorListMessage.as
TaxCollectorMovementAddMessage.as
ExchangeBidHouseInListAddedMessage.as
UpdateMountBoostMessage.as
SetUpdateMessage.as
ShortcutBarAddRequestMessage.as
ShortcutBarContentMessage.as
ShortcutBarRefreshMessage.as
RawDataMessage.as
FightResultPlayerListEntry.as
FightTeamInformations.as
Version 1.2.0
+ Ajout de l'extension D2Com.Datacenter, avec quelques classes pour le moment.
+ Ajout de D2Com.Data.D2Object et les sous classes, permettant de lire un fichier D2O.
~ Correction de certains éléments dans la documentation IntelliSense.
Version 1.1.3
+ D2Com.Data.D2Idiom : Permet de lire et utiliser les fichiers D2I.
+ D2Com.Data.D2Pak: Permet de lire et utiliser les fichiers D2P.
~ Correction de la documentation IntelliSense.
~ Optimisation du code à certains endroits.
Version 1.1.2
+ Ajout de paquets dans D2Com.Network
Version 1.1.1
~ DataReader.ByteWrapperToBool deviens DataReader.GetFlagByteWrapper. Son utilisation n'a pas changé.
+ PacketDataEventArgs : Cette classe fournir les données du paquet concerné dans les évènements D2Com.D2Connection.PacketReceived et D2Com.D2Connection.PacketSend.
+ DataWriter.SetFlagByteWrapper : Méthode du byte wrapper pour lui attribuer des valeurs booléennes.
- PacketReceivedEventArgs : Cette classe n’existe plus.
- PackedSendEventArgs : Cette classe n'existe plus.
Version 1.1.0
+ Ajout de la fonction statique D2Com.IO.DataReader.ByteWrapperToBool
+ Ajout de l’extension D2Com.Network (uniquement les paquets de connexion pour le moment)
Version 1.0.1
~ Correction d'un bug sur la propriété D2Com.D2Connection.Socket
Vous pouvez maintenant utiliser la méthode Connect() à partir de la propriété.
~ Correction des commentaires IntelliSense des classes D2Com.IO.DataWriter et D2Com.IO.DataReader.
Version 1.0.0
Version de base.
"-" => Retrait
"~" => Modification
Version 1.2.3
D2Com
~ Correction d'un problème lors du parsing : lorsque la taille du paquet indiqué par le paquet était plus grande que la taille du tableau d'octets en traitement cela provoquait un arrêt brusque de l'application. Ce bug dest désormais corrigé.
D2Com.Datacenter
+ Ajout de la classe D2Com.Datacenter.Communication.InfoMessage.
D2Com.Network
/!\ Paquet 226 semble ne pas le déserialiser correctement. Il est par conséquent inutilisanble dans D2Com.Network.
~ Correction de certaines classes Messages utilisant le ProtocolTypeManager.
Version 1.2.2
~ Correction d'un bug du ProtocolTypeManager où parfois certains types ne sont pas correctement renvoyé ce qui provoquait un NullReferenceException
+ Ajout de la classe CharactersListMessage dans D2Com.Network.Messages.
Version 1.2.1
~ Correction d'un bug de D2com.IO.DataWriter lors de l'écriture d'une chaîne, sa longueur y était écrite deux fois.
~ Modification majeure de l'utilisation de D2Com.Network. Il n'est plus nécessaire d'ajouter les espace de noms pour chaque catégorie des messages/types.
L'espace de noms "D2Com.Network.Messages" et "D2Com.Network.Types" incluent tous les messages nécessaires.
~ Ajout de quasiement tous les paquets. Paquets manquants :
ConsoleCommandsListMessage.as
AchievementListMessage.as
GameActionFightDispellableEffectMessage.as
GameActionFightSummonMessage.as
CharactersListMessage.as
CharactersListWithModificationsMessage.as
GameFightEndMessage.as
GameFightSynchronizeMessage.as
HousePropertiesMessage.as
PaddockPropertiesMessage.as
GameRolePlayShowActorMessage.as
GameEntitiesDispositionMessage.as
TaxCollectorListMessage.as
TaxCollectorMovementAddMessage.as
ExchangeBidHouseInListAddedMessage.as
UpdateMountBoostMessage.as
SetUpdateMessage.as
ShortcutBarAddRequestMessage.as
ShortcutBarContentMessage.as
ShortcutBarRefreshMessage.as
RawDataMessage.as
FightResultPlayerListEntry.as
FightTeamInformations.as
Version 1.2.0
+ Ajout de l'extension D2Com.Datacenter, avec quelques classes pour le moment.
+ Ajout de D2Com.Data.D2Object et les sous classes, permettant de lire un fichier D2O.
~ Correction de certains éléments dans la documentation IntelliSense.
Version 1.1.3
+ D2Com.Data.D2Idiom : Permet de lire et utiliser les fichiers D2I.
+ D2Com.Data.D2Pak: Permet de lire et utiliser les fichiers D2P.
~ Correction de la documentation IntelliSense.
~ Optimisation du code à certains endroits.
Version 1.1.2
+ Ajout de paquets dans D2Com.Network
Version 1.1.1
~ DataReader.ByteWrapperToBool deviens DataReader.GetFlagByteWrapper. Son utilisation n'a pas changé.
+ PacketDataEventArgs : Cette classe fournir les données du paquet concerné dans les évènements D2Com.D2Connection.PacketReceived et D2Com.D2Connection.PacketSend.
+ DataWriter.SetFlagByteWrapper : Méthode du byte wrapper pour lui attribuer des valeurs booléennes.
- PacketReceivedEventArgs : Cette classe n’existe plus.
- PackedSendEventArgs : Cette classe n'existe plus.
Version 1.1.0
+ Ajout de la fonction statique D2Com.IO.DataReader.ByteWrapperToBool
+ Ajout de l’extension D2Com.Network (uniquement les paquets de connexion pour le moment)
Version 1.0.1
~ Correction d'un bug sur la propriété D2Com.D2Connection.Socket
Vous pouvez maintenant utiliser la méthode Connect() à partir de la propriété.
~ Correction des commentaires IntelliSense des classes D2Com.IO.DataWriter et D2Com.IO.DataReader.
Version 1.0.0
Version de base.