Dobar dan! danas cu se potruditi da vas naucim napraviti Reg/Log sistem!
Prvo dodajte vazane includove koji vam je vazan za spremanje a mi cemo koristit dini i dudb!
#include
#include Takodjer Na vrh skripte dodajte:
enum pInfo
{
pAdminLevel,
pCash,
pScore,
}Sto znaci enum i ostalo unutar njega pCash,pScore i pAdminLevel? to vam znaci da ce to sve spremati kada napravimo cijeli reg log sistem!
Pa nastavimo...Dodajte ispod toga varijablu
new PlayerInfo;Kod mene vam to izgleda ovako
enum pInfo
{
pAdminLevel,
pCash,
pScore,
}
new PlayerInfo;Pa onda pod OnPlayerConnect dodajte:
gPlayerLogged = 0;
new name, file;
GetPlayerName(playerid, name, sizeof(name));
format(file, sizeof(file), SERVER_USER_FILE, name);
if (!dini_Exists(file))
{
ShowPlayerDialog(playerid, 1, DIALOG_STYLE_INPUT, "{F50247}Niste registrovani", "{22D8E6}Dobrodosli, niste registrovani. Molim registrujte se da bi mogli igrati", "Registruj", "Odustani");
}
if(fexist(file))
{
ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "{F50247}Vi ste registrovani", "{22D8E6}Dobrodosli, vi ste registrovani. Logirajte se", "Logiraj", "Odustani");
}gPlayerLogged = 0; //On vam provjerava dali je igrac logovan ako je igrac logovan biti ce vam gPlayerLogged = 1;
Zbog gPlayerLogged = 0; morate napraviti novu varijablu na vrhu skripte!
new gPlayerLogged;Kada ste napravili novu varijablu dodajte pod OnPlayerDisconnect:
new name, file;
GetPlayerName(playerid, name, sizeof(name));
format(file, sizeof(file), SERVER_USER_FILE, name);
if(gPlayerLogged == 1)
{
dini_IntSet(file, "Level", PlayerInfo);
dini_IntSet(file, "Novac", PlayerInfo);
dini_IntSet(file, "AdminLevel",PlayerInfo);
}
gPlayerLogged = 0;Ista vam je tu stvar sto sam vam pricao znaci dudb vam je tu potreban jer se preko njega sprema! znaci vidite...if(gPlayerLogged == 1),on provjerava dali je igrac ulogovan i onda u vasem scriptfilesu u korisnicima dok napravimo tu mapu ce spremati tamo igraceve stvari
Sada dodajte pod OnDialogResponse:
if (dialogid == 1)
{
new name, file, string;
GetPlayerName(playerid, name, sizeof(name));
format(file, sizeof(file), SERVER_USER_FILE, name);
if(!response) return Kick(playerid);
if (!strlen(inputtext)) return
ShowPlayerDialog(playerid, 1, DIALOG_STYLE_INPUT, "{F50247}Niste registrovani", "{22D8E6}Dobrodosli, niste registrovani. Molim registrujte se da bi mogli igrati", "Registruj", "Odustani");
dini_Create(file);
dini_IntSet(file, "Lozinka", udb_hash(inputtext));
dini_IntSet(file, "AdminLevel",PlayerInfo = 0);
dini_IntSet(file, "Novci",PlayerInfo = 500);
dini_IntSet(file, "Level",PlayerInfo = 0);
format(string, 128, "Registrirali ste se %s s sifrom %s, automatski ste logirani.", name, inputtext);
SendClientMessage(playerid, COLOR_YELLOW, string);
gPlayerLogged = 1;
}
if (dialogid == 2)
{
new name, file;
GetPlayerName(playerid, name, sizeof(name));
format(file, sizeof(file), SERVER_USER_FILE, name);
if(!response) return Kick(playerid);
if (!strlen(inputtext)) return ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "{F50247}Vi ste registrovani", "{22D8E6}Dobrodosli, vi ste registrovani. Logirajte se", "Logiraj", "Odustani");
new tmp;
tmp = dini_Int(file, "Lozinka");
if(udb_hash(inputtext) != tmp) {
SendClientMessage(playerid, COLOR_RED, "Pogresna lozinka.");
ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "{F50247}Vi ste registrovani", "{22D8E6}Dobrodosli, vi ste registrovani. Logirajte se", "Logiraj", "Odustani");
}
else
{
gPlayerLogged = 1;
PlayerInfo = dini_Int(file, "AdminLevel");
SetPlayerScore(playerid, PlayerInfo);
GivePlayerMoney(playerid, dini_Int(file, "Novci")-GetPlayerMoney(playerid));
SendClientMessage(playerid,COLOR_RED, "Logirani ste!!");
}
}Tu vam je sve napravljeno vecinom da sprema novce i sve sto ste napravili u enumu!
Sada napravite novi define koji ce spremati vase igraceve podatke! i boje ako zelite da vam ostanu kakve jesu!
#define SERVER_USER_FILE "igraci/%s.ini"
#define COLOR_YELLOW 0xDABB3EAA
#define COLOR_RED 0xAA3333AAZnaci SERVER_USER_FILE to vam je path spremanja kao neznam kako da se izrazim ali tako je nekako!
Morate napraviti novu mapu u vasem scriptfilesu "igraci",ali pazite da dobro napisete jer vam nece spremati podatke ako ne napisete tocno ime mape!
Pa eto nadam se da ce vam nesto od ovoga pomoci momci! ovo mi je prvi tutorial vise je neki Reg/log sistem!
