-
Sziasztok.Nagynehezen rávettem magam egy regisztrációs rendszer készítésére,igaz egy videóból néztem (Tudvari) de akkor is sokat kellett írni :D .
De van a rendszerrel egy kis gond.Ugye Dini-vel csináltam (ahogy a videóban)és egy Karakterek nevű mappába kellene mentenie az adatokat.Létrehoztam egy Karakterek nevű mappát,felmentem a szerveremre és működött minden rendesen ugye regisztráció után kiadta a bejelentkező dialogot és oda beírtam az előbb mgeadott jelszót,de ilyenkor mindig kiadja újra meg újra a bejelentkező dialogot.Ezt szerintem azért csinálja mert a dini nem hoz létre semmilyen filet és a szerver nem tudja honnan kiolvasni a létrehozott file-t.Ha ebben tud segíteni valaki azt megköszönném.Ha kéritek a kódját azt is leírom.
-
ha bemásolod a kódot, hamarabb megmondjuk, hogy mi a baja.
-
Ebben a részben van a dini_Create
format(file,sizeof(file),\"/Karakterek/%s.ini\",nev);
if(fexist(!file))
{
dini_Create(file);
dini_IntSet(file, \"Jelszó\",udb_hash(inputtext));
dini_IntSet(file, \"Pénz\", 0);
format(string,sizeof string,\"Üdv %s! \\nKérjük regisztrálj! \\nÍrd be a jelszavadat\",nev);
ShowPlayerDialog(playerid,regisztracio,DIALOG_STYLE_INPUT,\"Regisztráció\",string,\"Regisztráció\",\"Kilép\");
}
-
először is...ezt csak te gondolod, hogy a create-tel van a hiba, de nem....
másodszor is.....hogy mented lea jelszót, ha még csak akkor rakod ki a dialogot?
harmadszor pedig az egész kód kell, legalábbis minden, ami a regisztrációhoz kötődik, mert ebből nem lesz senki okosabb...
-
Okés,leírom az egész kódot:
#define regisztracio 3
#define bejelentkezes 4
new nev[MAX_PLAYER_NAME];
new Belepve[MAX_PLAYERS];
enum JatekosAdatok
public OnPlayerRequestClass(playerid, classid)
{
SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
new file[256];
GetPlayerName(playerid,nev,sizeof(nev));
format(file,sizeof(file),\"/Karakterek/%s.ini\",nev);
new string[256];
if(!fexist(file))
{
format(string,sizeof string, \"Üdv %s! \\nKérjük regisztrálj! \\n\\nÍrd be a jelszavadat!\",nev);
ShowPlayerDialog(playerid,regisztracio,DIALOG_STYLE_INPUT,\"Regisztráció\",string,\"Regisztráció\",\"Kilép\");
}
if(fexist(file))
{
format(string,sizeof string, \"Üdv %s! \\nKérjük jelentkezz be! \\n\\nÍrd be a jelszavadat!\",nev);
ShowPlayerDialog(playerid,regisztracio,DIALOG_STYLE_INPUT,\"Bejelentkezés\",string,\"Bejelentkez\",\"Kilép\");
}
return 1;
}
if(dialogid == regisztracio)
{
if(response)
{
new file[128];
new string[128];
GetPlayerName(playerid,nev,sizeof(nev));
if(strlen(inputtext) == 0)
{
format(string,sizeof string,\"Üdv %s! \\nKérjük regisztrálj! \\nÍrd be a jelszavadat\",nev);
ShowPlayerDialog(playerid,regisztracio,DIALOG_STYLE_INPUT,\"Regisztráció\",string,\"Regisztráció\",\"Kilép\");
return 0;
}
format(file,sizeof(file),\"/Karakterek/%s.ini\",nev);
if(fexist(!file))
{
dini_Create(file);
dini_IntSet(file, \"Jelszó\",udb_hash(inputtext));
dini_IntSet(file, \"Pénz\", 0);
format(string,sizeof string,\"Üdv %s! \\nKérjük regisztrálj! \\nÍrd be a jelszavadat\",nev);
ShowPlayerDialog(playerid,regisztracio,DIALOG_STYLE_INPUT,\"Regisztráció\",string,\"Regisztráció\",\"Kilép\");
}
else
{
format(string,sizeof string, \"Üdv %s! \\nKérjük jelentkezz be! \\n\\nÍrd be a jelszavadat!\",nev);
ShowPlayerDialog(playerid,regisztracio,DIALOG_STYLE_INPUT,\"Bejelentkezés\",string,\"Bejelentkez\",\"Kilép\");
}
}
}
if(dialogid == bejelentkezes)
{
if(response)
{
new file[128];
new string[128];
GetPlayerName(playerid,nev,sizeof(nev));
if(strlen(inputtext) == 0)
{
format(string,sizeof string, \"Üdv %s! \\nKérjük jelentkezz be! \\n\\nÍrd be a jelszavadat!\",nev);
ShowPlayerDialog(playerid,regisztracio,DIALOG_STYLE_INPUT,\"Bejelentkezés\",string,\"Bejelentkez\",\"Kilép\");
return 0;
}
format(file,sizeof(file),\"/Karakterek/%s.ini\",nev);
if(fexist(file))
{
new jelszo = dini_Int(file, \"Jelszo\");
if(udb_hash(inputtext) == jelszo)
{
Belepve[playerid] = 1;
ResetPlayerMoney(playerid);
JatekosInfo[playerid][Penz] = dini_Int(file,\"Penz\");
}
else
{
SendClientMessage(playerid,-1,\"Rossz jelszó\");
Kick(playerid);
}
}
}
else
{
Kick(playerid);
}
}
return 1;
}
Ez az összes regisztrációval kapcsolatos dolog.
-
public OnPlayerRequestClass(playerid, classid)
{
SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
new file[256];
GetPlayerName(playerid,nev,sizeof(nev));
format(file,sizeof(file),\"/Karakterek/%s.ini\",nev);
new string[256];
if(!fexist(file))
{
format(string,sizeof string, \"Üdv %s! \\nKérjük regisztrálj! \\n\\nÍrd be a jelszavadat!\",nev);
ShowPlayerDialog(playerid,regisztracio,DIALOG_STYLE_INPUT,\"Regisztráció\",string,\"Regisztráció\",\"Kilép\");
}
else
{
format(string,sizeof string, \"Üdv %s! \\nKérjük jelentkezz be! \\n\\nÍrd be a jelszavadat!\",nev);
ShowPlayerDialog(playerid,bejelentkezes,DIALOG_STYLE_INPUT,\"Bejelentkezés\",string,\"Bejelentkez\",\"Kilép\");
}
return 1;
}
if(dialogid == regisztracio)
{
if(response)
{
new file[128];
new string[128];
GetPlayerName(playerid,nev,sizeof(nev));
if(strlen(inputtext) == 0)
{
format(string,sizeof string,\"Üdv %s! \\nKérjük regisztrálj! \\nÍrd be a jelszavadat\",nev);
ShowPlayerDialog(playerid,regisztracio,DIALOG_STYLE_INPUT,\"Regisztráció\",string,\"Regisztráció\",\"Kilép\");
return 0;
}
format(file,sizeof(file),\"/Karakterek/%s.ini\",nev);
if(fexist(file))
{
dini_Create(file);
dini_IntSet(file, \"Jelszó\",udb_hash(inputtext));
dini_IntSet(file, \"Pénz\", 0);
format(string,sizeof string,\"Üdv %s! \\nKérjük regisztrálj! \\nÍrd be a jelszavadat\",nev);
ShowPlayerDialog(playerid,regisztracio,DIALOG_STYLE_INPUT,\"Regisztráció\",string,\"Regisztráció\",\"Kilép\");
}
else
{
format(string,sizeof string, \"Üdv %s! \\nKérjük jelentkezz be! \\n\\nÍrd be a jelszavadat!\",nev);
ShowPlayerDialog(playerid,regisztracio,DIALOG_STYLE_INPUT,\"Bejelentkezés\",string,\"Bejelentkez\",\"Kilép\");
}
}
}
if(dialogid == bejelentkezes)
{
if(response)
{
new file[128];
new string[128];
GetPlayerName(playerid,nev,sizeof(nev));
if(strlen(inputtext) == 0)
{
format(string,sizeof string, \"Üdv %s! \\nKérjük jelentkezz be! \\n\\nÍrd be a jelszavadat!\",nev);
ShowPlayerDialog(playerid,regisztracio,DIALOG_STYLE_INPUT,\"Bejelentkezés\",string,\"Bejelentkez\",\"Kilép\");
return 0;
}
format(file,sizeof(file),\"/Karakterek/%s.ini\",nev);
if(fexist(file))
{
new jelszo = dini_Int(file, \"Jelszo\");
if(udb_hash(inputtext) == jelszo)
{
Belepve[playerid] = 1;
ResetPlayerMoney(playerid);
JatekosInfo[playerid][Penz] = dini_Int(file,\"Penz\");
}
else
{
SendClientMessage(playerid,-1,\"Rossz jelszó\");
Kick(playerid);
}
}
}
else
{
Kick(playerid);
}
}
return 1;
}
-
Ahogy te írtad rayle befagy a pawnom :(
-
Valószínűleg azért mert az OnDialogResponse alatti részt(2. kód) nem jól másoltad be a pawnoba.
Az egész OnDialogResponse alatti részt másold ide.
-
Na sikerült bemásolnom a tiedet rayle rendesen lett 9 warning azokat kijavítottam,de még mindig ugyanaz a probléma :(
-
annyi a hiba, hogy a bejelentkező dialognak is a \"regisztracio\" dialogot adtál meg...szóval ne váloztass rajta semmit, csak az onplayerrequestclass alatt írd át a második dialognál bejelentkezes-re...
így működnie kell....
-
Oké átírom
Dupla hozzászólás automatikusan összefûzve. ( 2014. október 27. - 14:15:03 )
Átírtam és most jó :) de a karakterek mappába még mindig nem hoz létre fájlokat a regisztrációkor :(
-
if(dialogid == regisztracio)
{
if(response)
{
new file[128];
new string[128];
GetPlayerName(playerid,nev,sizeof(nev));
if(strlen(inputtext) == 0)
{
format(string,sizeof string,\"Üdv %s! \\nKérjük regisztrálj! \\nÍrd be a jelszavadat\",nev);
ShowPlayerDialog(playerid,regisztracio,DIALOG_STYLE_INPUT,\"Regisztráció\",string,\"Regisztráció\",\"Kilép\");
return 0;
}
format(file,sizeof(file),\"/Karakterek/%s.ini\",nev);
if(!fexist(file))
{
dini_Create(file);
dini_IntSet(file, \"Jelszó\",udb_hash(inputtext));
dini_IntSet(file, \"Pénz\", 0);
format(string,sizeof string,\"Üdv %s! \\nKérjük regisztrálj! \\nÍrd be a jelszavadat\",nev);
ShowPlayerDialog(playerid,regisztracio,DIALOG_STYLE_INPUT,\"Regisztráció\",string,\"Regisztráció\",\"Kilép\");
}
else
{
format(string,sizeof string, \"Üdv %s! \\nKérjük jelentkezz be! \\n\\nÍrd be a jelszavadat!\",nev);
ShowPlayerDialog(playerid,bejelentkezes,DIALOG_STYLE_INPUT,\"Bejelentkezés\",string,\"Bejelentkez\",\"Kilép\");
}
}
}
-
Köszi rayle :) Mostmár jó :) :D