viewing paste Unknown #11549 | Athena

Posted on the
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151
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;
}
Viewed 1379 times, submitted by evilpuncker.