Comments (7)
Je suppose que tu parles du nom ^^
Des fois tu peux voir un champ Name simplement, c'est le cas pour les Items, la classe ItemBase inclut une propriété Name, idem pour les Spells.
De manière général il existe dans les objets d2o (les objets client) un champ nameId, il faut alors utiliser I18NDataManager.Instance.ReadText pour obtenir la chaîne correspondante à l'id.
from behaviorismanaged.
Merci pour ta réponse :)
Je parle en effet du nom. Dans les messages il arrive souvent que je reçoive l'id de certains items par exemple dans un hdv. Si je comprend bien le code, en fait il suffit que j'instancie un ItemBase avec l'id reçu et que j'utilise ensuite sa propriété Name pour récupérer le nom n'est ce pas?
Edit: Une autre question: Dans le cas de figure où j'ai une liste de messages à envoyer au server. Est ce que je dois rajouter manuellement un certain temps d'attente entre l'envoi de chaque message (via un sleep) ou c'est géré par BiM directement lors de l'envoi de message depuis le bot au server?
from behaviorismanaged.
Tu ne peux pas instancier un objet ItemBase car c'est une classe abstraite. Tu dois encapsuler les données reçu, càd si tu recois un objet d'inventaire (de ton inventaire) alors c'est géré automatiquement et tu auras des objet Item. Si par exemple tu reçois un item de l'dv alors il faut le gérer correctement, tu va créer une classe comme Item qui hérite ItemBase et qui prend en constructeur l'objet associé venant du message en question (pour l'inventaire c'est ObjectItem). Malheureusement les HdV ne sont pas encore géré mais il faudrait un objet de type AuctionHouse qui donnerait une liste d'objet par exemple AHItem qui hérite ItemBase.
Je sais pas si je suis très clair mais l'idée c'est que tout est encapsuler avant d'être manipulé.
Après comme les AH ne sont pas implant. tu peux juste récupérer l'id du template de l'item, récupérer le template en appelant ObjectDataManager.Instance.Get<Protocol.Data.Item>(templateId); puis en récupérant le text à partir du champ nameId.
Comme le bot est toujours en développement tout n'est pas encore géré comme il le faudrait
Pour les send et même en général JAMAIS de Sleep. C'est à bannir absolument. Si tu veux une sorte de Sleep il faut passer par un timer de BiM en appelant par exemple Bot.CallDelayed. Il faut savoir qu'il y a un seul thread par bot, si tu met un sleep c'est tout le bot qui se bloque. Et sinon quand tu appelle Send ça envoie le message directement, tu peux aussi l'ajouter au dispatcher dans ce cas il sera Send quand tous les messages dans le dispatcher seront déjà proccessed.
from behaviorismanaged.
Merci pour ta réponse détaillée. J'avais en effet lu un peu trop rapidement la classe ItemBase.. Merci aussi pour la fonction Bot.CallDelayed, je ne l'avais pas remarqué!
Je pense que je devrai pouvoir me débrouiller avec les pistes que tu m'as donné :)
Bonne soirée,
Jean 22
from behaviorismanaged.
Bonjour,
J'ai un peu de mal avec la traduction ItemID - ItemName. En fait j'ai l'impression de ne pas avoir à partir des messages que je reçoit les informations nécessaires qui me permettrait de résoudre le problème.
J'ai voulu commencé par la version moins générale (donc plus simple) de ce que tu as proposé de faire :
...tu peux juste récupérer l'id du template de l'item, récupérer le template en appelant ObjectDataManager.Instance.Get(templateId); puis en récupérant le text à partir du champ nameId....
(je numérote les questions de sortes à ce qu'on ne s'embrouille pas)
- Je voudrai juste vérifier si je comprend bien ce que sont les template déjà. L'exemple suivant illustre t'il les templates dans le cas présent?
template1{id 1500 correspond à "Bonjour"}
template2{id 1500 correspond à "Dormir est bon pour la santé."}
Voici une liste rapide des messages échangés:
NpcGenericActionRequestMessage (5898) - Client //Demande l'ouverture de l'hdv
ExchangeStartedBidBuyerMessage (5904) - Server //Contient les types d'objets présent dans l'hdv (pex 63, 69, 64 équivalent à viande, viande comestible, viande conservée)
- Je bloque déjà ici. Je n'ai que des des nombres représentant des types d'objets. Comment est ce que je peux récuperer le template ici vu qu'il n'est pas envoyé dans le message et n'apparaît pas dans la classe c# comme attribut (sauf erreur de ma part).
ExchangeBidHouseTypeMessage (5803) - Client //Choix d'un des types (catégories) d'objets
ExchangeTypesExchangerDescriptionForUserMessage (5765) - Server //Contient l'ensemble des id des objets en vente dans la catégorie choisie.
- De nouveau je récupère des id mais pas de template ID.. Le objectUID n'est reçu que plus tard lorsque le server envoi le prix d'un objet selon la séquence suivante:
ExchangeBidHouseListMessage (5807) - Client //demande du prix d'un objet
ExchangeTypesItemsExchangerDescriptionForUserMessage (5752) - Server //réponse du server contenant notamment le UID
- En cherchant sur internet, j'ai compris que UID (unique identifier) était en fait un unique identifier pour chaque item mais par contre je ne vois pas ce que GID (group identifier) représente.
Merci d'avance,
Bonne journée,
Jean22
from behaviorismanaged.
-
Le template récupère l'objet Data.Item du fichiers d2o Items.d2o, il contient des tas d'informations sur un item (poids, effets, prix de vente ...) dont le nameId.
A partir du nameid tu récupère le text avec I18NDataManager.Instance.ReadText -
Je ne me suis pas encore intéressé aux AH, mais de toute évidence le GID n'est pas envoyé ici. Le GID correspond au templateId en fait alors que l'UID est bien le GUID, l'unique identifier.
Donc il faut trouver le GID
from behaviorismanaged.
Ok je vais chercher ça. Merci pour ta réponse.
from behaviorismanaged.
Related Issues (20)
- Erreur: ... no IPlugin entry point HOT 6
- Question HOT 14
- Craft Craft Craft ...
- Wondering about crafting ! HOT 2
- Où est passé Timorem :D HOT 3
- Dead locks HOT 9
- Did D change their IP for the server? HOT 1
- 2.11 uncompilation HOT 28
- Server closed the connection after character selection HOT 2
- Server closed the connection after character selection HOT 4
- Spell not found after Cast HOT 1
- 2.11.4 HOT 4
- Can't read QuestObjective D2O
- Is this project still alive ? HOT 9
- FastFrench can i have your skype?
- RawDataMessage causes disconnection ... HOT 1
- No MITM
- I'd like to Test
- from where to strat? HOT 2
- Still in development ? HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from behaviorismanaged.