Am I doing something wrong with getting my timestamp setted up, since the stamp2date (Crayder's) is giving a little bit false output?
pawn Code:
CMD:setvip(playerid, params[])
{
if (PlayerInfo[playerid][pAdmin] >= 1337 || PlayerInfo[playerid][pShopTech] >= 1)
{
new string[128], giveplayerid, level, days;
if(sscanf(params, "idd", giveplayerid, level, days))
{
SendClientMessageEx(playerid, COLOR_WHITE, "USAGE: /setvip [playerid] [level] [days(0 for indefinite)]");
SendClientMessageEx(playerid, COLOR_GRAD3, "Available Levels: |0| None |1| Bronze |2| Silver |3| Gold");
return 1;
}
if(days < 0 || days > 365)
return SendClientMessageEx(playerid, COLOR_GREY, "Invalid days specified. (365 days is the maximum)");
if(level < 0 || level > 3)
return SendClientMessageEx(playerid, COLOR_GRAD1, "VIP Level can not be below 0 or above 3!");
if(!IsPlayerConnected(giveplayerid))
return SendClientMessageEx(playerid, COLOR_GREY, "Invalid player specified.");
PlayerInfo[giveplayerid][pDonateRank] = level;
if(days > 0) PlayerInfo[giveplayerid][pTempVIP] = gettime() + 60 * 60 * (24 * days);
else PlayerInfo[giveplayerid][pTempVIP] = 0;
PlayerInfo[giveplayerid][pBuddyInvited] = 0;
mysql_format(mysql_connection, queryBuffer, sizeof(queryBuffer), "UPDATE users SET DonateRank = %d, TempVIP = %d, BuddyInvite = 0 WHERE ID = %d", PlayerInfo[giveplayerid][pDonateRank], PlayerInfo[giveplayerid][pTempVIP], PlayerInfo[giveplayerid][pID]);
mysql_tquery(mysql_connection, queryBuffer);
new year, month,day;
getdate(year, month, day);
new playerip[32];
GetPlayerIp(giveplayerid, playerip, sizeof(playerip));
if (PlayerInfo[playerid][pAdmin] < 1337)
{
if(days > 0) format(string, sizeof(string), "AdmCmd: %s has set %s's VIP level to %s (%d) for %d day(s).", GetPlayerNameEx(playerid), GetPlayerNameEx(giveplayerid), GetDonorRank(level), level, days);
else format(string, sizeof(string), "AdmCmd: %s has set %s's VIP level to %s (%d) indefinitely.", GetPlayerNameEx(playerid), GetPlayerNameEx(giveplayerid), GetDonorRank(level), level);
SendClientMessageEx(playerid, COLOR_LIGHTRED, string);
}
if(days > 0) format(string, sizeof(string), "AdmCmd: %s has set %s's VIP level to %s (%d) for %d day(s).", GetPlayerNameEx(playerid), GetPlayerNameEx(giveplayerid), GetDonorRank(level), level, days);
else format(string, sizeof(string), "AdmCmd: %s has set %s's VIP level to %s (%d) indefinitely.", GetPlayerNameEx(playerid), GetPlayerNameEx(giveplayerid), GetDonorRank(level), level);
ABroadCast(COLOR_LIGHTRED,string, 1337);
if(days > 0) format(string, sizeof(string), "Your VIP level has been set to %s for %d day(s) by Admin %s.", GetDonorRank(level), days, GetPlayerNameEx(playerid));
else format(string, sizeof(string), "Your VIP level has been set to %s indefinitely by Admin %s.", GetDonorRank(level), GetPlayerNameEx(playerid));
SendClientMessageEx(giveplayerid, COLOR_WHITE, string);
SendClientMessageEx(giveplayerid, COLOR_YELLOW, "HINT: Use /vipstatus to check when or how many days you have left before your subscription expires.");
if(level < 1)
{
PlayerInfo[giveplayerid][pTokens] = 0;
mysql_format(mysql_connection, queryBuffer, sizeof(queryBuffer), "UPDATE users SET Tokens = %d WHERE ID = %d", PlayerInfo[giveplayerid][pTokens], PlayerInfo[giveplayerid][pID]);
mysql_tquery(mysql_connection, queryBuffer);
}
if(days > 0) format(string, sizeof(string), "AdmCmd: %s has set %s's (IP:%s) VIP level to %s (%d) for %d day(s) (%d-%d-%d)", GetPlayerNameEx(playerid), GetPlayerNameEx(giveplayerid), playerip, GetDonorRank(level), level, days, month,day,year);
else format(string, sizeof(string), "AdmCmd: %s has set %s's (IP:%s) VIP level to %s (%d) indefinitely (%d-%d-%d)", GetPlayerNameEx(playerid), GetPlayerNameEx(giveplayerid), playerip, GetDonorRank(level), level, month,day,year);
Log("setvip", string);
}
else
{
SendClientMessageEx(playerid, COLOR_GRAD1, "You are not authorized to use that command!");
}
return 1;
}
CMD:vipstatus(playerid, params[])
{
if(PlayerInfo[playerid][pDonateRank] > 0)
{
new string[128];
new year, month, day, hour, minute, second;
static const MONTH_NAMES[12][] = {
"January", "Feburary", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"
};
if(PlayerInfo[playerid][pBuddyInvited] > 0)
{
new diff_secs = ( PlayerInfo[playerid][pTempVIP] - gettime() );
new remain_months = ( diff_secs / (60 * 60 * 24 * 30) );
diff_secs -= remain_months * 60 * 60 * 24 * 30;
new remain_days = ( diff_secs / (60 * 60 * 24) );
diff_secs -= remain_days * 60 * 60 * 24;
new remain_hours = ( diff_secs / (60 * 60) );
diff_secs -= remain_hours * 60 * 60;
new remain_minutes = ( diff_secs / 60 );
diff_secs -= remain_minutes * 60;
format(string, sizeof(string), "You have %d hour(s) left before your temporary %s expires.", remain_hours, GetDonorRank(PlayerInfo[playerid][pDonateRank]));
SendClientMessageEx(playerid, COLOR_YELLOW, string);
}
else
{
if(PlayerInfo[playerid][pTempVIP] > 0)
{
new diff_secs = ( PlayerInfo[playerid][pTempVIP] - gettime() );
new remain_months = ( diff_secs / (60 * 60 * 24 * 30) );
diff_secs -= remain_months * 60 * 60 * 24 * 30;
new remain_days = ( diff_secs / (60 * 60 * 24) );
diff_secs -= remain_days * 60 * 60 * 24;
new remain_hours = ( diff_secs / (60 * 60) );
diff_secs -= remain_hours * 60 * 60;
new remain_minutes = ( diff_secs / 60 );
diff_secs -= remain_minutes * 60;
stamp2datetime(PlayerInfo[playerid][pTempVIP], year, month, day, hour, minute, second);
if(remain_days > 0) format(string, sizeof(string), "Your %s will expire on (%s %d, %d %02d:%02d:%0d) - %d month(s) and %d day(s) left", GetDonorRank(PlayerInfo[playerid][pDonateRank]), MONTH_NAMES[month-1], day, year, hour, minute, second, remain_months, remain_days);
else format(string, sizeof(string), "Your %s will expire on (%s %d, %d %02d:%02d:%0d) - %d hour(s) and %d minute(s) left", GetDonorRank(PlayerInfo[playerid][pDonateRank]), MONTH_NAMES[month-1], day, year, hour, minute, second, remain_hours, remain_minutes);
SendClientMessageEx(playerid, COLOR_YELLOW, string);
}
else
{
format(string, sizeof(string), "Your %s is set indefinitely and won't expire any time soon.", GetDonorRank(PlayerInfo[playerid][pDonateRank]));
SendClientMessageEx(playerid, COLOR_YELLOW, string);
}
}
}
else
{
SendClientMessageEx(playerid, COLOR_LIGHTRED, "You are not VIP");
}
return 1;
}