コード例 #1
0
    //Este metodo envia los datos del jugador/personaje al servidor para ser almacenados. Si esta todo correcto, te devuelve al menu.
    IEnumerator enviarJugador()
    {
        loadingLogIn.SetActive(true);

        carga.json = jugador.getAsJSON();
        Debug.Log(carga.json);
        sender.send(carga.getAsJSON());

        yield return(new WaitForSeconds(Seconds));

        try
        {
            carga = Carga.getFromJSON(str);
        }
        catch (Exception ex)
        {
            Debug.Log(ex);
        }
        if (carga.json.Equals("denied"))
        {
            loadingLogIn.SetActive(false);
        }
        else
        {
            loadingLogIn.SetActive(false);
            botonPersonajeTexto.text = jugador.Nombre;
            menu.SetActive(true);
            crearPersonajes.SetActive(false);
        }
    }
コード例 #2
0
    //Metodo Courutine el cual manda al servidor una peticion de borrar un personaje y la informacion de este, si todo va bien el personaje se elimina tanto del servidor como del local.
    IEnumerator borrarJugador()
    {
        loadingLogIn.SetActive(true);
        carga.peticion = "deleteCharacter";
        carga.json     = perfilData.Jugadores[0].getAsJSON();
        Debug.Log(carga.json);
        sender.send(carga.getAsJSON());

        yield return(new WaitForSeconds(Seconds));

        try
        {
            carga = Carga.getFromJSON(str);
        }
        catch (Exception ex)
        {
            Debug.Log(ex);
        }
        if (carga.json.Equals("denied"))
        {
            loadingLogIn.SetActive(false);
        }
        else
        {
            loadingLogIn.SetActive(false);
            menu.SetActive(true);
            botonPersonajeTexto.text = "Vacio";
            personaje = null;
            personaje = new Personaje();
            crearPersonajes.SetActive(false);
        }
    }
コード例 #3
0
    //Manda al servidor un objeto carga con la informacion de la campaña. Espera a la respuesta del servidor y si es satisfactoria te devuelve al menu. Si no es satisfactoria desaparece la pantalla de carga.
    IEnumerator enviarCampaña()
    {
        loadingLogIn.SetActive(true);

        carga.peticion = "createCampaña";
        carga.json     = @"" + campaña.getAsJSON() + "";
        Debug.Log(carga.json);
        sender.send(carga.getAsJSON());

        yield return(new WaitForSeconds(Seconds));

        carga = Carga.getFromJSON(str);
        if (!carga.json.Equals("accepted"))
        {
            loadingLogIn.SetActive(false);
        }
        else
        {
            loadingLogIn.SetActive(false);
            crearCampaña.SetActive(false);
            botonCampañaTexto.text = campaña.Nombre;
            menu.SetActive(true);
            perfilData.Campañas.Add(campaña);
        }
    }
コード例 #4
0
    //Metodo Courutine, Este metodo inicia la conexion con la campaña. Si esta todo correcto activa la UI de la campaña.
    IEnumerator joinCampaña()
    {
        loadingLogIn.SetActive(true);

        carga.peticion = "joinCampaña";
        carga.json     = perfilData.Campañas[0].getAsJSON();
        Debug.Log(carga.json);
        sender.send(carga.getAsJSON());

        yield return(new WaitForSeconds(Seconds));

        carga = Carga.getFromJSON(str);
        if (carga.assigned.Equals("false") || carga.json.Equals("denied"))
        {
            loadingLogIn.SetActive(false);
        }
        else
        {
            campaña     = Campaña.getFromJson(carga.json);
            campañaData = CampañaData.getFromJson(campaña.CampañaJSON);
            loadingLogIn.SetActive(false);
            menu.SetActive(false);
            UICampaña.SetActive(true);
        }
    }
