So hab mir grade mal fix ein Banksystem gescriptet (nich wundern InRangeOfPoint hab ich noch net drinne) ja auf jeden fall hab ich ein problem beim saven und laden des bankgeldes hier ist der Script:
enum spieler_daten
{
wanted,
skin,
Float:lastx,Float:lasty,Float:lastz,
eingeloggt,
bankgeld
}
public OnPlayerDisconnect(playerid, reason)
{
new pname[MAX_PLAYERS],accFormat[128], Float:saveX, Float:saveY, Float:saveZ;
GetPlayerName(playerid,pname,sizeof pname);
format(accFormat,sizeof accFormat,"%s.datei",pname);
if(fexist(accFormat) && Spieler[playerid][eingeloggt])
{
new
namee[MAX_PLAYER_NAME],
string[128];
GetPlayerName(playerid,namee,sizeof(namee));
format(string,sizeof(string),"%s hat den Server verlassen.",namee);
SendClientMessageToAll(0xFFFFFFAA,string);
dini_IntSet(accFormat,"wanted",Spieler[playerid][wanted]);
dini_IntSet(accFormat,"skin",GetPlayerSkin(playerid));
GetPlayerPos(playerid,saveX, saveY, saveZ);
dini_FloatSet(accFormat,"lastx",saveX);
dini_FloatSet(accFormat,"lasty",saveY);
dini_FloatSet(accFormat,"lastz",saveZ);
dini_IntSet(accFormat,"Geld",GetPlayerMoney(playerid));
dini_IntSet(accFormat,"Score",GetPlayerScore(playerid));
dini_IntSet(accFormat,"bankgeld",bankgeld(playerid,bankgeld));
}
Spieler[playerid][eingeloggt] = 0;
Spieler[playerid][wanted] = 0;
Spieler[playerid][skin] = 0;
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
new pname[MAX_PLAYERS],accFormat[128];
GetPlayerName(playerid,pname,sizeof pname);
format(accFormat,sizeof accFormat,"%s.datei",pname);
if(response)
{
switch(dialogid) // dialogid auswählen
{
case DIALOG_LOGIN: // ID Login
{
if(!strlen(inputtext))
{
ShowPlayerDialog(playerid,DIALOG_LOGIN,1,"Login","Bitte log dich mit deinem Passwort ein.","Einloggen","Abbrechen");
return SendClientMessage(playerid,0xFFFFFFFF,"Kein Passwort angegeben!");
}
if(strcmp(inputtext,dini_Get(accFormat,"Passwort")) == 0) // Passwort Direkt aus der Datei Laden
{
Spieler[playerid][wanted] = dini_Int(accFormat,"wanted");
Spieler[playerid][skin] = dini_Int(accFormat,"skin");
Spieler[playerid][lastx] = dini_Float(accFormat,"lastx");
Spieler[playerid][lasty] = dini_Float(accFormat,"lasty");
Spieler[playerid][lastz] = dini_Float(accFormat,"lastz");
GivePlayerMoney(playerid,dini_Int(accFormat,"Geld"));
SetPlayerScore(playerid,dini_Int(accFormat,"Score"));
bankgeld(playerid, bankgeld,dini_Int(accFormat,"bankgeld"));
Spieler[playerid][eingeloggt] = 1; // Spieler ist nun erfolgreich eingeloggt
SendClientMessage(playerid,0xFFFFFFFF,"Du wurdest erfolgreich eingeloggt.");
}
else
{
ShowPlayerDialog(playerid,DIALOG_LOGIN,1,"Login","Bitte log dich mit deinem Passwort ein.","Einloggen","Abbrechen");
SendClientMessage(playerid,0xFFFFFFFF,"Das Passwort war Falsch!");
}
}
case DIALOG_REG: // ID Registrieren
{
if(!strlen(inputtext))
{
ShowPlayerDialog(playerid,DIALOG_REG,1,"Registrieren","Bitte Registriere dich","Registrieren","Abbrechen");
return SendClientMessage(playerid,0xFFFFFFFF,"Das Passwort ist zu kurz!");
}
dini_Create(accFormat);
dini_Set(accFormat,"Passwort",inputtext);
Spieler[playerid][eingeloggt] = 1;
SendClientMessage(playerid,0xFFFFFFFF,"Account wurde angelegt und du wurdest eingeloggt.");
}
}
}
else
{
switch(dialogid)
{
case DIALOG_LOGIN:ShowPlayerDialog(playerid,DIALOG_LOGIN,1,"Login","Bitte logge dich ein","Weiter","Abbrechen");
case DIALOG_REG:ShowPlayerDialog(playerid,DIALOG_REG,1,"Registrieren","Bitte Registriere dich","Weiter","Abbrechen");
}
}
return 1;
}
Errors:
C:\PROGRA~1\GTASAN~1\GTASAN~1\SAMP03~1\GAMEMO~1\Sample.pwn(191) : error 012: invalid function call, not a valid address
C:\PROGRA~1\GTASAN~1\GTASAN~1\SAMP03~1\GAMEMO~1\Sample.pwn(191) : warning 215: expression has no effect
C:\PROGRA~1\GTASAN~1\GTASAN~1\SAMP03~1\GAMEMO~1\Sample.pwn(191) : warning 215: expression has no effect
C:\PROGRA~1\GTASAN~1\GTASAN~1\SAMP03~1\GAMEMO~1\Sample.pwn(191) : error 001: expected token: ";", but found ")"
C:\PROGRA~1\GTASAN~1\GTASAN~1\SAMP03~1\GAMEMO~1\Sample.pwn(191) : error 029: invalid expression, assumed zero
C:\PROGRA~1\GTASAN~1\GTASAN~1\SAMP03~1\GAMEMO~1\Sample.pwn(191) : fatal error 107: too many error messages on one line
Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
4 Errors.
in dieser Zeile:
dini_IntSet(accFormat,"bankgeld",bankgeld(playerid,bankgeld));
Das Problem liegt beim Speichern und (denk mal) auch beim Laden .. weiß nicht wie ich auf das bankgeld zugreifen kann um es zu speichern "GetPlayerbankgeld" gibts ja nicht desswegen Help ...
MfG bad_company