Jump to content
  • 0

Server Donate for Floating Rates


Question

Posted (edited)

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 > .@gettimetick) {
            mes "EXP bonus already started, you cant donate now.";
        }
        else {
            input .@zeny, 0, Zeny;
            if (.@zeny > 0) {
                Zeny -= .@zeny;
                $DONATE_EXP_ZENY += .@zeny;
                mes "You donated "+F_InsertComma(.@zeny)+"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 < .@gettimetick) {
            $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:
        .@base_exp_rate = ( .@rate * .base_exp_rate );
        .@job_exp_rate = ( .@rate * .job_exp_rate );
       
        setbattleflag("base_exp_rate",.@base_exp_rate;
        setbattleflag("job_exp_rate",.@job_exp_rate;
        atcommand "@reloadmobdb";
        
        announce "Current rates are: "+.@base_exp_rate+"x "+.@job_exp_rate+"x ", bc_all, 0xFF6060;
        return;
}

 

Edited by sparkle

1 answer to this question

Recommended Posts

  • 0
Posted
                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";
                }

 

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.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...