public void get_Stats_Actualizados(ClienteAbstracto cliente, string paquete) { if (cliente.cuenta.personaje != null) { cliente.cuenta.personaje.actualizar_Caracteristicas(paquete); } }
public void get_Lista_Hechizos(ClienteAbstracto cliente, string paquete) { if (!paquete[2].Equals('o')) { cliente.cuenta.personaje.actualizar_Hechizos(paquete.Substring(2)); } }
public void get_Experiencia_Oficio(ClienteAbstracto cliente, string paquete) { string[] separador_oficio_experiencia = paquete.Substring(3).Split('|'); Personaje personaje = cliente.cuenta.personaje; uint experiencia_actual, experiencia_base, experiencia_siguiente_nivel; short id; byte nivel; foreach (string oficio in separador_oficio_experiencia) { id = short.Parse(oficio.Split(';')[0]); nivel = byte.Parse(oficio.Split(';')[1]); experiencia_base = uint.Parse(oficio.Split(';')[2]); experiencia_actual = uint.Parse(oficio.Split(';')[3]); if (nivel < 100) { experiencia_siguiente_nivel = uint.Parse(oficio.Split(';')[4]); } else { experiencia_siguiente_nivel = 0; } personaje.oficios.Find(x => x.id == id).set_Actualizar_Oficio(nivel, experiencia_base, experiencia_actual, experiencia_siguiente_nivel); } personaje.evento_Oficios_Actualizados(); }
public void get_Combate_Celdas_Posicion(ClienteAbstracto cliente, string paquete) { Cuenta cuenta = cliente.cuenta; string[] _loc3 = paquete.Substring(2).Split('|'); for (int a = 0; a < _loc3[0].Length; a += 2) { cuenta.pelea.celdas_preparacion.Add((short)((Hash.get_Hash(_loc3[0][a]) << 6) + Hash.get_Hash(_loc3[0][a + 1]))); } if (cuenta.pelea_extension.configuracion.desactivar_espectador) { cuenta.conexion.enviar_Paquete("fS"); } if (cuenta.puede_utilizar_dragopavo) { if (cuenta.pelea_extension.configuracion.utilizar_dragopavo && !cuenta.personaje.esta_utilizando_dragopavo) { cuenta.conexion.enviar_Paquete("Rr"); cuenta.personaje.esta_utilizando_dragopavo = true; } } cuenta.pelea.get_Combate_Creado(); }
private void cargar_Eventos_Debugger(ClienteAbstracto socket) { switch (cuenta.Estado_Socket) { case EstadoSocket.CAMBIANDO_A_JUEGO: socket.paquete_recibido += debugger.paquete_Recibido; socket.paquete_enviado += debugger.paquete_Enviado; socket.socket_informacion += get_Mensajes_Socket_Informacion; break; case EstadoSocket.PERSONAJE_SELECCIONADO: cuenta.pelea_extension.configuracion.cargar(); agregar_Tab_Pagina("Personaje", new UI_Personaje(cuenta), 2); agregar_Tab_Pagina("Inventario", new UI_Inventario(cuenta), 3); agregar_Tab_Pagina("Mapa", new UI_Mapa(cuenta), 4); agregar_Tab_Pagina("Combates", new UI_Pelea(cuenta), 5); cambiar_Todos_Controles_Chat(true); cuenta.personaje.socket_canal_personaje += socket_Evento_Chat; cuenta.personaje.caracteristicas_actualizadas += personaje_Caracteristicas_Actualizadas; cuenta.personaje.pods_actualizados += personaje_Pods_Actualizados; cuenta.script = new ManejadorScript(cuenta); cuenta.script.evento_script_cargado += evento_Scripts_Cargado; cuenta.script.evento_script_iniciado += evento_Scripts_Iniciado; cuenta.script.evento_script_detenido += evento_Scripts_Detenido; break; } }
public void get_Combate_Finalizado(ClienteAbstracto cliente, string paquete) { Cuenta cuenta = cliente.cuenta; cuenta.pelea.get_Combate_Finalizado(); cuenta.conexion.enviar_Paquete("BD"); }
public void get_Cerrar_Dialogo(ClienteAbstracto cliente, string paquete) { if (cliente.cuenta.Estado_Cuenta == EstadoCuenta.ALMACENAMIENTO)//Banco { cliente.cuenta.personaje.inventario.evento_Almacenamiento_Abierto(); } }
public void get_Fecha_Servidor(ClienteAbstracto cliente, string paquete) { if (cliente.cuenta.Estado_Cuenta == EstadoCuenta.LUCHANDO) { cliente.enviar_Paquete("GC1"); } }
public void get_Estado_Interactivo(ClienteAbstracto cliente, string paquete) { foreach (string interactivo in paquete.Substring(4).Split('|')) { string[] separador = interactivo.Split(';'); Cuenta cuenta = cliente.cuenta; Personaje personaje = cuenta.personaje; short celda_id = short.Parse(separador[0]); byte estado = byte.Parse(separador[1]); switch (estado) { case 2: personaje.mapa.celdas[celda_id].objeto_interactivo.es_utilizable = false; break; case 3: personaje.mapa.celdas[celda_id].objeto_interactivo.es_utilizable = false; //pescador no envia IQ porque aveces no pesca pero si manda GDF;3 if (cuenta.esta_recolectando()) { personaje.manejador.recoleccion.evento_Recoleccion_Acabada(RecoleccionResultado.RECOLECTADO); } break; case 4: // reaparece asi se fuerza el cambio de mapa personaje.mapa.celdas[celda_id].objeto_interactivo.es_utilizable = false; break; } } }
public void get_Seleccion_Servidor(ClienteAbstracto cliente, string paquete) { cliente.cuenta.tiquet_game = paquete.Substring(14); cliente.cuenta.cambiando_Al_Servidor_Juego(Hash.desencriptar_Ip(paquete.Substring(3, 8)), Hash.desencriptar_Puerto(paquete.Substring(11, 3).ToCharArray())); cliente.cuenta.Estado_Socket = EstadoSocket.CAMBIANDO_A_JUEGO; }
public async Task get_Cambiar_Pos_Pelea(ClienteAbstracto cliente, string paquete) { Cuenta cuenta = cliente.cuenta; string[] separador_posiciones = paquete.Substring(4).Split('|'); int id_entidad; short celda; Luchadores luchador = null; foreach (string posicion in separador_posiciones) { id_entidad = int.Parse(posicion.Split(';')[0]); celda = short.Parse(posicion.Split(';')[1]); if (id_entidad == cuenta.personaje.id) { await Task.Delay(300); cuenta.conexion.enviar_Paquete("GR1");//boton listo } luchador = cuenta.pelea.get_Luchador_Por_Id(id_entidad); if (luchador != null) { luchador.celda_id = celda; } } }
public void get_Combate_Info_Stats(ClienteAbstracto cliente, string paquete) { string[] separador = paquete.Substring(4).Split('|'); Mapa mapa = cliente.cuenta.personaje.mapa; for (int i = 0; i < separador.Length; ++i) { string[] _loc6_ = separador[i].Split(';'); int id = int.Parse(_loc6_[0]); Luchadores luchador = cliente.cuenta.pelea.get_Luchador_Por_Id(id); if (_loc6_.Length != 0) { 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 { byte equipo = Convert.ToByte(id > 0 ? 1 : 0); luchador?.get_Actualizar_Luchador(id, esta_vivo, vida_actual, pa, pm, celda, vida_maxima, equipo); } } else { luchador?.get_Actualizar_Luchador(id, esta_vivo, 0, 0, 0, -1, 0, 0); } } } }
public void get_Combate_Inicio_Turno(ClienteAbstracto cliente, string paquete) { Cuenta cuenta = cliente.cuenta; if (int.Parse(paquete.Substring(3).Split('|')[0]) == cuenta.personaje.id && cliente.cuenta.pelea.total_enemigos_vivos > 0) { cuenta.pelea.get_Turno_Iniciado(); } }
public void get_Lista_Respuestas(ClienteAbstracto cliente, string paquete) { if (cliente.cuenta.Estado_Cuenta != EstadoCuenta.HABLANDO) { return; } cliente.cuenta.personaje.evento_Pregunta_Npc(paquete.Substring(2)); }
public void get_Key_BienvenidaAsync(ClienteAbstracto cliente, string paquete) { cliente.cuenta.Estado_Cuenta = EstadoCuenta.CONECTANDO; cliente.cuenta.Estado_Socket = EstadoSocket.LOGIN; cliente.cuenta.key_bienvenida = paquete.Substring(2); cliente.enviar_Paquete(Constantes.VERSION + "." + Constantes.SUBVERSION + "." + Constantes.SUBSUBVERSION); cliente.enviar_Paquete(cliente.cuenta.cuenta_configuracion.nombre_cuenta + "\n" + Hash.encriptar_Password(cliente.cuenta.cuenta_configuracion.password, cliente.cuenta.key_bienvenida)); cliente.enviar_Paquete("Af"); }
public void get_Ventana_Cerrada(ClienteAbstracto cliente, string paquete) { Cuenta cuenta = cliente.cuenta; if (cuenta.Estado_Cuenta == EstadoCuenta.ALMACENAMIENTO) { cuenta.Estado_Cuenta = EstadoCuenta.CONECTADO_INACTIVO; cuenta.personaje.inventario.evento_Almacenamiento_Cerrado(); } }
public void get_Actualizacion_Pods(ClienteAbstracto cliente, string paquete) { string[] pods = paquete.Substring(2).Split('|'); short pods_actuales = short.Parse(pods[0]); short pods_maximos = short.Parse(pods[1]); Personaje personaje = cliente.cuenta.personaje; personaje.inventario.pods_actuales = pods_actuales; personaje.inventario.pods_maximos = pods_maximos; cliente.cuenta.personaje.evento_Pods_Actualizados(); }
public void personaje_Seleccionado(ClienteAbstracto cliente, string paquete) { string[] _loc4 = paquete.Substring(4).Split('|'); if (cliente.cuenta.personaje == null) { cliente.cuenta.personaje = new Personaje(int.Parse(_loc4[0]), _loc4[1], byte.Parse(_loc4[2]), byte.Parse(_loc4[4]), int.Parse(_loc4[5]), cliente.cuenta); } cliente.cuenta.Estado_Socket = EstadoSocket.PERSONAJE_SELECCIONADO; cliente.cuenta.personaje.inventario.agregar_Objetos(_loc4[9]); cliente.enviar_Paquete("BYA"); }
public void Recibir(ClienteAbstracto cliente, string paquete) { if (!esta_iniciado) { Inicializar(); } PaqueteDatos metodo = metodos.Find(m => paquete.StartsWith(m.nombre_paquete)); if (metodo != null) { metodo.informacion.Invoke(metodo.instancia, new object[] { cliente, paquete }); } }
public void get_Servidor_Estado(ClienteAbstracto cliente, string paquete) { HostsMensaje servidor = new HostsMensaje(paquete.Substring(3), cliente.cuenta.servidor_id); cliente.cuenta.logger.log_informacion("Login", "El servidor " + cliente.cuenta.get_Nombre_Servidor() + " esta " + (HostsMensaje.EstadosServidor)servidor.estado); if ((HostsMensaje.EstadosServidor)servidor.estado == HostsMensaje.EstadosServidor.CONECTADO) { cliente.enviar_Paquete("Ax"); } else { cliente.cuenta.logger.log_Error("Login", "Desconectando del servidor, para evitar anti-bot"); cliente.get_Desconectar_Socket(); } }
public void get_Mensajes_Chat(ClienteAbstracto cliente, string paquete) { string[] separador = paquete.Substring(3).Split('|'); string canal = string.Empty; switch (separador[0]) { case "?": canal = "RECLUTAMIENTO"; break; case ":": canal = "COMERCIO"; break; case "^": canal = "INCARNAM"; break; case "i": canal = "INFORMACIÓN"; break; case "#": canal = "EQUIPO"; break; case "$": canal = "GRUPO"; break; case "F": cliente.cuenta.logger.log_privado("PRIVADO", separador[2] + ": " + separador[3]); break; default: canal = "General"; break; } if (!canal.Equals(string.Empty)) { cliente.cuenta.logger.log_normal(canal, separador[2] + ": " + separador[3]); } }
public void get_Skills_Oficio(ClienteAbstracto cliente, string paquete) { string[] separador_skill; Personaje personaje = cliente.cuenta.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(); }
public void get_Error_Baneado_Tiempo(ClienteAbstracto 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("Tu cuenta estará inválida durante "); if (dias > 0) { mensaje.Append(dias + " días con "); } if (horas > 0) { mensaje.Append(horas + " horas y "); } if (minutos > 0) { mensaje.Append(minutos + " minutos"); } cliente.cuenta.logger.log_Error("Login", mensaje.ToString()); cliente.get_Desconectar_Socket(); }
public void get_Servidores_Lista(ClienteAbstracto cliente, string paquete) => cliente.enviar_Paquete(new ListaServidoresMensaje(paquete.Substring(3), cliente.cuenta.servidor_id).get_Mensaje());
public void get_Fila_Espera_Login(ClienteAbstracto cliente, string paquete) => cliente.cuenta.logger.log_informacion("FILA DE ESPERA", "Posición " + paquete[2] + "/" + paquete[4]);
public void get_Apodo(ClienteAbstracto cliente, string paquete) => cliente.cuenta.apodo = paquete.Substring(2);
public void get_Nuevo_Mapa(ClienteAbstracto cliente, string paquete) { cliente.cuenta.personaje.mapa.get_Actualizar_Mapa(paquete.Substring(4)); cliente.cuenta.Estado_Cuenta = EstadoCuenta.CONECTADO_INACTIVO; }
public void get_Antibot_1(ClienteAbstracto cliente, string paquete) => cliente.cuenta.conexion.enviar_Paquete(paquete.Substring(0, 2) + new Random().Next(120000, 140000));
public async Task get_Movimientos_Personajes(ClienteAbstracto cliente, string paquete) { Cuenta cuenta = cliente.cuenta; string[] separador_jugadores = paquete.Substring(3).Split('|'), informaciones; string _loc6, nombre_template, tipo; for (int i = 0; i < separador_jugadores.Length; ++i) { _loc6 = separador_jugadores[i]; if (_loc6.Length != 0) { informaciones = _loc6.Substring(1).Split(';'); if (_loc6[0].Equals('+')) { Celda celda = cuenta.personaje.mapa.celdas[short.Parse(informaciones[0])]; int id = int.Parse(informaciones[3]); nombre_template = informaciones[4]; tipo = informaciones[5]; if (tipo.Contains(",")) { tipo = tipo.Split(',')[0]; } switch (int.Parse(tipo)) { case -1: case -2: if (cuenta.Estado_Cuenta == EstadoCuenta.LUCHANDO) { int vida = int.Parse(informaciones[12]); byte pa = byte.Parse(informaciones[13]); byte pm = byte.Parse(informaciones[14]); byte equipo = byte.Parse(informaciones[15]); cuenta.pelea.get_Agregar_Luchador(new Luchadores(id, true, vida, pa, pm, celda.id, vida, equipo)); } break; case -3: //monstruos string[] templates = nombre_template.Split(','); string[] niveles = informaciones[7].Split(','); Monstruo monstruo = new Monstruo(id, int.Parse(templates[0]), celda, int.Parse(niveles[0])); monstruo.lider_grupo = monstruo; for (int m = 1; m < templates.Length; ++m) { monstruo.moobs_dentro_grupo.Add(new Monstruo(id, int.Parse(templates[m]), celda, int.Parse(niveles[m]))); } cuenta.personaje.mapa.agregar_Monstruo(monstruo); break; case -4: //NPC cuenta.personaje.mapa.agregar_Npc(new Npcs(id, int.Parse(nombre_template), celda)); break; case -5: break; case -6: break; case -7: case -8: break; case -9: break; case -10: break; default: if (cuenta.Estado_Cuenta != EstadoCuenta.LUCHANDO) { if (cuenta.personaje.id != id) { if (nombre_template.StartsWith("[") || Extensiones.lista_mods.Contains(nombre_template)) { cuenta.conexion.get_Desconectar_Socket(); } cuenta.personaje.mapa.agregar_Personaje(new Personaje(id, nombre_template, byte.Parse(informaciones[7].ToString()), celda)); } else { cuenta.personaje.celda = celda; } } else { int vida = int.Parse(informaciones[14]); byte pa = byte.Parse(informaciones[15]); byte pm = byte.Parse(informaciones[16]); byte equipo = byte.Parse(informaciones[24]); cuenta.pelea.get_Agregar_Luchador(new Luchadores(id, true, vida, pa, pm, celda.id, vida, equipo)); if (cuenta.personaje.id == id && cuenta.pelea_extension.configuracion.posicionamiento != PosicionamientoInicioPelea.INMOVIL) { await Task.Delay(300); /** la posicion es aleatoria pero el paquete GP siempre aparecera primero el team donde esta el pj **/ short celda_posicion = cuenta.pelea.get_Celda_Mas_Cercana_O_Lejana(cuenta.pelea_extension.configuracion.posicionamiento == PosicionamientoInicioPelea.CERCA_DE_ENEMIGOS, cuenta.pelea.celdas_preparacion, cuenta.personaje.mapa); if (celda_posicion != celda.id) { cuenta.conexion.enviar_Paquete("Gp" + celda_posicion); } else { cuenta.conexion.enviar_Paquete("GR1"); } } else if (cuenta.personaje.id == id) { await Task.Delay(300); cuenta.conexion.enviar_Paquete("GR1"); //boton listo } } break; } } else if (_loc6[0].Equals('-')) { if (cuenta.Estado_Cuenta != EstadoCuenta.LUCHANDO) { int id = int.Parse(_loc6.Substring(1)); cuenta.personaje.mapa.eliminar_Personaje(id); cuenta.personaje.mapa.eliminar_Monstruo(id); } } } } }
public void get_Lista_SubAreas_Alineamiento(ClienteAbstracto cliente, string paquete) => cliente.enviar_Paquete("GC1");