Sziasztok!
Az lenne a problémám, a mai nap a sokadik, hogy csinálgattam a regisztrációs / bejelentkezős rendszert.
Azt akartam hogyha bejelentkezem akkor utána tudjak skin választani, de most ha rákattintok a jobb/bal nyilra akkor újra behozza a Log Dialogot.
Kérlek segitsetek.
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
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érlek regisztrálja be \\nAdj meg egy tetszőleges jelszót!\",Nev);
ShowPlayerDialog(playerid, regisztracio, DIALOG_STYLE_INPUT, \"Regisztráció\", string, \"Regisztráció\", \"Kilépés\");
return 0;
}
format(file,sizeof(file), \"/Karakterek/%s.ini\", Nev);
if(!fexist(file))
{
dini_Create(file);
dini_IntSet(file, \"Antibug\", 0);
dini_IntSet(file, \"Jelszó\", udb_hash(inputtext));
dini_IntSet(file, \"Szint\", 0);
dini_IntSet(file, \"Pénz\", 0);
dini_IntSet(file, \"Skin\", 0);
dini_IntSet(file, \"Admin\", 0);
dini_IntSet(file, \"Kickelve\", 0);
dini_IntSet(file, \"Bannolva\", 0);
format(string,sizeof(string), \"\\n\\nÜdv %s ! \\nMár regisztrálva vagy! \\n\\nKérlek jelentkezz be!\",Nev);
ShowPlayerDialog(playerid, bejelentkezes, DIALOG_STYLE_INPUT, \"Bejelentkezés\", string, \"Belépés\", \"Kilépés\");
PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
printf(\"%s regisztrált a szerverre\",Nev);
}
else
{
}
}
}
if(dialogid == bejelentkezes)
{
if(response ||!response)
{
new file[128];
GetPlayerName(playerid, Nev, sizeof(Nev));
format(file,sizeof(file), \"/Karakterek/%s.ini\", Nev);
if(fexist(file))
{
new Jelszo = dini_Int(file, \"Jelszó\");
if(udb_hash(inputtext) == Jelszo)
{
Belepve[playerid] = 1;
ResetPlayerMoney(playerid);
JatekosInfo[playerid][Penz] = dini_Int(file, \"Pénz\");
JatekosInfo[playerid][szint] = dini_Int(file, \"Szint\");
JatekosInfo[playerid][Admin] = dini_Int(file, \"Admin\");
JatekosInfo[playerid][skin] = dini_Int(file, \"Skin\");
JatekosInfo[playerid][Kickek] = dini_Int(file, \"Kickelve\");
JatekosInfo[playerid][bannolva] = dini_Int(file, \"Bannolva\");
SetPlayerSkin(playerid, JatekosInfo[playerid][skin]);
SetPlayerScore(playerid, JatekosInfo[playerid][szint]);
SendClientMessage(playerid, FEHER,\"{EEB917}[szerver] :{44ED37} Sikeresen bejelentkeztél!\");
}
else
{
SendClientMessage(playerid, HIBA, \"Hiba : Hibás jelszó!\");
printf(\"%s bejelentkezése sikertelen volt\", Nev);
Kick(playerid);
}
}
}
}
return 1;
}
public OnPlayerRequestClass(playerid, classid)
{
// teszt 1
SetPlayerPos(playerid, 1706.5212,1870.6898,10.8203);
SetPlayerCameraPos(playerid, 1705.5841,1883.2266,12.2178);
SetPlayerCameraLookAt(playerid, 1705.5841,1883.2266,12.2178);
AddPlayerClass(25,1713.7472,1884.1943,10.8203,77.6184,0,0,0,0,0,0);
// teszt 2
SetPlayerPos(playerid, 1727.6830,2303.9587,10.8203);
SetPlayerCameraPos(playerid, 1727.1962,2293.4346,11.7849);
SetPlayerCameraLookAt(playerid, 1727.1962,2293.4346,11.7849);
AddPlayerClass(26,1733.5282,2295.6287,10.8203,93.1099,0,0,0,0,0,0);
////////////////////////////////////////////////////////////////
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érlek regisztrálja be \\nAdj meg egy tetszőleges jelszót!\",Nev);
ShowPlayerDialog(playerid, regisztracio, DIALOG_STYLE_INPUT, \"Regisztráció\", string, \"Regisztráció\", \"Kilépés\");
}
if(fexist(file))
{
format(string,sizeof(string), \"\\n\\nÜdv %s ! \\nMár regisztrálva vagy! \\n\\nKérlek jelentkezz be!\",Nev);
ShowPlayerDialog(playerid, bejelentkezes, DIALOG_STYLE_INPUT, \"Bejelentkezés\", string, \"Belépés\", \"Kilépés\");
}
return 1;
}
Köszi a válaszokat!
OnplayerConnect alá tedd és akkor elvileg működni fog
pl ezt ne a skinválasztóhoz
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érlek regisztrálja be \\nAdj meg egy tetszőleges jelszót!\",Nev);
ShowPlayerDialog(playerid, regisztracio, DIALOG_STYLE_INPUT, \"Regisztráció\", string, \"Regisztráció\", \"Kilépés\");
}
if(fexist(file))
{
format(string,sizeof(string), \"\\n\\nÜdv %s ! \\nMár regisztrálva vagy! \\n\\nKérlek jelentkezz be!\",Nev);
ShowPlayerDialog(playerid, bejelentkezes, DIALOG_STYLE_INPUT, \"Bejelentkezés\", string, \"Belépés\", \"Kilépés\");
}
return 1;
DANKE MÁ FREND I LOVE YOU, :D Nagyon köszi
De lenne még egy gond, vagy elképzelés, azt,hogytudom megcsinálni hogy pl. vannak a GSF-esek az a 4 skin, azoknak a Karakter választó helyül a groovon legyen, és a ballasosoknak azozknak meg Idlewoodba.
Tehát, 4 addplayerclass van és annak van egy skinválasztó pos,cam,camlook, és van még 4 addplayerclass (ballasok) és azoknak is legyen egy skinválasztó csak más helyen, nemtudom érthető ezt kicsit hülyén fogalmaztam meg remélem értitek!
Ha lehet gTeam nélkül.