summaryrefslogtreecommitdiff
path: root/npc/magic
diff options
context:
space:
mode:
authorJesusaves <cpntb1@ymail.com>2021-04-15 12:29:27 -0300
committerJesusaves <cpntb1@ymail.com>2021-04-15 12:29:27 -0300
commitdf6bbd220e14c4a41d16e8148941bfac916fcc40 (patch)
treec23c77ea832686a88a34d4921bc30579f06e042d /npc/magic
parentcbe957925d331c2375876af4df1ab122d80aeb26 (diff)
downloadserverdata-df6bbd220e14c4a41d16e8148941bfac916fcc40.tar.gz
serverdata-df6bbd220e14c4a41d16e8148941bfac916fcc40.tar.bz2
serverdata-df6bbd220e14c4a41d16e8148941bfac916fcc40.tar.xz
serverdata-df6bbd220e14c4a41d16e8148941bfac916fcc40.zip
Initial version of Chiza, Ingrav, Upmarmu and Phlex
Diffstat (limited to 'npc/magic')
-rw-r--r--npc/magic/final.txt39
-rw-r--r--npc/magic/level1-magic-blade.txt27
-rw-r--r--npc/magic/level2-lightning-strike.txt24
-rw-r--r--npc/magic/level2-magic-knuckles.txt19
-rw-r--r--npc/magic/level2-toxic-dart.txt23
5 files changed, 101 insertions, 31 deletions
diff --git a/npc/magic/final.txt b/npc/magic/final.txt
index a60f51ad..e22aa6e7 100644
--- a/npc/magic/final.txt
+++ b/npc/magic/final.txt
@@ -51,6 +51,8 @@ function script HUB_SkillInvoke {
SK_GrowPlants(); break; // FIXME: Unreleased/cannot be learned
case SKILL_LUM:
SK_Lum(); break;
+ case SKILL_CHIZA:
+ SK_Chiza(); break;
// Level 2
case SKILL_INMA:
SK_Inma(); break;
@@ -68,19 +70,18 @@ function script HUB_SkillInvoke {
SK_Betsanc(); break;
case SKILL_ASORM:
SK_Asorm(); break;
+ case SKILL_INGRAV:
+ SK_Ingrav(); break;
+ case SKILL_UPMARMU:
+ SK_Uparmu(); break;
+ case SKILL_PHLEX:
+ SK_Phlex(); break;
// Level 3
// Level 4
// Level 5
////////////////////////////////
/* XXX: Fire Class
// (May burn targets for damage over time)
- case TMW2_FIREARROW:
- .@PW=140+(10*@skillLv);
- // 4% chance, 2.5s
- harm(@skillTarget, AdjustSpellpower(.@PW), HARM_MAGI, Ele_Fire);
- sc_start SC_BLOODING, 4500, 1, 400, SCFLAG_NONE, @skillTarget;
- GetManaExp(TMW2_FIREBALL, 1);
- break;
case TMW2_FIREBALL:
.@PW=140+(10*@skillLv);
.@RG=2+(@skillLv/5);
@@ -99,24 +100,6 @@ function script HUB_SkillInvoke {
break;
////////////////////////////////
// XXX: Earth Class
- // DEF Effects at Gaia Break, more expensive
- case TMW2_METEORSTRIKE:
- .@PW=130+(20*@skillLv);
- .@dmg=AdjustSpellpower(.@PW);
- .@TM=1200+(@skillLv*300);
- harm(@skillTarget, .@dmg, HARM_MAGI, Ele_Earth);
- sc_start SC_STUN, .@TM, 1, 800, SCFLAG_NONE, @skillTarget;
- GetManaExp(TMW2_METEORSTRIKE, 1);
- break;
- case TMW2_METEORSHOWER:
- .@PW=130+(15*@skillLv);
- .@dmg=AdjustSpellpower(.@PW);
- .@RG=3+(@skillLv/5);
- .@TM=800+(@skillLv*200);
- areaharm(@skillTarget, .@RG, .@dmg, HARM_MAGI, Ele_Earth);
- areasc(.@RG, .@TM, SC_STUN, BL_MOB | BL_PC | BL_HOM | BL_MER, 1, "filter_hostile", @skillTarget, 800);
- GetManaExp(TMW2_METEORSTRIKE, 2);
- break;
case TMW2_GAIABREAK:
.@PWA=170+(30*@skillLv);
.@PWB=110+(10*@skillLv);
@@ -155,11 +138,6 @@ function script HUB_SkillInvoke {
break;
////////////////////////////////
// XXX: Physical Class (Archery)
- case TMW2_CHARGEDARROW:
- .@PW=100+(50*@skillLv);
- harm(@skillTarget, AdjustAttackpower(.@PW), HARM_PHYS, Ele_Neutral);
- GetManaExp(@skillId, 1);
- break;
case TMW2_ARROWSHOWER:
.@PW=150+(10*@skillLv);
.@dmg=AdjustAttackpower(.@PW);
@@ -169,7 +147,6 @@ function script HUB_SkillInvoke {
break;
// Summons which never fail
case TMW2_ZARKOR:
- alignment_cansummon();
SummonMagic(@skillId, CaveMaggot, 2, @skillLv);
GetManaExp(@skillId, 1);
break;
diff --git a/npc/magic/level1-magic-blade.txt b/npc/magic/level1-magic-blade.txt
new file mode 100644
index 00000000..f60b3809
--- /dev/null
+++ b/npc/magic/level1-magic-blade.txt
@@ -0,0 +1,27 @@
+// The Mana World script
+// Author: Jesusalva <jesusalva@themanaworld.org>
+//
+// Magic Script: SKILL_CHIZA (Level 1)
+// School: War 1
+
+function script SK_Chiza {
+ // Charge code, item check is here =( FIXME
+ if (countitem(Dagger)) {
+ mcharge(Dagger, SKILL_MAGIC_WAR, 8); .@PW=100;
+ } else if (countitem(SharpKnife)) {
+ mcharge(SharpKnife, SKILL_MAGIC_WAR, 6); .@PW=95;
+ } else if (countitem(Knife)) {
+ mcharge(Knife, SKILL_MAGIC_WAR, 4); .@PW=90;
+ } else {
+ dispbottom b("Chiza: ")+l("You need a Dagger, Sharp Knife or Knife to use!");
+ return;
+ }
+ .@PW+=(10*@skillLv);
+ // Effective magic code
+ .@dmg=AdjustSpellpower(.@PW);
+ harm(@skillTarget, .@dmg, HARM_PHYS, Ele_Neutral);
+ GetManaExp(@skillId, 1);
+ return;
+}
+
+
diff --git a/npc/magic/level2-lightning-strike.txt b/npc/magic/level2-lightning-strike.txt
new file mode 100644
index 00000000..97692d3e
--- /dev/null
+++ b/npc/magic/level2-lightning-strike.txt
@@ -0,0 +1,24 @@
+// The Mana World script
+// Author: Jesusalva <jesusalva@themanaworld.org>
+//
+// Magic Script: SKILL_INGRAV (Level 1)
+// School: War 2
+
+function script SK_Ingrav {
+ // This one time, effects will come before
+ specialeffect(FX_MAGIC_BOLT_CAST, AREA, getcharid(3));
+ specialeffect(FX_LIGHTNING1+rand2(3), AREA, @skillTarget);
+ // Charge code, item check is in skill_db.conf (FIXME)
+ mcharge(IronPowder, SKILL_MAGIC_WAR, 1);
+ .@PW=110+(20*@skillLv);
+ // Weather modifiers
+ .@dmg=AdjustSpellpower(.@PW);
+ if ("#WeatherCore"::weather(MASK_RAIN))
+ harm(getcharid(3), .@dmg*2/3, HARM_MAGI, Ele_Nature);
+ // Effective magic code
+ harm(@skillTarget, .@dmg, HARM_MAGI, Ele_Nature);
+ GetManaExp(@skillId, 2);
+ return;
+}
+
+
diff --git a/npc/magic/level2-magic-knuckles.txt b/npc/magic/level2-magic-knuckles.txt
new file mode 100644
index 00000000..0d08bcf5
--- /dev/null
+++ b/npc/magic/level2-magic-knuckles.txt
@@ -0,0 +1,19 @@
+// The Mana World script
+// Author: Jesusalva <jesusalva@themanaworld.org>
+//
+// Magic Script: SKILL_UPMARMU (Level 1)
+// School: War 2
+
+function script SK_Uparmu {
+ // Charge code, item check is in skill_db.conf (FIXME)
+ mcharge(Beer, SKILL_MAGIC_WAR, 5);
+ .@PW=100+(10*@skillLv);
+ // TODO: What's the diff from Chiza?
+ // Effective magic code
+ .@dmg=AdjustSpellpower(.@PW);
+ harm(@skillTarget, .@dmg, HARM_MAGI, Ele_Neutral);
+ GetManaExp(@skillId, 2);
+ return;
+}
+
+
diff --git a/npc/magic/level2-toxic-dart.txt b/npc/magic/level2-toxic-dart.txt
new file mode 100644
index 00000000..df21b89c
--- /dev/null
+++ b/npc/magic/level2-toxic-dart.txt
@@ -0,0 +1,23 @@
+// The Mana World script
+// Author: Jesusalva <jesusalva@themanaworld.org>
+//
+// Magic Script: SKILL_PHLEX (Level 1)
+// School: Dark 2
+
+function script SK_Phlex {
+ // Charge code, item check is in skill_db.conf (FIXME)
+ mcharge(Root, SKILL_MAGIC_DARK, 1);
+ .@PW=100+(10*@skillLv);
+ // Effective magic code
+ .@dmg=AdjustSpellpower(.@PW);
+ harm(@skillTarget, .@dmg, HARM_MAGI, Ele_Dark);
+ // May inflict poison
+ .@sc=(getskilllv(SKILL_MAGIC_DARK) > 3 ? SC_DPOISON : SC_POISON);
+ .@time=(1+.@dmg/33)*1000;
+ .@cth=1+rand2(.@time)/15;
+ sc_start .@sc, .@time, 1, .@cth, SCFLAG_NONE, @skillTarget;
+ GetManaExp(@skillId, 2);
+ return;
+}
+
+