enum PlayerData
{
Password[255],
Registered,
Authenticated,
Float: LastX,
Float: LastY,
Float: LastZ,
Float: LastA,
Float: LastHealth,
Float: LastArmour,
LastSkin, // Here we have the enum for a players skin, marked as 'LastSkin'
LastVW,
LastInterior,
ModeratorLevel,
AdminLevel,
};
public LoadPlayerData(playerid, password[])
{
new string[128], Year, Month, Day, Minute, Hour, Second, Name[MAX_PLAYER_NAME];
GetPlayerName(playerid, Name, sizeof(Name));
format(string, sizeof(string), "Accounts/%s.ini", Name);
getdate(Year, Month, Day);
gettime(Hour, Minute, Second);
if(fexist(string))
{
if(strcmp(dini_Get(string, "Password"), password, false) == 0)
{
Player[playerid][Authenticated] = 1;
Player[playerid][Password] = dini_Get(string, "Password");
Player[playerid][Registered] = dini_Int(string, "Registered");
Player[playerid][LastX] = dini_Float(string, "LastX");
Player[playerid][LastY] = dini_Float(string, "LastY");
Player[playerid][LastZ] = dini_Float(string, "LastZ");
Player[playerid][LastA] = dini_Float(string, "LastA");
Player[playerid][LastHealth] = dini_Float(string, "LastHealth");
Player[playerid][LastArmour] = dini_Float(string, "LastArmour");
//Player[playerid][LastSkin] = dini_Int(string, "LastSkin");
Player[playerid][LastVW] = dini_Int(string, "LastVW");
Player[playerid][LastInterior] = dini_Int(string, "LastInterior");
Player[playerid][AdminLevel] = dini_Int(string, "AdminLevel");
Player[playerid][ModeratorLevel] = dini_Int(string, "ModeratorLevel");
SetSpawnInfo(playerid, 0, Player[playerid][LastSkin], Player[playerid][LastX], Player[playerid][LastY], Player[playerid][LastZ], Player[playerid][LastA], 0, 0, 0, 0, 0, 0);
SpawnPlayer(playerid);
SetPlayerPos(playerid, Player[playerid][LastX], Player[playerid][LastY], Player[playerid][LastZ]);
SetPlayerFacingAngle(playerid, Player[playerid][LastA]);
SetPlayerHealth(playerid, Player[playerid][LastHealth]);
SetPlayerArmour(playerid, Player[playerid][LastArmour]);
SetPlayerSkin(playerid, dini_Int(string, "LastSkin")); // Here we have the function that is supposed to set a players skin, according to the dini file.
return 1;
}
}
else
{
SendClientMessage(playerid, WHITE, "You must register first.");
}
return 1;
}
public SavePlayerData(playerid)
{
if(Player[playerid][Authenticated] == 1)
{
GetPlayerPos(playerid, Player[playerid][LastX], Player[playerid][LastY], Player[playerid][LastZ]);
GetPlayerHealth(playerid, Player[playerid][LastHealth]);
GetPlayerArmour(playerid, Player[playerid][LastArmour]);
Player[playerid][LastVW] = GetPlayerVirtualWorld(playerid);
Player[playerid][LastInterior] = GetPlayerInterior(playerid);
new string[128];
format(string, sizeof(string), "Accounts/%s.ini", GetNameWithUnderscore(playerid));
if(!fexist(string))
{
dini_Create(string);
}
dini_Set(string, "Password", Player[playerid][Password]);
dini_FloatSet(string, "LastX", Player[playerid][LastX]);
dini_FloatSet(string, "LastY", Player[playerid][LastY]);
dini_FloatSet(string, "LastZ", Player[playerid][LastZ]);
dini_FloatSet(string, "LastHealth", Player[playerid][LastHealth]);
dini_FloatSet(string, "LastArmour", Player[playerid][LastArmour]);
dini_IntSet(string, "LastSkin", GetPlayerSkin(playerid));
dini_IntSet(string, "LastVW", Player[playerid][LastVW]);
dini_IntSet(string, "LastInterior", Player[playerid][LastInterior]);
dini_IntSet(string, "AdminLevel", Player[playerid][AdminLevel]);
dini_IntSet(string, "ModeratorLevel", Player[playerid][ModeratorLevel]);
}
return 1;
}
|
EDIT: misread.
Try editing it while you're not on the server and see if it loads when you join. Check to see if it wrote correctly before you log off. |
public LoadPlayerData(playerid, password[])
{
new string[128], Year, Month, Day, Minute, Hour, Second, Name[MAX_PLAYER_NAME];
GetPlayerName(playerid, Name, sizeof(Name));
format(string, sizeof(string), "Accounts/%s.ini", Name);
getdate(Year, Month, Day);
gettime(Hour, Minute, Second);
if(fexist(string))
{
if(strcmp(dini_Get(string, "Password"), password, false) == 0)
{
Player[playerid][Authenticated] = 1;
Player[playerid][Password] = dini_Get(string, "Password");
Player[playerid][Registered] = dini_Int(string, "Registered");
Player[playerid][LastX] = dini_Float(string, "LastX");
Player[playerid][LastY] = dini_Float(string, "LastY");
Player[playerid][LastZ] = dini_Float(string, "LastZ");
Player[playerid][LastA] = dini_Float(string, "LastA");
Player[playerid][LastHealth] = dini_Float(string, "LastHealth");
Player[playerid][LastArmour] = dini_Float(string, "LastArmour");
Player[playerid][LastSkin] = dini_Int(string, "LastSkin");
Player[playerid][LastVW] = dini_Int(string, "LastVW");
Player[playerid][LastInterior] = dini_Int(string, "LastInterior");
Player[playerid][AdminLevel] = dini_Int(string, "AdminLevel");
Player[playerid][ModeratorLevel] = dini_Int(string, "ModeratorLevel");
SetSpawnInfo(playerid, 0, Player[playerid][LastSkin], Player[playerid][LastX], Player[playerid][LastY], Player[playerid][LastZ], Player[playerid][LastA], 0, 0, 0, 0, 0, 0);
SpawnPlayer(playerid);
SetPlayerPos(playerid, Player[playerid][LastX], Player[playerid][LastY], Player[playerid][LastZ]);
SetPlayerFacingAngle(playerid, Player[playerid][LastA]);
SetPlayerHealth(playerid, Player[playerid][LastHealth]);
SetPlayerArmour(playerid, Player[playerid][LastArmour]);
SetPlayerSkin(playerid, dini_Int(string, "LastSkin")); // Here we have the function that is supposed to set a players skin, according to the dini file.
return 1;
}
}
else
{
SendClientMessage(playerid, WHITE, "You must register first.");
}
return 1;
}
|
pawn Код:
|
|
Instead of extracting your skin again from dini try to use your enum array.
Also no comma after the last enum item! ... item1, item2, item3 }; |
Player[playerid][LastSkin]= dini_Int(string, "Last Skin");
public SavePlayerData(playerid)
{
if(Player[playerid][Authenticated] == 1)
{
GetPlayerPos(playerid, Player[playerid][LastX], Player[playerid][LastY], Player[playerid][LastZ]);
GetPlayerFacingAngle(playerid, Player[playerid][LastA]);
GetPlayerHealth(playerid, Player[playerid][LastHealth]);
GetPlayerArmour(playerid, Player[playerid][LastArmour]);
Player[playerid][LastVW] = GetPlayerVirtualWorld(playerid);
Player[playerid][LastInterior] = GetPlayerInterior(playerid);
new string[128];
format(string, sizeof(string), "Accounts/%s.ini", GetNameWithUnderscore(playerid));
if(!fexist(string))
{
dini_Create(string);
}
dini_Set(string, "Password", Player[playerid][Password]);
dini_FloatSet(string, "LastX", Player[playerid][LastX]);
dini_FloatSet(string, "LastY", Player[playerid][LastY]);
dini_FloatSet(string, "LastZ", Player[playerid][LastZ]);
dini_FloatSet(string, "LastHealth", Player[playerid][LastHealth]);
dini_FloatSet(string, "LastArmour", Player[playerid][LastArmour]);
dini_IntSet(string, "LastSkin", GetPlayerSkin(playerid));
dini_IntSet(string, "LastVW", Player[playerid][LastVW]);
dini_IntSet(string, "LastInterior", Player[playerid][LastInterior]);
dini_IntSet(string, "AdminLevel", Player[playerid][AdminLevel]);
dini_IntSet(string, "ModeratorLevel", Player[playerid][ModeratorLevel]);
}
return 1;
}