25.08.2012, 07:33
OK, so here it is
pawn Код:
dcmd_login(playerid,params[])
{
if (PlayerInfo[playerid][LoggedIn] == 1) return SendClientMessage(playerid,red,"ACCOUNT: You are already logged in.");
if (!udb_Exists(PlayerName2(playerid))) return SendClientMessage(playerid,red,"ACCOUNT: Account doesn't exist, please use '/register [password]'.");
if (strlen(params)==0) return SendClientMessage(playerid,red,"ACCOUNT: Correct usage: '/login [password]'");
if (udb_CheckLogin(PlayerName2(playerid),params))
{
new file[256], tmp3[100], string[128];
format(file,sizeof(file),"/ladmin/users/%s.sav",udb_encode(PlayerName2(playerid)) );
GetPlayerIp(playerid,tmp3,100);
dini_Set(file,"ip",tmp3);
LoginPlayer(playerid);
PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
//________________
//Assuming you store Player Kills as pInfo[playerid][Kills] and so on
new string[256];
GetPlayerIp(playerid,pInfo[playerid][IP],20);
if(pInfo[playerid][Deaths]!=0) format(string,sizeof(string),"Deaths:%d | Kills:%d | Ratio:%0.2f | Money:%d$ | IP:%s",pInfo[playerid][Deaths],pInfo[playerid][Kills],(pInfo[playerid][Kills]/pInfo[playerid][Deaths]),pInfo[playerid][Money],pInfo[playerid][IP]);
else format(string,sizeof(string),"Deaths:%d | Kills:%d | Ratio:N/A | Money:%d$ | IP:%s",pInfo[playerid][Deaths],pInfo[playerid][Kills],pInfo[playerid][Money],pInfo[playerid][IP]);
TextDrawSetString(Textdraw0,string);
TextDrawShowForPlayer(playerid,Textdraw0);
//________________
if(PlayerInfo[playerid][Level] > 0) {
format(string,sizeof(string),"ACCOUNT: Successfully Logged In. (Level %d)", PlayerInfo[playerid][Level] );
return SendClientMessage(playerid,green,string);
} else return SendClientMessage(playerid,green,"ACCOUNT: Successfully Logged In");
}
else {
PlayerInfo[playerid][FailLogin]++;
printf("LOGIN: %s has failed to login, Wrong password (%s) Attempt (%d)", PlayerName2(playerid), params, PlayerInfo[playerid][FailLogin] );
if(PlayerInfo[playerid][FailLogin] == MAX_FAIL_LOGINS)
{
new string[128]; format(string, sizeof(string), "%s has been kicked (Failed Logins)", PlayerName2(playerid) );
SendClientMessageToAll(grey, string);
print(string);
Kick(playerid);
}
return SendClientMessage(playerid,red,"ACCOUNT: Login failed! Incorrect Password");
}
}