new VIPexpire;
VipExpiredTime
dini_IntSet(string, "VipExpiredTime", Player[playerid][VipExpiredTime]);
dini_IntSet(string, "VipExpiredTime", Player[playerid][VipExpiredTime]);
Player[playerid][VipExpiredTime] = dini_Int(string, "VipExpiredTime");
command(changeviplevel, playerid, params[])
{
new level, id, string[128], string2[128];
if(sscanf(params, "ud", id, level))
{
if(Player[playerid][AdminLevel] >= 5)
{
SendClientMessage(playerid, WHITE, "SYNTAX: /changeviplevel [playerid] [level]");
}
}
else
{
if(Player[playerid][AdminLevel] >= 5)
{
if(level > 4 ) return SendClientMessage(playerid, RED, "Avaliable levels 1 - 4");
if(IsPlayerConnectedEx(id))
{
Player[id][VipRank] = level;
VIPexpire = gettime() + 2592000;
format(string, sizeof(string), "%s's VIP level has been changed to %d, by %s.", GetName(id), level, GetName(playerid));
format(string2, sizeof(string2), "%s's VIP level has been changed to %d by %s.", GetName(id), level, GetName(playerid));
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnectedEx(i) && Player[i][VipRank] >= 1)
{
SendClientMessage(i, YELLOW, string);
SetPlayerColor(id, YELLOW);
}
if(level == 0)
{
SendClientMessage(i, YELLOW, string2);
SetPlayerColor(id, WHITE);
}
}
}
else
{
SendClientMessage(playerid, WHITE, "That player is not connected or isn't logged in.");
}
}
}
return 1;
}
if(gettime() > VIPexpire && Player[playerid][VipRank] != 0)
{
Player[playerid][VipExpiredTime] = 1;
}
if(Player[playerid][VipExpiredTime] == 1)
{
SendClientMessage(playerid, RED, "Your VIP has expired to by it again go to www.DBullet-Gaming.tk");
Player[playerid][VipRank] = 0;
Player[playerid][VipExpiredTime] = 0;
}
I think the problem is you aren't using gettime function correctly.
I recommend you to visit this page: https://sampwiki.blast.hk/wiki/Gettime It's weird that your compiler doesn't send a warning for skipping three params ("hour, minute, second") when you use gettime. |
new expireDays = (86400*days)+gettime();
// Example, I want the vip expire in 30 days.
dini_IntSet(account, "donatorExpire", (86400*30)+gettime());
// Checking if already pass 30 days
new atualTimer = dini_Int(account, "donatorExpire");
if( atualTimer < gettime() ){
// Your donator is out!
}
else {
new iRandomTime = (atualTimer-gettime())+gettime();
format(string, 128, "Your donator will expire in %d days", timec(iRandomTime));
}
/// End of gm
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 minuto");
return returnstr;
} else if (d < 3600) { // 3600 = 1 hour
n = floatround(floatdiv(d, 60.0), floatround_floor);
format(returnstr, sizeof(returnstr), "minuto");
} else if (d < 86400) { // 86400 = 1 day
n = floatround(floatdiv(d, 3600.0), floatround_floor);
format(returnstr, sizeof(returnstr), "hora");
} else if (d < 2592000) { // 2592000 = 1 month
n = floatround(floatdiv(d, 86400.0), floatround_floor);
format(returnstr, sizeof(returnstr), "dia");
} else if (d < 31536000) { // 31536000 = 1 year
n = floatround(floatdiv(d, 2592000.0), floatround_floor);
format(returnstr, sizeof(returnstr), "mкs");
} else {
n = floatround(floatdiv(d, 31536000.0), floatround_floor);
format(returnstr, sizeof(returnstr), "ano");
}
if (n == 1) {
format(returnstr, sizeof(returnstr), "1 %s", returnstr);
} else {
format(returnstr, sizeof(returnstr), "%d %ss", n, returnstr);
}
return returnstr;
}
command(changeviplevel, playerid, params[])
{
new level, id, string[128], string2[128];
if(sscanf(params, "ud", id, level))
{
if(Player[playerid][AdminLevel] >= 5)
{
SendClientMessage(playerid, WHITE, "SYNTAX: /changeviplevel [playerid] [level]");
}
}
else
{
if(Player[playerid][AdminLevel] >= 5)
{
if(level > 4 ) return SendClientMessage(playerid, RED, "Avaliable levels 1 - 4");
if(IsPlayerConnectedEx(id))
{
Player[id][VipRank] = level;
Player[id][VipExpiredTime] = gettime() + 2592000;
format(string, sizeof(string), "%s's VIP level has been changed to %d, by %s.", GetName(id), level, GetName(playerid));
format(string2, sizeof(string2), "%s's VIP level has been changed to %d by %s.", GetName(id), level, GetName(playerid));
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnectedEx(i) && Player[i][VipRank] >= 1)
{
SendClientMessage(i, YELLOW, string);
SetPlayerColor(id, YELLOW);
}
if(level == 0)
{
SendClientMessage(i, YELLOW, string2);
SetPlayerColor(id, WHITE);
}
}
}
else
{
SendClientMessage(playerid, WHITE, "That player is not connected or isn't logged in.");
}
}
}
return 1;
}
if(gettime() > Player[playerid][VipExpiredTime] && Player[playerid][VipRank] != 0)
{
Player[playerid][VipExpiredTime] = 1;
}
if(Player[playerid][VipExpiredTime] == 1)
{
SendClientMessage(playerid, RED, "Your VIP has expired to by it again go to www.DBullet-Gaming.tk");
Player[playerid][VipRank] = 0;
Player[playerid][VipExpiredTime] = 0;
}