19.07.2014, 05:12
Hey guys
i am getting some bugs with this register system..
it is also creating a player stats file in desired path also
but when player reconnects instead of asking to login it is asking to register and account it getting reset
this is my problem
codes:
please help me
thanks in advance
i am getting some bugs with this register system..
it is also creating a player stats file in desired path also
but when player reconnects instead of asking to login it is asking to register and account it getting reset
this is my problem
codes:
pawn Код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
new plrIP[64];
if (dialogid == DIALOG_REGISTER) {
new cMenuString[408];
cMenuString = "";
SetPlayerScore(playerid, PlayerInfo[playerid][Score]);
new PlayerName[MAX_PLAYER_NAME], file[256];
GetPlayerName(playerid, PlayerName, sizeof(PlayerName));
format(file, sizeof(file), SERVER_USER_FILE, PlayerName);
if(!response) return Kick(playerid);
if (!strlen(inputtext)) return
ShowPlayerDialog(playerid, 1, DIALOG_STYLE_INPUT, "You're not registered.", "Welcome, Register by inputting a password below.", "Register", "Cancel");
dini_Create(file);
new Year, Month, Day;
dini_IntSet(file, "Password", udb_hash(inputtext));
dini_IntSet(file, "RegisterDate",PlayerInfo[playerid][RegisterDate] = getdate(Day, Month, Year));
dini_IntSet(file, "AdminLevel",PlayerInfo[playerid][AdminLevel] = 0);
dini_IntSet(file, "VIPLevel",PlayerInfo[playerid][VIPLevel] = 0);
dini_IntSet(file, "Money",PlayerInfo[playerid][Cash] = 500);
dini_IntSet(file, "Score",PlayerInfo[playerid][Score] = 0);
dini_IntSet(file, "Skin",PlayerInfo[playerid][Skin] = 0);
dini_IntSet(file, "Kills",PlayerInfo[playerid][Kills] = 0);
dini_IntSet(file, "Deaths",PlayerInfo[playerid][Deaths] = 0);
dini_IntSet(file, "IP",PlayerInfo[playerid][IP] = GetPlayerIp(playerid, plrIP, 64));
dini_IntSet(file, "Banned",PlayerInfo[playerid][Banned] = 0);
dini_IntSet(file, "Seconds",PlayerInfo[playerid][Seconds] = 0);
dini_IntSet(file, "Minutes",PlayerInfo[playerid][Minutes] = 0);
dini_IntSet(file, "Hours",PlayerInfo[playerid][Hours] = 0);
PlayerLogged[playerid] = 1;
SetPlayerScore(playerid, PlayerInfo[playerid][Score]);
PlayerLogged[playerid] = 1;
new qwe[256];
format(qwe, 255, "acc.ini");
if(!dini_Exists(qwe) ) {
dini_Create(qwe);
dini_IntSet(qwe, "accounts", 0);
}
new noa;
noa = dini_Int(qwe,"accounts");
dini_IntSet(qwe, "accounts", noa+1);
format(szString, 128, "{F070F2}[oXS]{40FFFF} You succesfully registered the nickname %s with password %s", PlayerName, inputtext);
SendClientMessage(playerid, 0x40FFFFFF, szString);
SendClientMessage(playerid, 0x40FFFFFF, "{F070F2}[oXS]{40FFFF} /Admins For Online Admins, /VIPs For Online Vips");
}
if (dialogid == DIALOG_LOGIN) {
new PlayerName[MAX_PLAYER_NAME], file[256];
GetPlayerName(playerid, PlayerName, sizeof(PlayerName));
format(file, sizeof(file), SERVER_USER_FILE, PlayerName);
if(!response) return Kick(playerid);
if (!strlen(inputtext)) {
if (PlayerInfo[playerid][IP] == GetPlayerIp(playerid, plrIP, 64)) {
PlayerLogged[playerid] = 1;
PlayerInfo[playerid][RegisterDate] = dini_Int(file, "RegisterDate");
PlayerInfo[playerid][AdminLevel] = dini_Int(file, "AdminLevel");
PlayerInfo[playerid][VIPLevel] = dini_Int(file, "VIPLevel");
PlayerInfo[playerid][Cash] = dini_Int(file, "Money");
PlayerInfo[playerid][Score] = dini_Int(file, "Score");
PlayerInfo[playerid][Skin] = dini_Int(file, "Skin");
PlayerInfo[playerid][Kills] = dini_Int(file, "Kills");
PlayerInfo[playerid][Deaths] = dini_Int(file, "Deaths");
PlayerInfo[playerid][IP] = dini_Int(file, "IP");
PlayerInfo[playerid][Banned] = dini_Int(file, "Banned");
PlayerInfo[playerid][Seconds] = dini_Int(file, "Seconds");
PlayerInfo[playerid][Minutes] = dini_Int(file, "Minutes");
PlayerInfo[playerid][Hours] = dini_Int(file, "Hours");
SetPlayerScore(playerid, PlayerInfo[playerid][Score]);
GivePlayerMoney(playerid, dini_Int(file, "Money")-GetPlayerMoney(playerid));
PlayerLogged[playerid] = 1;
SendClientMessage(playerid, 0x40FFFFFF, "{F070F2}[oXS]{40FFFF} Auto-IP Login.");
SetTimerEx("NameColor",1000,false,"u",playerid);
if (PlayerInfo[playerid][Banned] == 1) {
SendClientMessage(playerid, 0xFF444499, "{F070F2}[oXS]{FF4444} You are banned, do not evade, you making ur chances to get unbaned lower by ban evading!");
Kick(playerid);
}
}
else {
ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "You're registered.", "Welcome, You are registered, Please login.", "Login", "Cancel");
}
}
new tmp;
tmp = dini_Int(file, "Password");
if(udb_hash(inputtext) != tmp) {
SendClientMessage(playerid, 0xFF444499, "Incorrect Password.");
wrongpass[playerid] ++;
ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "You're registered.", "Welcome, You are registered, Please login.", "Login", "Cancel");
if(wrongpass[playerid] == 3) {
format(szString, sizeof(szString), "* Your name has been changed to: [oXS]%s for too many invalid passwords.", PlayerName);
SendClientMessage(playerid, COLOR_RED, szString);
format(szString, sizeof(szString), "[oXS]%s", PlayerName);
SetPlayerName(playerid, szString);
wrongpass[playerid] = 0;
SendClientMessage(playerid, COLOR_GREEN, "*** Please make a new name when you leave, because you are on a temporary account for too many invalid logins. ***");
ShowPlayerDialog(playerid, 100, DIALOG_STYLE_MSGBOX, "New Name", "Since you have too many incorrect logins, your name has been changed.\nThis account will not be saved onto the server.", "Okay", "Cancel");
}
}
else
{
PlayerLogged[playerid] = 1;
PlayerInfo[playerid][RegisterDate] = dini_Int(file, "RegisterDate");
PlayerInfo[playerid][AdminLevel] = dini_Int(file, "AdminLevel");
PlayerInfo[playerid][VIPLevel] = dini_Int(file, "VIPLevel");
PlayerInfo[playerid][Cash] = dini_Int(file, "Money");
PlayerInfo[playerid][Score] = dini_Int(file, "Score");
PlayerInfo[playerid][Skin] = dini_Int(file, "Skin");
PlayerInfo[playerid][Kills] = dini_Int(file, "Kills");
PlayerInfo[playerid][Deaths] = dini_Int(file, "Deaths");
PlayerInfo[playerid][IP] = dini_Int(file, "IP");
PlayerInfo[playerid][Banned] = dini_Int(file, "Banned");
PlayerInfo[playerid][Seconds] = dini_Int(file, "Seconds");
PlayerInfo[playerid][Minutes] = dini_Int(file, "Minutes");
PlayerInfo[playerid][Hours] = dini_Int(file, "Hours");
SetPlayerScore(playerid, PlayerInfo[playerid][Score]);
GivePlayerMoney(playerid, dini_Int(file, "Money")-GetPlayerMoney(playerid));
PlayerLogged[playerid] = 1;
SendClientMessage(playerid, 0x40FFFFFF, "{F070F2}[oXS]{40FFFF} Successfully logged in!");
PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
if (PlayerInfo[playerid][Banned] == 1) {
SendClientMessage(playerid, 0xFF444499, "{F070F2}[oXS]{FF4444} You are banned, do not evade.");
Kick(playerid);
}
}
}
return 0;
}
pawn Код:
public OnPlayerConnect(playerid)
{
new PlayerName[MAX_PLAYER_NAME];
PlayerLogged[playerid] = 0;
new file[256];
format(file, sizeof(file), SERVER_USER_FILE, PlayerName);
if (!dini_Exists(file)) return ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, "{F070F2}[oXS]{FF0000} You're not registered.", "{FFFFFF}Welcome To The {FF0000}Oblivion Xtreme Stunts{FFFFFF}, Register by creating a password.", "Register", "Cancel"); if(fexist(file)) {
new plrIP[64];
GetPlayerIp(playerid, plrIP, 64);
if (PlayerInfo[playerid][IP] == GetPlayerIp(playerid, plrIP, 64)) {
PlayerInfo[playerid][RegisterDate] = dini_Int(file, "RegisterDate");
PlayerInfo[playerid][AdminLevel] = dini_Int(file, "AdminLevel");
PlayerInfo[playerid][VIPLevel] = dini_Int(file, "VIPLevel");
PlayerInfo[playerid][Cash] = dini_Int(file, "Money");
PlayerInfo[playerid][Score] = dini_Int(file, "Score");
PlayerInfo[playerid][Skin] = dini_Int(file, "Skin");
PlayerInfo[playerid][Kills] = dini_Int(file, "Kills");
PlayerInfo[playerid][Deaths] = dini_Int(file, "Deaths");
PlayerInfo[playerid][IP] = dini_Int(file, "IP");
PlayerInfo[playerid][Banned] = dini_Int(file, "Banned");
PlayerInfo[playerid][Seconds] = dini_Int(file, "Seconds");
PlayerInfo[playerid][Minutes] = dini_Int(file, "Minutes");
PlayerInfo[playerid][Hours] = dini_Int(file, "Hours");
PlayerInfo[playerid][TotalTime] = dini_Int(file, "TotalTime");
PlayerInfo[playerid][ConnectTime] = dini_Int(file, "ConnectTime");
PlayerLogged[playerid] = 1;
GivePlayerMoney(playerid, dini_Int(file, "Money")-GetPlayerMoney(playerid));
SetPlayerScore(playerid, PlayerInfo[playerid][Score]);
SendClientMessage(playerid, 0xB1FB44FF, "{F070F2}[oXS]{B1FB44} Auto-IP Login.");
if (PlayerInfo[playerid][Banned] == 1) {
SendClientMessage(playerid, 0xFF444499, "{F070F2}[oXS]{FF0000} You are banned, do not evade.");
Kick(playerid);
}
}
else {
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT, "{F070F2}[oXS]{FF0000} You're registered.", "Welcome, You are registered, Please login.", "Login", "Cancel");
}
}
return 1;
}
thanks in advance