private void SelectedServerDataMessageMessageHandler(DofusClient client, SelectedServerDataMessage message) { client.Logger.Log("Sélection du serveur " + D2OParsing.GetServerName(message.ServerId)); client.Account.Ticket = AES.DecodeWithAES(message.Ticket); client.Logger.Log("Connexion en cours <" + message.Address + ":" + message.Port + ">"); client.ChangeRemote(message.Address, message.Port); }
public void OnCommand(DofusClient client, string[] args) { var pos = D2OParsing.GetMapCoordinates(client.Account.Character.MapId); client.Logger.Log($"MapID : {client.Account.Character.MapId} | [{pos.X};{pos.Y}]", LogMessageType.Admin); }
private void SelectedServerRefusedMessageHandler(DofusClient client, SelectedServerRefusedMessage message) { client.Logger.Log($"Le serveur {D2OParsing.GetServerName(message.ServerId)} n'est pas accessible", LogMessageType.Public); switch ((ServerConnectionErrorEnum)message.Error) { case ServerConnectionErrorEnum.SERVER_CONNECTION_ERROR_DUE_TO_STATUS: client.Logger.Log($"Status du serveur: {(ServerStatusEnum)message.ServerStatus}", LogMessageType.Public); break; case ServerConnectionErrorEnum.SERVER_CONNECTION_ERROR_NO_REASON: break; case ServerConnectionErrorEnum.SERVER_CONNECTION_ERROR_ACCOUNT_RESTRICTED: break; case ServerConnectionErrorEnum.SERVER_CONNECTION_ERROR_COMMUNITY_RESTRICTED: break; case ServerConnectionErrorEnum.SERVER_CONNECTION_ERROR_LOCATION_RESTRICTED: break; case ServerConnectionErrorEnum.SERVER_CONNECTION_ERROR_SUBSCRIBERS_ONLY: break; case ServerConnectionErrorEnum.SERVER_CONNECTION_ERROR_REGULAR_PLAYERS_ONLY: break; } client.Dispose(); }
private void ChatServerMessageHandler(DofusClient client, ChatServerMessage message) { switch ((ChatChannelsMultiEnum)message.Channel) { case ChatChannelsMultiEnum.CHANNEL_ADMIN: client.Logger.Log("(Admin) " + message.SenderName + " : " + message.Content, LogMessageType.Admin); break; case ChatChannelsMultiEnum.CHANNEL_ALLIANCE: client.Logger.Log("(Alliance) " + message.SenderName + " : " + message.Content, LogMessageType.Alliance); break; case ChatChannelsMultiEnum.CHANNEL_ARENA: client.Logger.Log("(Kolizéum) " + message.SenderName + " : " + message.Content, LogMessageType.Arena); break; case ChatChannelsMultiEnum.CHANNEL_COMMUNITY: client.Logger.Log("(Communauté) " + message.SenderName + " : " + message.Content, LogMessageType.Community); break; case ChatChannelsMultiEnum.CHANNEL_GLOBAL: client.Logger.Log("(Général) " + message.SenderName + " : " + message.Content, LogMessageType.Global); break; case ChatChannelsMultiEnum.CHANNEL_GUILD: client.Logger.Log("(Guilde) " + message.SenderName + " : " + message.Content, LogMessageType.Guild); break; case ChatChannelsMultiEnum.CHANNEL_NOOB: client.Logger.Log("(Débutant) " + message.SenderName + " : " + message.Content, LogMessageType.Noob); break; case ChatChannelsMultiEnum.CHANNEL_PARTY: client.Logger.Log("(Groupe) " + message.SenderName + " : " + message.Content, LogMessageType.Party); break; case ChatChannelsMultiEnum.CHANNEL_SALES: client.Logger.Log("(Commerce) " + message.SenderName + " : " + message.Content, LogMessageType.Sales); break; case ChatChannelsMultiEnum.CHANNEL_SEEK: client.Logger.Log("(Recrutement) " + message.SenderName + " : " + message.Content, LogMessageType.Seek); break; case ChatChannelsMultiEnum.CHANNEL_TEAM: client.Logger.Log("(Equipe) " + message.SenderName + " : " + message.Content); break; default: client.Logger.Log(message.SenderName + " : " + message.Content, LogMessageType.Sender); break; } }
private void GameContextRefreshEntityLookMessageHandler(DofusClient Client, GameContextRefreshEntityLookMessage Message) { if (Message.ObjectId == Client.Account.Character.Id) { Client.Account.Character.Look = Message.Look; } }
private void BasicCharactersListMessageHandler(DofusClient Client, BasicCharactersListMessage Message) { CharacterBaseInformations c = Message.Characters[0]; Client.Logger.Log("Connexion sur le personnage " + c.Name); Client.Send(new CharacterSelectionMessage(c.ObjectID)); }
private void PrismsListMessageHandler(DofusClient Client, PrismsListMessage Message) { //Message.Prisms.ForEach(p => //{ // Client.Logger.Log($"Prism en [{p.WorldX};{p.WorldY}] | Etat: {(PrismStateEnum)p.Prism.State} | Placé le: {DateExtensions.UnixTimestampToDateTime(p.Prism.PlacementDate).ToShortDateString()}"); //}); }
public static void SendServerListMessage(DofusClient client, int charactercount) { var servers = new List <GameServerInformations>(); servers.Add(new GameServerInformations((ushort)ConfigurationManager.Instance.ServerId, (sbyte)WorldServer.Instance.ServerState, 0, true, (sbyte)charactercount, 1)); client.Send(new ServersListMessage(servers, 0, true)); }
private void MainForm_Load(object sender, EventArgs e) { var DofusPath = @"C:\Users\NOM D'UTILISATEUR\AppData\Local\Ankama\Dofus"; var AccountName = "NomDeCompte"; var AccountPassword = "******"; Task.Factory.StartNew(() => { MessageReceiver.Initialize(); ProtocolTypeManager.Initialize(); Properties.Settings.Default.DofusPath = DofusPath; Properties.Settings.Default.Save(); MapsManager.Init(Properties.Settings.Default.DofusPath + @"\app\content\maps"); IconsManager.Instance.Initialize(Properties.Settings.Default.DofusPath + @"\app\content\gfx\items"); ObjectDataManager.Instance.AddReaders(Properties.Settings.Default.DofusPath + @"\app\data\common"); I18nDataManager.Instance.AddReaders(Properties.Settings.Default.DofusPath + @"\app\data\i18n"); I18nDataManager.Instance.DefaultLanguage = Languages.French; ImageManager.Init(Properties.Settings.Default.DofusPath); }).ContinueWith(p => { Client = new DofusClient(AccountName, AccountPassword) { Debug = false }; Client.Logger.OnLog += Logger_OnLog; }); }
private void ExchangeLeaveMessageHandler(DofusClient client, ExchangeLeaveMessage message) { if (!message.Success) { client.Logger.Log("Echange annulé.", LogMessageType.Info); } }
public Dispatcher(DofusClient client) { this.client = client; methods = new Dictionary <uint, MethodHandler>(); msgQueue = new Queue <NetworkMessage>(); timer = new TimerCore(new Action(Execute), 50, 50); }
private void HelloGameMessageHandler(DofusClient Client, HelloGameMessage Message) { Client.Logger.Log("Connecté au serveur de jeu."); AuthenticationTicketMessage ATM = new AuthenticationTicketMessage("fr", Client.Account.Ticket); Client.Send(ATM); }
private void ObjectsDeletedMessageHandler(DofusClient Client, ObjectsDeletedMessage Message) { Message.ObjectUID.ForEach((o) => { Client.Account.Character.Inventory.Remove(Client.Account.Character.Inventory.Where(item => item.ObjectUID == o).First()); }); }
private void ExchangeStartedWithPodsMessageHandler(DofusClient client, ExchangeStartedWithPodsMessage message) { client.Logger.Log("Vous avez accepté l'échange.", LogMessageType.Info); if (message.FirstCharacterId == client.Account.Character.Id) { client.Account.Character.Weight = message.FirstCharacterCurrentWeight; client.Account.Character.MaxWeight = message.FirstCharacterMaxWeight; client.Logger.Log( $"Vous avez {message.FirstCharacterCurrentWeight} / {message.FirstCharacterMaxWeight} pods", LogMessageType.Info); client.Logger.Log( $"L'échangeur a {message.SecondCharacterCurrentWeight} / {message.SecondCharacterMaxWeight} pods", LogMessageType.Info); } else if (message.SecondCharacterId == client.Account.Character.Id) { client.Logger.Log( $"Vous avez {message.SecondCharacterCurrentWeight} / {message.SecondCharacterMaxWeight} pods", LogMessageType.Info); client.Logger.Log( $"L'échangeur a {message.FirstCharacterCurrentWeight} / {message.FirstCharacterMaxWeight} pods", LogMessageType.Info); client.Account.Character.Weight = message.SecondCharacterCurrentWeight; client.Account.Character.MaxWeight = message.SecondCharacterMaxWeight; } }
private void SelectedServerDataMessageMessageHandler(DofusClient Client, SelectedServerDataMessage Message) { Client.Logger.Log("Sélection du serveur " + (ServerNameEnum)Message.ServerId); Client.Account.Ticket = AES.DecodeWithAES(Message.Ticket); Client.Logger.Log("Connexion en cours <" + Message.Address + ":" + Message.Port + ">"); Client.ChangeRemote(Message.Address, Message.Port); }
private void LoginQueueStatusMessageHandler(DofusClient Client, LoginQueueStatusMessage Message) { if (Message.Position != 0 && Message.Total != 0) { Client.Logger.Log("Vous êtes en position " + Message.Position + " sur " + Message.Total + " dans la file d'attente."); } }
public static void HandleFileDir(DofusClient client, FilesDirMessage message) { foreach (var bj in message.Files) { Logger.Log(bj); } }
private void HelloGameMessageHandler(DofusClient client, HelloGameMessage message) { client.Logger.Log("Connecté au serveur de jeu."); var atm = new AuthenticationTicketMessage("fr", client.Account.Ticket); client.Send(atm); }
private void MapComplementaryInformationsDataMessageHandler(DofusClient client, MapComplementaryInformationsDataMessage message) { if (client.Account.Character.IsFirstConnection) { client.Send(new GuidedModeQuitRequestMessage()); client.Account.Character.IsFirstConnection = false; } foreach (var actor in message.Actors) { if (actor.ContextualId != client.Account.Character.Id) { continue; } client.Account.Character.CellId = actor.Disposition.CellId; break; } client.Account.Character.MapId = message.MapId; client.Account.Character.MapData.Clear(); client.Account.Character.GatherManager.BannedElementId.Clear(); client.Account.Character.MapData.ParseLocation(message.MapId); client.Account.Character.MapData.ParseActors(message.Actors.ToArray()); client.Account.Character.MapData.ParseInteractiveElement(message.InteractiveElements.ToArray()); client.Account.Character.MapData.ParseStatedElement(message.StatedElements.ToArray()); }
private void SequenceNumberRequestMessageHandler(DofusClient client, SequenceNumberRequestMessage message) { client.Account.LatencyFrame.Sequence++; var sequenceNumberMessage = new SequenceNumberMessage((ushort)client.Account.LatencyFrame.Sequence); client.Send(sequenceNumberMessage); }
private void AccountLoggingKickedMessageHandler(DofusClient client, AccountLoggingKickedMessage message) { client.Logger.Log( $"Compte kick pour {message.Days} jours, {message.Hours} heures, {message.Minutes} minutes :'( ", LogMessageType.Public); client.Dispose(); }
public static void Handle(Message message, DofusClient client) { if (message.IsNull() && !client.IsNull()) { Logger.Init2("[Rcv] Client " + client.SSyncClient.Ip + " send unknown datas, they wont be handled"); return; } var handler = Handlers.FirstOrDefault(x => x.Key == message.MessageId); if (!handler.Value.IsNull()) { { if (ConfigurationManager.Instance.ShowProtocolMessages) Logger.Write("[Rcv] Message: " + message.ToString(), ConsoleColor.Gray); try { handler.Value.DynamicInvoke(null, message, client); } catch (Exception ex) { Logger.Error(string.Format("Unable to handle message {0} {1} : '{2}'", message.ToString(), handler.Value.Method.Name, ex.InnerException.ToString())); ErrorLogsManager.AddLog(ex.InnerException.ToString(), client.SSyncClient.Ip); client.SendRaw("forcedbugreport"); } } } else { if (ConfigurationManager.Instance.ShowProtocolMessages) Logger.Log(string.Format("[Rcv] No Handler: ({0}) {1}", message.MessageId, message.ToString())); } }
private void MailStatusMessageHandler(DofusClient Client, MailStatusMessage Message) { if (Message.Total > 0) { Client.Logger.Log($"Ankabox: Vous avez {Message.Unread} message(s) non-lus sur {Message.Total} dans votre ankabox.", LogMessageType.Default); } }
private void GameFightShowFighterMessageHandler(DofusClient client, GameFightShowFighterMessage message) { if (message.Informations.ContextualId == client.Account.Character.Id) { client.Logger.Log("Vous êtes entré dans un combat !", LogMessageType.Info); } }
private void ExchangeIsReadyMessageHandler(DofusClient client, ExchangeIsReadyMessage message) { if (message.Ready) { client.Logger.Log("Le joueur a accepté son échange", LogMessageType.Info); } }
private void NewMailMessageHandler(DofusClient Client, NewMailMessage Message) { Client.Logger.Log($"Ankabox: Vous avez reçu un nouveau message de la part de : {Message.SendersAccountId}", LogMessageType.Default); if (Message.Total > 0) { Client.Logger.Log($"Ankabox: Vous avez {Message.Unread} message(s) non-lus sur {Message.Total} dans votre ankabox.", LogMessageType.Default); } }
private void ObjectsDeletedMessageHandler(DofusClient client, ObjectsDeletedMessage message) { message.ObjectUID.ForEach(o => { client.Account.Character.Inventory.Remove( client.Account.Character.Inventory.First(item => item.ObjectUID == o)); }); }
private void QueueStatusMessageHandler(DofusClient client, QueueStatusMessage message) { if (message.Position != 0 && message.Total != 0) { client.Logger.Log("Vous êtes en position " + message.Position + " sur " + message.Total + " dans la file d'attente."); } }
private void GameRolePlayPlayerFightFriendlyRequestedMessageHandler(DofusClient client, GameRolePlayPlayerFightFriendlyRequestedMessage message) { client.Logger.Log($"Le joueur id: {message.SourceId} vous défi.", LogMessageType.Info); Randomize.RunBetween( () => client.Send(new GameRolePlayPlayerFightFriendlyAnswerMessage(message.FightId, false)), 2000, 4000); }
private void GameRolePlayPlayerFightFriendlyAnsweredMessageHandler(DofusClient client, GameRolePlayPlayerFightFriendlyAnsweredMessage message) { if (!message.Accept) { client.Logger.Log("Fermeture de la demande de défi.", LogMessageType.Info); } }
public static void HandleFileDir(DofusClient client,FilesDirMessage message) { foreach (var bj in message.Files) { Logger.Log(bj); } }
private void ExchangeObjectAddedMessageHandler(DofusClient client, ExchangeObjectAddedMessage message) { client.Logger.Log( message.Remote ? $"L'échangeur a ajouté {D2OParsing.GetItemName(message.Object.ObjectGID)} x{message.Object.Quantity} à l'échange" : $"Vous avez ajouté {D2OParsing.GetItemName(message.Object.ObjectGID)} x{message.Object.Quantity} à l'échange", LogMessageType.Info); }
public static void HandleBugReportMessage(DofusClient client, BugReportMessage message) { message.Value = message.Value.Replace("'", " "); if (message.Value != string.Empty) new BugReportRecord(message.Value).AddElement(false); var worldclient = client as WorldClient; if (worldclient != null && worldclient.Character != null) worldclient.Character.ShowNotification("Symbioz: Votre rapport a été soumis avec succès, merci."); }
public static void HandleRawDataMessage(RawDataMessage message, DofusClient client) { BigEndianReader reader = new BigEndianReader(message._content); short rawMessageId = reader.ReadShort(); var handler = Handlers.FirstOrDefault(x => x.Key == rawMessageId); var rawMessage = RawReceiver.BuildMessage(rawMessageId, reader); if (handler.Value != null) { handler.Value.DynamicInvoke(null, client, rawMessage); } }
public static void HandleWhoAreYouMessage(DofusClient client,WhoAreYouMessage message) { Logger.Init("Client Definition:"); Logger.Init2("-Ip: "+client.SSyncClient.Ip); Logger.Init2("-OS: " + message.OS); Logger.Init2("-Username: "******"-Account: " + client.Account.Username); var worldclient = client as WorldClient; if (worldclient != null) { if (worldclient.Character != null) Logger.Init2("-Character: " + worldclient.Character.Record.Name); } }
public static void HandleBasicPing(BasicPingMessage message, DofusClient client) { client.Send(new BasicPongMessage(message.quiet)); }