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

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 4931 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

Pirmas žingsnis:

#include < dini >

#include < dudb >

#include < dutils >Jeigu jūs neturite šių includes - atsisiųskite iš čia: http://www.4shared.c...2C_dutils.html?

Antras žingsnis

Susikuriame kintamajį, kuris tikrins ar žaidėjas prisijungęs (šį kodą dėkite po visais #include):

new bool:Logged[MAX_PLAYERS];

Trečias žingsnis

Susirandame OnPlayerConnect(playerid) calback'ą ir parašom kodą, kuris tikrins ar žaidėjas yra užsiregistravęs:

Logged[playerid] = false; //Kai žaidėjas ateina į serverį padaro kad nebūtų prisijunges.

Toliau dedame prie to pačio 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","Norint žaisti serveryje turite užsiregistruoti.\nĮveskite slaptažodį, kurį naudosite prisijungimui:","Registruotis","Išeiti");

}

else if(dini_Exists(file))

{

ShowPlayerDialog(playerid,9877,DIALOG_STYLE_INPUT,"Prisijungimas","Norint žaisti serveryje - turite prisijungti!\nĮveskite savo slaptažodį:","Prisijungti","Išeiti");

}

Šio kodo paaiškinimas:

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

GetPlayerName(playerid, vardas, 128); Gauname žaidėjo varda.

format(file,128,"Users/%s.ini",vardas); Sukuriame string'ą, "Users/%s.ini" šią eilutę pakeiskite į savo direktoriją kur saugomi žaidėjų failai.

if(!dini_Exists(file)) Jei žaidėjo failas neegzistuoja jam išmes registracijos GUI lentelę.

{

ShowPlayerDialog(playerid,9876,DIALOG_STYLE_INPUT,"Registracija","Norint žaisti serveryje turite užsiregistruoti.\nĮveskite slaptažodį kurį naudosite prisijungimui:","Registruotis","Išeiti");

} GUI lentele su registracija

else if(dini_Exists(file)) // Jai žaidėjo failas egzistuoja tada jam išmes Prisijungimo GUI lentele

{

ShowPlayerDialog(playerid,9877,DIALOG_STYLE_INPUT,"Prisijungimas","Norint žaisti serveryje - turite prisijungti!\nĮveskite savo slaptažodį:","Prisijungti","Išeiti");

} GUI lentelė su prisijungimu.

Ketvirtas žingsnis

Dabar susirandame OnPlayerDialogResponse(...) callbacką ir susikuriame žaidimo skriptą

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,"Slaptažodis",udb_hash(inputtext));

Logged[playerid] = true;

SendClientMessage(playerid,0xFFFFFFFF,"Registracija sėkminga, jūs automatiškai prijungiamas prie serverio");

}

else if(!response)

{

Kick(playerid);

}

return 1;

}

Šio kodo paaiškinimai:

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

if(response) Mygtukas "Registruotis"

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

GetPlayerName(playerid,vardas,128); Gauname žaidėjo vardą.

format(file,128,"Users/%s,ini",vardas); žaidėjų failų direktoriją pakeičiam į savo

dini_Create(file); Sukuriame failą.

dini_IntSet(file,"Slaptažodis",udb_hash(inputtext)); Užkoduojame žaidėjo slaptažodį.Kai žaidėjas užsiregistruos į failą bus įrašyta tik slaptažodzio eilutė, bet galit prisirašyti ir savo.

Logged[playerid] = true; Žaidėjas prisijungęs.

SendClientMessage(playerid,0xFFFFFFFF,"Registracija sėkminga, jūs automatiškai prijungiamas prie serverio"); Atsiunčia žaidėjui žinutę,kai jis užsiregistruoja

else if(!response) Jei žaidėjas paspaudė mygtuką "Išeiti"

Kick(playerid); Išmetame žaidėją iš serverio

Penktas žingsnis

Na ir belieka sukurti prisijungimo skriptą

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,"Slaptažodis");

if(udb_hash(inputtext) != strval(pass))

{

ShowPlayerDialog(playerid,9877,DIALOG_STYLE_INPUT,"Prisijungimas","Slaptažodis neteisingas.\nĮveskite savo slaptažodį:","Prisijungti","Išeiti");

}

else

{

Logged[playerid] = true;

SendClientMessage(playerid,0xFFFFFFFF,"Jūs sėkmingai prisijungėte, gero žaidimo serveryje");

}

}

else if(!response)

{

Kick(playerid);

}

return 1;

}

Šio kodo paaiškinimai:

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

if(response) jei paspaudė prisijungti.

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

GetPlayerName(playerid, vardas, 128); gauname žaidėjo vardą

format(file,128,"Users/%s.ini",vardas); įrašome savo direktoriją

pass = dini_Get(file,"Slaptažodis"); gauname tikrą žaidėjo slaptažodį

if(udb_hash(inputtext) != strval(pass)) Jei žaidėjo įrašytas slaptažodis neatitinka tikrąjį slaptažodį

ShowPlayerDialog(playerid,9877,DIALOG_STYLE_INPUT,"Prisijungimas","Slaptažodis neteisingas.\nĮveskite

savo slaptažodį:","Prisijungti","Išeiti"); GUI lentele su slaptažodžio įrašymo vieta

else Jeigu slaptažodis yra teisingas.

Logged[playerid] = true; Žaidėjas prisijungęs

SendClientMessage(playerid,0xFFFFFFFF,"Jūs sėkmingai prisijungėte, gero žaidimo serveryje"); Atsiunčia žaidėjui žinutę, jei jis prisijungė

else if(!response) Jei paspaudė įšeiti

{

Kick(playerid); Kick'ina iš serverio.

}

return 1;

}

Tikiuosi parašiau suprantamai.

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 4931 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ą...