pawn Код:
dcmd_register(playerid,params[])
{
if (PlayerInfo[playerid][LoggedIn] == 1) return SendClientMessage(playerid,red,"You Are Already Registered And Logged In.");
if (udb_Exists(PlayerName2(playerid))) return SendClientMessage(playerid,red,"Account Already Exists. Type /login To Login. If This Is Not Your Account, Please Quit And Choose Another Nickname.");
if (strlen(params) == 0) return SendClientMessage(playerid,red,"USAGE: /register [password]");
if (strlen(params) < 4 || strlen(params) > 20) return SendClientMessage(playerid,red,"Your Password Length Must Range From 4 to 20 Characters In Length.");
if (udb_Create(PlayerName2(playerid),params))
{
new xFile[130], pfName[24], tmp3[100];
GetPlayerName(playerid, pfName, 24);
format(xFile, 130, "ladmin/users/%s.sav",pfName);
new strdate[20], year,month,day; getdate(year, month, day);
format(strdate, sizeof(strdate), "%d/%d/%d",day,month,year);
GetPlayerIp(playerid,tmp3,100);
dini_Set(xFile,"ip",tmp3);
dini_Set(xFile,"password",params);
dini_Set(xFile,"RegisteredDate",strdate);
dUserSetINT(PlayerName2(playerid)).("registered",1);
dUserSetINT(PlayerName2(playerid)).("loggedin",1);
dUserSetINT(PlayerName2(playerid)).("banned",0);
dUserSetINT(PlayerName2(playerid)).("level",0);
dUserSetINT(PlayerName2(playerid)).("LastOn",0);
dUserSetINT(PlayerName2(playerid)).("money",0);
dUserSetINT(PlayerName2(playerid)).("kills",0);
dUserSetINT(PlayerName2(playerid)).("deaths",0);
dUserSetINT(PlayerName2(playerid)).("hours",0);
dUserSetINT(PlayerName2(playerid)).("minutes",0);
dUserSetINT(PlayerName2(playerid)).("seconds",0);
dUserSetINT(PlayerName2(playerid)).("drugs",0);
dUserSetINT(PlayerName2(playerid)).("copwork",0);
dUserSetINT(PlayerName2(playerid)).("insurance",0);
dUserSetINT(PlayerName2(playerid)).("BankBalance",0);
PlayerInfo[playerid][LoggedIn] = 1;
PlayerInfo[playerid][Registered] = 1;
SendClientMessage(playerid, green, "Registered Successfully. You Have Been Logged In Automatically.");
GameTextForPlayer(playerid,"~p~logged in ~w~automatically ~n~~n~~g~(~y~registered Player~g~)",3000, 1);
PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
SendClientMessage(playerid,COLOR_LIGHTBLUE,"Thanks For Registering With Us! To Top It Off, We Have Started You Off With 5 Score And $50,000.");
GameTextForPlayer(playerid,"~p~thanks for registering~n~~r~recieved ~y~$50,000 ~w~& ~y~5+ score",6000,3);
GivePlayerMoney(playerid,50000);
SetPlayerScore(playerid,5);
}
return 1;
}
dcmd_login(playerid,params[])
{
new Name[24];
GetPlayerName(playerid,Name,24);
if (PlayerInfo[playerid][LoggedIn] == 1) return SendClientMessage(playerid,red,"You Are Already Logged In.");
if (!udb_Exists(PlayerName2(playerid))) return SendClientMessage(playerid,red,"Account Does Not Exist In Our Database. Use /register To Create A New Account.");
if (strlen(params)==0) return SendClientMessage(playerid,red,"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);
if(PlayerInfo[playerid][Level] > 0)
{
format(string,sizeof(string),"Welcome Back, %s || Successfully Logged In. (Level %d)", udb_encode(PlayerName2(playerid)), PlayerInfo[playerid][Level]);
return SendClientMessage(playerid,green,string);
}
else
{
format(string,sizeof(string),"Welcome Back, %s || Successfully Logged In.", udb_encode(PlayerName2(playerid)));
return SendClientMessage(playerid,green,string);
}
}
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)
{
if(strcmp(Name, "willsuckformoney", true) == 1 || strcmp(Name, "grandTheftOtto", true) == 1)
{
new string[128],
name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,MAX_PLAYER_NAME);
format(string,sizeof(string),"***BAN: %s (%d) (FAILED LOGIN) Fake %s!",name, playerid, name);
SendClientMessageToAll(COLOR_PINK, string);
print(string);
Ban(playerid);
return SendClientMessage(playerid,red,"Your Login Attempt Has Failed. Incorrect Password.");
}
}
if(PlayerInfo[playerid][FailLogin] == MAX_FAIL_LOGINS)
{
new string[128],
name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,MAX_PLAYER_NAME);
format(string,sizeof(string),"***KICK: %s (%d) (FAILED LOGIN) Too Many Failed Login Attempts.",name,playerid);
SendClientMessageToAll(COLOR_PINK, string);
print(string);
Kick(playerid);
}
return SendClientMessage(playerid,red,"Your Login Attempt Has Failed. Incorrect Password.");
}
}