Problem in SQLite....
#1

OK... so i have a problem again.
This code:-

Код:
new DBResult:res,str1[3];
format(query,sizeof(query),"SELECT * FROM `USERS` WHERE `Name` = '%s' AND `Password` = '%s'",DB_Escape(name),DB_Escape(hashpass));
	res = db_query(users,query);
	if(db_num_rows(res))
	{
		db_get_field_assoc(res,"Level",str1,3);
                pinfo[playerid][level] = strval(str1);
        }
It aint a problem in aompiling but it gives problem at runtime... i printed
Код:
pinfo[playerid][level]
. It just has random values in it. what is wrong? :-/
Reply
#2

Umm maybe show how you define level! Not saving...
Reply
#3

Код:
enum info
{
level
}
new pinfo[MAX_PLAYERS][info];
Reply
#4

Okay this is ok but when you are giving level up? Like level++
Reply
#5

i didnt make that... i just printed the value of level on console... the values in level are random
Reply
#6

Did you saved it like 0? playerinfo or what was your thing there PlayerInfo[playerid][level] = 0;
Reply
#7

here is the register and login thing...

Код:
stock RegisterPlayer(playerid, password[])
{
	new query[500],name[50],Float:x,Float:y,Float:z,rand,hashpass[200];
 	WP_Hash(hashpass,sizeof(hashpass),password);
	GetPlayerName(playerid,name,sizeof(name));
	rand = randomEx(1000,9999);
	GetPlayerPos(playerid,x,y,z);
    format(query,sizeof(query),"INSERT INTO `USERS`(`Name`,`Password`,`LoggedIn`,`Level`,`Admin`,`VIP`,`Money`,`Score`,`Death`,`Number`) VALUES('%s','%s','1','0','0','0','30000','0','0','%d')",DB_Escape(name),DB_Escape(hashpass),rand);
    db_query(users,query);
	pinfo[playerid][level] = 0;
    pinfo[playerid][admin] = 0;
    pinfo[playerid][vip] = 0;
    pinfo[playerid][money] = 30000;
    pinfo[playerid][score] = 0;
    pinfo[playerid][death] = 0;
    pinfo[playerid][number] = rand;
    SendClientMessage(playerid,-1,"Succesfully Registered! ENJOY!!");
    SetTimerEx("Refresh", 5000, true, "i", playerid);
	return 1;
}

stock LoginPlayer(playerid, password[])
{
    new query[500],name[50],hashpass[200],DBResult:res,str1[3],str2[3],str3[3],str4[3],str5[3],str6[3],str7[3];
    WP_Hash(hashpass,sizeof(hashpass),password);
	GetPlayerName(playerid,name,sizeof(name));
	format(query,sizeof(query),"UPDATE `USERS` SET `LoggedIn` = '1' WHERE `Name` = '%s'",DB_Escape(name),DB_Escape(hashpass));
	db_query(users,query);
	format(query,sizeof(query),"SELECT * FROM `USERS` WHERE `Name` = '%s' AND `Password` = '%s'",DB_Escape(name),DB_Escape(hashpass));
	res = db_query(users,query);
	if(db_num_rows(res))
	{
		db_get_field_assoc(res,"Level",str1,3);
		db_get_field_assoc(res,"Admin",str2,3);
		db_get_field_assoc(res,"VIP",str3,3);
		db_get_field_assoc(res,"Money",str4,9);
		db_get_field_assoc(res,"Score",str5,3);
		db_get_field_assoc(res,"Death",str6,3);
		db_get_field_assoc(res,"Number",str7,3);
		pinfo[playerid][level] = strval(str1);
		pinfo[playerid][admin] = strval(str2);
		pinfo[playerid][vip] = strval(str3);
		pinfo[playerid][money] = strval(str4);
		pinfo[playerid][score] = strval(str5);
		pinfo[playerid][death] = strval(str6);
		pinfo[playerid][number] = strval(str7);
		printf("///////////LOGIN//////////");
        printf("%d",pinfo[playerid][admin]);
	    printf("%d",pinfo[playerid][vip]);
	    printf("%d",pinfo[playerid][money]);
	    printf("%d",pinfo[playerid][score]);
		SetPlayerMoney(playerid,pinfo[playerid][money]);
		SetPlayerScore(playerid,pinfo[playerid][score]);
		SendClientFormattedMessage(playerid,-1,"Successfully logged in!");
	}
	else
	{
		SendClientMessage(playerid,-1,"Incorrect password! Please retry!!");
		ShowPlayerDialog(playerid,LOGINDIALOG, DIALOG_STYLE_PASSWORD, "Login", "Enter your password below:", "Login!", "Kick!");
	}
	db_free_result(res);
	SetTimerEx("Refresh", 5000, true, "i", playerid);
	return 1;
}
Reply
#8

it could maybe mix with that rand! Btw how much value is in there? (like how much numbers)
Reply
#9

at registration its all proper... when i login, it jst goes crazy and somehow gets random numbers. all fields have same random number
Reply
#10

You see what I think is that str7,3 == the same as str1,3 and could be in trouble... Thats my thought... And it could maybe do the same effect... To loging in... Or maybe somewhere else it is set up as rand level!
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)