public void get_Combate_Info_Stats(ClienteTcp cliente, string paquete) { string[] array = paquete.Substring(4).Split(new char[] { '|' }); Mapa mapa = cliente.cuenta.juego.mapa; for (int i = 0; i < array.Length; i++) { string[] array2 = array[i].Split(new char[] { ';' }); int num = int.Parse(array2[0]); Luchadores luchadores = cliente.cuenta.juego.pelea.get_Luchador_Por_Id(num); bool flag = array2.Length != 0; if (flag) { bool flag2 = array2[1].Equals("0"); bool flag3 = flag2; if (flag3) { int vida_actual = int.Parse(array2[2]); byte pa = byte.Parse(array2[3]); byte pm = byte.Parse(array2[4]); short num2 = short.Parse(array2[5]); int vida_maxima = int.Parse(array2[7]); bool flag4 = num2 > 0; if (flag4) { byte equipo = Convert.ToByte((num > 0) ? 1 : 0); if (luchadores != null) { luchadores.get_Actualizar_Luchador(num, flag2, vida_actual, pa, pm, mapa.get_Celda_Id(num2), vida_maxima, equipo); } } } else if (luchadores != null) { luchadores.get_Actualizar_Luchador(num, flag2, 0, 0, 0, null, 0, 0); } } } }
public Task get_Verificar_Archivo(ClienteTcp cliente, string paquete) => Task.Run(async() => { string[] separador = paquete.Substring(2).Split(';'); int id = int.Parse(separador[0]), bytes = -1; string archivo = separador[1]; if (archivo.Contains("core.swf")) { bytes = GlobalConf.peso_core; } else if (archivo.Contains("loader.swf")) { bytes = GlobalConf.peso_loader; } await cliente.enviar_Paquete_Async($"BC{id};{bytes}", false); cliente.cuenta.logger.log_Error("ANTI-BOT", $"Se ha revisado el archivo: {archivo}"); });
public void get_Combate_Unirse_Pelea(ClienteTcp cliente, string paquete) { Cuenta cuenta = cliente.cuenta; //GJK - estado|boton_cancelar|mostrat_botones|espectador|tiempo|tipo_pelea string[] separador = paquete.Substring(3).Split('|'); byte estado_pelea = byte.Parse(separador[0]); switch (estado_pelea) { case 0: case 1: case 2: case 3: case 4: cuenta.juego.pelea.get_Combate_Creado(); break; } }
public void get_Skills_Oficio(ClienteTcp cliente, string paquete) { string[] separador_skill; PersonajeJuego personaje = cliente.cuenta.juego.personaje; Oficio oficio; SkillsOficio skill = null; short id_oficio, id_skill; byte cantidad_minima, cantidad_maxima; float tiempo; foreach (string datos_oficio in paquete.Substring(3).Split('|')) { id_oficio = short.Parse(datos_oficio.Split(';')[0]); oficio = personaje.oficios.Find(x => x.id == id_oficio); if (oficio == null) { oficio = new Oficio(id_oficio); personaje.oficios.Add(oficio); } foreach (string datos_skill in datos_oficio.Split(';')[1].Split(',')) { separador_skill = datos_skill.Split('~'); id_skill = short.Parse(separador_skill[0]); cantidad_minima = byte.Parse(separador_skill[1]); cantidad_maxima = byte.Parse(separador_skill[2]); tiempo = float.Parse(separador_skill[4]); skill = oficio.skills.Find(actividad => actividad.id == id_skill); if (skill != null) { skill.set_Actualizar(id_skill, cantidad_minima, cantidad_maxima, tiempo); } else { oficio.skills.Add(new SkillsOficio(id_skill, cantidad_minima, cantidad_maxima, tiempo)); } } } personaje.evento_Oficios_Actualizados(); }
// Token: 0x060000AF RID: 175 RVA: 0x00003EEC File Offset: 0x000022EC public void desconectar() { ClienteTcp conexion = this.conexion; if (conexion != null) { conexion.Dispose(); } this.conexion = null; this.script.detener_Script("script"); this.juego.limpiar(); this.Estado_Cuenta = EstadoCuenta.DESCONECTADO; Action action = this.cuenta_desconectada; if (action != null) { action(); } }
public Task get_Emote_Recibido(ClienteTcp cliente, string paquete) => Task.Run(() => { string[] separador = paquete.Substring(3).Split('|'); int id = int.Parse(separador[0]), emote_id = int.Parse(separador[1]); Cuenta cuenta = cliente.cuenta; if (cuenta.juego.personaje.id != id) { return; } if (emote_id == 1 && cuenta.Estado_Cuenta != EstadoCuenta.REGENERANDO) { cuenta.Estado_Cuenta = EstadoCuenta.REGENERANDO; } else if (emote_id == 0 && cuenta.Estado_Cuenta == EstadoCuenta.REGENERANDO) { cuenta.Estado_Cuenta = EstadoCuenta.CONECTADO_INACTIVO; } });
public Task get_Combate_Info_Stats(ClienteTcp cliente, string paquete) => Task.Factory.StartNew(() => { Cuenta cuenta = cliente.cuenta; if (!cuenta.esta_Luchando()) { return; } string[] monstruos = paquete.Substring(4).Split('|'); Mapa mapa = cliente.cuenta.juego.mapa; foreach (string monstruo in monstruos) { string[] _loc6_ = monstruo.Split(';'); int id = int.Parse(_loc6_[0]); Luchadores luchador = cuenta.juego.pelea.get_Luchador_Por_Id(id); if (_loc6_.Length > 0 && luchador != null) { bool esta_vivo = _loc6_[1].Equals("0"); if (esta_vivo) { int vida_actual = int.Parse(_loc6_[2]); byte pa = byte.Parse(_loc6_[3]); byte pm = byte.Parse(_loc6_[4]); short celda = short.Parse(_loc6_[5]); int vida_maxima = int.Parse(_loc6_[7]); if (celda > 0)//son espectadores { luchador.vida_actual = vida_actual; luchador.vida_maxima = vida_maxima; luchador.pa = pa; luchador.pm = pm; luchador.celda = mapa.get_Celda_Id(celda); } } luchador.esta_vivo = esta_vivo; } } }, TaskCreationOptions.LongRunning);
public void get_Mensaje_Ultima_Conexion_IP(ClienteTcp cliente, string paquete) { string text = paquete.Substring(3).Split(new char[] { ';' })[1]; cliente.cuenta.logger.log_informacion("DOFUS", string.Concat(new string[] { "Dernière connexion à votre compte effectuée le ", text.Split(new char[] { '~' })[0], "/", text.Split(new char[] { '~' })[1], "/", text.Split(new char[] { '~' })[2], " à ", text.Split(new char[] { '~' })[3], ":", text.Split(new char[] { '~' })[4], " avec l'ip ", text.Split(new char[] { '~' })[5] })); }
public void get_Servidores_Lista(ClienteTcp cliente, string paquete) { Cuenta cuenta = cliente.cuenta; string[] array = paquete.Substring(3).Split(new char[] { '|' }); int num = 1; bool flag = false; while (num < array.Length && !flag) { string[] array2 = array[num].Split(new char[] { ',' }); int num2 = int.Parse(array2[0]); bool flag2 = num2 == cuenta.juego.servidor.id; if (flag2) { bool flag3 = cuenta.juego.servidor.estado == EstadosServidor.CONNECTE; if (flag3) { flag = true; cuenta.juego.personaje.evento_Servidor_Seleccionado(); } else { cuenta.logger.log_Error("LOGIN", "Serveur non accessible"); } } num++; } bool flag4 = flag; if (flag4) { cliente.enviar_Paquete(string.Format("AX{0}", cuenta.juego.servidor.id), true); } }
public void get_Cerrar_Dialogo(ClienteTcp cliente, string paquete) { Cuenta cuenta = cliente.cuenta; switch (cuenta.Estado_Cuenta) { case EstadoCuenta.ALMACENAMIENTO: cuenta.juego.personaje.inventario.evento_Almacenamiento_Abierto(); break; case EstadoCuenta.DIALOGANDO: IEnumerable <Npcs> npcs = cuenta.juego.mapa.lista_npcs(); Npcs npc = npcs.ElementAt((cuenta.juego.personaje.hablando_npc_id * -1) - 1); npc.respuestas.Clear(); npc.respuestas = null; cuenta.Estado_Cuenta = EstadoCuenta.CONECTADO_INACTIVO; cuenta.juego.personaje.evento_Dialogo_Acabado(); break; } }
public Task get_Error_Baneado_Tiempo(ClienteTcp cliente, string paquete) => Task.Run(() => { string[] informacion_ban = paquete.Substring(3).Split('|'); int dias = int.Parse(informacion_ban[0].Substring(1)), horas = int.Parse(informacion_ban[1]), minutos = int.Parse(informacion_ban[2]); StringBuilder mensaje = new StringBuilder().Append("Tu cuenta estará inválida durante "); if (dias > 0) { mensaje.Append(dias + " días"); } if (horas > 0) { mensaje.Append(horas + " con horas"); } if (minutos > 0) { mensaje.Append(minutos + " y minutos"); } cliente.cuenta.logger.log_Error("LOGIN", mensaje.ToString()); });
public Task get_Lista_Respuestas(ClienteTcp cliente, string paquete) => Task.Run(() => { Cuenta cuenta = cliente.cuenta; string[] pregunta_separada = paquete.Substring(2).Split('|'); List <short> respuestas = new List <short>(0); if (pregunta_separada.Count() > 1) { string[] respuestas_disponibles = pregunta_separada[1].Split(';'); respuestas = new List <short>(respuestas_disponibles.Count()); foreach (string respuesta in respuestas_disponibles) { respuestas.Add(short.Parse(respuesta)); } } short pregunta = short.Parse(pregunta_separada[0]); cuenta.juego.npcs.get_Respuestas_Recibidas(pregunta, respuestas); });
public void get_Estado_Interactivo(ClienteTcp cliente, string paquete) { foreach (string text in paquete.Substring(4).Split(new char[] { '|' })) { string[] array2 = text.Split(new char[] { ';' }); Cuenta cuenta = cliente.cuenta; short num = short.Parse(array2[0]); switch (byte.Parse(array2[1])) { case 2: cuenta.juego.mapa.interactivos[(int)num].es_utilizable = false; break; case 3: { cuenta.juego.mapa.interactivos[(int)num].es_utilizable = false; bool flag = cuenta.esta_recolectando(); if (flag) { cuenta.juego.manejador.recoleccion.evento_Recoleccion_Acabada(RecoleccionResultado.RECOLECTADO, num); } else { cuenta.juego.manejador.recoleccion.evento_Recoleccion_Acabada(RecoleccionResultado.ROBADO, num); } break; } case 4: cuenta.juego.mapa.interactivos[(int)num].es_utilizable = false; break; } } }
private void cargar_Eventos_Debugger(ClienteTcp socket) { switch (socket.Estado_Socket) { case EstadoSocket.CAMBIANDO_A_JUEGO: agregar_Tab_Pagina("Personaje", new UI_Personaje(cuenta), 2); agregar_Tab_Pagina("Inventario", new UI_Inventario(cuenta), 3); cuenta.juego.personaje.caracteristicas_actualizadas += personaje_Caracteristicas_Actualizadas; cuenta.juego.personaje.pods_actualizados += personaje_Pods_Actualizados; break; case EstadoSocket.CONECTADO: cuenta.pelea_extension.configuracion.cargar(); agregar_Tab_Pagina("Mapa", new UI_Mapa(cuenta), 4); agregar_Tab_Pagina("Combates", new UI_Pelea(cuenta), 5); cambiar_Todos_Controles_Chat(true); cargar_Canales_Chat(); break; } }
public Task get_Peticion_Grupo(ClienteTcp cliente, string paquete) => Task.Run(async() => { Cuenta cuenta = cliente.cuenta; string nombre_invitador = paquete.Substring(3).Split('|')[0]; if (nombre_invitador.Equals(cuenta.juego.personaje.nombre)) { return; } if (cuenta.tiene_grupo) { cuenta.grupo.get_Esta_En_Grupo(nombre_invitador); await cliente.enviar_Paquete_Async("PA"); } else { await cliente.enviar_Paquete_Async("PR"); } cliente.cuenta.logger.log_informacion("Grupo", $"Nueva invitación de grupo del personaje: {nombre_invitador}"); });
public void personaje_Seleccionado(ClienteTcp cliente, string paquete) { Cuenta cuenta = cliente.cuenta; string[] _loc4 = paquete.Substring(4).Split('|'); int id = int.Parse(_loc4[0]); string nombre = _loc4[1]; byte nivel = byte.Parse(_loc4[2]); byte raza_id = byte.Parse(_loc4[3]); byte sexo = byte.Parse(_loc4[4]); cuenta.juego.personaje.set_Datos_Personaje(id, nombre, nivel, sexo, raza_id); cuenta.juego.personaje.inventario.agregar_Objetos(_loc4[9]); cliente.enviar_Paquete("GC1"); cliente.enviar_Paquete("BYA"); cuenta.juego.personaje.evento_Personaje_Seleccionado(); cuenta.juego.personaje.timer_afk.Change(1200000, 1200000); cliente.cuenta.Estado_Cuenta = EstadoCuenta.CONECTADO_INACTIVO; }
public void get_Error_Baneado_Tiempo(ClienteTcp cliente, string paquete) { string[] informacion_ban = paquete.Substring(3).Split('|'); int dias = int.Parse(informacion_ban[0].Substring(1)), horas = int.Parse(informacion_ban[1]), minutos = int.Parse(informacion_ban[2]); StringBuilder mensaje = new StringBuilder().Append("Votre compte sera invalide pendant "); if (dias > 0) { mensaje.Append(dias + " jour(s)"); } if (horas > 0) { mensaje.Append(horas + " heures"); } if (minutos > 0) { mensaje.Append(minutos + " minutes"); } cliente.cuenta.logger.log_Error("LOGIN", mensaje.ToString()); cliente.cuenta.desconectar(); }
public void seleccionar_Personaje(ClienteTcp cliente, string paquete) { Cuenta cuenta = cliente.cuenta; string[] _loc6_ = paquete.Substring(3).Split('|'); int contador = 2; bool encontrado = false; while (contador < _loc6_.Length && !encontrado) { string[] _loc11_ = _loc6_[contador].Split(';'); int id = int.Parse(_loc11_[0]); string nombre = _loc11_[1]; if (string.Compare(nombre.ToUpper(), cuenta.cuenta_configuracion.nombre_personaje.ToUpper(), false) == 0) { cliente.enviar_Paquete("AS" + id); encontrado = true; } contador++; } }
public void seleccionar_Personaje(ClienteTcp cliente, string paquete) { Cuenta cuenta = cliente.cuenta; string[] _loc6_ = paquete.Substring(3).Split('|'); int contador = 2; bool encontrado = false; while (contador < _loc6_.Length && !encontrado) { string[] _loc11_ = _loc6_[contador].Split(';'); int id = int.Parse(_loc11_[0]); string nombre = _loc11_[1]; if (nombre.ToLower().Equals(cuenta.configuracion.nombre_personaje.ToLower()) || string.IsNullOrEmpty(cuenta.configuracion.nombre_personaje)) { cliente.enviar_Paquete("AS" + id, true); encontrado = true; } contador++; } }
public void get_Servidores_Lista(ClienteTcp cliente, string paquete) { Cuenta cuenta = cliente.cuenta; string[] loc5 = paquete.Substring(3).Split('|'); int contador = 1; bool seleccionado = false; while (contador < loc5.Length && !seleccionado) { string[] _loc10_ = loc5[contador].Split(','); int servidor = int.Parse(_loc10_[0]); int numero_total_personajes = int.Parse(_loc10_[1]); if (cuenta.servidor_id == servidor) { cliente.enviar_Paquete("AX" + cuenta.servidor_id); seleccionado = true; } contador++; } }
public void get_Cerrar_Dialogo(ClienteTcp cliente, string paquete) { Cuenta cuenta = cliente.cuenta; EstadoCuenta estado_Cuenta = cuenta.Estado_Cuenta; EstadoCuenta estadoCuenta = estado_Cuenta; if (estadoCuenta != EstadoCuenta.DIALOGANDO) { if (estadoCuenta == EstadoCuenta.ALMACENAMIENTO) { cuenta.juego.personaje.inventario.evento_Almacenamiento_Abierto(); } } else { IEnumerable <Npcs> source = cuenta.juego.mapa.lista_npcs(); Npcs npcs = source.ElementAt((int)(cuenta.juego.personaje.hablando_npc_id * -1 - 1)); npcs.respuestas.Clear(); npcs.respuestas = null; cuenta.Estado_Cuenta = EstadoCuenta.CONECTADO_INACTIVO; cuenta.juego.personaje.evento_Dialogo_Acabado(); } }
public async Task get_Cambiar_Pos_Pelea(ClienteTcp cliente, string paquete) { Cuenta cuenta = cliente.cuenta; string[] separador_posiciones = paquete.Substring(4).Split(new char[] { '|' }); Mapa mapa = cuenta.juego.mapa; foreach (string posicion in separador_posiciones) { int id_entidad = int.Parse(posicion.Split(new char[] { ';' })[0]); short celda = short.Parse(posicion.Split(new char[] { ';' })[1]); bool flag = id_entidad == cuenta.juego.personaje.id; if (flag) { await Task.Delay(150); cliente.enviar_Paquete("GR1", false); } Luchadores luchador = cuenta.juego.pelea.get_Luchador_Por_Id(id_entidad); if (luchador != null) { luchador.celda = mapa.get_Celda_Id(celda); } luchador = null; posicion = null; } string[] array = null; }
public void get_Estado_Interactivo(ClienteTcp cliente, string paquete) { foreach (string interactivo in paquete.Substring(4).Split('|')) { string[] separador = interactivo.Split(';'); Cuenta cuenta = cliente.cuenta; short celda_id = short.Parse(separador[0]); byte estado = byte.Parse(separador[1]); switch (estado) { case 2: cuenta.juego.mapa.interactivos[celda_id].es_utilizable = false; break; case 3: if (cuenta.juego.mapa.interactivos.TryGetValue(celda_id, out var value)) { value.es_utilizable = false; } if (cuenta.esta_recolectando()) { cuenta.juego.manejador.recoleccion.evento_Recoleccion_Acabada(RecoleccionResultado.RECOLECTADO, celda_id); } else { cuenta.juego.manejador.recoleccion.evento_Recoleccion_Acabada(RecoleccionResultado.ROBADO, celda_id); } break; case 4: // reaparece asi se fuerza el cambio de mapa cuenta.juego.mapa.interactivos[celda_id].es_utilizable = false; break; } } }
public void get_Mensaje_Pods_Llenos(ClienteTcp cliente, string paquete) => cliente.cuenta.logger.log_Error("DOFUS", "Tu es trop chargé. Jetez quelques objets pour pouvoir bouger.");
public void get_Mensaje_Modo_Away_Dofus(ClienteTcp cliente, string paquete) => cliente.cuenta.logger.log_informacion("DOFUS", "Désormais, tu seras considéré comme absent.");
public void get_Mensaje_Error_Chat_Difusion(ClienteTcp cliente, string paquete) => cliente.cuenta.logger.log_informacion("DOFUS", "Ce canal est seulement disponible aux abonnés de niveau " + paquete.Split(';')[1]);
public void get_Mensaje_Mascota_Feliz(ClienteTcp cliente, string paquete) => cliente.cuenta.logger.log_informacion("DOFUS", "Votre animal est si heureux de vous revoir !");
public void get_Mensaje_Abrir_Cofre_Perder_Kamas(ClienteTcp cliente, string paquete) => cliente.cuenta.logger.log_informacion("DOFUS", "Vous avez dû donner " + paquete.Split(';')[1] + " kamas pour accéder à ce coffre.");
public void get_Mensaje_Nueva_Conexion_IP(ClienteTcp cliente, string paquete) => cliente.cuenta.logger.log_informacion("DOFUS", "Votre adresse IP actuelle est " + paquete.Substring(3).Split(';')[1]);
public void get_Mensaje_Ultima_Conexion_IP(ClienteTcp cliente, string paquete) { string mensaje = paquete.Substring(3).Split(';')[1]; cliente.cuenta.logger.log_informacion("DOFUS", "Dernière connexion à votre compte effectuée le " + mensaje.Split('~')[0] + "/" + mensaje.Split('~')[1] + "/" + mensaje.Split('~')[2] + " à " + mensaje.Split('~')[3] + ":" + mensaje.Split('~')[4] + " adresse IP " + mensaje.Split('~')[5]); }