Beitrag von Kriegerbeere ()
Dieser Beitrag wurde vom Autor gelöscht ().
Also das ist eine sehr interessante Art da ran zu gehen, aber gut. So wie das aussieht fehlt das GivePlayerMoney, schreibe es mal so:
RewardPlayer(playerid, Money, Points)
{
APlayerData[playerid][PlayerMoney] = APlayerData[playerid][PlayerMoney] + Money;
APlayerData[playerid][PlayerScore] = APlayerData[playerid][PlayerScore] + Points;
GivePlayerMoney(playerid, Money);
return 1;
}
Ich würde das RewardPlayer ganz weg lassen, denn wenn du 20 Stats hast, dann musst du es mit 20 Parametern machen, und das wird irgendwann einfach nur chaotisch.
Schreibe die Werte direkt beim Laden in die Variable:
PlayerFile_Load(playerid)
{
new file[100], File:PFile, Name[24], LineFromFile[100], ParameterName[50], ParameterValue[50];
format(Name, sizeof(Name), APlayerData[playerid][PlayerName]);
format(file, sizeof(file), PlayerFile, Name);
if (fexist(file))
{
PFile = fopen(file, io_read);
fread(PFile, LineFromFile);
while (strlen(LineFromFile) > 0)
{
StripNewLine(LineFromFile);
sscanf(LineFromFile, "s[50]s[50]", ParameterName, ParameterValue);
if (strcmp(ParameterName, "Password", false) == 0)
{
format(APlayerData[playerid][PlayerPassword], 50, ParameterValue);
}
if (strcmp(ParameterName, "Money", false) == 0)
{
APlayerData[playerid][PlayerMoney] = strval(ParameterValue);
GivePlayerMoney(playerid, APlayerData[playerid][PlayerMoney]);
}
if (strcmp(ParameterName, "Score", false) == 0)
{
APlayerData[playerid][PlayerScore] = strval(ParameterValue);
SetPlayerScore(playerid, APlayerData[playerid][PlayerScore]);
}
fread(PFile, LineFromFile);
}
fclose(PFile);
return 1;
}
return 0;
}