Peršokti į turinį
  • ┼ŻAIDIMAI
  • , ┼ŻAIDIMAI
  • ┼ŻAIDIMAI

[ Pamoka ] Registracija su GUI


Skipperis

┼ái tema yra neaktyvi. Paskutinis prane┼íimas ┼íioje temoje buvo prie┼í 3985 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┼í 3985 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─ů.

├Ś
├Ś
  • Sukurti nauj─ů...