Jump to content
  • 0

Server Donate for Floating Rates


sparkle

Question


  • Group:  Members
  • Topic Count:  7
  • Topics Per Day:  0.01
  • Content Count:  13
  • Reputation:   0
  • Joined:  08/19/20
  • Last Seen:  

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
Link to comment
Share on other sites

1 answer to this question

Recommended Posts

  • 0

  • Group:  Forum Moderator
  • Topic Count:  93
  • Topics Per Day:  0.02
  • Content Count:  10013
  • Reputation:   2347
  • Joined:  10/28/11
  • Last Seen:  

                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...