Peršokti į turinį
  • ŽAIDIMAI
  • , ŽAIDIMAI
  • ŽAIDIMAI

[ Pamoka ] Registracija su GUI


Skipperis

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 4412 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Recommended Posts

Sveiki, taigi parašau pamoka kaip sukurti GUI Registracija. Pamoka kuriau ne aš, aš tik šiek tiek pakoregavau ir parašiau paaiškinimus :)

PRADĖSIM

1. Uzincludinam include's:

#include < dini >
#include < dudb >
#include < dutils >

Jeigu neturite siu includes galite atsisiusti is cia: http://www.4shared.com/file/2_rKmzgk/dini2C_dudb2C_dutils.html?

2. Susikuriam kintamaji kuris tikrins ar zaidejas prisijunges (si koda dekite po visais #include):

new bool:Logged[MAX_PLAYERS];

3. Susirandam OnPlayerConnect(playerid) calback'a ir parasom koda kuris tikrins ar zaidejas yra uzsiregistraves:

Logged[playerid] = false; //Kai zaidejas ateina i servei padaro kad jis nebutu prisijunges

Toliau dedam prie to pacio callback'o:

new file[128], vardas[128];
GetPlayerName(playerid, vardas, 128);
format(file,128,"Users/%s.ini",vardas);
if(!dini_Exists(file))
{
ShowPlayerDialog(playerid,9876,DIALOG_STYLE_INPUT,"Registracija","ai norite zaisti serveryje turite uzsiregistruoti.\nIveskite slaptazodi kuri naudosite prisijungimui:","Registruotis","Iseiti");
}
else if(dini_Exists(file))
{ 
ShowPlayerDialog(playerid,9877,DIALOG_STYLE_INPUT,"Prisijungimas","Jai norite zaisti serveryje turite prisijungti\nIveskite savo slaptazodi:","Prisijungti","Iseiti");
}

Šio kodo paaiskinimas:

new file[128], vardas[128];  Susikuriam string kintamuosius.

GetPlayerName(playerid, vardas, 128);  Gaunam zaidejo varda.

format(file,128,"Users/%s.ini",vardas);  Sukuriam string'a, "Users/%s.ini" sia eilute pakeiskite i savo direktorija kur saugomi zaideju failai.

if(!dini_Exists(file)) Jai zaidejo failas neegzistuoja jam ismes registracijos GUI lentele.

{
ShowPlayerDialog(playerid,9876,DIALOG_STYLE_INPUT,"Registracija","Jai norite zaisti serveryje turite uzsiregistruoti.\nIveskite slaptazodi kuri naudosite prisijungimui:","Registruotis","Iseiti");
} GUI lentele su registracija

else if(dini_Exists(file)) // Jai zaidejo failas egzistuoja tada jam ismes Prisijungimo GUI lentele

{
ShowPlayerDialog(playerid,9877,DIALOG_STYLE_INPUT,"Prisijungimas","Jai norite zaisti serveryje turite prisijungti\nIveskite savo slaptazodi:","Prisijungti","Iseiti");
} GUI lentele su prisijungimu.

4. Dabar susirandam OnPlayerDialogResponse(...) calback'a ir sukuriam registracijos scripta:

if(dialogid == 9876)
{
if(response)
{
new file[128], vardas[128];
GetPlayerName(playerid,vardas,128);
format(file,128,"Users/%s,ini",vardas);
dini_Create(file);
dini_IntSet(file,"Slaptazodis",udb_hash(inputtext));
Logged[playerid] = true;
SendClientMessage(playerid,0xFFFFFFFF,"Registracija sekminga, prie serverio jus prijungtas automatiskai");
}
else if(!response)
{
Kick(playerid);
}
return 1;
}

Sio kodo paaiskinimai:

if(dialogid == 9876)  jai dialog id lygus 9876.

if(response)  Mygtukas "Registruotis"

new file[128], vardas[128]; Susikuriam string kintamuosius.

GetPlayerName(playerid,vardas,128); Gaunam zaidejo varda.

format(file,128,"Users/%s,ini",vardas); zaideju failu direktorija pakeiciam is savo.

dini_Create(file);  Sukuriam faila.

dini_IntSet(file,"Slaptazodis",udb_hash(inputtext));  Uzkoduojame zaidejo slaptazodi.Kai zaidejas uzsiregistruos i faila bus irasytas tik slaptazodzio eilute, bet galit prisirasyti ir savo.

Logged[playerid] = true;  Zaidejas prisijunges.

SendClientMessage(playerid,0xFFFFFFFF,"Registracija sekminga, prie serverio jus prijungtas automatiskai");  Atsiuncia zaidejui zinute kad jis uzsiregistravo.

else if(!response)  Jai zaidejas paspaude mygtuka Iseiti

Kick(playerid);  Ismetam zaideja is serverio

5. Na ir liko sukurti prisijungimo scripta:

if(dialogid == 9877)
{
if(response)
{
new file[128], vardas[128], pass[256];
GetPlayerName(playerid, vardas, 128);
format(file,128,"Users/%s.ini",vardas);
pass = dini_Get(file,"Slaptazodis");
if(udb_hash(inputtext) != strval(pass))
{
ShowPlayerDialog(playerid,9877,DIALOG_STYLE_INPUT,"Prisijungimas","Slptazodis neteisingas.\nIveskite savo slaptazodi:","Prisijungti","Iseiti");
}
else
{
Logged[playerid] = true;
SendClientMessage(playerid,0xFFFFFFFF,"Jus sekmingai prisijungete, geros dienos");
}
}
else if(!response)
{
Kick(playerid);
}
return 1;
}

Šio kodo paaiskinimai:

if(dialogid == 9877)  jai dialog id lygus 9877.

if(response)  jai paspaude prisijungti.

new file[128], vardas[128], pass[256];  Kintamieji

GetPlayerName(playerid, vardas, 128);  gaunam zaidejo varda

format(file,128,"Users/%s.ini",vardas);  Direktorija irasom savo

pass = dini_Get(file,"Slaptazodis"); Gaunam zaidejo tikra slaptazodi.

if(udb_hash(inputtext) != strval(pass))  Jai zaidejo irasytas slaptazodis neatitinka tikram slaptazodziui.

ShowPlayerDialog(playerid,9877,DIALOG_STYLE_INPUT,"Prisijungimas","Slptazodis neteisingas.\nIveskite
savo slaptazodi:","Prisijungti","Iseiti"); GUI lentele su slaptazodzio irasimo vieta

else  Jai slaptazodis yra teisingas.

Logged[playerid] = true;  Zaidejas prisijunges

SendClientMessage(playerid,0xFFFFFFFF,"Jus sekmingai prisijungete, geros dienos"); Atsiuncia zaidejui zinute jeigu jis prisijunge

else if(!response)  Jai paspaude iseiti
{
Kick(playerid);  Ismes is serverio.
}
return 1;
}

Na viskas registracija su GUI baigta :lok:

Nepamiršk +R3P

Nuoroda į komentarą
Dalintis per kitą puslapį

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 4412 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Svečias
Ši tema yra užrakinta.
  • Šiame puslapyje naršo:   0 nariai

    • Nėra registruotų narių peržiūrinčių šį forumą.

Skelbimai


×
×
  • Sukurti naują...