[Ayuda] Hacer que solo elijan skin los que no estan registrados.
#1

Hola.
Llevo toda la tarde y no lo he conseguido, quiero que los usuarios sin registrar si vean la pantalla de seleccion de skin y puedan seleccionarlo, y que los usuarios ya registrados en la base de datos entren con el que desloguearon la ultima vez. He conseguido que guarde el nє del skin en la base de datos pero no paso de ahi.
Dejo el codigo completo aqui (porque soy tan noob que no se que es lo importante) http://pastebin.com/Vtu89Rgt
Reply
#2

Crea una variable que se guarde en un archivo externo al GM, para que cada vez que entre el usuario al servidor, el GM lea si esta registrado o no desde el archivo externo.
Reply
#3

Podrнas comprobar si existe o no la cuenta. Serнa algo asн...

pawn Код:
public OnPlayerRequestClass(playerid, classid)
{
    new query[200], nombre[MAX_PLAYER_NAME];
    GetPlayerName(playerid, nombre, sizeof(nombre));
    format(query, sizeof(query), "SELECT IP FROM `playerdata` WHERE user = '%s' LIMIT 1", nombre);
    mysql_query(query);
    mysql_store_result();
    if(mysql_num_rows()) SpawnPlayer(playerid);
    SetPlayerPos(playerid, 2370.5166,2165.1321,26.9844);
    SetPlayerCameraPos(playerid, 2374.5188,2169.5798,26.9844);
    SetPlayerCameraLookAt(playerid, 2370.5166,2165.1321,26.9844);
    SetPlayerFacingAngle(playerid,315.9228);
    ApplyAnimation(playerid,"DANCING","dnce_M_b",4.1,7,5,1,1,1);
    return 1;
}
Entonces, si la cuenta existe lo Spawnea directamente.

PD: No lo probй, pero deberнa funcionar.
Reply
#4

Sigo teniendo problemas, con usuario nuevo no deja elegir skin cuando le das a pasar skin lo pasa lo elige automatico, te da el contron del PJ pero la camara se blockea y con usuario registrado me pasa lo mismo =S.
PD:Use el codigo de Julian
Reply
#5

Y no querнas eso? Que si estaba registrado no te deje elegir skin :S

EDIT: Ya encontrй el error... cambiб esto:

Код:
format(query, sizeof(query), "SELECT IP FROM `playerdata` WHERE user = '%s' LIMIT 1", nombre);
por
Код:
format(query, sizeof(query), "SELECT * FROM playerdata WHERE user = '%s'", nombre);
Y deberнa andar. Para ponй esto:

pawn Код:
SetCameraBehindPlayer(playerid);
Donde se loguea el jugador.
Reply
#6

Se mantiene el problema, tanto cuando ingreso con un jugador registrado como cuando no, me sale la pantalla de seleccion de skin y al pusar la flecha elige el 2є personaje sin dejar opcion a ver los demas y spawnea, pero la camara no se mueve ni nada.
PD: Lo que busco es que si el user no esta registrado se registre y elija un skin y que cuando entre un user registrado spawnee en el ultimo punto que estubo con el ultimo skin que estubo (los datos si los guarda en la base de datos)
Reply
#7

Entonces no es lo que pediste... vos pediste que si el usuario estaba registrado no le deje elegir skin. "sin registrar si vean la pantalla de seleccion de skin y puedan seleccionarlo". Te has expresado mal, por eso...

pawn Код:
stock MySQL_Login(playerid)
{
    new query[300], pname[24], savingstring[20];
    GetPlayerName(playerid, pname, 24);
    format(query, sizeof(query), "SELECT * FROM playerdata WHERE user = '%s'", pname);
    mysql_query(query);
    mysql_store_result();
    while(mysql_fetch_row_format(query,"|"))
    {
        mysql_fetch_field_row(savingstring, "score"); SetPlayerScore(playerid, strval(savingstring));
        mysql_fetch_field_row(savingstring, "money"); MoneyGiven[playerid] = strval(savingstring);
        mysql_fetch_field_row(savingstring, "pos_x"); SpawnInfo[playerid][x] = strval(savingstring);
        mysql_fetch_field_row(savingstring, "skin"); SetPlayerSkin(playerid, strval(savingstring);
        mysql_fetch_field_row(savingstring, "pos_y"); SpawnInfo[playerid][y] = strval(savingstring);
        mysql_fetch_field_row(savingstring, "pos_z"); SpawnInfo[playerid][z] = strval(savingstring);
    }
    mysql_free_result();
    SendClientMessage(playerid, COLOR_VERDE, "Te has logueado correctamente.");
    Logged[playerid] = 1;
    return 1;
}
Probб asн ( mas lo anterior )
Reply
#8

Esto donde lo coloco exactamente?? SetCameraBehindPlayer(playerid);
Al introducir el ultimo codigo me da este error: error 001: expected token: ",", but found ";"
en la linea que pone:mysql_fetch_field_row(savingstring, "skin"); SetPlayerSkin(playerid, strval(savingstring);
Reply
#9

Si, me faltу un ), lo hice acб en el foro xD

pawn Код:
mysql_fetch_field_row(savingstring, "skin"); SetPlayerSkin(playerid, strval(savingstring));
Eso ponelo en donde se loguea el usuario. Abajo de: "Logged[playerid] = 1;"
Reply
#10

Quote:
Originally Posted by [J]ulian
Посмотреть сообщение
Si, me faltу un ), lo hice acб en el foro xD

pawn Код:
mysql_fetch_field_row(savingstring, "skin"); SetPlayerSkin(playerid, strval(savingstring));
Eso ponelo en donde se loguea el usuario. Abajo de: "Logged[playerid] = 1;"
No dijiste que lo habias probado?? Lo volvi a probar y no funciona....
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)