Se me ocurriу esto, bбsicamente es la idea lo que quiero presentarte no el cуdigo funcionando por si acaso.
PHP код:
new
QFA[MAX_PLAYERS][32];
public OnPlayerDisconnect(playerid, reason)
{
new
str[32];
format(str, sizeof str, "%s", user_files(playerid));
if(!isnull(str))
{
if(fexist(str))
{
new
INI:file = INI_Open(str);
INI_WriteString(file, "QFA", QFA[playerid]);
INI_Close(file);
return 1;
}
}
return 1;
}
public OnPlayerSpawn(playerid)
{
new
exist;
if((exist = LoadPlayerQFA(playerid)) == -1) // Archivo no existe, por ende setea su QFA a "nadie".
{
if(strcmp(QFA[userid], "Nadie")){
format(QFA[playerid], 32, "Nadie");
}
}
return 1;
}
COMMAND:matanzas(playerid, params[])
{
new
userid;
if(sscanf(params, "u", userid))
return 0;
if(!IsPlayerConnected(userid))
return 0;
if(strcmp(QFA[userid], "Nadie"))
return SendClientMessage(playerid, -1, "Nadie ha matado a dicho jugador, es todo un pro.");
new
str[64], name[MAX_PLAYER_ANAME];
GetPlayerName(playerid, name, MAX_PLAYER_NAME);
format(str, sizeof str, "%s fue el ultimo que mato a %s", QFA[userid], name);
SendClientMessage(playerid, -1, str);
return 1;
}
stock user_files(playerid)
{
new
string[64],
name[MAX_PLAYER_NAME]
;
GetPlayerName(playerid, name, MAX_PLAYER_NAME);
format(string, sizeof (string), "Matanzas/%s.ini", name);
if(!fexists(filename))
string[0] = '\0';
return string;
}
// Carga las matanzas, agrega esto..
stock LoadPlayerQFA(playerid)
{
new
str[54];
format(str, sizeof str, "%s", user_files(playerid));
if(isnull(str) || str[0] == '\0')
return -1;
return INI_ParseFile(user_files(playerid),"loadaccount_%s", .bExtra = true, .extra = playerid);
}
forward loadaccount_user( playerid, name[], value[]);
public loadaccount_user( playerid, name[], value[])
{
INI_String("QFA", QFA[playerid], 32);
return 1;
}
public OnPlayerDeath(playerid, killerid, reason)
{
if(killerid != INVALID_PLAYER_ID)
{
new
matador[MAX_PLAYER_NAME];
GetPlayerName(playerid, matador, MAX_PLAYER_NAME);
format(QFA[killerid], 32, "%s", matador);
// ok. ...
}
return 1;
}