auto vip remove
#1

guys how to make timer for auto remove vip?
Reply
#2

Here you go;
https://sampwiki.blast.hk/wiki/SetTimerEx
Reply
#3

and if player disconnected?
Reply
#4

Make the timer update when he comes online...
Reply
#5

If you want to remove VIP automatically after 24 hours for example, you can simply get the current time when your player acquires his VIP status using gettime().
This will return a timestamp in seconds that have passed since january 1970 or so.
Just add 24*60*60 (= 86400) to that value to get the time his VIP status should end.

Then simply save that value when he disconnects and reload it when he logs in again.
And when he wants to use his VIP commands or whatever, just check if the current time is still lower than his VIP-time (if so, he still has VIP status).
Reply
#6

i found this but given me 2 error: undefined symbol "timestamp"
PHP код:
if(timestamp() >= GetPVarInt(playerid,"VIPExpiration"))
{
    
SetPVarInt(playerid"VIP"0);
    
SendClientMessage(playerid0xFF0000FF"Your VIP time has expired.");

PHP код:
SetPVarInt(playerid,"VIPExpiration"timestamp()+2592000); 
Reply
#7

Did you wrote it? dont just copy and paste the snippets.
Reply
#8

i say how to fix that.
Reply
#9

i make this code but Subtract the year of vipdays.
PHP код:
new YearMonthDay;
    
getdate(YearMonthDay);
    new 
Days getdate(), name[MAX_PLAYER_NAME], str[128];
    if(
PlayerInfo[playerid][pVip] >= 1)
    {
        
GetPlayerName(playeridnamesizeof(name));
         
format(strsizeof(str),"/Asystem/Users/%s.ini",name);
        new 
INI:ini INI_Open(str);
        
INI_SetTag(ini,"data");
         
INI_WriteInt(ini,"Vipdays",PlayerInfo[playerid][pVipdays] -= Day);
        
INI_Close(ini);
    }
    if(
PlayerInfo[playerid][pVip] >= 1)
    {
        if(
PlayerInfo[playerid][pVipdays] < Days)
        {
            
GetPlayerName(playeridnamesizeof(name));
             
format(strsizeof(str),"/Asystem/Users/%s.ini",name);
            new 
INI:ini INI_Open(str);
            
INI_SetTag(ini,"data");
             
INI_WriteInt(ini,"Vipdays",0);
             
INI_WriteInt(ini,"Vip",0);
            
INI_Close(ini);
            
SendClientMessage(playeridCOLOR_RED"Your vip has ended!if you want to buy vip , visit our website:");
        }
    } 
Reply
#10

i need this code plz
i change it to this but i dont know how to off vip after 30.
and this is my setvip code:
PHP код:
CMD:setvip(playeridparams[])
{
    new 
victimname[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME], viplvlidtmp[128], name[MAX_PLAYER_NAME];
    if(
PlayerInfo[playerid][pAdmin] >= CmdsOptions[setvip] || IsPlayerAdmin(playerid))
    {
        if (
sscanf(params"ui"idviplvl)) return SendClientMessage(playeridCOLOR_RED"USAGE: /setvip [id] [Viplevel]");
        if (
id == INVALID_PLAYER_ID) return SendClientMessage(playeridCOLOR_RED"[ERROR]:Invalid ID");
        if (
viplvl || viplvl 0) return SendClientMessage(playeridCOLOR_RED,"[ERROR]:Valid Vip Levels: 1-5!");
        
PlayerInfo[id][pVip] = viplvl;
        
GetPlayerName(idvictimnamesizeof(victimname));
        
GetPlayerName(playeridadminnamesizeof(adminname));
        
GetPlayerName(idnamesizeof(name));
        
format(tmpsizeof(tmp),"/Asystem/Users/%s.ini",name);
        new 
YearMonthDay;
        
getdate(YearMonthDay);
        
Day += 30;
        new 
INI:ini INI_Open(tmp);
        
INI_SetTag(ini,"data");
        
INI_WriteInt(ini,"Vipdays",Day);
        
INI_Close(ini);
        new 
str[128];
        
format(str,128,"Admin %s v has set %s [ID %d] vip level to %i",adminnameplayeridvictimnameidviplvl);
        
SendClientMessage(playerid,COLOR_BLUE,str);
        new 
string[128];
        
format(string,128,"Admin %s (id:%d) has set your vip level to %i",adminnameplayeridviplvl);
          
SendClientMessage(id,COLOR_BLUE,string);
        return 
1;
    }
    else return 
SendClientMessage(playerid,COLOR_RED,"You do not have permission to use this command!");

Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)