enum PlayerInfo
{
Pass[129],
Adminlevel,
VIPlevel,
Money,
Scores,
Kills,
Deaths,
Logged,
Color,
Skin,
GodEnabled,
CustomSlot0,
CustomSlot1,
CustomSlot2,
CustomSlot3,
CustomSlot4,
CustomSlot5,
CustomSlot6,
CustomSlot7,
CustomSlot8,
CustomSlot9,
CustomSlot10,
CustomSlot11,
CustomSlot0a,
CustomSlot1a,
CustomSlot2a,
CustomSlot3a,
CustomSlot4a,
CustomSlot5a,
CustomSlot6a,
CustomSlot7a,
CustomSlot8a,
CustomSlot9a,
CustomSlot10a,
CustomSlot11a,
isAFK,
Muted,
Float:POS_X,
Float:POS_Y,
Float:POS_Z
}
new pInfo[MAX_PLAYERS][PlayerInfo];
stock Path(playerid)
{
new
string[128],
name[MAX_PLAYER_NAME]
;
GetPlayerName(playerid,name,sizeof(name));
format(string,sizeof(string),UserPath,name);
return string;
}
public OnPlayerConnect(playerid)
{
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, sizeof(name));
if(fexist(Path(playerid)))
{
INI_ParseFile(Path(playerid),"loadaccount_%s", .bExtra = true, .extra = playerid);
ShowPlayerDialog(playerid,dlogin,DIALOG_STYLE_INPUT,"Login","Welcome back. This account is registered. \nInsert your password to login to your account","Login","Quit");
}
else
{
ShowPlayerDialog(playerid,dregister,DIALOG_STYLE_INPUT,"Register","Welcome! This account is not registered.\nEnter your own password to create a new account.","Register","Quit");
}
return 1;
}
if(dialogid == dregister)
{
if(!response) return Kick(playerid);
if(response)
{
if(!strlen(inputtext))
{
ShowPlayerDialog(playerid,dregister,DIALOG_STYLE_INPUT,"Register","Welcome! This account is not registered.\nEnter your own password to create a new account.\nPlease enter the password!","Register","Quit");
return 1;
}
new hashpass[129];
WP_Hash(hashpass,sizeof(hashpass),inputtext);
new INI:file = INI_Open(Path(playerid));
INI_SetTag(file,"User");
INI_WriteString(file,"Password",hashpass);
INI_WriteInt(file,"AdminLevel",0);
INI_WriteInt(file,"VIPLevel",0);
INI_WriteInt(file,"Money",0);
INI_WriteInt(file,"Scores",0);
INI_WriteInt(file,"Kills",0);
INI_WriteInt(file,"Deaths",0);
INI_WriteInt(file,"Color",COLOR_WHITE);
INI_WriteInt(file,"Skin",162);
INI_WriteInt(file,"GodEnabled",0);
INI_WriteInt(file,"isAFK",0);
INI_WriteInt(file,"Muted",0);
INI_WriteInt(file,"GodEnabled",0);
INI_WriteInt(file,"isAFK",0);
INI_WriteInt(file,"Muted",0);
INI_WriteInt(file,"CustomSlot0",0);
INI_WriteInt(file,"CustomSlot0a",0);
INI_WriteInt(file,"CustomSlot1",0);
INI_WriteInt(file,"CustomSlot1a",0);
INI_WriteInt(file,"CustomSlot2",0);
INI_WriteInt(file,"CustomSlot2a",0);
INI_WriteInt(file,"CustomSlot3",0);
INI_WriteInt(file,"CustomSlot3a",0);
INI_WriteInt(file,"CustomSlot4",0);
INI_WriteInt(file,"CustomSlot4a",0);
INI_WriteInt(file,"CustomSlot5",0);
INI_WriteInt(file,"CustomSlot5a",0);
INI_WriteInt(file,"CustomSlot6",0);
INI_WriteInt(file,"CustomSlot6a",0);
INI_WriteInt(file,"CustomSlot7",0);
INI_WriteInt(file,"CustomSlot7a",0);
INI_WriteInt(file,"CustomSlot8",0);
INI_WriteInt(file,"CustomSlot8a",0);
INI_WriteInt(file,"CustomSlot9",0);
INI_WriteInt(file,"CustomSlot9a",0);
INI_WriteInt(file,"CustomSlot10",0);
INI_WriteInt(file,"CustomSlot10a",0);
INI_WriteInt(file,"CustomSlot11",0);
INI_WriteInt(file,"CustomSlot11a",0);
INI_WriteFloat(file,"POS_X",2506.0935);
INI_WriteFloat(file,"POS_Y",-1672.0536);
INI_WriteFloat(file,"POS_Z",13.3714);
INI_Close(file);
return 1;
}
}
if(dialogid == dlogin)
{
if(!response) return Kick(playerid);
if(response)
{
new hashpass[129];
WP_Hash(hashpass,sizeof(hashpass),inputtext);
if(!strcmp(hashpass, pInfo[playerid][Pass], false))
{
INI_ParseFile(Path(playerid),"loadaccount_%s",.bExtra = true, .extra = playerid);
pInfo[playerid][Logged] = 1;
GivePlayerMoney(playerid, pInfo[playerid][Money]);
SetPlayerPos(playerid, pInfo[playerid][POS_X], pInfo[playerid][POS_Y], pInfo[playerid][POS_Z]);
SetPlayerSkin(playerid, pInfo[playerid][Skin]);
GivePlayerWeapon(playerid, pInfo[playerid][CustomSlot0], pInfo[playerid][CustomSlot0a]);
GivePlayerWeapon(playerid, pInfo[playerid][CustomSlot1], pInfo[playerid][CustomSlot1a]);
GivePlayerWeapon(playerid, pInfo[playerid][CustomSlot2], pInfo[playerid][CustomSlot2a]);
GivePlayerWeapon(playerid, pInfo[playerid][CustomSlot3], pInfo[playerid][CustomSlot3a]);
GivePlayerWeapon(playerid, pInfo[playerid][CustomSlot4], pInfo[playerid][CustomSlot4a]);
GivePlayerWeapon(playerid, pInfo[playerid][CustomSlot5], pInfo[playerid][CustomSlot5a]);
GivePlayerWeapon(playerid, pInfo[playerid][CustomSlot6], pInfo[playerid][CustomSlot6a]);
GivePlayerWeapon(playerid, pInfo[playerid][CustomSlot7], pInfo[playerid][CustomSlot7a]);
GivePlayerWeapon(playerid, pInfo[playerid][CustomSlot8], pInfo[playerid][CustomSlot8a]);
GivePlayerWeapon(playerid, pInfo[playerid][CustomSlot9], pInfo[playerid][CustomSlot9a]);
GivePlayerWeapon(playerid, pInfo[playerid][CustomSlot10], pInfo[playerid][CustomSlot10a]);
GivePlayerWeapon(playerid, pInfo[playerid][CustomSlot11], pInfo[playerid][CustomSlot11a]);
SendClientMessage(playerid,-1,"Welcome back! You have successfully logged in");
print("User logged in.");
}
else
{
ShowPlayerDialog(playerid,dlogin,DIALOG_STYLE_INPUT,"Login","Welcome back. This account is registered. \nInsert your password to login to your account.\nIncorrect password!","Login","Quit");
}
return 1;
}
}
return 1;
}
forward loadaccount_user(playerid, name[], value[]);
public loadaccount_user(playerid, name[], value[])
{
INI_String("Password",pInfo[playerid][Pass],129);
INI_Int("AdminLevel",pInfo[playerid][Adminlevel]);
INI_Int("VIPLevel",pInfo[playerid][VIPlevel]);
INI_Int("Money",pInfo[playerid][Money]);
INI_Int("Scores",pInfo[playerid][Scores]);
INI_Int("Kills",pInfo[playerid][Kills]);
INI_Int("Deaths",pInfo[playerid][Deaths]);
INI_Int("Color",pInfo[playerid][Color]);
INI_Int("Skin",pInfo[playerid][Skin]);
INI_Int("GodEnabled",pInfo[playerid][GodEnabled]);
INI_Int("CustomSlot0",pInfo[playerid][CustomSlot0]);
INI_Int("CustomSlot1",pInfo[playerid][CustomSlot1]);
INI_Int("CustomSlot2",pInfo[playerid][CustomSlot2]);
INI_Int("CustomSlot3",pInfo[playerid][CustomSlot3]);
INI_Int("CustomSlot4",pInfo[playerid][CustomSlot4]);
INI_Int("CustomSlot5",pInfo[playerid][CustomSlot5]);
INI_Int("CustomSlot6",pInfo[playerid][CustomSlot6]);
INI_Int("CustomSlot7",pInfo[playerid][CustomSlot7]);
INI_Int("CustomSlot8",pInfo[playerid][CustomSlot8]);
INI_Int("CustomSlot9",pInfo[playerid][CustomSlot9]);
INI_Int("CustomSlot10",pInfo[playerid][CustomSlot10]);
INI_Int("CustomSlot11",pInfo[playerid][CustomSlot11]);
INI_Int("CustomSlot0a",pInfo[playerid][CustomSlot0a]);
INI_Int("CustomSlot1a",pInfo[playerid][CustomSlot1a]);
INI_Int("CustomSlot2a",pInfo[playerid][CustomSlot2a]);
INI_Int("CustomSlot3a",pInfo[playerid][CustomSlot3a]);
INI_Int("CustomSlot4a",pInfo[playerid][CustomSlot4a]);
INI_Int("CustomSlot5a",pInfo[playerid][CustomSlot5a]);
INI_Int("CustomSlot6a",pInfo[playerid][CustomSlot6a]);
INI_Int("CustomSlot7a",pInfo[playerid][CustomSlot7a]);
INI_Int("CustomSlot8a",pInfo[playerid][CustomSlot8a]);
INI_Int("CustomSlot9a",pInfo[playerid][CustomSlot9a]);
INI_Int("CustomSlot10a",pInfo[playerid][CustomSlot10a]);
INI_Int("CustomSlot11a",pInfo[playerid][CustomSlot11a]);
INI_Int("isAFK",pInfo[playerid][isAFK]);
INI_Int("Muted",pInfo[playerid][Muted]);
INI_Float("POS_X",pInfo[playerid][POS_X]);
INI_Float("POS_Y",pInfo[playerid][POS_Y]);
INI_Float("POS_Z",pInfo[playerid][POS_Z]);
print("Account Data Loaded.");
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
pInfo[playerid][Logged] = 0;
new Float:x, Float:y, Float:z;
GetPlayerPos(playerid, x, y, z);
pInfo[playerid][POS_X] = Float:x;
pInfo[playerid][POS_Y] = Float:y;
pInfo[playerid][POS_Z] = Float:z;
new INI:file = INI_Open(Path(playerid));
INI_SetTag(file,"User");
INI_WriteInt(file,"AdminLevel",pInfo[playerid][Adminlevel]);
INI_WriteInt(file,"VIPLevel",pInfo[playerid][VIPlevel]);
INI_WriteInt(file,"Money",GetPlayerMoney(playerid));
INI_WriteInt(file,"Scores",GetPlayerScore(playerid));
INI_WriteInt(file,"Kills",pInfo[playerid][Kills]);
INI_WriteInt(file,"Deaths",pInfo[playerid][Deaths]);
INI_WriteInt(file,"Logged",pInfo[playerid][Logged]);
INI_WriteInt(file,"Color",pInfo[playerid][Color]);
INI_WriteInt(file,"Skin",pInfo[playerid][Skin]);
INI_WriteInt(file,"CustomSlot0",pInfo[playerid][CustomSlot0]);
INI_WriteInt(file,"CustomSlot0a",pInfo[playerid][CustomSlot0a]);
INI_WriteInt(file,"CustomSlot1",pInfo[playerid][CustomSlot1]);
INI_WriteInt(file,"CustomSlot1a",pInfo[playerid][CustomSlot1a]);
INI_WriteInt(file,"CustomSlot2",pInfo[playerid][CustomSlot2]);
INI_WriteInt(file,"CustomSlot2a",pInfo[playerid][CustomSlot2a]);
INI_WriteInt(file,"CustomSlot3",pInfo[playerid][CustomSlot3]);
INI_WriteInt(file,"CustomSlot3a",pInfo[playerid][CustomSlot3a]);
INI_WriteInt(file,"CustomSlot4",pInfo[playerid][CustomSlot4]);
INI_WriteInt(file,"CustomSlot4a",pInfo[playerid][CustomSlot4a]);
INI_WriteInt(file,"CustomSlot5",pInfo[playerid][CustomSlot5]);
INI_WriteInt(file,"CustomSlot5a",pInfo[playerid][CustomSlot5a]);
INI_WriteInt(file,"CustomSlot6",pInfo[playerid][CustomSlot6]);
INI_WriteInt(file,"CustomSlot6a",pInfo[playerid][CustomSlot6a]);
INI_WriteInt(file,"CustomSlot7",pInfo[playerid][CustomSlot7]);
INI_WriteInt(file,"CustomSlot7a",pInfo[playerid][CustomSlot7a]);
INI_WriteInt(file,"CustomSlot8",pInfo[playerid][CustomSlot8]);
INI_WriteInt(file,"CustomSlot8a",pInfo[playerid][CustomSlot8a]);
INI_WriteInt(file,"CustomSlot9",pInfo[playerid][CustomSlot9]);
INI_WriteInt(file,"CustomSlot9a",pInfo[playerid][CustomSlot9a]);
INI_WriteInt(file,"CustomSlot10",pInfo[playerid][CustomSlot10]);
INI_WriteInt(file,"CustomSlot10a",pInfo[playerid][CustomSlot10a]);
INI_WriteInt(file,"CustomSlot11",pInfo[playerid][CustomSlot11]);
INI_WriteInt(file,"CustomSlot11a",pInfo[playerid][CustomSlot11a]);
INI_WriteFloat(file,"POS_X",pInfo[playerid][Float:POS_X]);
INI_WriteFloat(file,"POS_Y",pInfo[playerid][Float:POS_Y]);
INI_WriteFloat(file,"POS_Z",pInfo[playerid][Float:POS_Z]);
print("Account Data Saved. User disconnected.");
INI_Close(file);
return 1;
}
if(dialogid == dregister)
{
if(!response) return Kick(playerid);
if(response)
{
if(!strlen(inputtext))
{
ShowPlayerDialog(playerid,dregister,DIALOG_STYLE_INPUT,"Register","Welcome! This account is not registered.\nEnter your own password to create a new account.\nPlease enter the password!","Register","Quit");
return 1;
}
new hashpass[129];
WP_Hash(hashpass,sizeof(hashpass),inputtext);
new INI:file = INI_Open(Path(playerid));
INI_SetTag(file,"User");
INI_WriteString(file,"Password",hashpass);
INI_WriteInt(file,"AdminLevel",0);
INI_WriteInt(file,"VIPLevel",0);
INI_WriteInt(file,"Money",0);
INI_WriteInt(file,"Scores",0);
INI_WriteInt(file,"Kills",0);
INI_WriteInt(file,"Deaths",0);
INI_WriteInt(file,"Color",COLOR_WHITE);
INI_WriteInt(file,"Skin",162);
INI_WriteInt(file,"GodEnabled",0);
INI_WriteInt(file,"isAFK",0);
INI_WriteInt(file,"Muted",0);
INI_WriteInt(file,"GodEnabled",0);
INI_WriteInt(file,"isAFK",0);
INI_WriteInt(file,"Muted",0);
INI_WriteInt(file,"CustomSlot0",0);
INI_WriteInt(file,"CustomSlot0a",0);
INI_WriteInt(file,"CustomSlot1",0);
INI_WriteInt(file,"CustomSlot1a",0);
INI_WriteInt(file,"CustomSlot2",0);
INI_WriteInt(file,"CustomSlot2a",0);
INI_WriteInt(file,"CustomSlot3",0);
INI_WriteInt(file,"CustomSlot3a",0);
INI_WriteInt(file,"CustomSlot4",0);
INI_WriteInt(file,"CustomSlot4a",0);
INI_WriteInt(file,"CustomSlot5",0);
INI_WriteInt(file,"CustomSlot5a",0);
INI_WriteInt(file,"CustomSlot6",0);
INI_WriteInt(file,"CustomSlot6a",0);
INI_WriteInt(file,"CustomSlot7",0);
INI_WriteInt(file,"CustomSlot7a",0);
INI_WriteInt(file,"CustomSlot8",0);
INI_WriteInt(file,"CustomSlot8a",0);
INI_WriteInt(file,"CustomSlot9",0);
INI_WriteInt(file,"CustomSlot9a",0);
INI_WriteInt(file,"CustomSlot10",0);
INI_WriteInt(file,"CustomSlot10a",0);
INI_WriteInt(file,"CustomSlot11",0);
INI_WriteInt(file,"CustomSlot11a",0);
INI_WriteFloat(file,"POS_X",2506.0935);
INI_WriteFloat(file,"POS_Y",-1672.0536);
INI_WriteFloat(file,"POS_Z",13.3714);
INI_Close(file);
return 1;
}
}
if(dialogid == dlogin)
{
if(!response) return Kick(playerid);
if(response)
{
new hashpass[129];
WP_Hash(hashpass,sizeof(hashpass),inputtext);
if(!strcmp(hashpass, pInfo[playerid][Pass], false))
{
INI_ParseFile(Path(playerid),"loadaccount_%s",.bExtra = true, .extra = playerid);
pInfo[playerid][Logged] = 1;
GivePlayerMoney(playerid, pInfo[playerid][Money]);
SetPlayerPos(playerid, pInfo[playerid][POS_X], pInfo[playerid][POS_Y], pInfo[playerid][POS_Z]);
SetPlayerSkin(playerid, pInfo[playerid][Skin]);
GivePlayerWeapon(playerid, pInfo[playerid][CustomSlot0], pInfo[playerid][CustomSlot0a]);
GivePlayerWeapon(playerid, pInfo[playerid][CustomSlot1], pInfo[playerid][CustomSlot1a]);
GivePlayerWeapon(playerid, pInfo[playerid][CustomSlot2], pInfo[playerid][CustomSlot2a]);
GivePlayerWeapon(playerid, pInfo[playerid][CustomSlot3], pInfo[playerid][CustomSlot3a]);
GivePlayerWeapon(playerid, pInfo[playerid][CustomSlot4], pInfo[playerid][CustomSlot4a]);
GivePlayerWeapon(playerid, pInfo[playerid][CustomSlot5], pInfo[playerid][CustomSlot5a]);
GivePlayerWeapon(playerid, pInfo[playerid][CustomSlot6], pInfo[playerid][CustomSlot6a]);
GivePlayerWeapon(playerid, pInfo[playerid][CustomSlot7], pInfo[playerid][CustomSlot7a]);
GivePlayerWeapon(playerid, pInfo[playerid][CustomSlot8], pInfo[playerid][CustomSlot8a]);
GivePlayerWeapon(playerid, pInfo[playerid][CustomSlot9], pInfo[playerid][CustomSlot9a]);
GivePlayerWeapon(playerid, pInfo[playerid][CustomSlot10], pInfo[playerid][CustomSlot10a]);
GivePlayerWeapon(playerid, pInfo[playerid][CustomSlot11], pInfo[playerid][CustomSlot11a]);
SendClientMessage(playerid,-1,"Welcome back! You have successfully logged in");
print("User logged in.");
}
else
{
ShowPlayerDialog(playerid,dlogin,DIALOG_STYLE_INPUT,"Login","Welcome back. This account is registered. \nInsert your password to login to your account.\nIncorrect password!","Login","Quit");
}
return 1;
}
}
return 1;
}
|
So I should move it from OnPlayerConnect to OnDialogResponse is what you're saying?
|
|
Yeah, I still have this issue. See, it seems to be SAVING data just fine. However LOADING data seems to be where my issue lies.
|