-
Üdv, az lenne a gondom hogy Rupert adminrendszerébõl kiszedtem a reg/logint most csak az a gond h nem akarja betölteni a kivánt adatokat.
kód:
if(dialogid == 1)
{
if(!response) return Kick(playerid);
if(GetPVarInt(playerid, \"LoggedIn\"))
{
SendClientMessage(playerid, COLOR_RED, \"Már be vagy lépve!\");
return 1;
}
if(isnull(inputtext))
{
SendClientMessage(playerid, COLOR_RED, \"Be kell írnod a jelszód!\");
ShowPlayerDialog(playerid,1, DIALOG_STYLE_INPUT, \"Bejelentkezés..\", \"Kérlek, írd be a jelszavad!\", \"OK\", \"Mégse\");
return 1;
}
mysql_real_escape_string(inputtext, tmp); // \"Átvisszzük a karaktereket MySQL formába, hogy nemhogy hiba lesz\"... ( lol, ez aztán kurva értelmes :P )
format(query, sizeof(query), \"SELECT * FROM `players` WHERE `name` = \'%s\' AND `pass` = \'%s\'\", pName(playerid), tmp);
mysql_query(query);
mysql_store_result();
if(mysql_num_rows() != 1)
{
SendClientMessage(playerid, COLOR_RED, \"HIBA: Rossz jelszó.\");
ShowPlayerDialog(playerid, 1, DIALOG_STYLE_INPUT, \"Bejelentkezés..\", \"Kérlek, írd be a jelszavad!\", \"OK\", \"Mégse\");
mysql_free_result();
return 1;
}
else
{
new MyRegID;
mysql_fetch_row(line);
mysql_free_result();
sscanf(line, \"p<|>d{s[24]s[16]s[30]s[24]s[24]d}\", MyRegID);
SetPVarInt(playerid, \"RegID\", MyRegID);
}
// Az IP-t beállítjuk a jelenlegi IP-re, hogy az autologin menjen. A GetPlayerIp OnPlayerDisconnect-nél nem mûködik ( szarsággal tér vissza )
GetPlayerIp(playerid, ip2, sizeof(ip2));
format(query, sizeof(query), \"UPDATE `players` SET `ip` = \'%s\' WHERE `reg_id` = %d\", ip2, GetPVarInt(playerid, \"RegID\"));
mysql_query(query);
new RegDate[24], Laston[24];
format(query, sizeof(query), \"SELECT `reg_date`, `laston` FROM `players` WHERE `reg_id` = %d\", GetPVarInt(playerid, \"RegID\")); // Kiválasztjuk a reg_date és a laston mezõt
mysql_query(query);
mysql_store_result();
mysql_fetch_row(line); // Beleírjuk a line karakterláncba
mysql_free_result();
sscanf(line, \"p<|>s[24]s[24]\", RegDate, Laston);
format(query,sizeof(query),\"SELECT `money`, `kills`, `deaths`,`warns`,`admin`,,`wanted`,`score`, FROM `players` WHERE `name` = \'%s\'\",pName(playerid));
mysql_query(query);
mysql_store_result();
new Data[40];
if(mysql_fetch_row_format(Data, \"|\"))
{
sscanf(Data, \"p<|>iiiiiii\",GivePlayerMoney(playerid,pInfo[playerid][Money]),pInfo[playerid][Kills],pInfo[playerid][Deaths],pInfo[playerid][warns],pInfo[playerid][aLevel],SetPlayerWantedLevel(playerid,pInfo[playerid][wanted]),SetPlayerScore(playerid,pInfo[playerid][score]));
}
logged[playerid] = 1;
SendClientMessage(playerid,COLOR_GREEN,\"Sikeresen bejelentkeztél!\");
}
-
MySQL szervert futtatod?
-
igen , kilépésnél menti rendesen, csak amikor bejelentkezek akkor nem tölti be ezeket : pénz,pont,körözés
-
MIÉRT sscanf-ban adtál neki körözést, pontot + pénzt?? Azt majd akkor kell, amikor lespawnol...
Kijavítottam:
if(dialogid == 1)
{
if(!response) return Kick(playerid);
if(GetPVarInt(playerid, \"LoggedIn\"))
{
SendClientMessage(playerid, COLOR_RED, \"Már be vagy lépve!\");
return 1;
}
if(isnull(inputtext))
{
SendClientMessage(playerid, COLOR_RED, \"Be kell írnod a jelszód!\");
ShowPlayerDialog(playerid,1, DIALOG_STYLE_INPUT, \"Bejelentkezés..\", \"Kérlek, írd be a jelszavad!\", \"OK\", \"Mégse\");
return 1;
}
mysql_real_escape_string(inputtext, tmp); // \"Átvisszzük a karaktereket MySQL formába, hogy nemhogy hiba lesz\"... ( lol, ez aztán k*rv* értelmes :P )
format(query, sizeof(query), \"SELECT * FROM `players` WHERE `name` = \'%s\' AND `pass` = \'%s\'\", pName(playerid), tmp);
mysql_query(query);
mysql_store_result();
if(mysql_num_rows() != 1)
{
SendClientMessage(playerid, COLOR_RED, \"HIBA: Rossz jelszó.\");
ShowPlayerDialog(playerid, 1, DIALOG_STYLE_INPUT, \"Bejelentkezés..\", \"Kérlek, írd be a jelszavad!\", \"OK\", \"Mégse\");
mysql_free_result();
return 1;
}
else
{
new MyRegID;
mysql_fetch_row(line);
mysql_free_result();
sscanf(line, \"p<|>d{s[24]s[16]s[30]s[24]s[24]d}\", MyRegID);
SetPVarInt(playerid, \"RegID\", MyRegID);
}
// Az IP-t beállítjuk a jelenlegi IP-re, hogy az autologin menjen. A GetPlayerIp OnPlayerDisconnect-nél nem mûködik ( sz*rsággal tér vissza )
GetPlayerIp(playerid, ip2, sizeof(ip2));
format(query, sizeof(query), \"UPDATE `players` SET `ip` = \'%s\' WHERE `reg_id` = %d\", ip2, GetPVarInt(playerid, \"RegID\"));
mysql_query(query);
new RegDate[24], Laston[24];
format(query, sizeof(query), \"SELECT `reg_date`, `laston` FROM `players` WHERE `reg_id` = %d\", GetPVarInt(playerid, \"RegID\")); // Kiválasztjuk a reg_date és a laston mezõt
mysql_query(query);
mysql_store_result();
mysql_fetch_row(line); // Beleírjuk a line karakterláncba
mysql_free_result();
sscanf(line, \"p<|>s[24]s[24]\", RegDate, Laston);
format(query,sizeof(query),\"SELECT `money`, `kills`, `deaths`,`warns`,`admin`,`wanted`,`score`, FROM `players` WHERE `name` = \'%s\'\",pName(playerid));
mysql_query(query);
mysql_store_result();
new Data[40];
if(mysql_fetch_row_format(Data, \"|\"))
{
sscanf(Data, \"p<|>iiiiiii\",pInfo[playerid][Money],pInfo[playerid][Kills],pInfo[playerid][Deaths],pInfo[playerid][warns],pInfo[playerid][aLevel],pInfo[playerid][wanted],pInfo[playerid][score]);
}
logged[playerid] = 1;
SendClientMessage(playerid,COLOR_GREEN,\"Sikeresen bejelentkeztél!\");
}
-
még mindig nem tölti be :s , am nem lehet h a regnél el kurtam vlmit ?
if(dialogid == 0)
{
if(!response) return ShowPlayerDialog(playerid, 0, DIALOG_STYLE_INPUT, \"Regisztráció..\", \"Kérlek, írd be a leendõ jelszavad!\", \"OK\", \"Mégse\");
if(isnull(inputtext))
{
SendClientMessage(playerid, COLOR_RED, \"Be kell írnod a jelszód!\");
ShowPlayerDialog(playerid, 0, DIALOG_STYLE_INPUT, \"Regisztráció..\", \"Kérlek, írd be a leendõ jelszavad!\", \"OK\", \"Mégse\");
return 1;
}
if(strlen(inputtext) < 3 || strlen(inputtext) > 20)
{
SendClientMessage(playerid,-1, \"Rossz jelszó! | Hosszúság: 3 - 20\");
ShowPlayerDialog(playerid, 0, DIALOG_STYLE_INPUT, \"Regisztráció..\", \"Kérlek, írd be a leendõ jelszavad!\", \"OK\", \"Mégse\");
return 1;
}
for(new i; i < strlen(inputtext); i++)
{
if(inputtext == \'|\') return SendClientMessage(playerid, COLOR_RED, \"Ez a karakter: {\" #XCOLOR_BLUE \"}| {\" #XCOLOR_RED \"}nem engedélyezett!\");
ShowPlayerDialog(playerid, 0, DIALOG_STYLE_INPUT, \"Regisztráció..\", \"Kérlek, írd be a leendõ jelszavad!\", \"OK\", \"Mégse\");
}
format(query, sizeof(query), \"SELECT `reg_id` FROM `players` WHERE `name` = \'%s\'\", pName(playerid));
mysql_query(query);
mysql_store_result();
if(mysql_num_rows() != 0)
{
SendClientMessage(playerid, COLOR_RED, \"Probléma történt a mySQL-lel!\");
SendClientMessage(playerid, COLOR_RED, \"Kérlek jelentsd a problémát az adminoknak.\");
mysql_free_result();
Kick(playerid);
return 1;
}
mysql_free_result();
new year,month,day,hour,minute,second;
getdate(year, month, day);
gettime(hour, minute, second);
GetPlayerIp(playerid, ip2, sizeof(ip2));
mysql_real_escape_string(inputtext, tmp); // Ez arra van, hogy ha speciális karatereket tartalmaz, akk azt átcsinálja az SQL-nek érthetõre
// A jeszavak nicsenek titkosítva..
format(query, sizeof(query), \"INSERT INTO `players`(reg_id, name, ip, pass, reg_date, laston) VALUES(0, \'%s\', \'%s\', \'%s\', \'%02d.%02d.%02d/%02d.%02d.%02d\', \'%02d.%02d.%02d/%02d.%02d.%02d\')\", pName(playerid), ip2, tmp, year, month, day, hour, minute, second, year, month, day, hour, minute, second);
mysql_query(query);
SetPVarInt(playerid, \"RegID\", mysql_insert_id()); // Játékos Regisztrációs ID-jét beállítuk arra, ameik sorba írtunk elõbb ( INSERT INTO )
pInfo[playerid][Kills] = 0;
pInfo[playerid][Deaths] = 0;
pInfo[playerid][warns] = 0;
SetPlayerScore(playerid,GetPlayerScore(playerid)+10);
SetPlayerWantedLevel(playerid,pInfo[playerid][wanted]);
SendClientMessage(playerid,COLOR_GREEN,\"Sikeresen regisztráltál!\");
ShowPlayerDialog(playerid, 1, DIALOG_STYLE_INPUT, \"Bejelentkezés..\", \"Kérlek, írd be a jelszavad!\", \"OK\", \"Mégse\");
}
:shurg:
-
Nézd meg a mysql_log ba hogy a betöltõ query helyes e?
-
ott mindenütt succesfully-t ír
-
format(query,sizeof(query),\"SELECT `money`, `kills`, `deaths`,`warns`,`admin`,,`wanted`,`score`, FROM `players` WHERE `name` = \'%s\'\",pName(playerid));
admin után két vesszõ van, és mivel a score az utolsó mezõ amit kiválasztunk, nem kell utána vesszõ. Próbáld meg így:
format(query,sizeof(query),\"SELECT `money`, `kills`, `deaths`,`warns`,`admin`,`wanted`,`score` FROM `players` WHERE `name` = \'%s\'\",pName(playerid));
-
most betölti rendesen,köszönöm a segitséget!