sparkle Posted June 27, 2021 Group: Members Topic Count: 7 Topics Per Day: 0.00 Content Count: 13 Reputation: 0 Joined: 08/19/20 Last Seen: August 27, 2023 Share Posted June 27, 2021 (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 June 27, 2021 by sparkle Quote Link to comment Share on other sites More sharing options...
0 Emistry Posted August 29, 2021 Group: Forum Moderator Topic Count: 93 Topics Per Day: 0.02 Content Count: 10018 Reputation: 2369 Joined: 10/28/11 Last Seen: Sunday at 05:32 PM Share Posted August 29, 2021 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"; } Quote Link to comment Share on other sites More sharing options...
Question
sparkle
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; }
Link to comment
Share on other sites
1 answer to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.