Započeo SANY_xD
•27. Jul 2013.• Zaključano[TuT] MySQL log/reg sistem
7,054
pregleda
13
postova
Shot Caller
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP DoprinosNovi Član
90 / 100 XP
Početnik(0)
100
Postovi:
14
Teme:
Pridružio se:Jul 2013
27. Jul 2013.
Cao, predstavljam vam tutorijal pod nazivom MySQL log/reg sistem !
Da pocnemo:
Otvorite pawno, kliknete new i nastimate sve kako vi ocete...
Prvi korak je ispod
dodati
Drugi korak je definirati bazu podataka
Ispod toga dodajte :
Ovo stavite ispod includeove...
Prilagodite svom mysql spajanju
pod:
dodajte
DBSpoji();
Dodajemo sljedeci Enum
Dodajemo forwardove
pod:
stavite
pod:
stavite:
pod:
stavite:
pod:
stavite:
ovo stavite na dno moda
pod
dodajte
na dno dodajte ove stockove
Dodajte ove publice na dno
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 ----------> dodajemo da cemo koristit include mysql
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 ----------> dodajemo da cemo koristit include mysql
#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 registrovanGodfather
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP DoprinosNovi Član
240 / 250 XP
Početnik(0)
1,519
Postovi:
30
Teme:
Pridružio se:Jun 2010
27. Jul 2013.
Apsolutno ništa nisi objasnio nego si samo rekao: stavi ovo ovdje, ovo ondje i to je to - to nije tutorial. I ako ćeš već raditi tutorial o mySQL-u, koristi najnoviju verziju mySQL-a.
Godfather
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP DoprinosNovi Član
240 / 250 XP
Početnik(0)
1,519
Postovi:
30
Teme:
Pridružio se:Jun 2010
27. Jul 2013.
|~SaNy~| wrote on July 27, 2013, 9:17 pm:
Znam, ovo mi je prvi TuT, neam vremena sad da pisem objasnjenja dodat cu sutra
Ako sad nisi imao vremena, zašto si onda objavljivao tutorial kad si mogao sutra kad to sve središ? Ne bi ništa izgubio.
|~SaNy~| wrote on July 27, 2013, 9:17 pm:
koristim:
* MySQL plugin R7
* Copyright (c) 2008-2011, BlueG
* MySQL plugin R7
* Copyright (c) 2008-2011, BlueG
To je već poprliÄno stara verzija, trenutno najnoviji je R31.
Enforcer
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP DoprinosNovi Član
90 / 100 XP
Početnik(0)
222
Postovi:
46
Teme:
Pridružio se:Nov. 2012
Underboss
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP DoprinosNovi Član
240 / 250 XP
Početnik(0)
624
Postovi:
109
Teme:
Pridružio se:Mar. 2012
29. Jul 2013.
Blaeks wrote on July 28, 2013, 2:19 am:
imas gresaka, a i tutorijal podrazumeva objasnjenje svake linije, ali neka ostane tu, pa ti popravi kada budes mogao, i ako budes mogao
Shot Caller
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP DoprinosNovi Član
90 / 100 XP
Početnik(0)
142
Postovi:
52
Teme:
Pridružio se:Dec. 2011
10. Avg. 2013.
zasto ja imam u skripti
#define SQL_HOST "localhost" //WAMP host, ako je externi, promjenite ovo
#define SQL_USER "root" //WAMP User
#define SQL_PASS "" //WAMP PW(default - nema PWa)
#define SQL_DB "sa-mp" //Databazu koju ste kreirali(kasnije u koracima)
a ovjde je #define MYSQL a meni SQL
#define SQL_HOST "localhost" //WAMP host, ako je externi, promjenite ovo
#define SQL_USER "root" //WAMP User
#define SQL_PASS "" //WAMP PW(default - nema PWa)
#define SQL_DB "sa-mp" //Databazu koju ste kreirali(kasnije u koracima)
a ovjde je #define MYSQL a meni SQL
Godfather
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP DoprinosNovi Član
241 / 250 XP
Početnik(0)
2,248
Postovi:
66
Teme:
Pridružio se:Mar. 2010
25. Jul 2014.
BC | Bobo wrote on July 25, 2014, 11:13 am:
tutorijal je ukraden od Sistem32 on je napravio taj tutorijal samo si izmjenuo neke sitnice i to je to! 0 objasnjeno!
refreÅ¡ao si temu skoro godinu dana, molio bih te da proÄitaÅ¡ pravila foruma i svih podforuma , lock.
Morate biti prijavljeni da biste odgovorili na ovu temu.
Prijava