LoginPlayer(playerid,pass[])
{
new
pName[MAX_PLAYER_NAME],
query[256],
string[256];
GetPlayerName(playerid,pName,sizeof(pName));
MySQLCheck();
mysql_real_escape_string(pName,pName);
mysql_real_escape_string(pass,pass);
format(query,sizeof(query),"SELECT * FROM `"TABLENAME"` WHERE Username = '%s' AND Password = md5('%s') LIMIT 1",pName,pass);
mysql_query(query);
mysql_store_result();
if(mysql_num_rows() == 1)
{
new pName1[MAX_PLAYER_NAME];
GetPlayerName(playerid,pName1,sizeof(pName1));
format(query,sizeof(query),"SELECT * FROM `"TABLENAME"` WHERE Username = '%s' LIMIT 1", pName1);
mysql_query(query);
new datafield[10],row[100];
mysql_fetch_row(row);
mysql_fetch_field_row(datafield,"Money");
PlayerInfo[playerid][Money] = strval(datafield);
mysql_store_result();
mysql_fetch_field_row(datafield,"Admin");
PlayerInfo[playerid][Admin] = strval(datafield);
mysql_store_result();
mysql_fetch_field_row(datafield,"VIP");
PlayerInfo[playerid][VIP] = strval(datafield);
mysql_store_result();
GivePlayerMoney(playerid,PlayerInfo[playerid][Money]);
mysql_free_result();
LoggedIn[playerid] = true;
format(string,sizeof(string)," You are now logged in!");
SendClientMessage(playerid,NOTICE,string);
return 1;
}
else
{
Wrongattempt[playerid] += 1;
printf("Bad log in attempt by %s (Total attempts: %d)",pName,Wrongattempt[playerid]);
if(Wrongattempt[playerid] >= 3)
{
mysql_free_result();
return KickEx(playerid, "System", "3 Bad Login Attempts");
}
mysql_free_result();
SendClientMessage(playerid,ERROR," Wrong Password!");
}
return 1;
}
new pName1[MAX_PLAYER_NAME];
GetPlayerName(playerid,pName1,sizeof(pName1));
format(query,sizeof(query),"SELECT * FROM `"TABLENAME"` WHERE Username = '%s' LIMIT 1", pName1);
mysql_query(query);
new datafield[10],row[100];
mysql_fetch_row(row);
mysql_fetch_field_row(datafield,"Money");
PlayerInfo[playerid][Money] = strval(datafield);
mysql_store_result();
mysql_fetch_field_row(datafield,"Admin");
PlayerInfo[playerid][Admin] = strval(datafield);
mysql_store_result();
mysql_fetch_field_row(datafield,"VIP");
PlayerInfo[playerid][VIP] = strval(datafield);
mysql_store_result();
GivePlayerMoney(playerid,PlayerInfo[playerid][Money]);
mysql_free_result();
if(mysql_num_rows() != 0)
{
new pName1[MAX_PLAYER_NAME];
GetPlayerName(playerid,pName1,sizeof(pName1));
format(query,sizeof(query),"SELECT * FROM `/*tablename*/` WHERE Username = '%s' LIMIT 1", pName1);
mysql_query(query);
mysql_store_result();
new resultline[512],player[X][32];
mysql_fetch_field_row(resultline,"|");
split(resultline, player, '|');
PlayerInfo[playerid][Money] = strval(player[0]);
PlayerInfo[playerid][Admin] = strval(player[1]);
//other variables
mysql_free_result();
LoggedIn[playerid] = true;
SendClientMessage(playerid,NOTICE," You are now logged in!");
return 1;
}
Originally Posted by Wazza!
Thanks a lot for the help, and the fast reply, after optimising the code you sent me to suit my script I have found I have a different version of strtok, mine has only 2 paramteres, and I can't seem to find the download with one for 3.
|
Originally Posted by $ЂЯĢ
Quote:
![]() Use split (as I have shown) or sscanf, a lot easier, better and faster. |