コード例 #5
0
    // Metodo Courutine, este metodo modifica el objeto perfil y mediante el objeto carga lo envia al servidor. Espera a que el servidor le responda si se han producido los cambios o no.
    IEnumerator ModificarPerfil()
    {
        loadingLogIn.SetActive(true);


        perfil.Nombre = cambioNombre.text;

        /*Texture2D texture = (Texture2D)image.texture;
         * byte[] bytes;
         * bytes = texture.EncodeToPNG();
         * perfilData.Avatar = Convert.ToBase64String(bytes);    (Esto esta comentado debido a que no nos ha dado tiempo a terminar de implementarlo y da errores, vasicamente, convierte una imagen en un string.)
         */
        perfil.PerfilJSON = perfilData.getAsJSON();

        carga.peticion = "updateProfile";
        carga.json     = @"" + perfil.getAsJSON() + "";
        sender.send(carga.getAsJSON());

        yield return(new WaitForSeconds(Seconds));

        carga = Carga.getFromJSON(str);
        if (!carga.json.Equals("accepted"))
        {
            loadingLogIn.SetActive(false);
        }
        else
        {
            loadingLogIn.SetActive(false);
            ajustes.SetActive(false);
            menu.SetActive(true);
            userNameMenu.text = perfil.Nombre;
        }
    }
コード例 #6
0
    // metodo IEnumerator, obtiene los datos del registro de la interfaz y los monta dentro del objeto perfil. Despues los envia al servidor el cual responde si se ha aceptado el registro o no.
    IEnumerator Register()
    {
        loadingLogIn.SetActive(true);


        perfil.Nombre     = UsuarioRegistro.text;
        perfil.Contraseña = PassRegistro.text;
        perfil.Correo     = CorreoRegistro.text;

        carga.peticion = "makeRegister";
        carga.json     = @"" + perfil.getAsJSON() + "";
        sender.send(carga.getAsJSON());

        yield return(new WaitForSeconds(Seconds));

        carga = Carga.getFromJSON(str);
        if (!carga.json.Equals("accepted"))
        {
            loadingLogIn.SetActive(false);
        }
        else
        {
            loadingLogIn.SetActive(false);
            UIRegistro.SetActive(false);
            UILogin.SetActive(true);
            userNameMenu.text = perfil.Nombre;
        }
    }
コード例 #7
0
 //Metodo para procesar la informacion que se recive del servidor conrinuamente, como las notificaciones, el chat, o el movimiento de los token segun la peticion recivida del servidor
 public void ProcessData()
 {
     if (!String.Equals(str, "accede"))
     {
         Carga Aux = new Carga();
         Aux = Carga.getFromJSON(str);
         if (String.Equals(Aux.peticion, "chatMessage"))
         {
             Text nuevoTexto = GameObject.Instantiate(Message);
             nuevoTexto.transform.parent = chatBoxContent.transform;
             mensaje         = Mensaje.getFromJson(Aux.json);
             nuevoTexto.text = mensaje.Emisor + ": " + mensaje.Messaje;
             str             = "accede";
         }
         if (String.Equals(Aux.peticion, "sendNotificacion"))
         {
             mensaje = Mensaje.getFromJson(Aux.json);
             if (String.Equals(mensaje.Receptor, perfil.Nombre))
             {
                 perfilData.Campañas.Add(Campaña.getFromJson(mensaje.Messaje));
                 botonCampañaTexto.text = perfilData.Campañas[0].Nombre;
             }
             str = "accede";
         }
         if (String.Equals(Aux.peticion, "tokenMove"))
         {
             Token fichaAux = Token.getFromJson(Aux.json);
             invocarToken(fichaAux);
             str = "accede";
         }
         if (String.Equals(Aux.peticion, "leaveCampaña"))
         {
             if (String.Equals(Aux.json, "kick"))
             {
                 carga.assigned = "false";
                 GameObject[] fichas = GameObject.FindGameObjectsWithTag("Token");
                 foreach (GameObject ficha in fichas)
                 {
                     Destroy(ficha);
                 }
                 menu.SetActive(true);
                 UICampaña.SetActive(false);
                 str = "accede";
             }
             else
             {
                 Perfil aux = Perfil.getFromJson(Aux.json);
                 Destroy(GameObject.Find(aux.Nombre));
                 str = "accede";
             }
         }
     }
 }
