Hello xD
#1

how can i check if a player enter in the inputtext a message like that : [DD/MM/YYYY] ? I need it to save player birthday..
Reply
#2

Код:
new day, month, year;
if(!sscanf(text, "p</>ddd", day, month, year))
{
     // Code here
}
Reply
#3

Lol @X337 omg its hard with sscanf xD
Ask for his age and not birthday date
Reply
#4

Quote:
Originally Posted by Roberto80
Посмотреть сообщение
Lol @X337 omg its hard with sscanf xD
Ask for his age and not birthday date
It's easy to get age form date.

e.g.
Код:
PlayerData[playerid][pAge] = 2015-Year;
Reply
#5

Quote:
Originally Posted by runcis
Посмотреть сообщение
It's easy to get age form date.

e.g.
Код:
PlayerData[playerid][pAge] = 2015-Year;
Thats Bullshit...

Then the age is to 50% wrong...

PHP код:
stock const g_days_m[12] = {312831303130313130313031};
stock GetPlayerAge(input[])
{
    new 
date[12];
    
strcat(dateinput);
    if(
date[1] == '.'strins(date"0"012);
    if(
date[4] == '.'strins(date"0"312);
    if(!
date[9] || date[10]) return -1;
    new 
day 10*(date[0]-48)+(date[1]-48);
    new 
month 10*(date[3]-48)+(date[4]-48);
    new 
year 1000*(date[6]-48)+100*(date[7]-48)+10*(date[8]-48)+(date[9]-48);
    if(
year 1000 || year 9999 || month || month 12 || day 1) return -1;
    if(
month == 2)
    {
        if(
day 28 && (year != || (year 100 == && year 400 != 0))) return -1;
    }
    else if(
day g_days_m[month-1]) return -1;
    new 
dmy;
    
getdate(ymd);
    new 
age year;
    if(
monthage--;
    else if(
== month && dayage--;
    return (
age 0) ? (-1) : (age);

Greekz
Reply
#6

I know, but that was just an example, like that's possible to get age from date.
Reply
#7

Код HTML:
stock const MonthDays[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
stock GetPlayerAge(playerid, input[])
{
    new Date[12];
    strcat(Date, input);

	if(Date[1] == '.')
		strins(Date, "0", 0, 12);

	if(Date[4] == '.')
		strins(Date, "0", 3, 12);

	if(!Date[9] || Date[10])
	{
		ShowPlayerDialog(playerid, DIALOG_AGE, DIALOG_STYLE_INPUT, "Age:[6-35]", "When were you born? ?\n[DD/MM/YYYY]", "Next", "");
		return -1;
	}
		
    new day = 10*(Date[0]-48)+(Date[1]-48);
    new month = 10*(Date[3]-48)+(Date[4]-48);
    new year = 1000*(Date[6]-48)+100*(Date[7]-48)+10*(Date[8]-48)+(Date[9]-48);
    
    if(year < 1000 || year > 9999 || month < 1 || month > 12 || day < 1)
    {
        ShowPlayerDialog(playerid, DIALOG_AGE, DIALOG_STYLE_INPUT, "Age:[6-35]", "When were you born? ?\n[DD/MM/YYYY]", "Next", "");
		return -1;
	}

	if(month == 2)
    {
	    if(day > 28 && (year % 4 != 0 || (year % 100 == 0 && year % 400 != 0)))
			return -1;
	}
    else if(day > MonthDays[month-1])
		return -1;

	new d, m, y;
    getdate(y, m, d);

	pInfo[playerid][pAge] = y - year;
	
	if(!strlen(input))
 		return ShowPlayerDialog(playerid, DIALOG_AGE, DIALOG_STYLE_INPUT, "Age:[6-35]", "When were you born? ?\n[DD/MM/YYYY]", "Next", "");

	
    if(m < month)
		pInfo[playerid][pAge]--;

	else if(m == month && d < day)
		pInfo[playerid][pAge]--;
		
	if(pInfo[playerid][pAge] < 7 || pInfo[playerid][pAge] > 35)
	{
	    ShowPlayerDialog(playerid, DIALOG_AGE, DIALOG_STYLE_INPUT, "Age: [6-35]", "When were you born? ?\n[DD/MM/YYYY]", "Next", "");
	    return pInfo[playerid][pAge];
 	}
	else return -1;
}
i tried to modify that stock and wont work , anyone want help me - that is over my level of knowledge ...

EDIT: Work perfectly if i put a inputtext like DD/MM/YYYY but , if i put another think that will skip to the next dialog ... what it's needed to add the condition if inputtext is not DD/MM/YYYY to set player dialog again ?!
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)