Da pocnemo:
Otvorite pawno, kliknete new i nastimate sve kako vi ocete...
Prvi korak je ispod
#include dodati
#include Drugi korak je definirati bazu podataka
#define MYSQL_HOST "localhost"
#define MYSQL_USER "root"
#define MYSQL_DB "sany"
#define MYSQL_PW ""Ispod toga dodajte :
new Query, konekcija;Ovo stavite ispod includeove...
Prilagodite svom mysql spajanju
pod:
OnGameModeInItdodajte
DBSpoji();
mysql_debug(1);
konekcija = mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_DB, MYSQL_PW);Dodajemo sljedeci Enum
enum pInfo()
{
pAdmin,
pNovac,
pLevel,
pUbistva,
pSmrti
}
new PlayerInfo;Dodajemo forwardove
forward OnQueryFinish(gQuery[]);
forward ProvjeraIgraca(playerid);
forward LogirajKorisnika(playerid, sifra);pod:
OnGameModeExitstavite
mysql_close();pod:
OnPlayerConnectstavite:
mysql_format(konekcija, Query, "SELECT * FROM `korisnici` WHERE `ImeKorisnika` = '%e'", RPIme(playerid));
mysql_function_query(konekcija, Query, false, "ProvjeraIgraca", "d", playerid);pod:
OnPlayerDisconnectstavite:
mysql_format(konekcija, Query, "UPDATE `korisnici` SET `Novac` = %d, `Level` = %d, `Admin` = %d, `Ubistva` = %d, `Smrti` = %d", GetPlayerMoney(playerid), GetPlayerScore(playerid), PlayerInfo, PlayerInfo, PlayerInfo);
mysql_function_query(konekcija, Query, false, "OnQueryFinish", "s", Query);pod:
OnPlayerDeathstavite:
PlayerInfo ++;
PlayerInfo ++;ovo stavite na dno moda
public OnQueryFinish(gQuery[])
{
print("Query se uspjesno izvrsio");
return 1;
}pod
OnDialogResponsedodajte
switch(dialogid)
{
case 0:
{
if(!response) return Kick(playerid);
mysql_format(konekcija, Query, " SELECT * FROM `korisnici` WHERE ImeKorisnika = '%e' AND Sifra = md5('%e')", RPIme(playerid), inputtext);
mysql_function_query(konekcija, Query, false, "LogirajKorisnika", "ds", playerid, inputtext);
}
case 1:
{
new IP;
GetPlayerIp(playerid, IP, sizeof(IP));
if(!response) return Kick(playerid);
mysql_format(konekcija, Query, "INSERT INTO `korisnici` (ImeKorisnika, Sifra, Novac, Level, Admin, Ubistva, Smrti, IP) VALUES('%e', md5('%e'), 5000, 1, 0, 0, 0, '%e')", RPIme(playerid), inputtext, IP);
mysql_function_query(konekcija, Query, false, "OnQueryFinish", "s", Query);
}
}
if(dialogid == 2)
{
if(!response) return Kick(playerid);
if(response)
{
SpawnPlayer(playerid);
}
}
if(dialogid == 3)
{
new string;
if(!response) return Kick(playerid);
if(response)
{
format(string, sizeof(string), "Login %s !\nPokusaj ponovo da se logiras!!", RPIme(playerid));
ShowPlayerDialog(playerid, 0, DIALOG_STYLE_PASSWORD, "Prijava", string, "Prijavi se", "Odustani");
}
}na dno dodajte ove stockove
stock RPIme(playerid)
{
new Ime;
GetPlayerName(playerid, Ime, MAX_PLAYER_NAME);
return Ime;
}stock DBSpoji()
{
if(mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_DB, MYSQL_PW)) print("| SaNyAC | Spajanje sa MySQL bazom je uspesno!");
else print("| SaNyAC | Spajanje sa MySQL bazom nije uspelo...");
}Dodajte ove publice na dno
public OnQueryError(errorid, error[], callback[], query[], connectionHandle)
{
printf("EID: %d | Error: %s | Query: %s", errorid, error, query);
return 1;
}public LogirajKorisnika(playerid, sifra)
{
new string;
mysql_store_result();
if(mysql_num_rows(konekcija) == 1)
{
if(mysql_retrieve_row())
{
mysql_fetch_field_row(string, "Admin"); PlayerInfo = strval(string);
mysql_fetch_field_row(string, "Level"); PlayerInfo = strval(string);
mysql_fetch_field_row(string, "Novac"); PlayerInfo = strval(string);
mysql_fetch_field_row(string, "Ubistva"); PlayerInfo = strval(string);
mysql_fetch_field_row(string, "Smrti"); PlayerInfo = strval(string);
ShowPlayerDialog(playerid, 2, DIALOG_STYLE_MSGBOX, "Logiran", "Uspjesno ste prijavljeni!", "Uredu", "Izlaz");
}
}
else
{
ShowPlayerDialog(playerid, 3, DIALOG_STYLE_MSGBOX, "Kriva sifra", "Vasa sifra je netacna!", "Uredu", "Izlaz");
}
mysql_free_result();
return 1;
}public ProvjeraIgraca(playerid)
{
new string;
mysql_store_result();
if(mysql_num_rows(konekcija) != 0)
{
format(string, sizeof(string), "Dobrodosao nazad %s !\n Molim vas da se prijavite!!", RPIme(playerid));
ShowPlayerDialog(playerid, 0, DIALOG_STYLE_PASSWORD, "Prijava", string, "Prijavi se", "Odustani");
}
else
{
format(string, sizeof(string), "Dobrodosao %s na ovaj server !\n Upisite sifru da se registrujete!!", RPIme(playerid));
ShowPlayerDialog(playerid, 1, DIALOG_STYLE_PASSWORD, "Registracija", string, "Registracija", "Odustani");
}
mysql_free_result();
return 1;
}NAPOMENA: Morate imati MYSQL plugin i include , neda mi se sad trazit link !
Morate napravit novu databazu pod imenom "sany"
Tablica koju cete import:
http://www.mediafire.com/?b5kkil2bl26lc39
OBJASNJENJE:
#include
#define MYSQL_HOST "localhost"
#define MYSQL_USER "root"
#define MYSQL_DB "sany"
#define MYSQL_PW "" ---------> Definisemo databazu na koju se server konektuje]new Query, konekcija; ----------> definiramo Query i konekcijamysql_debug(1); ------------> dodajemo da ce se koristit mysql_debugkonekcija = mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_DB, MYSQL_PW); -----------> spajamo se sa databazomenum pInfo()
{
pAdmin,
pNovac,
pLevel,
pUbistva,
pSmrti
}
new PlayerInfo; -------------> definiramo pAdmin, pNovac, pLevel, pUbistva, pSmrtimysql_close(); ----------> gasimo mysqlmysql_format(konekcija, Query, "SELECT * FROM `korisnici` WHERE `ImeKorisnika` = '%e'", RPIme(playerid));
mysql_function_query(konekcija, Query, false, "ProvjeraIgraca", "d", playerid); stavljamo ucitavanje korisnickovog accountamysql_format(konekcija, Query, "UPDATE `korisnici` SET `Novac` = %d, `Level` = %d, `Admin` = %d, `Ubistva` = %d, `Smrti` = %d", GetPlayerMoney(playerid), GetPlayerScore(playerid), PlayerInfo, PlayerInfo, PlayerInfo);
mysql_function_query(konekcija, Query, false, "OnQueryFinish", "s", Query); --------> dodajemo cuvanje korisnickog accountaPlayerInfo ++;
PlayerInfo ++; ----------> dodajemo da kad igrac koji je ubio dodaje mu se ubistvo, takodje isto kao i za smrtiswitch(dialogid)
{
case 0:
{
if(!response) return Kick(playerid);
mysql_format(konekcija, Query, " SELECT * FROM `korisnici` WHERE ImeKorisnika = '%e' AND Sifra = md5('%e')", RPIme(playerid), inputtext);
mysql_function_query(konekcija, Query, false, "LogirajKorisnika", "ds", playerid, inputtext);
}
case 1:
{
new IP;
GetPlayerIp(playerid, IP, sizeof(IP));
if(!response) return Kick(playerid);
mysql_format(konekcija, Query, "INSERT INTO `korisnici` (ImeKorisnika, Sifra, Novac, Level, Admin, Ubistva, Smrti, IP) VALUES('%e', md5('%e'), 5000, 1, 0, 0, 0, '%e')", RPIme(playerid), inputtext, IP);
mysql_function_query(konekcija, Query, false, "OnQueryFinish", "s", Query);
}
}
if(dialogid == 2)
{
if(!response) return Kick(playerid);
if(response)
{
SpawnPlayer(playerid);
}
}
if(dialogid == 3)
{
new string;
if(!response) return Kick(playerid);
if(response)
{
format(string, sizeof(string), "Login %s !\nPokusaj ponovo da se logiras!!", RPIme(playerid));
ShowPlayerDialog(playerid, 0, DIALOG_STYLE_PASSWORD, "Prijava", string, "Prijavi se", "Odustani");
}
} ------------> dodajemo dialoge za login, register, pogresnu sifru i pravilnu sifrustock RPIme(playerid)
{
new Ime;
GetPlayerName(playerid, Ime, MAX_PLAYER_NAME);
return Ime;
} ------------> definisemo RPImestock DBSpoji()
{
if(mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_DB, MYSQL_PW)) print("| SaNyAC | Spajanje sa MySQL bazom je uspesno!");
else print("| SaNyAC | Spajanje sa MySQL bazom nije uspelo...");
} ---------> ako se baza spojila ili ako nije se spojila da ispisepublic LogirajKorisnika(playerid, sifra)
{
new string;
mysql_store_result();
if(mysql_num_rows(konekcija) == 1)
{
if(mysql_retrieve_row())
{
mysql_fetch_field_row(string, "Admin"); PlayerInfo = strval(string);
mysql_fetch_field_row(string, "Level"); PlayerInfo = strval(string);
mysql_fetch_field_row(string, "Novac"); PlayerInfo = strval(string);
mysql_fetch_field_row(string, "Ubistva"); PlayerInfo = strval(string);
mysql_fetch_field_row(string, "Smrti"); PlayerInfo = strval(string);
ShowPlayerDialog(playerid, 2, DIALOG_STYLE_MSGBOX, "Logiran", "Uspjesno ste prijavljeni!", "Uredu", "Izlaz");
}
}
else
{
ShowPlayerDialog(playerid, 3, DIALOG_STYLE_MSGBOX, "Kriva sifra", "Vasa sifra je netacna!", "Uredu", "Izlaz");
}
mysql_free_result();
return 1;
} ----------> Dodajemo sta da se uradi kad se igrac logirapublic ProvjeraIgraca(playerid)
{
new string;
mysql_store_result();
if(mysql_num_rows(konekcija) != 0)
{
format(string, sizeof(string), "Dobrodosao nazad %s !\n Molim vas da se prijavite!!", RPIme(playerid));
ShowPlayerDialog(playerid, 0, DIALOG_STYLE_PASSWORD, "Prijava", string, "Prijavi se", "Odustani");
}
else
{
format(string, sizeof(string), "Dobrodosao %s na ovaj server !\n Upisite sifru da se registrujete!!", RPIme(playerid));
ShowPlayerDialog(playerid, 1, DIALOG_STYLE_PASSWORD, "Registracija", string, "Registracija", "Odustani");
}
mysql_free_result();
return 1;
} ---------> provjerava dali je igrac registrovan ili nije registrovan