// https://rathena.org/board/topic/106916-customized-floating-rates/ prontera,155,181,5 script Floating Rate 757,{ doevent "floating_rate_main::OnTalk"; } - script floating_rate_main -1,{ OnInit: .setting_cost_1 = 10000000; .setting_duration_1 = 86400; setarray .setting_1$,""; .setting_cost_2 = 20000000; .setting_duration_2 = 86400; setarray .setting_2$,""; // original rates .item_rate_equip = getbattleflag("item_rate_equip"); .item_rate_equip_boss = getbattleflag("item_rate_equip_boss"); .item_rate_equip_mvp = getbattleflag("item_rate_equip_mvp"); .npc_name_target$ = "Floating Rate"; .npc_name$ = strnpcinfo(3); initnpctimer; .@gettimetick = gettimetick(2); if ($setting_duration_1 > 0 && $setting_duration_1 < .@gettimetick) { setbattleflag("item_rate_equip", (.item_rate_equip * 2)); hideonnpc .npc_name_target$; } if ($setting_duration_2 > 0 && $setting_duration_2 < .@gettimetick) { setbattleflag("item_rate_equip_boss", (.item_rate_equip_boss * 2)); setbattleflag("item_rate_equip_mvp", (.item_rate_equip_mvp * 2)); hideonnpc .npc_name_target$; } end; OnTalk: mes "X2 The EQUIP DROP RATE"; mes "Cost: "+F_InsertComma(.setting_cost_1)+" Zeny"; mes "Current: "+F_InsertComma($setting_cost_1)+" Zeny"; mes " "; mes "X2 THE MVP EQUIP DROPRATE"; mes "Cost: "+F_InsertComma(.setting_cost_2)+" Zeny"; mes "Current: "+F_InsertComma($setting_cost_2)+" Zeny"; next; .@mode = select( "X2 The EQUIP DROP RATE", "X2 THE MVP EQUIP DROPRATE", "BOTH" ); if (.@mode & 1) { // normal equip .@total_cost += (.setting_cost_1 - $setting_cost_1); } if (.@mode & 2) { // mvp equip .@total_cost += (.setting_cost_2 - $setting_cost_2); } if (Zeny >= .@cost && .@cost > 0) { if (select("Donate Zeny", "Cancel") == 1) { mes "You need "+F_InsertComma(.@total_cost)+" Zeny to active the event."; input .@donation,0,.@total_cost; if (.@donation) { if (.@donation > Zeny) .@donation = Zeny; Zeny -= .@donation; mes "Thank you, you have donated "+F_InsertComma(.@donation)+" Zeny"; if (.@mode == 1) { $setting_cost_1 += .@donation; } else if (.@mode == 2) { $setting_cost_2 += .@donation; } else { $setting_cost_1 += (.@donation / 2); $setting_cost_2 += (.@donation / 2); } donpcevent .npc_name$+"::OnCheckDonation"; } } } close; OnCheckDonation: .@gettimetick = gettimetick(2); if ($setting_cost_1 >= .setting_cost_1) { $setting_cost_1 = 0; $setting_duration_1 = .@gettimetick + .setting_duration_1; setbattleflag("item_rate_equip", (.item_rate_equip * 2)); } if ($setting_cost_2 >= .setting_cost_2) { $setting_cost_2 = 0; $setting_duration_2 = .@gettimetick + .setting_duration_2; setbattleflag("item_rate_equip_boss", (.item_rate_equip_boss * 2)); setbattleflag("item_rate_equip_mvp", (.item_rate_equip_mvp * 2)); } end; OnTimer60000: .@gettimetick = gettimetick(2); if ($setting_duration_1 > 0 && $setting_duration_1 < .@gettimetick) { $setting_duration_1 = 0; setbattleflag("item_rate_equip", .item_rate_equip); } if ($setting_duration_2 > 0 && $setting_duration_2 < .@gettimetick) { $setting_duration_2 = 0; setbattleflag("item_rate_equip_boss", .item_rate_equip_boss); setbattleflag("item_rate_equip_mvp", .item_rate_equip_mvp); } if (($setting_duration_1 > 0 && $setting_duration_1 < .@gettimetick) || ($setting_duration_1 > 0 && $setting_duration_1 < .@gettimetick)) hideonnpc .npc_name_target$; initnpctimer; end; }