08:36:07 cache_get_field_content_int OK row: 0, field_name: "Administrador", connection: 1 08:36:07 CMySQLResult::GetRowDataByName() ERROR invalid row index ('0') 08:36:07 cache_get_field_content_int ERROR invalid datatype
Cundo logueas se llama el cargado new Query[128]; mysql_format(MySQL, Query, sizeof Query, "SELECT * FROM users WHERE Usuario = '%e' LIMIT 1", GetPlayerNameEx(playerid)); mysql_tquery(MySQL, Query, "OnAccountLoad", "i", playerid); Este es el cargado.. CALLBACK: OnAccountLoad(playerid) { BitFlag_On(VariablesTemporales_[playerid], eLogged); GetPlayerName(playerid, InformacionJugador_[playerid][pUsuario], MAX_PLAYER_NAME + 1); InformacionJugador_[playerid][pAdministrador] = cache_get_field_content_int(0, "Administrador"); InformacionJugador_[playerid][pPos][0] = cache_get_field_content_float(0, "PosX"); InformacionJugador_[playerid][pPos][1] = cache_get_field_content_float(0, "PosY"); InformacionJugador_[playerid][pPos][2] = cache_get_field_content_float(0, "PosZ"); InformacionJugador_[playerid][pNivel] = cache_get_field_content_int(0, "Nivel"); InformacionJugador_[playerid][pSkin] = cache_get_field_content_int(0, "Skin"); GivePlayerCash(playerid, cache_get_field_content_int(0, "Dinero")); SetPlayerScore(playerid, InformacionJugador_[playerid][pNivel]); if(cache_get_field_content_int(0, "Ban")) { new string[70], BanMotiv[33]; cache_get_field_content(0, "BanReason", BanMotiv[32], MySQL, 32); format(string, sizeof string, "ЎEsta cuenta estб excluida de la comunidad! Motivo: %s", BanMotiv); SendClientMessage(playerid, COLOR_GRIS_2, string); SetTimerEx("KickTimer", 500, false, "d", playerid); } BitFlag_Off(VariablesTemporales_[playerid], eAdminDuty); SetSpawnInfo(playerid, NO_TEAM, InformacionJugador_[playerid][pSkin], InformacionJugador_[playerid][pPos][0], InformacionJugador_[playerid][pPos][1], InformacionJugador_[playerid][pPos][2], 1.0, -1, -1, -1, -1, -1, -1); TogglePlayerSpectating(playerid, false), SpawnPlayer(playerid); return 1; } Y este es el guardado. CALLBACK: ActualizarJugador(playerid) { new Query[512]; GetPlayerPos(playerid, InformacionJugador_[playerid][pPos][0], InformacionJugador_[playerid][pPos][1], InformacionJugador_[playerid][pPos][2]); format(Query, sizeof(Query), "UPDATE users SET PosX = %f, PosY = %f, PosZ = %f, Skin = %d, Dinero = %d, Nivel = %d WHERE SQLID = %d", InformacionJugador_[playerid][pPos][0], InformacionJugador_[playerid][pPos][1], InformacionJugador_[playerid][pPos][2], InformacionJugador_[playerid][pSkin], InformacionJugador_[playerid][pDinero], InformacionJugador_[playerid][pNivel], InformacionJugador_[playerid][pSQLID]); mysql_tquery(MySQL, Query, "", ""); return 1; }
cache_get_value_float(0, "PosZ", InformacionJugador_[playerid][pPos][2]);
Asegurate de obtener con GetPlayerPos y GetPlayerFacingAngle la posiciуn del jugador antes de guardar los datos en la base de datos. Si estбs usando MySQL 40, ahora las funciones cambiaron. Para cargar un float deberнas usar:
Код:
cache_get_value_float(0, "PosZ", InformacionJugador_[playerid][pPos][2]); |
new Query[180]; mysql_format(1, Query, sizeof(Query), "SELECT * FROM users WHERE Usuario = '%e' LIMIT 1", InformacionJugador_[playerid][pUsuario]); mysql_query(1, Query);