prontera,164,169,3 script Premium Trader 757,{ mes "Want to be Premium User for 1 week?"; mes "Then give me 7 x "+getitemname(7179); next; switch(select("yes:no")) { case 1: 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 2: 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"; } set ModExp,400; set ModDrop,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); } 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 set ModExp,100; set ModDrop,100; dispbottom "premium ended"; end; }