Hallo Leute,
ich habe etwas an dem login gebastelt jedoch weiß ich jetzt nicht wie ich mein Passwort abspeichern kann.
In der Dini wird zwar ein Passwort abgefragt aber dort steht lediglich Passwort = 0
hier ist der passende Code dazu.
//SendClientMessageToAll(0xFFFF00AA, tmpbuf);
//SendClientMessage(playerid, 0xFF004040, tmpbuf);
/*Schreib mal ins "enum Info" noch rein "Admin"
Dann einfach die if Abfrage "if(pInfo[playerid][Admin] >= 1)"
Das wäre nun in dem Fall so:
Falls der Spieler größer als Admin oder gleich Admin 1 ist.
Du kannst das verwenden:
> (Größer als)
< (Kleiner als)
>= (Größer als oder ist gleich)
<= (Kleiner als oder ist gleich)
== (Ist perfekt gleich)*/
//--------------------------------------------------------------------------------------------------------------------------------------
//Icludes
//-------------------------
#include <a_samp>
#include <core>
#include <float>
#include <dini>
#pragma tabsize 0
//Defines
//------------------------
#define COLOR_GREY 0xAFAFAFAA
#define COLOR_GREEN 0x33AA33AA
#define COLOR_RED 0xAA3333AA
#define COLOR_YELLOW 0xFFFF00AA
#define COLOR_WHITE 0xFFFFFFAA
#define DIALOG_REGISTER1 0
#define DIALOG_REGISTER2 1
#define DIALOG_REGISTER3 2
#define DIALOG_REGISTER4 3
#define DIALOG_LOGIN1 4
#define DIALOG_NOPW1 5
#define DIALOG_NOPW2 6
#define DIALOG_WRONGPW 7
#define DIALOG_LOGIN 8
//New`s
//-----------------------------
new Text:txtTimeDisp;
new hour, minute;
new timestr[32];
//Enum`S
//--------------------------------------------------------------------------
enum pInfo
{
sex, // 0 = Männlich, 1 = Weiblich.
age, // Das Alter
password,
logged // Ob der Spieler eingeloggt ist.
}
new Info[MAX_PLAYERS][pInfo];
//Forward`S
//--------------------------
forward UpdateTimeAndWeather();
//OnPlayerRequestSpawn
//-----------------------------------------
public OnPlayerRequestSpawn(playerid)
{
return 1;
}
//OnPlayerPickUpPickup
//-----------------------------------------
public OnPlayerPickUpPickup(playerid, pickupid)
{
}
//OnPlayerConnet
//--------------------------------------------------------------------------
public OnPlayerConnect(playerid)
{
GameTextForPlayer(playerid,"~w~test server",5000,5);
gettime(hour, minute);
SetPlayerTime(playerid,hour,minute);
new pname[MAX_PLAYER_NAME], path[200];
GetPlayerName(playerid, pname, sizeof(pname));
format(path, sizeof(path), "/Spieler.ini", pname);
if(!dini_Exists(path))
{
// Wenn der Spieler nicht registriert ist:
ShowPlayerDialog(playerid, DIALOG_REGISTER1, DIALOG_STYLE_INPUT, "Registrierung", "Geben Sie hier Ihr gewünschtes Passwort ein:", "OK", "Abbrechen");
}
else
{
// Wenn der Spieler registriert ist:
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT, "Login", "Geben Sie hier Ihr Passwort ein:", "OK", "Abbrechen");
}
return 1;
}
//OnPlayerDisconnect
//------------------------------------------------------------------------------------------------------
public OnPlayerDisconnect(playerid)
{
new pname[MAX_PLAYER_NAME], path[200];
GetPlayerName(playerid, pname, sizeof(pname));
format(path, sizeof(path), "/Spieler/%s.ini", pname);
dini_IntSet(path, "sex", Info[playerid][sex]);
dini_IntSet(path, "age", Info[playerid][age]);
dini_IntSet(path, "password", Info[playerid][password]);
Info[playerid][logged] = 0;
}
//Befehle
//------------------------------------------------------------------------------------------------------
public OnPlayerCommandText(playerid, cmdtext[])
{
return 1;
}
//OnPlayerSpawn
//------------------------------------------------------------------------------------------------------
public OnPlayerSpawn(playerid)
{
GivePlayerMoney(playerid, 5000);
SetPlayerInterior(playerid,0);
TextDrawShowForPlayer(playerid,txtTimeDisp);
gettime(hour, minute);
SetPlayerTime(playerid,hour,minute);
return 1;
}
//OnPlayerDeath
//------------------------------------------------------------------------------------------------------
public OnPlayerDeath(playerid, killerid, reason)
{
TextDrawHideForPlayer(playerid,txtTimeDisp);
return 1;
}
//OnPlayerRequestClass
//----------------------------------------------------------------------
public OnPlayerRequestClass(playerid, classid)
{
return 1;
}
public OnGameModeInit()
{
SetGameModeText("Test");
ShowPlayerMarkers(1);
DisableInteriorEnterExits();
ShowNameTags(1);
EnableStuntBonusForAll(1);
txtTimeDisp = TextDrawCreate(605.0,25.0,"00:00");
TextDrawUseBox(txtTimeDisp, 0);
TextDrawFont(txtTimeDisp, 3);
TextDrawSetShadow(txtTimeDisp,0); // no shadow
TextDrawSetOutline(txtTimeDisp,2); // thickness 1
TextDrawBackgroundColor(txtTimeDisp,0x000000FF);
TextDrawColor(txtTimeDisp,0xFFFFFFFF);
TextDrawAlignment(txtTimeDisp,3);
TextDrawLetterSize(txtTimeDisp,0.5,1.5);
UpdateTimeAndWeather();
SetTimer("UpdateTimeAndWeather",1000 * 60,1);
// Car Spawns------------------------------------------------------------------
AddStaticVehicle(451,2040.0520,1319.2799,10.3779,183.2439,16,16);
}
//UpdateTimeAndWeather
//----------------------------------------------------------------------------
public UpdateTimeAndWeather()
{
// Update time
gettime(hour, minute);
format(timestr,32,"%02d:%02d",hour,minute);
TextDrawSetString(txtTimeDisp,timestr);
SetWorldTime(hour);
new x=0;
while(x!=MAX_PLAYERS) {
if(IsPlayerConnected(x) && GetPlayerState(x) != PLAYER_STATE_NONE) {
SetPlayerTime(x,hour,minute);
}
x++;
}
}
//OnDialogRespnse
//----------------------------------------------------------------------------
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
new pname[MAX_PLAYER_NAME], path[200];
GetPlayerName(playerid, pname, sizeof(pname));
format(path, sizeof(path), "/Spieler/%s.ini", pname);
switch(dialogid)
{
case DIALOG_REGISTER1:
{
if(!response)
{
Kick(playerid);
}
else
{
new pwlength = strlen(inputtext);
if(pwlength > 0)
{
dini_Create(path); // Erstellt die .ini Datei
dini_Set(path, "password", inputtext); // Schreibt das eingegebene Passwort in die .ini
ShowPlayerDialog(playerid, DIALOG_REGISTER2, DIALOG_STYLE_LIST, "Geschlecht", "Männlich\r\nWeiblich", "Fertig", "Abbruch");
}
else
{
ShowPlayerDialog(playerid, DIALOG_NOPW1, DIALOG_STYLE_MSGBOX, "Registrierung", "Sie müssen ein Passwort angeben!", "OK", "Abbrechen");
}
}
}
case DIALOG_REGISTER2:
{
if(!response)
{
dini_Remove(path); // .ini löschen, da der User die registrierung abgebrochen hat.
Kick(playerid);
}
else
{
dini_IntSet(path, "sex", listitem); // Schreibt entweder 0 oder 1 in die .ini (0 = Männlich, 1 = Weiblich)
ShowPlayerDialog(playerid, DIALOG_REGISTER3, DIALOG_STYLE_INPUT, "Registrierung", "Geben Sie hier Ihr Alter an: (z.B. 16):", "OK", "Abbrechen");
}
}
case DIALOG_REGISTER3:
{
if(!response)
{
dini_Remove(path); // .ini löschen, da der User die registrierung abgebrochen hat.
Kick(playerid);
}
else
{
dini_Set(path, "age", inputtext);
ShowPlayerDialog(playerid, DIALOG_REGISTER4, DIALOG_STYLE_MSGBOX, "Registrierung", "Ihre Registrierung ist nun abgeschlossen!", "OK", "OK");
}
}
case DIALOG_REGISTER4:
{
Info[playerid][sex] = dini_Int(path, "sex");
Info[playerid][age] = dini_Int(path, "age");
Info[playerid][logged] = 1;
}
case DIALOG_LOGIN1:
{
if(!response)
{
Kick(playerid);
}
else
{
if(strlen(inputtext))
{
if(strcmp(inputtext, dini_Get(path, "password")) == 0) // Wenn das Passwort stimmt
{
Info[playerid][sex] = dini_Int(path, "sex");
Info[playerid][age] = dini_Int(path, "age");
Info[playerid][logged] = 1;
}
else
{
ShowPlayerDialog(playerid, DIALOG_WRONGPW, DIALOG_STYLE_MSGBOX, "Login", "Sie haben ein inkorrektes Passwort angegen!", "OK", "Abbrechen");
}
}
else
{
ShowPlayerDialog(playerid, DIALOG_NOPW2, DIALOG_STYLE_MSGBOX, "Login", "Sie müssen ein Passwort angeben!", "OK", "Abbrechen");
}
}
}
case DIALOG_NOPW1: // Sollte das Passwort bei der Registrierung "Leer" sein:
{
if(!response)
{
Kick(playerid);
}
else
{
ShowPlayerDialog(playerid, DIALOG_REGISTER1, DIALOG_STYLE_INPUT, "Registrierung", "Geben Sie hier Ihr gewünschtes Passwort ein:", "OK", "Abbrechen");
}
}
case DIALOG_NOPW2: // Sollte das Passwort beim Login "Leer" sein:
{
if(!response)
{
Kick(playerid);
}
else
{
ShowPlayerDialog(playerid, DIALOG_LOGIN1, DIALOG_STYLE_INPUT, "Login", "Geben Sie hier Ihr Passwort ein:", "OK", "Abbrechen");
}
}
case DIALOG_WRONGPW:
{
if(!response)
{
Kick(playerid);
}
else
{
ShowPlayerDialog(playerid, DIALOG_LOGIN1, DIALOG_STYLE_INPUT, "Login", "Geben Sie hier Ihr Passwort ein:", "OK", "Abbrechen");
}
}
}
}
//Stock`S
//----------------------------------------------------------------------------