From cc8727b60fbcae442bc3fd0e38514733d5fab1d2 Mon Sep 17 00:00:00 2001 From: Jesusaves Date: Mon, 20 May 2019 11:01:20 -0300 Subject: Add legacy_heal, support for legacy behavior --- npc/items/legacy_heal.txt | 48 ++++++++++++++++++++++++++++++++++++++++++++++ npc/items/rand_sc_heal.txt | 5 +++-- 2 files changed, 51 insertions(+), 2 deletions(-) create mode 100644 npc/items/legacy_heal.txt (limited to 'npc/items') diff --git a/npc/items/legacy_heal.txt b/npc/items/legacy_heal.txt new file mode 100644 index 000000000..9ef8e548b --- /dev/null +++ b/npc/items/legacy_heal.txt @@ -0,0 +1,48 @@ +// TMW-2 Script. +// Evol scripts. +// Author: +// Reid +// Jesusalva +// Description: +// Legacy Healing System +// +// Variables: +// @delay Second of healing +// @min Min amount of healing +// @max Max amount of healing +// +// *getequipoption(EQI_HEAD_TOP,1,168); → Heal Bonus (should be first bonus on Chef Hat) + + +- script legacy_heal -1,{ + +OnUse: + if (@delay <= 0) end; + + // minimum between @min and bVit / 2 * BaseLevel / 10 + @min = min(@max, readparam(bVit) * BaseLevel / 20); + @val1 = rand(@min, @max); + + @delay *= 1000; // Put the delay in ms + + // We now have @val1 (new effect), @delay (new delay) + // But do we have .@v and .@d (old effect and delay)? + .@v=getstatus(getarg(0), 1); + .@d=getstatus(getarg(0), 4) * 1000; + + // If there WAS an effect previously, get ponderate average + if (.@v > 0) { + @val1=ponderate_avg(@val1, @delay, .@v, .@d); + @delay=ponderate_avg(@delay, @val1, .@d, .@v); + } + + // Decide the healing bonus type. We have four types: S, L, G and M + // By default, we use 'S' + .@skill = SC_S_LIFEPOTION; + + // Apply the effect and finish + sc_end .@skill; + sc_start2 .@skill, @delay, @val1, 1; + + end; +} diff --git a/npc/items/rand_sc_heal.txt b/npc/items/rand_sc_heal.txt index 19d09f62d..fdfcb5cd2 100644 --- a/npc/items/rand_sc_heal.txt +++ b/npc/items/rand_sc_heal.txt @@ -110,8 +110,10 @@ OnUse: .@d=getstatus(getarg(0), 4) * 1000; // If there WAS an effect previously, get ponderate average - if (.@v > 0) + if (.@v > 0) { @val1=ponderate_avg(@val1, @delay, .@v, .@d); + @delay=ponderate_avg(@delay, @val1, .@d, .@v); + } // Decide the healing bonus type. We have four types: S, L, G and M // By default, we use 'S' @@ -120,7 +122,6 @@ OnUse: // Apply the effect and finish sc_end .@skill; sc_start2 .@skill, @delay, @val1, 1; - } end; } -- cgit v1.2.3-70-g09d2