Szerző Téma: Regisztrációs rendszer probléma [dini]  (Megtekintve 483 alkalommal)

Regisztrációs rendszer probléma [dini]
« Dátum: 2016. augusztus 17. - 12:12:08 »
0 Show voters
Sziasztok. A fórumon találtam egy számomra pöpec kis regisztrációs rendszert azonban semmit nem ment le csak a jelszót. Egyenlőre itt csak az életkorra és a nemre gondolok. Ha valaki tudna segíteni azt megköszönném!
 
#include <a_samp>
#include <dini>
#include <zcmd>
#include <sscanf2>
#include <streamer>
#pragma unused ret_memcpy
new szoveg1[128];
new Fajl[256];
enum pAdat
{
        pPenz,
        pAdmin,
        pNem,
        pKor,
        pSkin,
        pLeader,
        pTag,
        pRang,
        pReg,
        Float:X,
        Float:Y,
        Float:Z,
        Float:Angle
}
new JatekosInfo[MAX_PLAYERS][pAdat];
#define DIALOG_REGISTER 1
#define DIALOG_LOGIN 2
#define DIALOG_AGE 3
#define DIALOG_SEX 4
#define COLOR_LIGHTBLUE 0x00ccffAA
#define ZOLD 0x43e85fAA
#define FEHER 0xffffffAA
public OnPlayerConnect(playerid)
{
SetSpawnInfo(playerid,0,26,2269.4287,-75.1134,26.7724,178.8719,0,0,0,0,0,0);
SpawnPlayer(playerid);
    format(Fajl,sizeof(Fajl),\"/Jatekosok/%s.ini\",Neve(playerid));
    format(szoveg1,sizeof(szoveg1),\"Üdvözöllek!\");
    if(fexist(Fajl))
    {
        ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,szoveg1,\"Írd be a jelszavad:\",\"Belépek\",\"Kilépek\");
    }
    else
    {
        ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,szoveg1,\"Adj meg egy jelszót:\",\"Regisztrálok\",\"Kilépek\");
    }
    return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
new Float:x,Float:y,Float:z;
    GetPlayerPos(playerid,x,y,z);
    JatekosInfo[playerid][X] = x;
    JatekosInfo[playerid][Y] = y;
    JatekosInfo[playerid][Z] = z;
    JatekosInfo[playerid][pSkin] = GetPlayerSkin(playerid);
    GetPlayerFacingAngle(playerid,JatekosInfo[playerid][Angle]);
    format(Fajl,sizeof(Fajl),\"/Jatekosok/%s.ini\",Neve(playerid));
    dini_IntSet(Fajl,\"Penz\",JatekosInfo[playerid][pPenz]);
    dini_IntSet(Fajl,\"Admin\",JatekosInfo[playerid][pAdmin]);
    dini_IntSet(Fajl,\"Nem\",JatekosInfo[playerid][pNem]);
    dini_IntSet(Fajl,\"Kor\",JatekosInfo[playerid][pKor]);
    dini_IntSet(Fajl,\"Skin\",JatekosInfo[playerid][pSkin]);
    dini_IntSet(Fajl,\"Leader\",JatekosInfo[playerid][pLeader]);
    dini_IntSet(Fajl,\"Tag\",JatekosInfo[playerid][pTag]);
    dini_IntSet(Fajl,\"Rang\",JatekosInfo[playerid][pRang]);
    dini_FloatSet(Fajl,\"Latoszog\",JatekosInfo[playerid][Angle]);
    dini_FloatSet(Fajl,\"X\",Float:JatekosInfo[playerid][X]);
    dini_FloatSet(Fajl,\"Y\",Float:JatekosInfo[playerid][Y]);
    dini_FloatSet(Fajl,\"Z\",Float:JatekosInfo[playerid][Z]);
    return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
        format(Fajl,sizeof(Fajl),\"/Jatekosok/%s.ini\",Neve(playerid));
        if(dialogid == DIALOG_REGISTER)
        {
            if(response)
            {
                        dini_Create(Fajl);
                        dini_Set(Fajl,\"Jelszo\",inputtext);
                        dini_IntSet(Fajl,\"Penz\",25000);
                        dini_IntSet(Fajl,\"Admin\",0);
                        dini_IntSet(Fajl,\"Nem\",0);
                        dini_IntSet(Fajl,\"Kor\",0);
                        dini_IntSet(Fajl,\"Skin\",0);
                        dini_IntSet(Fajl,\"Leader\",0);
                        dini_IntSet(Fajl,\"Tag\",0);
                        dini_IntSet(Fajl,\"Rang\",0);
                        SpawnPlayer(playerid);
                        ShowPlayerDialog(playerid,DIALOG_SEX,DIALOG_STYLE_LIST,\"Karakter neme:\",\"Férfi\\nNő\",\"Folytatom\",\"Kilépek\");
            }
            else
            {
                dini_Remove(Fajl);
                Kick(playerid);
            }
        }
        if(dialogid == DIALOG_SEX)
        {
            if(response)
            {
                        if(listitem == 0)
                        {
                                dini_IntSet(Fajl,\"Nem\",1);
                                SendClientMessage(playerid,-1,\"(( A karaktered neme beállítva a következőre: Férfi ))\");
                                SetPlayerSkin(playerid,60);
                                ShowPlayerDialog(playerid,DIALOG_AGE,DIALOG_STYLE_INPUT,\"Karakter életkora:\",\"Az életkor értéke 18-60-ig terjedhet.\",\"Folytatom\",\"Kilépek\");
                        }
                        if(listitem == 1)
                        {
                                dini_IntSet(Fajl,\"Nem\",2);
                                SendClientMessage(playerid,COLOR_LIGHTBLUE,\"Lány lettél!\");
                                SetPlayerSkin(playerid,233);
                                ShowPlayerDialog(playerid,DIALOG_AGE,DIALOG_STYLE_INPUT,\"Karakter életkora:\",\"Az életkor értéke 18-60-ig terjedhet.\",\"Folytatom\",\"Kilépek\");
                        }
            }
            else
            {
                dini_Remove(Fajl);
                Kick(playerid);
            }
        }
        if(dialogid == DIALOG_AGE)
        {
            if(!response)
        {
                Kick(playerid);
        }
           else
        {
                    if(strlen(inputtext))
                    {
                        new age = strval(inputtext);
                        if(age > 60 || age < 18)
                                {
                    ShowPlayerDialog(playerid,DIALOG_AGE,DIALOG_STYLE_INPUT,\"Karakter életkora:\",\"Hibás értéket adtál meg!\",\"Folytatom\",\"Kilépek\");
                                }
                                else
                                {
                                        dini_IntSet(Fajl,\"Kor\",age);
                                        format(szoveg1,sizeof(szoveg1),\"%d éves lettél!\",age);
                                        SendClientMessage(playerid,ZOLD,szoveg1);
                                        SendClientMessage(playerid,COLOR_LIGHTBLUE,\"Sikeresen regisztráltál!\");
                                }
                        }
                        else
                        {
                            return 0;
                        }
                }
        }
        if(dialogid == DIALOG_LOGIN)
        {
            if(response)
            {
                        new jelszo[200];
                        format(jelszo, sizeof(jelszo), \"%s\", dini_Get(Fajl, \"Jelszo\"));
                        if(strcmp(inputtext, jelszo) == 0)
                        {
                                JatekosInfo[playerid][pPenz] = dini_Int(Fajl, \"Penz\");
                                JatekosInfo[playerid][pAdmin] = dini_Int(Fajl, \"Admin\");
                                JatekosInfo[playerid][pNem] = dini_Int(Fajl, \"Nem\");
                                JatekosInfo[playerid][pKor] = dini_Int(Fajl, \"Kor\");
                                JatekosInfo[playerid][pSkin] = dini_Int(Fajl,\"Skin\");
                                JatekosInfo[playerid][pLeader] = dini_Int(Fajl, \"Leader\");
                                JatekosInfo[playerid][pTag] = dini_Int(Fajl, \"Tag\");
                                JatekosInfo[playerid][pRang] = dini_Int(Fajl, \"Rang\");
                                JatekosInfo[playerid][Angle] = dini_Int(Fajl, \"Latoszog\");
                                JatekosInfo[playerid][X] = dini_Int(Fajl, \"X\");
                                JatekosInfo[playerid][Y] = dini_Int(Fajl, \"Y\");
                                JatekosInfo[playerid][Z] = dini_Int(Fajl, \"Z\");
                                SetPlayerSkin(playerid,JatekosInfo[playerid][pSkin]);
                                SetPlayerColor(playerid,FEHER);
                                SetSpawnInfo(playerid,0,JatekosInfo[playerid][pSkin],JatekosInfo[playerid][X],JatekosInfo[playerid][Y],JatekosInfo[playerid][Z],JatekosInfo[playerid][Angle],0,0,0,0,0,0);
                                SpawnPlayer(playerid);
                                GivePlayerMoney(playerid,JatekosInfo[playerid][pPenz]);
                                SendClientMessage(playerid,COLOR_LIGHTBLUE,\"Sikeresen Bejelentkeztél!\");
                        }
                        else
                        {
                                ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,\"Bejelentkezés:\",\"Hibás jelszót adtál meg!\\nPróbáld újra:\",\"Folytatom\",\"Kilépek\");
                        }
            }
            else
            {
                Kick(playerid);
            }
        }
        return 1;
}
stock Neve(playerid)
{
        new Nev[MAX_PLAYER_NAME];
        GetPlayerName(playerid,Nev,sizeof(Nev));
        return Nev;
}
« Utoljára szerkesztve: 2016. augusztus 17. - 12:16:12 írta lewis_samp »

Nem elérhető whadez

  • 719
  • DEFEATER
    • Profil megtekintése
Regisztrációs rendszer probléma [dini]
« Válasz #1 Dátum: 2016. augusztus 17. - 12:55:55 »
0 Show voters
Szia.
Az a gond a nem választásnál (is), hogy egyből akarod menteni a dinibe az \"oszlop\" értékét, a változót pedig nem setteled, így az alapértéket kapja meg a (0)-át OnPlayerDisconnect-nél.
Hozz létre egy új függvényt, például
stock KarakterMentes(playerid)
{
// megnyitod azt az akármilyen dinit
// az oszlopokat menteted
// return 1;
}
és a nemválasztásnál a változó értékét állítod, és aztán lefuttatod a KarakterMentes függvényt, és minden menő.
Viszont ajánlom figyelmedbe a MYSQL-t mert a dini nem fog semmi jóhoz vezetni.  :wave:
Ha valami nem világos írj és segítek.

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal