Hallo ich bins mal wieder...
Ich habe 2 Probleme ich bin gestern abend mit einem Waffen kauf system via Dialog angefangen, habe es aber erstmal pausiert, da ich ein Login/Register system wichtiger fand. Da ich mich mit Dini überhaupt nich auskenne habe ich einfach mal die sachen aus MrMonatTutorials nachgemacht. Jetzt habe ich noch ein par zeilen für die txt datei in der die Spieler gespeichtert werden hinzugefügt. (mit dini_IntSet) Allerdings stehen in der Spielerdatei diese Zeilen nicht allerdings wird das geld usw trotzdem auch bei einem Restart gespeichert. Wen ich allerdings diese -txt datei Lösche und mich neu registriere ist das geld auch weg... Ich kapier garnichts mehr. Dazu zu dem Waffen system wen ich ein Button davon drücke öffnet sich das Kogin fenster o_O.
Naja hier mal die ganzen zeilen dafür:
OnPlayerConnect:
new Spielerdatei[64];
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
if(dini_Exists(Spielerdatei))
{
ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Login","Dein Account wurde gefunden. Gib bitte das Passwort ein.","Login","Abbrechen");
}
else
{
ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Registrieren","Gib bitte das gewünschte Passwort ein:","Register","Abbrechen");
}
OnPlayerDisconnect:
if(GetPVarInt(playerid,"loggedin")==1)
{
SpielerSpeichern(playerid);
}
Komplette InDialogResponse (auch für das waffensrystem und dem Bug:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid==DIALOG_LOGIN)
{
if(response==0)
{
SendClientMessage(playerid,BLAU,"Du hast den Vorgang abgebrochen.");
Kick(playerid);
return 1;
}
if(response==1)
{
if(!strlen(inputtext))
{
SendClientMessage(playerid,BLAU,"Das Passwort war nicht lang genug.");
ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Login","Dein Account wurde gefunden. Gib bitte das Passwort ein.","Login","Abbrechen");
return 1;
}
else
{
Login(playerid,inputtext);
return 1;
}
}
}
if(dialogid==DIALOG_REGISTER)
{
if(response==0)
{
SendClientMessage(playerid,BLAU,"Du hast den Vorgang abgebrochen.");
Kick(playerid);
return 1;
}
if(response==1)
{
if(!strlen(inputtext))
{
SendClientMessage(playerid,BLAU,"Das Passwort war nicht lang genug.");
ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Registrieren","Gib bitte das gewünschte Passwort ein:","Register","Abbrechen");
return 1;
}
else
{
Register(playerid,inputtext);
return 1;
}
}
}
if(dialogid==DIALOG_BUYGUN)
{
if(response==0)
{
SendClientMessage(playerid,BLAU,"Kaufen Abgebrochen.");
return 1;
}
if(response==1)
{
return 1;
}
}
return 1;
}
Hier die Stocks für das system:
//register
stock Register(playerid,key[])
{
new Spielerdatei[64];
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
dini_Create(Spielerdatei);
dini_Set(Spielerdatei,"Passwort",key);
SendClientMessage(playerid,BLAU,"Erfolgreich registriert.");
SetPlayerScore(playerid,0);
SetPVarInt(playerid,"loggedin",1);
dini_IntSet(Spielerdatei,"Level",0);
dini_IntSet(Spielerdatei,"Geld",0);
dini_IntSet(Spielerdatei,"Adminlevel",0);
dini_IntSet(Spielerdatei,"Baned",0);
return 1;
}
//login
stock Login(playerid,key[])
{
new Spielerdatei[64];
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
if(!strcmp(key,dini_Get(Spielerdatei,"Passwort"),false))
{
LoadAccount(playerid);
SendClientMessage(playerid,BLAU,"Erfolgreich eingeloggt.");
return 1;
}
else
{
SendClientMessage(playerid,BLAU,"Falsches Passwort.");
ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Login","Dein Account wurde gefunden. Gib bitte das Passwort ein.","Login","Abbrechen");
return 1;
}
}
//LoadAccount
stock LoadAccount(playerid)
{
new Spielerdatei[64];
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
SetPlayerScore(playerid,dini_Int(Spielerdatei,"Level"));
GivePlayerMoney(playerid,dini_Int(Spielerdatei,"Geld"));
SetPVarInt(playerid,"Adminlevel",dini_Int(Spielerdatei,"Adminlevel"));
SetPVarInt(playerid,"Baned",dini_Int(Spielerdatei,"Baned"));
if(GetPVarInt(playerid,"Baned")==1)
{
SendClientMessage(playerid,ROT,"Du bist vom Server gebannt.");
Kick(playerid);
}
SetPVarInt(playerid,"loggedin",1);
return 1;
}
//SpielerSpeichern
stock SpielerSpeichern(playerid)
{
if(GetPVarInt(playerid,"loggedin")==1)
{
new Spielerdatei[64];
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
dini_IntSet(Spielerdatei,"Level",GetPlayerScore(playerid));
dini_IntSet(Spielerdatei,"Geld",GetPlayerMoney(playerid));
dini_IntSet(Spielerdatei,"Adminlevel",GetPVarInt(playerid,"Adminlevel"));
dini_IntSet(Spielerdatei,"Baned",GetPVarInt(playerid,"Baned"));
}
return 1;
}
Ich hoffe ihr könnt mir helfen.
//e
Ok mit der Spielerdatei hat sich erledigt war ein Bug von FileZilla.
Jetzt ist nur noch der Bug mit dem Waffensystem da...
//ee
Fehler gefunden
Ich habe ein return 1; vergessen.
Danke für die nicht vorhandene Hilfe.