summaryrefslogtreecommitdiff
path: root/npc/functions
diff options
context:
space:
mode:
authorJesusaves <cpntb1@ymail.com>2021-12-30 12:53:09 -0300
committerJesusaves <cpntb1@ymail.com>2021-12-30 12:53:09 -0300
commit32a004fb8f2f458063dc9caff520dc3a7d2a1def (patch)
treee32ff7e3e1281d1b4895a23e450db7fa109f159b /npc/functions
parent389add3343ee573ba4f752bc22a19d38bf01e37c (diff)
downloadserverdata-32a004fb8f2f458063dc9caff520dc3a7d2a1def.tar.gz
serverdata-32a004fb8f2f458063dc9caff520dc3a7d2a1def.tar.bz2
serverdata-32a004fb8f2f458063dc9caff520dc3a7d2a1def.tar.xz
serverdata-32a004fb8f2f458063dc9caff520dc3a7d2a1def.zip
Add a debug homunculus, replace the superior skills, and balance them.
Note that right now, the pre-requisite check is always failing
Diffstat (limited to 'npc/functions')
-rw-r--r--npc/functions/hub.txt38
1 files changed, 38 insertions, 0 deletions
diff --git a/npc/functions/hub.txt b/npc/functions/hub.txt
index fde9e3604..144ae2270 100644
--- a/npc/functions/hub.txt
+++ b/npc/functions/hub.txt
@@ -450,6 +450,44 @@ function script HUB_SkillInvoke {
.@val = 15+(@skillLv * 10);
sc_start SC_INCFLEE, .@t, .@val, 10000, SCFLAG_NOAVOID, @skillCaster;
break;
+ case TMW2_POISONMIST:
+ // SC_BLIND
+ .@ak1 = max(getunitdata(.@gid, UDT_MATKMIN), getunitdata(.@gid, UDT_INT) * 4 / 3);
+ .@ak2 = max(getunitdata(.@gid, UDT_MATKMAX), .@ak1 * 12 / 10);
+ .@dmg = rand2(.@ak1, .@ak2) + gethominfo(6);
+ .@dmg += .@dmg * @skillLv * 2 / 3; // +67% DMG per level
+ .@dur = (3 + (@skillLv * 2)) * 1000;
+ .@cth = 2000 + (1000 * @skillLv);
+
+ /* First strike (magic) */
+ areaharm(@skillTarget, 7, .@dmg, HARM_MAGI, Ele_Earth);
+ areasc(7, .@dur, SC_BLIND, BL_MOB|BL_PC|BL_HOM|BL_MER, 1, "filter_hostile", @skillTarget, .@cth);
+
+ sleep2(500);
+
+ /* Delayed strike (physical) */
+ areaharm(@skillTarget, 7, .@dmg, HARM_PHYS, Ele_Wind);
+ areasc(7, .@dur, SC_BLIND, BL_MOB|BL_PC|BL_HOM|BL_MER, 1, "filter_hostile", @skillTarget, .@cth);
+ break;
+ case TMW2_GOLDENFERSE:
+ // SC_GOLDENE_FERSE (val1, % MaxHP, % Aspd, % Holy Cth)
+ .@t = (50 + (@skillLv * 10)) * 1000;
+ .@mhp = @skillLv;
+ .@asp = 6 + (4 * @skillLv);
+ .@hol = 40 + (10 * @skillLv);
+ sc_start4 SC_GOLDENE_FERSE, .@t, .@mhp, .@asp, .@hol, 0, 10000, SCFLAG_NOAVOID, @skillCaster;
+ break;
+ case TMW2_STAHLHORN:
+ .@ak1 = max(getunitdata(.@gid, UDT_ATKMIN), getunitdata(.@gid, UDT_STR) * 3);
+ .@ak2 = max(getunitdata(.@gid, UDT_ATKMAX), .@ak1 * 12 / 10);
+ .@dmg = rand2(.@ak1, .@ak2) * 2; // 200% DMG
+ .@dmg += rand2(.@ak1, .@ak2) * @skillLv; // +100% per level
+ .@rng = 5 + (@skillLv / 2);
+ .@dur = 500 * @skillLv;
+ .@cth = 500 + (400 * @skillLv); // 5% + 4% per level (starts at 9%)
+ areaharm(@skillTarget, .@rng, .@dmg, HARM_MAGI, Ele_Holy);
+ areasc(.@rng, .@dur, SC_STUN, BL_MOB|BL_PC|BL_HOM|BL_MER, 1, "filter_hostile", @skillTarget, .@cth);
+ break;
}
return;
}