summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJesusaves <cpntb1@ymail.com>2022-05-17 23:17:19 -0300
committerJesusaves <cpntb1@ymail.com>2022-05-17 23:17:19 -0300
commit5b8e0ceed2077d20c27d8e50f2be0ca56a2a61c8 (patch)
treeca6b934a7d4514f46555cdf912124e9560cf7126
parentdf4ad6efbf0c385553fc48c028aa4745c25f7e57 (diff)
downloadserverdata-5b8e0ceed2077d20c27d8e50f2be0ca56a2a61c8.tar.gz
serverdata-5b8e0ceed2077d20c27d8e50f2be0ca56a2a61c8.tar.bz2
serverdata-5b8e0ceed2077d20c27d8e50f2be0ca56a2a61c8.tar.xz
serverdata-5b8e0ceed2077d20c27d8e50f2be0ca56a2a61c8.zip
Reestructure legacy_heal
-rw-r--r--db/re/item_db.conf70
-rw-r--r--npc/items/legacy_heal.txt36
2 files changed, 40 insertions, 66 deletions
diff --git a/db/re/item_db.conf b/db/re/item_db.conf
index aa1477c01..d82244ee3 100644
--- a/db/re/item_db.conf
+++ b/db/re/item_db.conf
@@ -411,10 +411,7 @@ item_db: (
UseEffect: "EFFECT_HEAL"
Script: <"
callfunc("SC_Bonus", 15, SC_ATTHASTE_POTION1, 5);
- @min = 30;
- @max = 60;
- @delay = 3;
- doevent "legacy_heal::OnUse";
+ callfunc("ItHeal", 3, 30, 60);
">
},
{
@@ -429,10 +426,7 @@ item_db: (
Delay: 500
UseEffect: "EFFECT_HEAL"
Script: <"
- @min = 30;
- @max = 50;
- @delay = 4;
- doevent "legacy_heal::OnUse";
+ callfunc("ItHeal", 4, 30, 50);
">
},
{
@@ -1177,10 +1171,7 @@ item_db: (
Delay: 500
UseEffect: "EFFECT_HEAL"
Script: <"
- @min = 75;
- @max = 120;
- @delay = 3;
- doevent "legacy_heal::OnUse";
+ callfunc("ItHeal", 3, 75, 120);
">
},
{
@@ -1195,10 +1186,7 @@ item_db: (
Delay: 500
UseEffect: "EFFECT_HEAL"
Script: <"
- @min = 200;
- @max = 400;
- @delay = 2;
- doevent "legacy_heal::OnUse";
+ callfunc("ItHeal", 2, 200, 400);
">
},
{
@@ -1288,10 +1276,7 @@ item_db: (
Delay: 500
UseEffect: "EFFECT_HEAL"
Script: <"
- @min = 4;
- @max = 4;
- @delay = 3;
- doevent "legacy_heal::OnUse";
+ callfunc("ItHeal", 3, 4);
">
},
{
@@ -1498,10 +1483,7 @@ item_db: (
Delay: 500
UseEffect: "EFFECT_HEAL"
Script: <"
- @min = 8;
- @max = 14;
- @delay = 1;
- doevent "legacy_heal::OnUse";
+ callfunc("ItHeal", 1, 8, 14);
">
},
{
@@ -1713,10 +1695,7 @@ item_db: (
Delay: 450
UseEffect: "EFFECT_HEAL"
Script: <"
- @min = 180;
- @max = 800;
- @delay = 3;
- doevent "legacy_heal::OnUse";
+ callfunc("ItHeal", 3, 180, 800);
if (rand(1,7) != 4)
getitem EmptyBottle, 1;
">
@@ -1797,10 +1776,7 @@ item_db: (
// SC_STRUP is caught by client, but raises STR in a weird way.
// SC_INCATKRATE works best of all ^.^
callfunc("SC_Bonus", 15, SC_PLUSATTACKPOWER, 5);
- @min = 30;
- @max = 60;
- @delay = 3;
- doevent "legacy_heal::OnUse";
+ callfunc("ItHeal", 3, 30, 60);
">
},
{
@@ -1815,10 +1791,7 @@ item_db: (
Delay: 500
UseEffect: "EFFECT_HEAL"
Script: <"
- @min = 45;
- @max = 75;
- @delay = 6;
- doevent "legacy_heal::OnUse";
+ callfunc("ItHeal", 6, 45, 75);
">
},
{
@@ -1870,10 +1843,7 @@ item_db: (
// Usage:
// sc_start(<effect type>, <ticks>, <value 1>{, <rate>, <flag>{, <GID>}})
sc_start SC_POISON, 9000, 0, 3200;
- @min = 18;
- @max = 40;
- @delay = 3;
- doevent "legacy_heal::OnUse";
+ callfunc("ItHeal", 3, 18, 40);
getitem EmptyBottle, 1;
">
},
@@ -2115,10 +2085,7 @@ item_db: (
Delay: 450
UseEffect: "EFFECT_HEAL"
Script: <"
- @min = 300;
- @max = 700;
- @delay = 3;
- doevent "legacy_heal::OnUse";
+ callfunc("ItHeal", 3, 300, 700);
if (rand(1,7) != 4)
getitem EmptyBottle, 1;
">
@@ -2295,10 +2262,7 @@ item_db: (
Delay: 1000
UseEffect: "EFFECT_HEAL"
Script: <"
- @min = 70;
- @max = 150;
- @delay = 2;
- doevent "legacy_heal::OnUse";
+ callfunc("ItHeal", 2, 70, 150);
">
},
{
@@ -2314,10 +2278,7 @@ item_db: (
UseEffect: "EFFECT_HEAL"
Script: <"
callfunc("SC_Bonus", 17, SC_ATTHASTE_POTION1, 10);
- @min = 40;
- @max = 70;
- @delay = 4;
- doevent "legacy_heal::OnUse";
+ callfunc("ItHeal", 4, 40, 70);
">
},
{
@@ -17361,10 +17322,7 @@ item_db: (
UseEffect: "EFFECT_HEAL"
Script: <"
if (@useType == 1) {
- @min = 8;
- @max = 30;
- @delay = 3;
- doevent "legacy_heal::OnUse";
+ callfunc "ItHeal", 3, 8, 30;
} else {
if (!getmapxy(.@map$, .@x, .@y, 0)) {
monster(.@map$, .@x, .@y, l("Oak"), 1017, 1);
diff --git a/npc/items/legacy_heal.txt b/npc/items/legacy_heal.txt
index 106b92b8d..3157563c5 100644
--- a/npc/items/legacy_heal.txt
+++ b/npc/items/legacy_heal.txt
@@ -14,10 +14,13 @@
// *getequipoption(EQI_HEAD_TOP,1,168); → Heal Bonus (should be first bonus on Chef Hat)
-- script legacy_heal -1,{
+// ItHeal(delay, min, {max=min})
+function script ItHeal {
+ .@delay=getarg(0, @delay);
+ .@min=getarg(1, @min);
+ .@max=getarg(2, (@max ? @max : .@min));
-OnUse:
- if (@delay <= 0) {
+ if (.@delay <= 0) {
Exception("Invalid legacy healing item, deleting without healing effect.");
end;
}
@@ -28,9 +31,10 @@ OnUse:
// minimum between @min and bVit / 2 * BaseLevel / 10
//@min = min(@max, readparam(bVit) * BaseLevel / 20);
- @val1 = rand2(@min, @max);
+ // Vitality no longer applies to these
+ @val1 = rand2(.@min, .@max);
- @delay *= 1000; // Put the delay in ms
+ .@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)?
@@ -40,21 +44,33 @@ OnUse:
// If there WAS an effect previously, get ponderate average
// Note: never use double-precision ponderate averages
if (.@v > 0) {
- @val1=ponderate_avg(@val1, @delay, .@v, .@d);
+ @val1=ponderate_avg(@val1, .@delay, .@v, .@d);
// Overflow and Underflow protection
- if (@delay+.@d < @delay*5 && .@d > 0)
- @delay=@delay+.@d;
- //@delay=ponderate_avg(@delay, @val1, .@d, .@v);
+ if (.@delay+.@d < .@delay*5 && .@d > 0)
+ .@delay=.@delay+.@d;
+ //.@delay=ponderate_avg(.@delay, @val1, .@d, .@v);
}
// Apply the effect and finish
sc_end .@skill;
- sc_start2 .@skill, @delay, @val1, 1;
+ sc_start2 .@skill, .@delay, @val1, 1;
// @val1 must be preserved for cross-reading
@delay=0;
@min=0;
@max=0;
// @val1=0;
+ return;
+}
+
+- script legacy_heal -1,{
+
+OnUse:
+ if (@delay <= 0) {
+ Exception("Invalid legacy healing item, deleting without healing effect.");
+ end;
+ }
+
+ ItHeal(@delay, @min, @max);
end;
}