Maybe like this?
// Settings: -----------------------------
set .@ITEM, 7179;
set .@Cost, 1; // Proof of Donation is required
set .@Time, 4 * 7 * 24 * 60 * 60; // Time in Seconds = 4 weeks, 7 days per week, 24 hours per day, 60 minutes per day, 60 seconds per minute. = 1 month in this sample.
set .@Time$, "1 month";
// ---------------------------------------
mes "[Premium Account]";
mes "I am the Premium Account seller.";
if( isPremium() == 1 )
mes "Your Premium Account expires in ^FF0000" + callfunc("Time2Str",#Premium_Tick) + "^000000.";
mes "What can I do for you?";
next;
// isPremium() returns 1 if the current user Account is Premium and it have not expired.
// It works together with #Premium_Tick, which is a Account Var set with a Unix Time value, representing when the Premium Account expires.
// isPremium() is the same as #Premium_Tick > gettimetick(2)
switch( select("Pay for Premium Time:About Premium Account") )
{
case 1:
mes "[Premium Account]";
if( isPremium() == 1 )
mes "Do you really want to extend your Premium Time?";
else
mes "You do really want to convert your account to premium?";
mes "Premium Time is ^FF0000" + .@Time$ + "^000000";
mes "Value is ^FF0000" + .@Cost + "^000000 " + .@ITEM + ".";
next;
if( select("Yes:No") == 2 )
{
mes "[Premium Account]";
mes "Come back if you change your mind.";
close;
}
if(countitem(7179) < .@Cost )
{
mes "[Premium Account]";
mes "You don't have enough Proof of Donation";
close;
}
set #Premium_Tick, gettimetick(2) + .@Time; // New Premium Account
delitem .@ITEM, .@Cost;