Pa da zapocmemo 😄
Trebate 2 include Dini i Dudb
Ovo stavljate pod definiranje includa, a include stavljate u Pawno/Include folder
#include
#include
Kada idete compile vjerovatno cete dobiti warning, ali nista strasno, popravit cemo to ovako
#pragma unused ret_memcpy
Ako ste to uspili savrsen ste skripter 🙂
Idemo na iduci korak
Sada treba dodati pamcenje Novaca, levela, admina i ostalog.
enum pInfo
{
pAdminLevel,
pCash,
pScore,
}
new PlayerInfo;
Tako ce vam se zapamtiti Admin, Novac i Level.
Definirajte ovo new gPlayerLogged;
Pa onda ovo #define SERVER_USER_FILE "igraci/%s.ini"
E sada idemo na mao tezi korak
Ispod OnPlayerConnect morate staviti za konektiranje (logiranje) na server
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, "Niste registrirani", "Dobrodosli, niste registrirani. Molim registrirajte se za daljnju igru", "Register", "Leave");
}
if(fexist(file))
{
ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "Vi ste registrirani", "Dobrodosli, vi ste registrirani. Logirajte se", "Login", "Leave");
}
return 1;
}
E sada pod OnPlayerDisconnect stavljamo ovo, sto nam daje kada se odlogujemo da nam zapamti sattistike
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;
I najlakse sada je Dialog 🙂
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
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, "Niste registrirani", "Dobrodosli, niste registrirani. Molim registrirajte se za daljnju igru", "Register", "Leave");
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, 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, 2, DIALOG_STYLE_INPUT, "Vi ste registrirani", "Dobrodosli, vi ste registrirani. Logirajte se", "Login", "Leave");
new tmp;
tmp = dini_Int(file, "Lozinka");
if(udb_hash(inputtext) != tmp) {
SendClientMessage(playerid, COLOR_RED, "Pogresna lozinka.");
ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "Vi ste registrirani", "Dobrodosli, vi ste registrirani. Logirajte se", "Login", "Leave");
}
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!!");
}
}
return 1;
}
Tutorijal napravio Vilko. Evo neke slikice:
http://slike.hr/slike/samp001_67407.png.html
http://slike.hr/slike/samp002_98169.png.html
http://slike.hr/slike/samp003_7a7f2.png.html
http://slike.hr/slike/samp004_eaeb0.png.html
http://slike.hr/slike/samp005_145e1.png.html

