Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // 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;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement