[TuT] Register & Log In system u dialogu

Započeo tRonic.pWn, Januar 11, 2013, 23:53:11 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 2 gostiju pregledaju ovu temu.

Tutorial: Register & Login system
Dali je tutorial preuzet sa drugog foruma ili ste ga vi napravili: napravio

Tutorial

Prvi korak | Definiranje

Definirajte server fajl (Gdje ce vam se spremati) - Ovako
#define SERVER_USER_FILE "igraci/%s.ini"

Pod definiranje includova dodajte:
#include <dini> 
#include <dudb>


U slucaju da dobijete warning samo ispod zalijepite ovo:
#pragma unused ret_memcpy

Idemo na iduci korak | Pamcenje

Gdje stavljate enume dodajte:
enum pInfo 

    pAdminLevel, 
    pCash, 
    pScore, 

new PlayerInfo[MAX_PLAYERS][pInfo];


Kada ste to uradili ispod new PlayerInfo[MAX_PLAYERS][pInfo]Dodajte new gPlayerLogged[MAX_PLAYERS];

Treći korak | Dodavanje dialoga

Pod OnPlayerConnectDodajte:
gPlayerLogged[playerid] = 0; 
    new name[MAX_PLAYER_NAME], file[256]; 
    GetPlayerName(playerid, name, sizeof(name)); 
    format(file, sizeof(file), SERVER_USER_FILE, name); 
    if (!dini_Exists(file)) 
    { 
        ShowPlayerDialog(playerid, 1, DIALOG_STYLE_INPUT, "Registracija", "Dobrodosli, vi ne posjedujete account\nMolimo upisite vasu sifru za daljnu proceduru.", "Regisracija", "Izlaz"); 
    } 
    if(fexist(file)) 
    { 
        ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "Log In", "Dobrodosli, lijepo vas je ponovo vidjeti.\nVi posjedujete account molimo prijavite se.", "Login", "Izlaz"); 
    } 
   return 1; 
}


Cetvrti korak | Spremanje

Kao sto sam rekao spremanje je u dini... pod OnPlayerDisconnect Stavite sledeće:



new file[256], name[24];
    GetPlayerName(playerid, name, 24);
format(file,sizeof(file),"igraci/%s.ini",name);
if(dini_Exists(file))
{
dini_Int(file, "AdminLevel",PlayerInfo[playerid][pAdminLevel]); 
dini_Int(file, "Novci",PlayerInfo[playerid][pCash]); 
dini_Int(file, "Level",PlayerInfo[playerid][pScore]);
dini_Close(file);


Kada ste uradili , prelazimo na najlakse | OnDialogResponse

Pod OnDialogResponseDodajete:

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) 

if (dialogid == 1) 
    { 
        new name[MAX_PLAYER_NAME], file[256], string[128]; 
        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, "Registracija", "Dobrodosli, vi ne posjedujete account\nMolimo upisite vasu sifru za daljnu proceduru.", "Registracija", "Izlaz"); 
        dini_Create(file); 
        dini_IntSet(file, "Lozinka", udb_hash(inputtext)); 
        dini_IntSet(file, "AdminLevel",PlayerInfo[playerid][pAdminLevel] = 0); 
        dini_IntSet(file, "Novci",PlayerInfo[playerid][pCash] = 500); 
        dini_IntSet(file, "Level",PlayerInfo[playerid][pScore] = 0); 
        format(string, 128, "Postovani %s registrovali ste se sa sifrom %s, automatski ste logirani.", name, inputtext); 
        SendClientMessage(playerid, -1, string); 
        gPlayerLogged[playerid] = 1; 
    } 
   if (dialogid == 2) 
    { 
        new name[MAX_PLAYER_NAME], file[256], string[128]; 
        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, "Log In", "Dobrodosli, lijepo vas je ponovo vidjeti.\nVi posjedujete account molimo prijavite 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, "Login", "Pogresna lozinka.UpiÅ¡ite tačnu lozinku da bi nastavili dalje.", "Login", "Izadji"); 
        } 
        else 
        { 
            gPlayerLogged[playerid] = 1; 
            PlayerInfo[playerid][pAdminLevel] = dini_Int(file, "AdminLevel"); 
            SetPlayerScore(playerid, PlayerInfo[playerid][pScore]); 
            GivePlayerMoney(playerid, dini_Int(file, "Novci")-GetPlayerMoney(playerid)); 
            SendClientMessage(playerid,-1, "Logirani ste!!"); 
        } 
    } 
   return 1; 
}


Pozdrav tRonic.pwn
Poslednja Izmena: Januar 12, 2013, 00:05:05 PRE PODNE od tRonic.pWn
Y United Europe - RolePlay 50% Finish....





nemoj da koristis dini, mnogo je spor,  jedan od najsporijih sistem spremanja u datoteke

napravicu i u y_ini .. i btw zasto nisi moderator  ???
Y United Europe - RolePlay 50% Finish....





koristi y_ini jako je brzi od dinia sve u svemu koristan tut pohvale
Pravim RP,DM,TDM,STUNT, Freeroam modove od 0 za pare, nacini placanja : Paypal ili banka

Citat: tRonic.pWn poslato Januar 11, 2013, 23:56:29 POSLE PODNE
napravicu i u y_ini .. i btw zasto nisi moderator  ???
ja sam moderator samo u jednom PDFu xd

Citat: Blaeks poslato Januar 11, 2013, 23:58:12 POSLE PODNE
Citat: tRonic.pWn poslato Januar 11, 2013, 23:56:29 POSLE PODNE
napravicu i u y_ini .. i btw zasto nisi moderator  ???
ja sam moderator samo u jednom PDFu xd

Aha aha :D napravicu ja i u y_ini :D napravicu jos par nekih xd :D <3
Y United Europe - RolePlay 50% Finish....





Lock. Dini je prestar i ne isplati se koristiti.
Btw. uopće ti ni si radio ovaj register login jer svaka fs register login s dini ima oavj system. ;)