public void cambiando_Al_Servidor_Juego(string ip, int puerto) { if (fase_socket != EstadoSocket.NINGUNO) { if (conexion != null) { conexion.get_Desconectar_Socket(); } conexion = new ClienteGame(IPAddress.Parse(ip), puerto, this); Estado_Socket = EstadoSocket.CAMBIANDO_A_JUEGO; } }
public async Task get_Iniciar_Accion(ClienteGame cliente, string paquete) { string[] separador = paquete.Substring(2).Split(';'); int id_accion = int.Parse(separador[1]); Cuenta cuenta = cliente.cuenta; Personaje personaje = cuenta.personaje; if (id_accion > 0)//Error: GA;0 { int id_jugador = int.Parse(separador[2]); Luchadores luchador = null; switch (id_accion) { case 1: Mapa mapa = personaje.mapa; short celda_destino = Hash.get_Celda_Id_Desde_hash(separador[3].Substring(separador[3].Length - 2)); byte tipo_gkk_movimiento; if (!cuenta.esta_luchando()) { if (id_jugador == personaje.id && celda_destino > 0 && personaje.celda.id != celda_destino) { tipo_gkk_movimiento = byte.Parse(separador[0]); Celda celda = mapa.celdas[celda_destino]; await personaje.manejador.movimientos.evento_Movimiento_Finalizado(celda, tipo_gkk_movimiento, true); } else if (mapa.get_Personajes().ContainsKey(id_jugador)) { mapa.get_Personajes()[id_jugador].celda = mapa.celdas[celda_destino]; if (GlobalConf.mostrar_mensajes_debug) { cuenta.logger.log_informacion("DEBUG", "Detectado movimiento de un personaje a la casilla: " + celda_destino); } } else if (mapa.get_Monstruos().ContainsKey(id_jugador)) { mapa.get_Monstruos()[id_jugador].celda = mapa.celdas[celda_destino]; if (GlobalConf.mostrar_mensajes_debug) { cuenta.logger.log_informacion("DEBUG", "Detectado movimiento de un grupo de monstruo a la casilla: " + celda_destino); } } } else { tipo_gkk_movimiento = byte.Parse(separador[0]); luchador = cuenta.pelea.get_Luchador_Por_Id(id_jugador); if (luchador != null) { luchador.celda_id = celda_destino; } await Task.Delay(300 *personaje.celda.get_Distancia_Entre_Dos_Casillas(celda_destino)); cuenta.conexion.enviar_Paquete("GKK" + tipo_gkk_movimiento); } break; case 2: //Cargando el mapa await Task.Delay(200); break; case 102: if (cuenta.esta_luchando()) { luchador = cuenta.pelea.get_Luchador_Por_Id(id_jugador); byte pa_utilizados = byte.Parse(separador[3].Split(',')[1].Substring(1)); if (luchador != null) { luchador.pa -= pa_utilizados; } } break; case 103: if (cuenta.esta_luchando()) { int id_muerto = int.Parse(separador[3]); luchador = cuenta.pelea.get_Luchador_Por_Id(id_muerto); if (luchador != null) { luchador.esta_vivo = false; } } break; case 129: //movimiento en pelea con exito if (cuenta.esta_luchando()) { luchador = cuenta.pelea.get_Luchador_Por_Id(id_jugador); byte pm_utilizados = byte.Parse(separador[3].Split(',')[1].Substring(1)); if (luchador != null) { luchador.pm -= pm_utilizados; } if (id_jugador == personaje.id) { cuenta.pelea.get_Movimiento_Exito(); } } break; case 302: case 300: //hechizo lanzado con exito if (id_jugador == cuenta.personaje.id) { cuenta.pelea.get_Hechizo_Lanzado(); } break; case 501: int tiempo_recoleccion = int.Parse(separador[3].Split(',')[1]); short celda_id = short.Parse(separador[3].Split(',')[0]); byte tipo_gkk_recoleccion = byte.Parse(separador[0]); await personaje.manejador.recoleccion.evento_Recoleccion_Iniciada(id_jugador, tiempo_recoleccion, celda_id, tipo_gkk_recoleccion); break; case 900: cuenta.conexion.enviar_Paquete("GA902" + id_jugador); cuenta.logger.log_informacion("INFORMACIÓN", "Desafio del personaje id: " + id_jugador + " cancelado"); break; } } else { await personaje.manejador.movimientos.evento_Movimiento_Finalizado(null, 0, false); } }
public void get_Inicio_Accion(ClienteGame cliente, string paquete) { }