calling UpdateUserPosition(playerid);
UpdateUserPosition(playerid) { GetUserPosition(playerid); new query[654]; mysql_format(g_SQL, query, sizeof query, "UPDATE `accounts` SET `posX` =%f, `posY` =%f, `posZ` =%f, `posA` =%f WHERE `id` = %d LIMIT 1", Player[playerid][X_Pos], Player[playerid][Y_Pos], Player[playerid][Z_Pos], Player[playerid][A_Pos], Player[playerid][ID]); mysql_tquery(g_SQL, query); return 1; }
stock GetUserPosition(playerid) { new Float: pos[4]; GetPlayerPos(playerid, pos[0], pos[1], pos[2]); GetPlayerFacingAngle(playerid, pos[3]); Player[playerid][X_Pos] = pos[0]; Player[playerid][Y_Pos] = pos[1]; Player[playerid][Z_Pos] = pos[2]; Player[playerid][A_Pos] = pos[3]; return 1; }
new Float:angleposition[1];
Even tho this is theoretically working (and not a fix to your problem):
PHP Code:
And about your problem: print X, Y and Z before saving it, to see what it is, since the variables are at the top of your script (why ever that is so), they might be overwritten from somehwere else. |
UpdateUserPosition(playerid) { GetUserPosition(playerid); new query[512]; mysql_format(g_SQL, query, sizeof query, "UPDATE `accounts` SET `posx` = %f, `posy` = %f, `posz` = %f, `posa` = %f WHERE `id` = %d LIMIT 1", Player[playerid][X_Pos], Player[playerid][Y_Pos], Player[playerid][Z_Pos], Player[playerid][A_Pos], Player[playerid][ID]); mysql_tquery(g_SQL, query); return 1; }
stock GetUserPosition(playerid) { new Float: pos[4]; GetPlayerPos(playerid, pos[0], pos[1], pos[2]); GetPlayerFacingAngle(playerid, pos[3]); Player[playerid][X_Pos] = pos[0]; Player[playerid][Y_Pos] = pos[1]; Player[playerid][Z_Pos] = pos[2]; Player[playerid][A_Pos] = pos[3]; return 1; }