// Evol scripts. // Authors: // Reid // Description: // Random heal every x seconds. // // Variables: // @delay Second of healing // @min Min amount of healing // @max Max amount of healing // @type 1 Heal // 2 Other // 3 Special 1 // 4 Special 2 - script rand_sc_heal -1,{ // Add remaning bonus if the last one hasn't finished function remaining_bonus { if (getstatus (getarg (0))) { .@old_val1 = getstatus (getarg (0), 1); .@old_delay = getstatus (getarg (0), 4) * 1000; // change the delay to prevent fast healing if (.@old_delay > @delay) { @delay = .@old_delay; @val1 += .@old_val1; } else { @val1 += (.@old_val1 * .@old_delay) / @delay; } } return; } OnUse: if (@delay <= 0) close; @val1 = rand (@min, @max) / @delay; if (@val1 <= 0) close; @delay *= 1000; // Put the delay in ms switch (@type) { case 1: .@skill = SC_S_LIFEPOTION; break; case 2: .@skill = SC_L_LIFEPOTION; break; case 3: .@skill = SC_G_LIFEPOTION; break; case 4: .@skill = SC_M_LIFEPOTION; break; default : .@skill = 0; break; } if (.@skill != 0) { remaining_bonus (.@skill); sc_end .@skill; sc_start2 .@skill, @delay, @val1, 1; } close; }