Jump to content
  • 0
sparkle

Server Donate for Floating Rates

Question

Hello, i was trying to fix this script but i only get 0x base exp and 0x job exp.
made by emistry

 

// https://rathena.org/board/topic/106742-floating-rates-after-a-certain-condition/
 
prontera,155,181,5  script  Sample  4_F_KAFRA1,{
    
    mes "Donate zeny boost EXP?";
    mes "Required Donation: "+F_InsertComma($DONATE_EXP_ZENY_AIM)+"z";
    mes " ";
    mes "Current Donation: "+F_InsertComma($DONATE_EXP_ZENY)+"z";
    mes "Current Rate: "+F_InsertComma($DONATE_EXP_RATE)+"X";
    if (select("Continue", "Cancel") == 1) {
        if ($DONATE_EXP_DURATION > [email protected]) {
            mes "EXP bonus already started, you cant donate now.";
        }
        else {
            input [email protected], 0, Zeny;
            if ([email protected] > 0) {
                Zeny -= [email protected];
                $DONATE_EXP_ZENY += [email protected];
                mes "You donated "+F_InsertComma([email protected])+"z";
                
                if ($DONATE_EXP_ZENY >= $DONATE_EXP_ZENY_AIM && $DONATE_EXP_ZENY_AIM > 0) {
                    $DONATE_EXP_RATE = rand(.rate_range[0], .rate_range[1]);
                    $DONATE_EXP_DURATION = gettimetick(2) + .duration;
                    
                    callsub(L_rate, ));
                    donpcevent strnpcinfo(3)+"::OnStart";
                }
            }
        }
    }
    close;
 
    OnInit:
        setarray .zeny_range, 
            5000000, // minimum
            1000000, // increasing rate
            2000000000; // max donate amount
        
        .duration = (5 * 60 * 60); // 5 hours
        setarray .rate_range, 6, 10; // 6~10x exp boost
        
        .base_exp_rate = getbattleflag("base_exp_rate");
        .job_exp_rate = getbattleflag("job_exp_rate");
        
        if ($DONATE_EXP_ZENY_AIM < .zeny_range[0])
            $DONATE_EXP_ZENY_AIM = .zeny_range[0];
        if ($DONATE_EXP_ZENY_AIM > .zeny_range[2] && .zeny_range[1] > 0)
            $DONATE_EXP_ZENY_AIM = .zeny_range[2];
        if ($DONATE_EXP_RATE < 1) 
            $DONATE_EXP_RATE = 1;
        if ($DONATE_EXP_DURATION > gettimetick(2)) {
            callsub(L_rate, $DONATE_EXP_RATE);
            initnpctimer;
        }
        end;
    
    OnTimer60000:
    OnStart:
        stopnpctimer;
        if ($DONATE_EXP_DURATION > gettimetick(2)) {
            initnpctimer;
        }
        else if ($DONATE_EXP_DURATION && $DONATE_EXP_DURATION < [email protected]) {
            $DONATE_EXP_DURATION = 0;
            $DONATE_EXP_RATE = 1;
            $DONATE_EXP_ZENY_AIM += .zeny_range[1];
            if ($DONATE_EXP_ZENY_AIM > .zeny_range[2] && .zeny_range[1] > 0)
                $DONATE_EXP_ZENY_AIM = .zeny_range[2];
            callsub(L_rate, $DONATE_EXP_RATE);
        }
        end;
    
    L_rate:
        [email protected]_exp_rate = ( [email protected] * .base_exp_rate );
        [email protected]_exp_rate = ( [email protected] * .job_exp_rate );
       
        setbattleflag("base_exp_rate",[email protected]_exp_rate;
        setbattleflag("job_exp_rate",[email protected]_exp_rate;
        atcommand "@reloadmobdb";
        
        announce "Current rates are: "[email protected]_exp_rate+"x "[email protected]_exp_rate+"x ", bc_all, 0xFF6060;
        return;
}

 

Edited by sparkle
Link to comment
Share on other sites

1 answer to this question

Recommended Posts

  • 0
                if ($DONATE_EXP_ZENY >= $DONATE_EXP_ZENY_AIM && $DONATE_EXP_ZENY_AIM > 0) {
                    $DONATE_EXP_RATE = rand(.rate_range[0], .rate_range[1]);
                    $DONATE_EXP_DURATION = gettimetick(2) + .duration;
                    
                    callsub(L_rate, $DONATE_EXP_RATE);  // <------------ THIS LINE
                    donpcevent strnpcinfo(3)+"::OnStart";
                }

 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use and Privacy Policy.