04.05.2015, 18:17
Buenas chicos. He hecho un sistema de logueo y registro via MySQL r39. El problema estб en que yo he creado una variable en un enum, es decir, que tengo lo siguiente:
pInfo[playerid][Telefono]
El problema estб en que repentinamente me ha empezado a fallar el guardado, de tal manera que se buguea por completo el personaje. El sistema de telйfono no estб tocado, no se edita la variable en ningъn lugar y estб seteada a cero cuбndo se registran, de tal manera que al desconectar tendrнa que aparecer cero, pero aparece 99 bugueando la tabla del personaje.
El problema estб en que no modifico la variable de telйfono en todo el gamemode y aъn asн me guarda como 99, 120 y cosas raras. En los log's del MySQL no aparece ningъn warning ni error.
їAlguna sugerencia?
Resto del cуdigo:
pInfo[playerid][Telefono]
El problema estб en que repentinamente me ha empezado a fallar el guardado, de tal manera que se buguea por completo el personaje. El sistema de telйfono no estб tocado, no se edita la variable en ningъn lugar y estб seteada a cero cuбndo se registran, de tal manera que al desconectar tendrнa que aparecer cero, pero aparece 99 bugueando la tabla del personaje.
pawn Код:
pInfo[playerid][Skin] = GetPlayerSkin(playerid);
new Query[254], name[MAX_PLAYER_NAME], Float:X,Float:Y,Float:Z;
GetPlayerPos(playerid,X,Y,Z);
GetPlayerName(playerid, name, sizeof(name));
mysql_format(MySQL, Query, sizeof(Query),"UPDATE `usuarios` SET `Nivel`=%d,`Respeto`=%d,`Nstaff`='%s',`Telefono`=%d,`PosX`=%f,`PosY`=%f,`PosZ`=%f,`Skin`=%d,`Rango`=%d WHERE `Usuario` = '%s'",
pInfo[playerid][Nivel],pInfo[playerid][Respeto],pInfo[playerid][NombreStaff], pInfo[playerid][Telefono],X,Y,Z,pInfo[playerid][Skin],pInfo[playerid][Rango],name);
mysql_pquery(MySQL, Query);
їAlguna sugerencia?
Resto del cуdigo:
pawn Код:
public OnPlayerDisconnect(playerid, reason)
{
if(Logueado[playerid] == 1)
{
ActualizarCuenta(playerid);
}
}
public Cargarcuenta(playerid)
{
pInfo[playerid][Nivel] = cache_get_field_content_int(0, "Nivel");
SetPlayerScore(playerid, pInfo[playerid][Nivel]);
pInfo[playerid][Respeto] = cache_get_field_content_int(0, "Respeto");
pInfo[playerid][Rango] = cache_get_field_content_int(0, "Rango");
pInfo[playerid][Skin] = cache_get_field_content_int(0, "Skin");
pInfo[playerid][PosicionX] = cache_get_field_content_float(0,"PosX");
pInfo[playerid][PosicionY] = cache_get_field_content_float(0,"PosY");
pInfo[playerid][PosicionZ] = cache_get_field_content_float(0,"PosZ");
printf("%f",pInfo[playerid][PosicionX]);
printf("%f",pInfo[playerid][PosicionY]);
printf("%f",pInfo[playerid][PosicionZ]);
cache_get_field_content(0, "Nstaff", pInfo[playerid][NombreStaff], MySQL, 254);
OnAccountLoad(playerid);
}
public OnAccountLoad(playerid)
{
Logueado[playerid] = 1;
SetSpawnInfo(playerid, 0, pInfo[playerid][Skin], pInfo[playerid][PosicionX],pInfo[playerid][PosicionY],pInfo[playerid][PosicionZ], 0, 0, 0, 0, 0, 0, 0 );
TogglePlayerSpectating(playerid, 0);
SpawnPlayer(playerid);
new string[254], name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, sizeof(name));
format(string, sizeof(string),"{0174DF}%s{FFFFFF}, te has logueado en {FFBF00}Rol Iberico{FFFFFF}.", ReplaceString("_", " ", name));
SendClientMessage(playerid, -1, string);
}