TimeC function returns wrong value
#1

Код:
new timefrom = (gettime()-PlayerInfo[playerid][pVIPTime]);
	    printf("VIP time was: %d seconds", timefrom);
	    printf("That converted with timec is: %s", timec(timefrom));
In console:
Код:
VIP time was: 134 seconds
That converted with timec is: 45 years
Actually the timeC function should convert it to minutes? Instead it converts 134 seconds to 45 years.. I took it from a thread and they had no issues with it:
Код:
stock timec(timestamp, compare = -1) {
    if (compare == -1) {
        compare = gettime();
    }
    new
        n,
        // on the following line, I have removed the need for the diff() function.
        // if you want to use the diff() function in pawn, replace the following with:
        // Float:d = diff(timestamp, compare),
        Float:d = (timestamp > compare) ? timestamp - compare : compare - timestamp,
        returnstr[32];
    if (d < 60) {
        format(returnstr, sizeof(returnstr), "< 1 minute");
        return returnstr;
    } else if (d < 3600) { // 3600 = 1 hour
        n = floatround(floatdiv(d, 60.0), floatround_floor);
        format(returnstr, sizeof(returnstr), "minute");
    } else if (d < 86400) { // 86400 = 1 day
        n = floatround(floatdiv(d, 3600.0), floatround_floor);
        format(returnstr, sizeof(returnstr), "hour");
    } else if (d < 2592000) { // 2592000 = 1 month
        n = floatround(floatdiv(d, 86400.0), floatround_floor);
        format(returnstr, sizeof(returnstr), "day");
    } else if (d < 31536000) { // 31536000 = 1 year
        n = floatround(floatdiv(d, 2592000.0), floatround_floor);
        format(returnstr, sizeof(returnstr), "month");
    } else {
        n = floatround(floatdiv(d, 31536000.0), floatround_floor);
        format(returnstr, sizeof(returnstr), "year");
    }
    if (n == 1) {
        format(returnstr, sizeof(returnstr), "1 %s", returnstr);
    } else {
        format(returnstr, sizeof(returnstr), "%d %ss", n, returnstr);
    }
    return returnstr;
}
Reply
#2

You need to pass in two timestamps to the function, not the difference between the two (if that makes sense) because the function calculates the difference. Simply passing PlayerInfo[playerid][pVIPTime] into the function should be enough.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)