26.07.2016, 17:11
(
Последний раз редактировалось DarkSkull; 27.07.2016 в 18:25.
)
I'm trying to save player's info. Well, The code isn't working. I join the game, And since my user file doesn't exists, It is supposed to create a new file. And it doesn't look like it saves. Here's my code:
EDIT: Okay, I've just seen something. It saves but it saves it directly to my scriptfiles folder. And it doesn't have the .ini extension, nor does it have any data. I'm sure that I have all the necessary folder created for the path.
PHP код:
#define MAX_OWNABLE_VEHICLES 5
#define USERS_PATH "/EVO/users/%s.ini"
enum pInfo {
bool:pAllowed,
pTotalVehs,
pVSlot[MAX_OWNABLE_VEHICLES-1]
}
stock UserPath(playerid) {
new path[64], name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, sizeof(name));
format(path, sizeof(path), USERS_PATH, name);
return name;
}
public LoadUser_data(playerid,name[],value[])
{
printf("Read %s: %s", name, value);
INI_Bool("allowed", PlayerInfo[playerid][pAllowed]);
INI_Int("totalvehs", PlayerInfo[playerid][pTotalVehs]);
for(new i = 0; i < MAX_OWNABLE_VEHICLES; i++) {
new vslot[10];
format(vslot, sizeof(vslot), "slot%d", i);
INI_Int(vslot, PlayerInfo[playerid][pVSlot][i]);
}
return 1;
}
public OnPlayerConnect(playerid)
{
if(fexist(UserPath(playerid)))
{
INI_ParseFile(UserPath(playerid), "LoadUser_%s", .bExtra = true, .extra = playerid);
}
else
{
new INI:File = INI_Open(UserPath(playerid));
INI_SetTag(File,"data");
INI_WriteBool(File, "allowed", PlayerInfo[playerid][pAllowed]);
INI_WriteInt(File, "totalvehs", PlayerInfo[playerid][pTotalVehs]);
for(new i = 0; i < MAX_OWNABLE_VEHICLES; i++) {
new vslot[10];
format(vslot, sizeof(vslot), "slot%d", i);
INI_WriteInt(File, vslot, PlayerInfo[playerid][pVSlot][i]);
}
INI_Close(File);
}
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
new INI:File = INI_Open(UserPath(playerid));
INI_SetTag(File,"data");
INI_WriteBool(File, "allowed", PlayerInfo[playerid][pAllowed]);
INI_WriteInt(File, "totalvehs", PlayerInfo[playerid][pTotalVehs]);
for(new i = 0; i < MAX_OWNABLE_VEHICLES; i++) {
new vslot[10];
format(vslot, sizeof(vslot), "slot%d", i);
INI_WriteInt(File, vslot, PlayerInfo[playerid][pVSlot][i]);
}
INI_Close(File);
return 1;
}