forward split(const strsrc[], strdest[][], delimiter);
Geburtsdatum in Alter umwandeln.
- Eddy
- Geschlossen
- Erledigt
Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!
Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
-
-
Ich hätte ja die Idee, alles in ein Unix-Time umzuwandeln und daraus das Alter zu lesen.
-
Sollte mit split() klappen..
new alter[30],row[3][5];
format(alter, 30, "07.03.1997");
split(alter, row, '.');
new day = strval(row[0]);
new month = strval(row[1]);
new year = strval(row[2]);Split funktion:
forward split(const strsrc[], strdest[][], delimiter)
public split(const strsrc[], strdest[][], delimiter)
{
new i, li;
new aNum;
new len;
while(i <= strlen(strsrc)){
if(strsrc[i]==delimiter || i==strlen(strsrc)){
len = strmid(strdest[aNum], strsrc, li, i, 128);
strdest[aNum][len] = 0;
li = i+1;
aNum++;
}
i++;
}
return 1;
}Wie mache ich das mit PVars?? bzw. wie baue ich das in mein Geburtsdatum Dialog ein?? Könnte mir das jemand zeigen, wie ich das jetzt richtig mache? Ich habe bei meinen stock schon "Alter" drinne, und möchte das wenn der Spieler sein Geburtsadtum einträgt dort sein Alter eingetragen wird. Hoffe mir kann jemand Helfen. Hier ist der Dialog.
if(dialogid==Geburtsdatum)
{
if(response==0)
{
SendClientMessage(playerid,Blau,"Du hast die Registriernug abgebrochen.");
Kick(playerid);
}
if(response==1)
{
new count;
for(new i; i < strlen(inputtext); i++)
if(inputtext[i] == '.')
count++;
if(count >= 2)
{
new Spielerdatei[64], name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, sizeof name);
format(Spielerdatei, sizeof Spielerdatei, "/Accounts/%s.ini", name);
dini_Set(Spielerdatei, "Geburtsdatum", inputtext);
SetPVarString(playerid,"Alter",inputtext);
ShowPlayerDialog(playerid,DIALOG_GESCHLECHT,DIALOG_STYLE_MSGBOX,"Geschlecht","Bist du Weiblich oder Männlich?", "Männlich" , "Weiblich");
}
else
{
ShowPlayerDialog(playerid, Geburtsdatum, DIALOG_STYLE_INPUT, "Fehler Meldung","Du hast ein ungültiges Alter eingetragen\nBitte gebe dein Alter erneut ein.{FF0000}\n\nBeispiel: DD.MM.JJJJ.","Weiter","Abbrechen");
}
}
}
return 1;
} -
So da es dauernd Erros und Warnings gitb probiers mal so :
// Das in deine Stats wo du die ganzen Abfragen hastnew alter[30],row[3][5],zday,zmonth,zyear;
format(alter, 30, GetPVarString(playerid, "alter", alter ,128));
split(alter, row, '.');
new day = strval(row[0]);
new month = strval(row[1]);
new year = strval(row[2]);
new var1 = getdate(zyear,zmonth,zday);
new var2 = getdate(year,month,day);
new varrechnung = var1 - var2;if(zmonth < month && zday < day)
{
varrechnung - 1;
return 1;
}SetPVarInt(playerid,"AlterZahl",varrechnung);
//Im Dialog Stats
"Alter %d",GetPVarInt(playerid,"AlterZahl")...
/*
Speichern etc. solltest du hinbekommen ;)
*/
//Irgendwo ins Script :D
stock split(const strsrc[], strdest[][], delimiter)
{
new i, li;
new aNum;
new len;
while(i <= strlen(strsrc)){
if(strsrc[i]==delimiter || i==strlen(strsrc)){
len = strmid(strdest[aNum], strsrc, li, i, 128);
strdest[aNum][len] = 0;
li = i+1;
aNum++;
}
i++;
}
return 1;
}Müsste eignetlich so klappen.....
/edit Komma vergessen
-
@Big_Ben
Das klappt leider auch nicht =(
-
breadfish.de
Hat das Thema geschlossen.