Camara de jugador al iniciar y OnPlayerRequestClass
#1

Hola estoy haciendo un registro mediante dialogos y mysql pero no logro que me funcione como quiero.

El problema que tengo es que al mostrar el dialogo de ingreso no me muestra la camara que yo le puse, pero si le doy enter (campo vacio o clave erronea) si me muestra la camara. Tambien me muestra la seleccion de personaje.

El otro problema es que al morir se me queda en OnPlayerRequestClass.

Dejo un video para que vean que sucede y se entienda un poco mejor.

https://www.youtube.com/watch?v=HI7dP-HH6OE

OnPlayerConnect
pawn Код:
public OnPlayerConnect(playerid)
{
    SetPlayerColor(playerid, COLOR_INVISIBLE);
    TextDrawShowForPlayer(playerid, Box1);
    TextDrawShowForPlayer(playerid, Box2);
    mysql_format(MySQL, Query, sizeof(Query), "SELECT * FROM `usuarios` WHERE `Nombre` = '%e' LIMIT 1", NombreJugador(playerid));
    mysql_tquery(MySQL, Query, "ComprobarUsuario", "i", playerid);
    return 1;
}
ComprobarUsuario
pawn Код:
public ComprobarUsuario(playerid)
{
    new fila, campo, string[256];
    cache_get_data(fila, campo, MySQL);

    if (fila)
    {
        CargarJugadorInfo(playerid);
        format(string, sizeof(string), "{FFFFFF}Hola, %s!\n\nBienvenido de nuevo a {D69929}Servidor Roleplay{FFFFFF}.\nPor favor ingrese su clave para ingresar.", NombreLimpio(playerid));
        ShowPlayerDialog(playerid, DIALOGO_INGRESAR, DIALOG_STYLE_PASSWORD, "{00C6FF}› Bienvenido, ingrese su clave", string, "Ingresar", "Cancelar");
    }
    else if (!fila) {
        if (!NombreValido(playerid))
        {
            LimpiarChat(playerid);
            SendClientMessage(playerid, COLOR_BLANCO, "Tu nombre no cumple con el formato 'Nombre_Apellido'.");
            SendClientMessage(playerid, COLOR_BLANCO, "Has sido kickeado automбticamente.");
            KickJugador(playerid);
            return 1;
        }
        format(string, sizeof(string), "{EEEEEE}Antes que nada, deberбs registrar tu nombre de usuario. Para ello,\ndeberбs escoger una contraseсa y recordarla. Sin ella no tendrбs\nacceso a tu cuenta en el futuro.\nIntroduce la contraseсa a continuaciуn:");
        ShowPlayerDialog(playerid, DIALOGO_REGISTRO, DIALOG_STYLE_PASSWORD, "{00C6FF}› Registrarse", string, "Continuar", "");
    }
    return 1;
}
El dialogo "DIALOGO_INGRESO" y setea JugadorLogueado en 1 (ademas de hacer las comprobaciones de clave, etc) y llama a la funcion JugadorSpawn.

JugadorSpawn
pawn Код:
public JugadorSpawn(playerid)
{
    if (JugadorLogueado[playerid] == 1)
    {
        new string[100];
        TextDrawHideForPlayer(playerid, Box1);
        TextDrawHideForPlayer(playerid, Box2);
        SetPlayerScore(playerid, JugadorInfo[playerid][Nivel]);
        SetPlayerVirtualWorld(playerid, JugadorInfo[playerid][Interior]);
        SetPlayerInterior(playerid, JugadorInfo[playerid][Mundo]);
        SetearDinero(playerid, JugadorInfo[playerid][Dinero]);
        SetPlayerHealth(playerid, JugadorInfo[playerid][Vida]);
        SetPlayerArmour(playerid, JugadorInfo[playerid][Armadura]);
        SetCameraBehindPlayer(playerid);
        TogglePlayerControllable(playerid, 1);
        format(string, sizeof(string), "SERVIDOR: Bienvenido %s.", NombreLimpio(playerid));
        SendClientMessage(playerid, COLOR_BLANCO, string);

        SetSpawnInfo(playerid, 0, JugadorInfo[playerid][Skin], JugadorInfo[playerid][PosX], JugadorInfo[playerid][PosY], JugadorInfo[playerid][PosZ], JugadorInfo[playerid][Angulo], 0, 0, 0, 0, 0, 0);
        SpawnPlayer(playerid);
        return 1;
    }

    SetPlayerCameraPos(playerid, 1597.3928, -1699.5081, 55.9331);
    SetPlayerCameraLookAt(playerid, 1596.5624, -1700.0829, 55.7230);
    SetPlayerPos(playerid, -316.776245, 1053.410400, 15.265959);
    TogglePlayerControllable(playerid, 0);
    return 1;
}
OnPlayerRequestClass
pawn Код:
public OnPlayerRequestClass(playerid, classid)
{
    if(IsPlayerNPC(playerid)) return 1;
    SetPlayerCameraPos(playerid, 1597.3928, -1699.5081, 55.9331);
    SetPlayerCameraLookAt(playerid, 1596.5624, -1700.0829, 55.7230);
    SetPlayerPos(playerid, -316.776245, 1053.410400, 15.265959);
    TogglePlayerControllable(playerid, 0);
    return 0;
}
OnPlayerSpawn
pawn Код:
public OnPlayerSpawn(playerid)
{
    return 1;
}
OnPlayerSpawn
pawn Код:
public OnPlayerDeath(playerid, killerid, reason)
{
    SendDeathMessage(killerid, playerid, reason);
    if(killerid != INVALID_PLAYER_ID)
    {
        SetPlayerSkin(playerid, JugadorInfo[playerid][Skin]);
        SetPlayerPos(playerid, JugadorInfo[playerid][PosX], JugadorInfo[playerid][PosY], JugadorInfo[playerid][PosZ]);
        SetPlayerFacingAngle(playerid, JugadorInfo[playerid][Angulo]);
    }
    return 1;
}
Reply


Messages In This Thread

Forum Jump:


Users browsing this thread: 2 Guest(s)