//edit: habs nun mal selber probiert, aber irgentwie will es nicht so wie ich will. Keine Ahnung, wo ich da nen Fehler habe..
public Anmelden(playerid) // der Spieler gibt sein passwort ein und wird angemeldet
{
new Spielerdatei[256], name[MAX_PLAYER_NAME], str[50], hour, minute, second, year, month, day, str2[50], str3[20], array1[2][50], array2[2][50], zeit[4];
GetPlayerName(playerid,name,sizeof(name));
gettime(hour,minute,second);
getdate(year,month,day);
format(str, sizeof str, "%d:%d",hour,minute); //hier wird die aktuelle Zeit abgefragt
format(str2,sizeof(str2),"%s",dini_Get(Spielerdatei,"lastlogout")); //hier wird die zeit seines letzten logouts ausgelesen
format(str3,sizeof(str3),"%d.%d.%d",day, month, year);
format(Spielerdatei,sizeof(Spielerdatei),"/LCN/%s.ini",name);
ResetPlayerMoney(playerid);
GivePlayerMoney(playerid,dini_Int(Spielerdatei,"Geld"));
Spieler[playerid][Admin] = dini_Int(Spielerdatei,"Admin");
Spieler[playerid][Skin] = dini_Int(Spielerdatei,"Skin");
Spieler[playerid][Leader] = dini_Int(Spielerdatei,"Leader");
Spieler[playerid][Member] = dini_Int(Spielerdatei,"Member");
Spieler[playerid][Geld] = dini_Int(Spielerdatei,"Geld");
Spieler[playerid][Score] = dini_Int(Spielerdatei,"Score");
Spieler[playerid][posx] = dini_Int(Spielerdatei,"posx");
Spieler[playerid][posy] = dini_Int(Spielerdatei,"posy");
Spieler[playerid][posz] = dini_Int(Spielerdatei,"posz");
Spieler[playerid][virtualworld] = dini_Int(Spielerdatei,"virtualworld");
Spieler[playerid][interior] = dini_Int(Spielerdatei,"interior");
SetPlayerScore(playerid,Spieler[playerid][Score]);
split(str2,array1,':'); // hier wird die stunde und Minute seines letzten logouts in 2 strings geteilt
split(str,array2,':'); // hier wird die jetztige Stunde und Minute in 2 strings geteilt
zeit[0] = strval(array1[0]); //stunde des letzten logouts
zeit[1] = strval(array1[1]); // minute des letzten logouts
zeit[2] = strval(array2[0]); // aktuelle stunde
zeit[3] = strval(array2[1]); // aktuelle minute
if(zeit[2] - zeit[0] <= 0 && zeit[3] - zeit[0] <= 15 && strcmp(str3, dini_Get(Spielerdatei,"logoutdate"), true) == 0) //hiet wird stunde - stunde und minuten - minuten gerechnet und überprüft, ob zwischen logout und login weniger als 15 minuten liegen
{
respawn[playerid] = 1; //die variable wird beim public OnPlayerSpawn abgefragt..
}
dini_Set(Spielerdatei,"lastlogin",str);
dini_Set(Spielerdatei,"logindate",str3);
SpawnPlayer(playerid);
return 1;
}
Logout:
public OnPlayerDisconnect(playerid, reason)
{
new SpielerName[MAX_PLAYER_NAME], Float:x, Float:y, Float:z;
GetPlayerName(playerid,SpielerName,sizeof(SpielerName));
GetPlayerPos(playerid,x,y,z);
Spieler[playerid][posx] = x;
Spieler[playerid][posy] = y;
Spieler[playerid][posz] = z;
Spieler[playerid][interior] = GetPlayerInterior(playerid);
Spieler[playerid][virtualworld] = GetPlayerVirtualWorld(playerid);
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(togjoin[i] == 0)
{
if(reason == 0)
{
new DisConnect[256];
format(DisConnect,sizeof(DisConnect),"%s (%d) hat die Verbindung verloren!",SpielerName,playerid);
SendClientMessage(i,0xFFFFFFFF, DisConnect);
}
if(reason == 1)
{
new DisConnect[256];
format(DisConnect,sizeof(DisConnect),"%s (%d) hat sich ausgeloggt!",SpielerName,playerid);
SendClientMessage(i,0xFFFFFFFF, DisConnect);
}
if(reason == 2)
{
new DisConnect[256];
format(DisConnect,sizeof(DisConnect),"%s (%d) wurde gekickt!",SpielerName,playerid);
SendClientMessage(i,0xFFFFFFFF, DisConnect);
}
}
}
logout[playerid] = 1;
respawn[playerid] = 0;
Update(playerid);
return 1;
}
Update:
public Update(playerid)
{
new Spielerdatei[256],SpielerName[MAX_PLAYER_NAME];
GetPlayerName(playerid,SpielerName,sizeof(SpielerName));
format(Spielerdatei,sizeof(Spielerdatei),"/LCN/%s.ini",SpielerName);
dini_IntSet(Spielerdatei,"Geld",GetPlayerMoney(playerid));
dini_IntSet(Spielerdatei,"Admin",Spieler[playerid][Admin]);
dini_IntSet(Spielerdatei,"Score",GetPlayerScore(playerid));
dini_IntSet(Spielerdatei,"Skin",Spieler[playerid][Skin]);
dini_IntSet(Spielerdatei,"ban",Spieler[playerid][ban]);
dini_IntSet(Spielerdatei,"Member",Spieler[playerid][Member]);
dini_IntSet(Spielerdatei,"Leader",Spieler[playerid][Leader]);
dini_FloatSet(Spielerdatei,"posx",Spieler[playerid][posx]);
dini_FloatSet(Spielerdatei,"posy",Spieler[playerid][posy]);
dini_FloatSet(Spielerdatei,"posz",Spieler[playerid][posz]);
dini_IntSet(Spielerdatei,"interior",Spieler[playerid][interior]);
dini_IntSet(Spielerdatei,"virtualworld",Spieler[playerid][virtualworld]);
if(logout[playerid] == 1)
{
new hour, minute, second, year, month, day, str1[50], str2[50];
gettime(hour,minute,second);
getdate(year,month,day);
format(str1,sizeof(str1), "%d:%d", hour, minute); //hier wird die aktuelle Zeit abgefragt
dini_Set(Spielerdatei,"lastlogout",str1);
format(str2,sizeof(str2),"%d.%d.%d",day, month, year); //hier wird das aktuelle Datum abgefragt
dini_Set(Spielerdatei,"logoutdate",str2);
}
return 1;
}
registrieren;
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == Dialog_Regis)
{
if(response)
{
new Spielerdatei[64], name[MAX_PLAYER_NAME], day, month, year, second, minute, hour, str1[50], str2[50];
GetPlayerName(playerid,name,sizeof(name));
gettime(hour,minute,second);
format(str1, sizeof str1, "%d:%d", hour, minute); //Hier ist die ganze ausgabe, sieht schwer aus, ist es aber nicht!
getdate(year,month,day);
format(str2,sizeof(str2),"%d.%d.%d",day,month,year);
format(Spielerdatei,sizeof(Spielerdatei),"/LCN/%s.ini",name);
dini_Create(Spielerdatei);
if(!strlen(inputtext))return ShowPlayerDialog(playerid, Dialog_Regis, DIALOG_STYLE_INPUT, "Registriere dich mit einem Passwort!", "Registrieren", "Registrieren!", "Abbrechen!");
dini_Set(Spielerdatei,"Passwort",inputtext);
dini_IntSet(Spielerdatei,"Admin",0);
dini_IntSet(Spielerdatei,"ban",0);
dini_Set(Spielerdatei,"bangrund","0");
dini_IntSet(Spielerdatei,"Skin",0);
dini_IntSet(Spielerdatei,"Member",0);
dini_IntSet(Spielerdatei,"Leader",0);
dini_IntSet(Spielerdatei,"Geld",1000);
dini_IntSet(Spielerdatei,"Score",1);
dini_FloatSet(Spielerdatei,"posx",0.0);
dini_FloatSet(Spielerdatei,"posy",0.0);
dini_FloatSet(Spielerdatei,"posz",0.0);
dini_IntSet(Spielerdatei,"interior",0);
dini_IntSet(Spielerdatei,"virtualworld",0);
dini_Set(Spielerdatei,"regdate",str2);
dini_Set(Spielerdatei,"lastlogin",str1);
dini_Set(Spielerdatei,"logindate",str2);
dini_Set(Spielerdatei,"lastlogout","- - -");
dini_Set(Spielerdatei,"logoutdate","- - -");
Anmelden(playerid);
SendClientMessage(playerid,0xFFFFFFFF,"Du wurdest automatisch eingeloggt!");
}
else
{
ShowPlayerDialog(playerid, Dialog_Regis, DIALOG_STYLE_INPUT, "Registrieren", "Registriere dich mit einem Passwort!", "Registrieren!", "Abbrechen!");
}
}
return 1;
}
spawn:
public OnPlayerSpawn(playerid)
{
if(duty[playerid] == 1)
{
SetPlayerColor(playerid,0xBB0000FF);
SetPlayerSkin(playerid,147);
}
else
{
SetPlayerColor(playerid,0xFFFFFFFF);
SetPlayerArmour(playerid,0.0);
SetPlayerHealth(playerid,100.0);
}
SetPlayerSpawn(playerid);
TogglePlayerControllable(playerid,1);
return 1;
}
SetPlayerSpawn:
public SetPlayerSpawn(playerid)
{
SetPlayerSkin(playerid,Spieler[playerid][Skin]);
SetPlayerInterior(playerid,0);
SetPlayerVirtualWorld(playerid,0);
if(respawn[playerid] == 1) // hier wird nun die variable wieder verwendet..
{
SetPlayerPos(playerid,Spieler[playerid][posx],Spieler[playerid][posy],Spieler[playerid][posz]);
SetPlayerVirtualWorld(playerid,Spieler[playerid][virtualworld]);
SetPlayerInterior(playerid,Spieler[playerid][interior]);
respawn[playerid] = 0;
if(Spieler[playerid][posz] >= 25)
{
GivePlayerWeapon(playerid,46,1);
}
}
else
{
if(Spieler[playerid][Member] == 1 || Spieler[playerid][Leader] == 1)
{
SetPlayerPos(playerid,685.2319,-1276.2795,13.5609);
}
else if(Spieler[playerid][Member] == 2 || Spieler[playerid][Leader] == 2)
{
SetPlayerPos(playerid,-1743.0505,1398.6871,7.1875);
}
else if(Spieler[playerid][Member] == 3 || Spieler[playerid][Leader] == 3)
{
SetPlayerPos(playerid,-2178.6472,714.3528,53.8906);
}
else if(Spieler[playerid][Member] == 4 || Spieler[playerid][Leader] == 4)
{
SetPlayerPos(playerid,-2502.3442,1207.9100,37.4283);
}
else if(Spieler[playerid][Member] == 5 || Spieler[playerid][Leader] == 5)
{
SetPlayerPos(playerid,2597.3418,1888.7904,11.0312);
}
else if(Spieler[playerid][Member] == 6 || Spieler[playerid][Leader] == 6)
{
SetPlayerPos(playerid,2512.2119,-1689.4874,13.5450);
}
}
return 1;
}
Ich hoffe ihr könnt mir da helfen, denn ich finde den fehler nicht. Habe keine Errors oder Warnings...