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 "Do you want to pay with PODs or with Zeny?";
next;
switch(select("PODs:Zeny")) {
case 1:
mes "how long you want to be Premium User?";
next;
switch(select("1 day:2 day:7 days:none")) {
case 1:
if(countitem(7179) >= 4) {
delitem 7179,4;
callfunc "F_VIPstart",86400;
mes "Done. enjoy your Premium Services for 1 day.";
close;
} else {
mes "You don't have 4 x "+getitemname(7179);
close;
}
case 2:
if(countitem(7179) >= 8) {
delitem 7179,8;
callfunc "F_VIPstart",172800;
mes "Done. enjoy your Premium Services for 2 days.";
close;
} else {
mes "You don't have 8 x "+getitemname(7179);
close;
}
case 3:
if(countitem(7179) >= 28) {
delitem 7179,28;
callfunc "F_VIPstart",604800;
mes "Done. Enjoy your Premium Services for 1 week.";
close;
} else {
mes "You don't have 28 x "+getitemname(7179);
close;
}
case 4:
mes "Ok then.";
close;
}
case 2:
mes "how long you want to be Premium User?";
next;
switch(select("1 day:2 day:7 days:none")) {
case 1:
if(Zeny >= 1000000) {
set Zeny,Zeny - 1000000;
callfunc "F_VIPstart",86400;
mes "Done. enjoy your Premium Services for 1 day.";
close;
} else {
mes "You don't have 1000000 Zeny";
close;
}
case 2:
if(Zeny >= 2000000) {
set Zeny,Zeny - 2000000;
callfunc "F_VIPstart",172800;
mes "Done. enjoy your Premium Services for 2 days.";
close;
} else {
mes "You don't have 2000000 Zeny";
close;
}
case 3:
if(Zeny >= 14000000) {
set Zeny,Zeny - 14000000;
callfunc "F_VIPstart",604800;
mes "Done. Enjoy your Premium Services for 1 week.";
close;
} else {
mes "You don't have 14000000 Zeny";
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;
}