public OnPlayerSpawn(playerid)
{
new
str[32];
format(str, sizeof(str), "Code: %i", PlayerInfo[playerid][pCode]);
playertext[playerid] = Create3DTextLabel(str, Orange, 30.0, 40.0, 50.0, 40.0, 0);
Attach3DTextLabelToPlayer(playertext[playerid], playerid, 0.0, 0.0, 0.4);
}
public OnPlayerDisconnect(playerid, reason)
{
Delete3DTextLabel(playertext[playerid]);
SaveData(playerid);
return 1;
}
Dialog:Register(playerid, response, listitem, inputtext[])
{
if (!response) return Kick(playerid);
if (response)
{
if(!strlen(inputtext))
{
// show dialog stuff
}
if(INI_Open(getINI(playerid)))
{
INI_WriteString("Password", inputtext);
INI_WriteInt("Money", 5000);
INI_WriteInt("AdminLevel", 0);
INI_WriteInt("Code", random(500));
INI_Save();
INI_Close();
SetSpawnInfo(playerid, 0, 6, 1772.3214, -1908.2968, 13.5531, 271.5665, 0, 0, 0, 0, 0, 0);
SpawnPlayer(playerid);
}
}
return 1;
}
Dialog:Login(playerid, response, listitem, inputtext[])
{
if (!response) return Kick(playerid);
if(response)
{
if(!strlen(inputtext))
{
// show dialog stuff
}
if(INI_Open(getINI(playerid)))
{
INI_ReadString(PlayerInfo[playerid][pPassword], "Password", 20);
if(strcmp(inputtext, PlayerInfo[playerid][pPassword], false))
{
// show dialog stuff
}
ResetPlayerMoney(playerid);
GivePlayerMoney(playerid, INI_ReadInt("Money"));
PlayerInfo[playerid][pAdminLevel] = INI_ReadInt("AdminLevel");
PlayerInfo[playerid][pCode] = INI_ReadInt("Code");
INI_Close();
SetSpawnInfo(playerid, 0, 6, 1772.3214, -1908.2968, 13.5531, 271.5665, 0, 0, 0, 0, 0, 0);
SpawnPlayer(playerid);
}
}
return 1;
}
stock SaveData(playerid)
{
if(INI_Open(getINI(playerid)))
{
INI_WriteInt("Money", INI_ReadInt("Money"));
INI_WriteInt("AdminLevel", INI_ReadInt("AdminLevel"));
INI_WriteInt("Code", INI_ReadInt("Code"));
INI_Save();
INI_Close();
}
}
Your not setting the random value when they register your only saving it to file.
Also.... don't do this if (!response) return Kick(playerid); if (response) do this if(!reponse) Kick(playerid); else { } no need for two ifs here. |
Ya you need to set that value to the variable it would be loaded from when they log in so basically your doing this when the register this way their array has the value set after registering and it is also saved in file when they log in I hope this clears things up.
PlayerInfo[playerid][pCode] = random(500); INI_WriteInt("Code", PlayerInfo[playerid][pCode]); |
Why? Your saving the code then reloading it when they login unless they get a new code each time then there would be no need to save it.
|
/* -------------------------------------------------------------------------- */
Dialog:Register(playerid, response, listitem, inputtext[])
{
if(!response) Kick(playerid);
else
{
if(!strlen(inputtext))
{
// dialog stuff
}
if(INI_Open(getINI(playerid)))
{
INI_WriteString("Password", inputtext);
INI_WriteInt("Money", 5000);
INI_WriteInt("AdminLevel", 0);
INI_WriteInt("Code", random(500));
INI_Save();
INI_Close();
SetSpawnInfo(playerid, 0, 6, 1772.3214, -1908.2968, 13.5531, 271.5665, 0, 0, 0, 0, 0, 0);
SpawnPlayer(playerid);
PlayerPlaySound(playerid, 1057 ,0.0, 0.0, 0.0);
}
}
return 1;
}
/* -------------------------------------------------------------------------- */
Dialog:Login(playerid, response, listitem, inputtext[])
{
if (!response) Kick(playerid);
else
{
if(!strlen(inputtext))
{
// dialog stuff
}
if(INI_Open(getINI(playerid)))
{
INI_ReadString(PlayerInfo[playerid][pPassword], "Password", 20);
if(strcmp(inputtext, PlayerInfo[playerid][pPassword], false))
{
// dialog stuff
}
ResetPlayerMoney(playerid);
GivePlayerMoney(playerid, INI_ReadInt("Money"));
PlayerInfo[playerid][pAdminLevel] = INI_ReadInt("AdminLevel");
PlayerInfo[playerid][pCode] = random(500);
INI_WriteInt("Code", PlayerInfo[playerid][pCode]);
INI_Close();
SetSpawnInfo(playerid, 0, 6, 1772.3214, -1908.2968, 13.5531, 271.5665, 0, 0, 0, 0, 0, 0);
SpawnPlayer(playerid);
}
}
return 1;
}
/* -------------------------------------------------------------------------- */
Dialog:Register(playerid, response, listitem, inputtext[])
{
if(!response) Kick(playerid);
else
{
if(!strlen(inputtext))
{
// dialog stuff
}
if(INI_Open(getINI(playerid)))
{
PlayerInfo[playerid][pCode] = random(500);
INI_WriteString("Password", inputtext);
INI_WriteInt("Money", 5000);
INI_WriteInt("AdminLevel", 0);
INI_WriteInt("Code", PlayerInfo[playerid][pCode]);
INI_Save();
INI_Close();
SetSpawnInfo(playerid, 0, 6, 1772.3214, -1908.2968, 13.5531, 271.5665, 0, 0, 0, 0, 0, 0);
SpawnPlayer(playerid);
PlayerPlaySound(playerid, 1057 ,0.0, 0.0, 0.0);
}
}
return 1;
}
/* -------------------------------------------------------------------------- */
Dialog:Login(playerid, response, listitem, inputtext[])
{
if (!response) Kick(playerid);
else
{
if(!strlen(inputtext))
{
// dialog stuff
}
if(INI_Open(getINI(playerid)))
{
INI_ReadString(PlayerInfo[playerid][pPassword], "Password", 20);
if(strcmp(inputtext, PlayerInfo[playerid][pPassword], false))
{
// dialog stuff
}
ResetPlayerMoney(playerid);
GivePlayerMoney(playerid, INI_ReadInt("Money"));
PlayerInfo[playerid][pAdminLevel] = INI_ReadInt("AdminLevel");
PlayerInfo[playerid][pCode] = ReadInt("Code");
INI_Close();
SetSpawnInfo(playerid, 0, 6, 1772.3214, -1908.2968, 13.5531, 271.5665, 0, 0, 0, 0, 0, 0);
SpawnPlayer(playerid);
}
}
return 1;
}