prontera,164,169,3 script Premium Trader 757,{ if (#VIP_expire > gettimetick(2)) { mes "you are a premium member already!"; mes "your premium ends in "+callfunc("Time2Str",#VIP_expire); if(getstatus(SC_CASH_RECEIVEITEM) <= 0) { sc_start SC_CASH_RECEIVEITEM,-1,400; sc_start SC_CASH_PLUSEXP,-1,400; } close; } mes "how long you want to be Premium User?"; next; switch(select("1 day:2 day:7 days:none")) { case 1: if(countitem(7179) >= 1) { delitem 7179,1; callfunc "F_VIPstart",86400; mes "Done. enjoy your Premium Services for 1 day."; close; } else { mes "you don't have 1 x "+getitemname(7179); close; } case 2: if(countitem(7179) >= 2) { delitem 7179,2; callfunc "F_VIPstart",172800; mes "Done. enjoy your Premium Services for 2 days."; close; } else { mes "you don't have 2 x "+getitemname(7179); close; } case 3: if(countitem(7179) >= 7) { delitem 7179,7; callfunc "F_VIPstart",604800; mes "Done. enjoy your Premium Services for 1 Week."; close; } else { mes "you don't have 7 x "+getitemname(7179); close; } case 4: mes "ok then"; close; } } function script F_VIPstart { set .@ticks,getarg(0); // getarg(0) = ticks (seconds) if (.@ticks <= 0) { debugmes "F_VIPstart - tried a negative time"; end; } // set a variable, #VIP_expire, as the Unixtime when this expires set #VIP_expire, gettimetick(2) + .@ticks; // add a timer with that tick (in case they stay logged in that long) if (.@ticks < 2147483) { // prevent overflow error addtimer .@ticks *1000, "vip_rental::OnVIPend"; } else { addtimer 2147483000, "vip_rental::OnVIPcheck"; } if(getstatus(SC_CASH_RECEIVEITEM) <= 0) { sc_start SC_CASH_RECEIVEITEM,-1,400; sc_start SC_CASH_PLUSEXP,-1,400; } dispbottom "you are now a premium member!"; return; } - script vip_rental -1,{ OnPCLoginEvent: if (#VIP_expire > gettimetick(2)) { // timer in future dispbottom "your premium ends in "+callfunc("Time2Str",#VIP_expire); if(getstatus(SC_CASH_RECEIVEITEM) <= 0) { sc_start SC_CASH_RECEIVEITEM,-1,400; sc_start SC_CASH_PLUSEXP,-1,400; } } OnVIPcheck: if (#VIP_expire > gettimetick(2)) { if ((#VIP_expire - gettimetick(2)) < 2147483) { // prevent overflow error addtimer (#VIP_expire - gettimetick(2)) *1000, strnpcinfo(3)+"::OnVIPend"; } else { addtimer 2147483000, strnpcinfo(3)+"::OnVIPcheck"; } } else if (#VIP_expire) { // timer already expired doevent strnpcinfo(3)+"::OnVIPend"; } end; OnVIPend: set #VIP_expire,0; // clear timer if(getstatus(SC_CASH_RECEIVEITEM) == 1) { sc_end SC_CASH_RECEIVEITEM; sc_end SC_CASH_PLUSEXP; } dispbottom "premium ended"; end; }