0. Install MySQL
1. Create database, create table (I used table name "players") in it. Minimum columns:
- id (integer, AI)
- nickname (varchar, length = 24)
- money (integer, default = NULL)
- score (integer, default = NULL)
I usualy use phpmyadmin or HeidiSQL, but you can also run an SQL query from console (OS console)
2. Include MySQL plugin (R33) into server, follow instructions
3. Create global variable in your gamemode (new mysql

. In OnGameModeInit add such a string:
PHP код:
mysql = mysql_connect("127.0.0.1","login","database","password");
("connect to database and save connection handler into $mysql")
4. Insert into OnPlayerConnect (or in other function, that handle player's authorization):
PHP код:
new query_string[128], playername[24+1];
GetPlayerName(playerid,playername,sizeof(playername));
format(query_string,sizeof(query_string),"SELECT * FROM players WHERE nickname LIKE '%s' LIMIT 0,1",playername);
mysql_tquery(mysql, query_string, "OnPlayerLoadFromDB","i",playerid);
5. Add new
PHP код:
public OnPlayerLoadFromDB(playerid){
new rows, fields, temp[32];
cache_get_data(rows, fields);
if(rows != 0){
cache_get_field_content(0, "score", temp);
SetPlayerScore(playerid, strval(temp));
cache_get_field_content(0, "money", temp);
ResetPlayerMoney(playerid);
GivePlayerMoney(playerid, strval(temp));
}
}
6. Insert into OnPlayerDisconnect:
PHP код:
new query_string[128], playername[24+1];
GetPlayerName(playerid, playername, sizeof(playername));
format(query_string, sizeof(query_string), "UPDATE players SET score = %i, money = %i WHERE nickname LIKE %s;", GetPlayerScore(playerid), GetPlayerMoney(playerid), playername);
mysql_tquery(mysql, query_string, "","");
There may be some mistakes, I didn't check this code.
EDIT: Remember to add rows into table, when new player registered - on other case, "UPDATE ..." will cause an error (as there are no row with such a nickname)