stock SaveAccount(playerid) { // Сохранение аккаунта.
if(playerVariable[playerid][aLogged] == true) { // Проверка, если аккаунт авторизован.
CheckMySQLConnection(); // Проверяем, подключена ли БД.
new query[186];
new sqlname[MAX_PLAYER_NAME];
new sqlpass[64];
new Float:X;
new Float:Y;
new Float:Z;
GetPlayerPos(playerid, X, Y, Z);
mysql_real_escape_string(playerVariable[playerid][aName], sqlname);
mysql_real_escape_string(playerVariable[playerid][aPassword], sqlpass);
format(query, sizeof(query), "UPDATE `"DATABASE"` SET `Nickname` = '%s', `Password` = '%s',`PosX` = %.f,`PosY` = %.f,`PosX` = %.f WHERE `ID` = '%i' ", sqlname, sqlpass, X,Y,Z,playerid);
mysql_query(query); // Отправляем запрос
}
return 1;
}
format(query, sizeof(query), "UPDATE `"DATABASE"` SET `Nickname`='%s', `Password`='%s',`PosX`='%.f',`PosY` ='%.f',`PosX`='%.f' WHERE `ID`='%i' ", sqlname, sqlpass, Float:X,Float:Y,Float:Z, playerid);
new Float:x,Float:y,Float:z, interior, query[MAX_QUERY];
GetPlayerPos(playerid,x,y,z); interior = GetPlayerInterior(playerid);
format(query,sizeof(query),"UPDATE `"PlayerTable"` SET x='%0.1f', y='%0.1f', z='%0.1f', interior='%d', world='%d' WHERE (Username = '%s') LIMIT 1",
Float:x,Float:y,Float:z, interior, GetPlayerVirtualWorld(playerid), PlayerName2(playerid));
mysql_query(query);
[18:08:10] >> mysql_connect( ) [18:08:10] CMySQLHandler::CMySQLHandler() - constructor called. [18:08:10] CMySQLHandler::CMySQLHandler() - Connecting to "localhost" | DB: "registration" | Username: "root" ... [18:08:10] CMySQLHandler::Connect() - Connection was successful. [18:08:10] CMySQLHandler::Connect() - Auto-Reconnect has been enabled. [18:08:10] >> mysql_ping( Connection handle: 1 ) [18:08:10] CMySQLHandler::Ping() - Connection is still alive. [18:08:38] >> mysql_query( Connection handle: 1 ) [18:08:38] CMySQLHandler::Query(SELECT `ID` FROM `account` WHERE `Nickname` = 'Tester_Mckenzy') - Successfully executed. [18:08:38] >> mysql_store_result( Connection handle: 1 ) [18:08:38] CMySQLHandler::StoreResult() - Result was stored. [18:08:38] >> mysql_num_rows( Connection handle: 1 ) [18:08:38] CMySQLHandler::NumRows() - Returned 1 row(s) [18:08:38] >> mysql_fetch_int( Connection handle: 1 ) [18:08:38] CMySQLHandler::FetchRow() - Return: 1 [18:08:38] >> mysql_free_result( Connection handle: 1 ) [18:08:38] CMySQLHandler::FreeResult() - Result was successfully free'd. [18:08:43] >> mysql_real_escape_string( Connection handle: 1 ) [18:08:43] CMySQLHandler::EscapeString(123qwe); - Escaped 6 characters to 123qwe. [18:08:43] >> mysql_query( Connection handle: 1 ) [18:08:43] CMySQLHandler::Query(SELECT * FROM `account` WHERE `Password` = '123qwe' AND `ID` = '1') - Successfully executed. [18:08:43] >> mysql_store_result( Connection handle: 1 ) [18:08:43] CMySQLHandler::StoreResult() - Result was stored. [18:08:43] >> mysql_num_rows( Connection handle: 1 ) [18:08:43] CMySQLHandler::NumRows() - Returned 1 row(s) [18:08:43] >> mysql_fetch_row_format( Connection handle: 1 ) [18:08:43] CMySQLHandler::FetchRow() - Return: 1|Tester_Mckenzy|123qwe|0.000|0.000|0.000 [18:08:43] >> mysql_free_result( Connection handle: 1 ) [18:08:43] CMySQLHandler::FreeResult() - Result was successfully free'd. [18:08:59] >> mysql_ping( Connection handle: 1 ) [18:08:59] CMySQLHandler::Ping() - Connection is still alive. [18:08:59] >> mysql_real_escape_string( Connection handle: 1 ) [18:08:59] CMySQLHandler::EscapeString(Tester_Mckenzy); - Escaped 14 characters to Tester_Mckenzy. [18:08:59] >> mysql_real_escape_string( Connection handle: 1 ) [18:08:59] CMySQLHandler::EscapeString(123qwe); - Escaped 6 characters to 123qwe. [18:08:59] >> mysql_query( Connection handle: 1 ) [18:08:59] CMySQLHandler::Query(UPDATE `account` SET `Nickname`='Tester_Mckenzy', `Password`='123qwe',`PosX`='201.862014',`PosY` ='-79.030754',`PosX`='1.578125' WHERE `ID`='0' ) - Successfully executed. [18:09:14] >> mysql_close( Connection handle: 1 ) [18:09:14] CMySQLHandler::~CMySQLHandler() - deconstructor called. [18:09:14] CMySQLHandler::FreeResult() - The result is already empty. [18:09:14] CMySQLHandler::Disconnect() - Connection was closed.
Stepashka, с сервера.
Ну а как тогда узнать координаты игрока если не с помощью GetPlayerPos? |
CheckMySQLConnection(); - на кой хер использовать проверку без проверки? |
mysql_real_escape_string(playerVariable[playerid][aName], sqlname); - хотя бы смотрел назначение сий функции? На кой хер это нужно, если в нике можно использовать только A-Z 0-9 и пару символов с которыми бд прекрасно работает? |
какой нахер playerid ? |
из машины или с сервера?
Если с сервера то все функции типа GetPlayer... будут возвращать 0 или любую другую ерунду. Потому что игрока в этот момент уже нет на сервере. Спасибо за внимание. |