コード例 #8
0
    /*
     * metodo IEnumerator, obtiene los datos del login de la interfaz y los monta dentro del objeto perfil. Despues los envia al servidor y espera a la respuesta de si le permite logearse o no. Si le deja
     * el metodo tambien administra toda la informacion recibida insertandola en los objetos correspondientes
     */
    IEnumerator logIn()
    {
        loadingLogIn.SetActive(true);


        perfil.Nombre     = UsuarioLogin.text;
        perfil.Correo     = null;
        perfil.Contraseña = PassLogin.text;

        carga.peticion = "makeConnection";
        carga.json     = @"" + perfil.getAsJSON() + "";
        sender.send(carga.getAsJSON());

        yield return(new WaitForSeconds(Seconds));

        carga = Carga.getFromJSON(str);
        if (string.IsNullOrEmpty(carga.json) || carga.json.Equals("denied"))
        {
            loadingLogIn.SetActive(false);
        }
        else
        {
            perfil     = Perfil.getFromJson(carga.json);
            perfilData = PerfilData.getFromJson(perfil.PerfilJSON);
            if (perfilData.Campañas.Count == 0)
            {
                botonCampañaTexto.text = "Vacio";
            }
            else
            {
                botonCampañaTexto.text = perfilData.Campañas[0].Nombre;
            }
            if (perfilData.Jugadores.Count == 0)
            {
                botonPersonajeTexto.text = "Vacio";
            }
            else
            {
                botonPersonajeTexto.text = perfilData.Jugadores[0].Nombre;
                personaje = perfilData.Jugadores[0].getPersonaje();
            }
            if (!String.IsNullOrEmpty(perfilData.Avatar) || !String.Equals(perfilData.Avatar, ""))
            {
                image.texture = stringToIMG(perfilData.Avatar);
            }
            loadingLogIn.SetActive(false);

            UILogin.SetActive(false);
            menu.SetActive(true);
            userNameMenu.text = perfil.Nombre;
        }
    }
コード例 #9
0
    //Metodo Courutine, envia al servidor la peticion de borrar un perfil y el perfil en cuestion. Despues te develve a la pantalla de login.
    IEnumerator BorrarPerfil()
    {
        loadingLogIn.SetActive(true);

        carga.peticion = "deleteProfile";
        carga.json     = @"" + perfil.getAsJSON() + "";
        sender.send(carga.getAsJSON());

        yield return(new WaitForSeconds(Seconds));

        carga = Carga.getFromJSON(str);
        if (!carga.json.Equals("accepted"))
        {
            loadingLogIn.SetActive(false);
        }
        else
        {
            loadingLogIn.SetActive(false);
            ajustes.SetActive(false);
            UILogin.SetActive(true);
        }
    }
コード例 #10
0
    //Metodo Courutine, este metodo manda al servidor un objeto carga con la peticion de borrar y los datos de la campaña. Si es satisfactorio borra la campaña. Si no, no lo hace.
    IEnumerator borrarCampaña()
    {
        loadingLogIn.SetActive(true);

        carga.peticion = "deleteCampaña";
        carga.json     = "{\"Perfil\": " + perfil.Id + ", \"Campaña\": " + "\"" + perfilData.Campañas[0].Nombre + "\"" + "}";
        Debug.Log(carga.json);
        sender.send(carga.getAsJSON());

        yield return(new WaitForSeconds(Seconds));

        carga = Carga.getFromJSON(str);
        if (!carga.json.Equals("accepted"))
        {
            loadingLogIn.SetActive(false);
        }
        else
        {
            loadingLogIn.SetActive(false);
            perfilData.Campañas.Remove(perfilData.Campañas[0]);
            botonCampañaTexto.text = "vacio";
        }
    }