need some help - Printable Version
+- SA-MP Forums Archive (
https://sampforum.blast.hk)
+-- Forum: SA-MP Scripting and Plugins (
https://sampforum.blast.hk/forumdisplay.php?fid=8)
+--- Forum: Scripting Help (
https://sampforum.blast.hk/forumdisplay.php?fid=12)
+---- Forum: Help Archive (
https://sampforum.blast.hk/forumdisplay.php?fid=89)
+---- Thread: need some help (
/showthread.php?tid=112381)
need some help -
sggassasin - 07.12.2009
when i try to register it places it in the file as -1 but it sposed to be 1 and when i go to reconnect after i restarted the sever it says im not loggedin/ registerd
This is the login system in
FULL
Код:
enum PLAYER_MAIN {
PLAYER_NAME[MAX_PLAYER_NAME],
PLAYER_IP[16],
PLAYER_REGGED,
PLAYER_PASS,
PLAYER_LOGGED,
PLAYER_WIRED,
PLAYER_JAILED,
PLAYER_PRIVET,
PLAYER_ADMIN
}
new gPlayerInfo[MAX_PLAYERS][PLAYER_MAIN];
Код:
public OnPlayerConnect(playerid)
{
new file[100],Name[MAX_PLAYER_NAME],Ip[16]; GetPlayerName(playerid,Name,sizeof(Name)); GetPlayerIp(playerid,Ip,sizeof(Ip)); format(file,sizeof(file),PlayerFile,Name);
if(!dini_Exists(file)) {
dini_Create(file);
dini_Set(file,"Name",Name);
dini_Set(file,"Ip",Ip);
dini_IntSet(file,"Registered",-1);
dini_IntSet(file,"Password",0);
dini_IntSet(file,"Wired",0);
dini_IntSet(file,"Jailed",0);
dini_IntSet(file,"Privet",0);
dini_IntSet(file,"Admin",0);
SendClientMessage(playerid,COLOUR_ORANGE,"You're username is not recognized on this server. Please /register to continue.");
}
strcat(gPlayerInfo[playerid][PLAYER_NAME], dini_Get(file,"Name"));
strcat(gPlayerInfo[playerid][PLAYER_IP], dini_Get(file,"Ip"));
gPlayerInfo[playerid][PLAYER_REGGED] = dini_Int(file,"Registered");
gPlayerInfo[playerid][PLAYER_PASS] = dini_Int(file,"Password");
gPlayerInfo[playerid][PLAYER_WIRED] = dini_Int(file,"Wired");
gPlayerInfo[playerid][PLAYER_JAILED] = dini_Int(file,"Jailed");
gPlayerInfo[playerid][PLAYER_PRIVET] = dini_Int(file,"Privet");
gPlayerInfo[playerid][PLAYER_ADMIN] = dini_Int(file,"Admin");
if(gPlayerInfo[playerid][PLAYER_REGGED] == 0) SendClientMessage(playerid,COLOUR_ORANGE,"You're username is recognised on this server, but you have not registered. Please /register to continue.");
else if(gPlayerInfo[playerid][PLAYER_REGGED] == 1) SendClientMessage(playerid,COLOUR_ORANGE,"You're username is recognised on this server. Please /login to continue.");
gPlayerInfo[playerid][PLAYER_REGGED] = 0;
DOS_OnPlayerConnect(playerid);
return 1;
}
Код:
public OnPlayerDisconnect(playerid, reason)
{
new file[100];
format(file,sizeof(file),PlayerFile,gPlayerInfo[playerid][PLAYER_NAME]);
dini_Set(file,"Name",gPlayerInfo[playerid][PLAYER_NAME]);
dini_Set(file,"Ip",gPlayerInfo[playerid][PLAYER_IP]);
dini_IntSet(file,"Registered",gPlayerInfo[playerid][PLAYER_REGGED]);
dini_IntSet(file,"Password",gPlayerInfo[playerid][PLAYER_PASS]);
dini_IntSet(file,"Admin",gPlayerInfo[playerid][PLAYER_ADMIN]);
dini_IntSet(file,"Wired",gPlayerInfo[playerid][PLAYER_WIRED]);
dini_IntSet(file,"Jailed",gPlayerInfo[playerid][PLAYER_JAILED]);
dini_IntSet(file,"Privet",gPlayerInfo[playerid][PLAYER_PRIVET]);
gPlayerInfo[playerid][PLAYER_NAME] = 0;
gPlayerInfo[playerid][PLAYER_IP] = 0;
gPlayerInfo[playerid][PLAYER_REGGED] = 0;
gPlayerInfo[playerid][PLAYER_LOGGED] = 0;
gPlayerInfo[playerid][PLAYER_PASS] = 0;
gPlayerInfo[playerid][PLAYER_ADMIN] = 0;
gPlayerInfo[playerid][PLAYER_WIRED] = 0;
gPlayerInfo[playerid][PLAYER_JAILED] = 0;
gPlayerInfo[playerid][PLAYER_PRIVET] = 0;
DOS_OnPlayerDisconnect(playerid);
return 1;
}
Код:
dcmd_register(playerid, params[])
{
if(gPlayerInfo[playerid][PLAYER_REGGED] != 1)
return SendClientMessage(playerid, COLOUR_ORANGE, "ERROR: You have already registered!");
else if(!params[0])
return SendClientMessage(playerid, COLOUR_ORANGE, "USAGE: /register [password]");
/*else if(strlen(params) < gSettings[PASS_MIN] || strlen(params) > gSettings[PASS_MAX])
{
new string[200];
format(string, sizeof(string), "ERROR: Password must be between %d and $d characters long!", gSettings[PASS_MIN], gSettings[PASS_MAX]);
return SendClientMessage(playerid, COLOUR_ORANGE, string);
}*/
else
{
new password = num_hash(params);
gPlayerInfo[playerid][PLAYER_PASS] = password;
password = gPlayerInfo[playerid][PLAYER_PASS];
gPlayerInfo[playerid][PLAYER_REGGED] = 1;
gPlayerInfo[playerid][PLAYER_LOGGED] = 1;
GetPlayerIp(playerid, gPlayerInfo[playerid][PLAYER_IP], 16);
new string[256]; format(string, sizeof(string), "You have successfully registered your account with the password \'%s\'. You have been automatically logged in.", params);
return SendClientMessage(playerid, COLOUR_LIGHTBLUE, string);
}
}