public Task get_Key_Bienvenida_Login(ClienteTcp cliente, string paquete) => Task.Run(async() => { Cuenta cuenta = cliente.cuenta; cuenta.key_bienvenida = paquete.Substring(2); await cliente.enviar_Paquete_Async(GlobalConf.version_dofus); await cliente.enviar_Paquete_Async($"{cliente.cuenta.configuracion.nombre_cuenta}\n{Hash.encriptar_Password(cliente.cuenta.configuracion.password, cliente.cuenta.key_bienvenida)}"); await cliente.enviar_Paquete_Async("Af"); });
public Task get_Personaje_Seleccionado(ClienteTcp cliente, string paquete) => Task.Run(async() => { Cuenta cuenta = cliente.cuenta; PersonajeJuego personaje = cuenta.juego.personaje; 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]); personaje.set_Datos_Personaje(id, nombre, nivel, sexo, raza_id); personaje.esta_conectado = true; personaje.inventario.agregar_Objetos(_loc4[9]); cuenta.juego.personaje.timer_afk.Change(1200000, 1200000); cuenta.pelea_extension.configuracion.cargar(); cuenta.juego.personaje.evento_Personaje_Seleccionado(); await cliente.enviar_Paquete_Async("GC1"); if (cuenta.es_lider_grupo && cuenta.tiene_grupo) { await cuenta.grupo.get_Esperar_Miembros_Conectados(); cuenta.grupo.get_Invitar_Grupo_Miembros(); } });
public Task get_Lista_Personajes(ClienteTcp cliente, string paquete) => Task.Run(async() => { Cuenta cuenta = cliente.cuenta; string[] _loc6_ = paquete.Substring(3).Split('|'); int contador = 2, id_personaje = 0; bool encontrado = false; while (contador < _loc6_.Length && !encontrado) { string[] _loc11_ = _loc6_[contador].Split(';'); id_personaje = int.Parse(_loc11_[0]); string nombre = _loc11_[1]; if (nombre.ToLower().Equals(cuenta.configuracion.nombre_personaje.ToLower()) || string.IsNullOrEmpty(cuenta.configuracion.nombre_personaje)) { encontrado = true; } contador++; } await Task.Delay(1000); if (!cuenta.juego.personaje.esta_conectado && encontrado) { await cliente.enviar_Paquete_Async("AS" + id_personaje, true); } });
public Task get_Lista_Servidores(ClienteTcp cliente, string paquete) => Task.Run(async() => { Cuenta cuenta = cliente.cuenta; ServidorJuego servidor = cuenta.juego.servidor; string[] loc5 = paquete.Substring(3).Split('|'); int contador = 1; bool seleccionado = false; while (contador < loc5.Length && !seleccionado) { string[] _loc10_ = loc5[contador].Split(','); int id = int.Parse(_loc10_[0]); if (id == servidor.id) { if (servidor.estado == EstadosServidor.CONECTADO) { seleccionado = true; cuenta.juego.personaje.evento_Servidor_Seleccionado(); } else { cuenta.logger.log_Error("LOGIN", "Servidor no accesible cuando este accesible se re-conectara"); } } contador++; } if (seleccionado) { await cliente.enviar_Paquete_Async($"AX{servidor.id}", true); } });
public Task get_Servidor_Estado(ClienteTcp cliente, string paquete) => Task.Run(async() => { Cuenta cuenta = cliente.cuenta; string[] separado_servidores = paquete.Substring(2).Split('|'); ServidorJuego servidor = cuenta.juego.servidor; bool primera_vez = true; foreach (string sv in separado_servidores) { string[] separador = sv.Split(';'); int id = int.Parse(separador[0]); EstadosServidor estado = (EstadosServidor)byte.Parse(separador[1]); string nombre = cuenta.configuracion.get_Servidor_Nombre(id); if (nombre.Equals(cuenta.configuracion.servidor)) { servidor.actualizar_Datos(id, nombre, estado); cuenta.logger.log_informacion("LOGIN", $"El servidor {nombre} esta {estado}"); if (estado != EstadosServidor.CONECTADO) { primera_vez = false; } } } if (!primera_vez && servidor.estado == EstadosServidor.CONECTADO) { await cliente.enviar_Paquete_Async("Ax"); } });
public Task get_Pregunta_Secreta(ClienteTcp cliente, string paquete) => Task.Run(async() => { while (cliente.cuenta.juego.servidor.estado != EstadosServidor.CONECTADO) { await Task.Delay(500); } await cliente.enviar_Paquete_Async("Ax", true); });
public Task get_Combate_Turno_Listo(ClienteTcp cliente, string paquete) => Task.Run(async() => { Cuenta cuenta = cliente.cuenta; int id = int.Parse(paquete.Substring(3)); if (cuenta.juego.personaje.id == id) { cuenta.juego.pelea.get_Turno_Acabado(); } await Task.Delay(200); await cliente.enviar_Paquete_Async("GT"); });
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 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 Task get_Combate_Celdas_Posicion(ClienteTcp cliente, string paquete) => Task.Run(async() => { Cuenta cuenta = cliente.cuenta; Mapa mapa = cuenta.juego.mapa; Pelea pelea = cuenta.juego.pelea; if (!cuenta.esta_Luchando() || pelea.estado_pelea != 2) { return; } await Task.Delay(1000); if (cuenta.pelea_extension.configuracion.posicionamiento != PosicionamientoInicioPelea.INMOVIL) { string[] _loc3 = paquete.Substring(2).Split('|'); List <Celda> celdas_preparacion = new List <Celda>(); for (int a = 0; a < _loc3[0].Length; a += 2) { celdas_preparacion.Add(mapa.get_Celda_Id((short)((Hash.get_Hash(_loc3[0][a]) << 6) + Hash.get_Hash(_loc3[0][a + 1])))); } List <Celda> celdas_preparacion_disponibles = celdas_preparacion.Except(cuenta.juego.pelea.get_Aliados.Select(aliado => aliado.celda)).ToList(); /** la posicion es aleatoria pero el paquete GP siempre aparecera primero el team donde esta el pj **/ short celda_posicion = pelea.get_Celda_Mas_Cercana_O_Lejana(cuenta.pelea_extension.configuracion.posicionamiento == PosicionamientoInicioPelea.CERCA_DE_ENEMIGOS, celdas_preparacion_disponibles); if (celda_posicion != pelea.jugador_luchador.celda.id) { await cliente.enviar_Paquete_Async("Gp" + celda_posicion, true); await Task.Delay(300); } } if (cuenta.tiene_grupo && cuenta.es_lider_grupo) { await cliente.enviar_Paquete_Async("fP"); await cuenta.grupo.get_Esperar_Miembros_Unirse_Pelea(); if (pelea.pelea_iniciada) { return; } } await Task.Delay(300); if (cuenta.pelea_extension.configuracion.desactivar_espectador) { await cliente.enviar_Paquete_Async("fS"); } await Task.Delay(300); if (cuenta.puede_utilizar_dragopavo) { if (cuenta.pelea_extension.configuracion.utilizar_dragopavo && !cuenta.juego.personaje.esta_utilizando_dragopavo) { await cliente.enviar_Paquete_Async("Rr"); cuenta.juego.personaje.esta_utilizando_dragopavo = true; } } await Task.Delay(300); await cliente.enviar_Paquete_Async("GR1");//boton listo });
public Task get_Combate_Finalizado(ClienteTcp cliente, string paquete) => Task.Run(async() => { cliente.cuenta.juego.pelea.get_Combate_Acabado(); await cliente.enviar_Paquete_Async("GC1"); });
public Task get_Stats_Actualizados(ClienteTcp cliente, string paquete) => Task.Run(async() => { cliente.cuenta.juego.personaje.actualizar_Caracteristicas(paquete); await cliente.enviar_Paquete_Async("BD"); });
public Task get_Peticion_Intercambio(ClienteTcp cliente, string paquete) => Task.Run(async() => { cliente.cuenta.logger.log_informacion("INFORMACIÓN", "Invitación de intercambio recibida, rechazando"); await cliente.enviar_Paquete_Async("EV", true); });
public Task get_Idioma_Core(ClienteTcp cliente, string paquete) => Task.Run(async() => { await cliente.enviar_Paquete_Async("Ages"); await cliente.enviar_Paquete_Async("AL"); await cliente.enviar_Paquete_Async("Af"); });
public Task resultado_Servidor_Seleccion(ClienteTcp cliente, string paquete) => Task.Run(async() => { await cliente.enviar_Paquete_Async("Ak0"); await cliente.enviar_Paquete_Async("AV"); });
public Task get_Bienvenida_juego(ClienteTcp cliente, string paquete) => Task.Run(async() => await cliente.enviar_Paquete_Async("AT" + cliente.cuenta.tiquet_game));