summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--db/re/skill_db.conf221
-rw-r--r--db/re/skill_tree.conf16
-rw-r--r--npc/000-0/sailors.txt16
-rw-r--r--npc/003-3/malindou.txt13
-rw-r--r--npc/012-1/gwendolyn.txt2
-rw-r--r--npc/025-1/ctrl.c1
-rw-r--r--npc/027-3/luca.txt8
-rw-r--r--npc/config/magic.txt20
-rw-r--r--npc/functions/hub.txt45
9 files changed, 309 insertions, 33 deletions
diff --git a/db/re/skill_db.conf b/db/re/skill_db.conf
index 6796230b6..dfb159ca1 100644
--- a/db/re/skill_db.conf
+++ b/db/re/skill_db.conf
@@ -40123,6 +40123,227 @@ skill_db: (
}
}
},
+{
+ Id: 20071
+ Name: "TMW2_FALKONSTRIKE"
+ Description: "Falkon Strike"
+ MaxLevel: 10
+ Range: -1
+ Hit: "BDT_SKILL"
+ SkillType: {
+ Enemy: true
+ }
+ DamageType: {
+ NoDamage: true
+ }
+ AttackType: "Weapon"
+ Element: "Ele_Weapon"
+ Requirements: {
+ SPCost: 60
+ WeaponTypes: {
+ NoWeapon: true
+ Daggers: true
+ 1HSwords: true
+ 2HSwords: true
+ 1HSpears: true
+ 2HSpears: true
+ 1HAxes: true
+ 2HAxes: true
+ Maces: true
+ 2HMaces: true
+ Knuckles: true
+ Instruments: true
+ Whips: true
+ Books: true
+ Katars: true
+ Revolvers: true
+ Rifles: true
+ }
+ }
+},
+{
+ Id: 20072
+ Name: "TMW2_GROUNDSTRIKE"
+ Description: "Ground Strike"
+ MaxLevel: 10
+ Hit: "BDT_SKILL"
+ SkillType: {
+ Self: true
+ }
+ AttackType: "Weapon"
+ Element: "Ele_Weapon"
+ DamageType: {
+ NoDamage: true
+ }
+ //SplashRange: 2
+ CastTime: 350
+ FixedCastTime: 350
+ AfterCastActDelay: 500
+ Requirements: {
+ SPCost: 90
+ }
+},
+{
+ Id: 20073
+ Name: "TMW2_SUPREMEATTACK"
+ Description: "Supreme Attack"
+ MaxLevel: 10
+ Range: -1
+ Hit: "BDT_SKILL"
+ SkillType: {
+ Enemy: true
+ }
+ AttackType: "Weapon"
+ Element: "Ele_Weapon"
+ DamageType: {
+ NoDamage: true
+ }
+ Requirements: {
+ SPCost: 55
+ HPRateCost: 2
+ WeaponTypes: {
+ NoWeapon: true
+ Daggers: true
+ 1HSwords: true
+ 2HSwords: true
+ 1HSpears: true
+ 2HSpears: true
+ 1HAxes: true
+ 2HAxes: true
+ Maces: true
+ 2HMaces: true
+ Knuckles: true
+ Instruments: true
+ Whips: true
+ Books: true
+ Katars: true
+ Revolvers: true
+ Rifles: true
+ }
+ }
+},
+{
+ Id: 20074
+ Name: "TMW2_CHARGEDARROW"
+ Description: "Charged Shot"
+ MaxLevel: 10
+ Range: -9
+ Hit: "BDT_SKILL"
+ SkillType: {
+ Enemy: true
+ }
+ SkillInfo: {
+ Quest: true
+ }
+ AttackType: "Weapon"
+ Element: "Ele_Weapon"
+ DamageType: {
+ NoDamage: true
+ }
+ KnockBackTiles: 6
+ FixedCastTime: 1500
+ Requirements: {
+ SPCost: 150
+ WeaponTypes: {
+ Bows: true
+ Revolvers: true
+ Rifles: true
+ GatlingGuns: true
+ Shotguns: true
+ }
+ AmmoTypes: {
+ A_ARROW: true
+ A_BULLET: true
+ }
+ AmmoAmount: 1
+ }
+},
+{
+ Id: 20075
+ Name: "TMW2_ARROWSHOWER"
+ Description: "Arrow Shower"
+ MaxLevel: 10
+ Range: -9
+ Hit: "BDT_SKILL"
+ SkillType: {
+ Place: true
+ }
+ SkillInfo: {
+ IgnoreLandProtector: true
+ }
+ AttackType: "Weapon"
+ Element: "Ele_Weapon"
+ DamageType: {
+ NoDamage: true
+ }
+ /*SplashRange: {
+ Lv1: 1
+ Lv2: 2
+ Lv3: 3
+ Lv4: 3
+ Lv5: 3
+ Lv6: 3
+ Lv7: 3
+ Lv8: 3
+ Lv9: 3
+ Lv10: 3
+ }*/
+ KnockBackTiles: 1
+ AfterCastActDelay: 100
+ //SkillData1: 100
+ FixedCastTime: 0
+ Requirements: {
+ SPCost: 80
+ WeaponTypes: {
+ Bows: true
+ Revolvers: true
+ Rifles: true
+ GatlingGuns: true
+ Shotguns: true
+ }
+ AmmoTypes: {
+ A_ARROW: true
+ A_BULLET: true
+ }
+ AmmoAmount: {
+ Lv1: 3
+ Lv2: 5
+ Lv3: 5
+ Lv4: 5
+ Lv5: 5
+ Lv6: 5
+ Lv7: 5
+ Lv8: 5
+ Lv9: 5
+ Lv10: 5
+ }
+ }
+ /*Unit: {
+ Id: 0x86
+ Range: {
+ Lv1: 1
+ Lv2: 1
+ Lv3: 2
+ Lv4: 2
+ Lv5: 2
+ Lv6: 2
+ Lv7: 2
+ Lv8: 2
+ Lv9: 2
+ Lv10: 2
+ }
+ Interval: 1000
+ Target: "Enemy"
+ Flag: {
+ UF_SKILL: true
+ }
+ }*/
+},
+
+
+
+
+
// Additional Homunculus Skills
{
Id: 8044
diff --git a/db/re/skill_tree.conf b/db/re/skill_tree.conf
index 5b474e77d..072850f53 100644
--- a/db/re/skill_tree.conf
+++ b/db/re/skill_tree.conf
@@ -109,14 +109,14 @@ Human: {
TMW2_BRAWLING: 0
TMW2_BEARSTRIKE: 0
TMW2_ALLINONE: 0
+ TMW2_FALKONSTRIKE: 0
+ TMW2_GROUNDSTRIKE: 0
+ TMW2_SUPREMEATTACK: 0
+ TMW2_CHARGEDARROW: 0
+ TMW2_ARROWSHOWER: 0
///////////////// Magic v3 (Builtin)
- ASC_METEORASSAULT: 0
- AC_SHOWER: 0
- SM_BASH: 0
- MC_MAMMONITE: 0
KN_AUTOCOUNTER: 0
- AC_CHARGEARROW: 0
SN_SHARPSHOOTING: 0
SN_WINDWALK: 0
@@ -180,6 +180,12 @@ Human: {
TMW2_GDP_MAXPOWER: 0
TMW2_GDP_SPREGEN: 0
+ // Deprecated
+ ASC_METEORASSAULT: 0
+ AC_SHOWER: 0
+ SM_BASH: 0
+ MC_MAMMONITE: 0
+ AC_CHARGEARROW: 0
//////////////////////////////////////////
///////////////// Unused /////////////////
diff --git a/npc/000-0/sailors.txt b/npc/000-0/sailors.txt
index 0449f9a03..324eec3af 100644
--- a/npc/000-0/sailors.txt
+++ b/npc/000-0/sailors.txt
@@ -219,9 +219,9 @@ OnForceReset:
sk_lvup(TMW2_CRAFT);
sk_lvup(TMW2_ANCIENTLANGUAGES);
sk_lvup(TMW2_MANABOMB);
- sk_lvup(ASC_METEORASSAULT);
+ sk_lvup(TMW2_GROUNDSTRIKE);
sk_lvup(TMW2_NAPALMBEAT);
- sk_lvup(AC_SHOWER);
+ sk_lvup(TMW2_ARROWSHOWER);
sk_lvup(any(ALL_INCCARRY, TF_STEAL, MC_VENDING, MC_DISCOUNT, MC_OVERCHARGE));
sk_lvup(any(AC_OWL, SA_DRAGONOLOGY, TMW2_SAGE, CR_TRUST, SM_PROVOKE, ALL_FULL_THROTTLE, SA_FREECAST, TF_BACKSLIDING, NV_TRICKDEAD, MG_FIREWALL, SO_FIREWALK, GC_DARKILLUSION));
sk_lvup(any(AC_OWL, SA_DRAGONOLOGY, TMW2_SAGE, CR_TRUST, SM_PROVOKE, ALL_FULL_THROTTLE, SA_FREECAST, TF_BACKSLIDING, NV_TRICKDEAD, MG_FIREWALL, SO_FIREWALK, GC_DARKILLUSION));
@@ -230,12 +230,12 @@ OnForceReset:
sk_lvup(any(TMW2_KALBOO, TMW2_KALSPIKE, TMW2_CUTEHEART, TMW2_PLANTKINGDOM, TMW2_FAIRYEMPIRE));
sk_lvup(any(TMW2_FIRSTAID, TMW2_HEALING, TMW2_MAGNUSHEAL, EVOL_AREA_PROVOKE));
sk_lvup(any(TMW2_FIRSTAID, TMW2_HEALING, TMW2_MAGNUSHEAL, EVOL_AREA_PROVOKE));
- sk_lvup(any(TMW2_FROSTDIVER, TMW2_NAPALMBEAT, TMW2_MAGICSTRIKE, TMW2_METEORSTRIKE, TMW2_FIREARROW, TMW2_BRAWLING, SM_BASH, AC_CHARGEARROW));
- sk_lvup(any(TMW2_FROSTDIVER, TMW2_NAPALMBEAT, TMW2_MAGICSTRIKE, TMW2_METEORSTRIKE, TMW2_FIREARROW, TMW2_BRAWLING, SM_BASH, AC_CHARGEARROW));
- sk_lvup(any(TMW2_FROSTDIVER, TMW2_NAPALMBEAT, TMW2_MAGICSTRIKE, TMW2_METEORSTRIKE, TMW2_FIREARROW, TMW2_BRAWLING, SM_BASH, AC_CHARGEARROW));
- sk_lvup(any(TMW2_FROSTNOVA, TMW2_HOLYLIGHT, TMW2_LIGHTNINGBOLT, TMW2_METEORSHOWER, TMW2_FIREBALL, TMW2_BEARSTRIKE, MC_MAMMONITE, SN_SHARPSHOOTING));
- sk_lvup(any(TMW2_FROSTNOVA, TMW2_HOLYLIGHT, TMW2_LIGHTNINGBOLT, TMW2_METEORSHOWER, TMW2_FIREBALL, TMW2_BEARSTRIKE, MC_MAMMONITE, SN_SHARPSHOOTING));
- sk_lvup(any(TMW2_NILFHEIM, TMW2_JUDGMENT, TMW2_TEMPEST, TMW2_GAIABREAK, TMW2_ARMAGEDDON, TMW2_ALLINONE, ASC_METEORASSAULT, AC_SHOWER, SN_WINDWALK));
+ sk_lvup(any(TMW2_FROSTDIVER, TMW2_NAPALMBEAT, TMW2_MAGICSTRIKE, TMW2_METEORSTRIKE, TMW2_FIREARROW, TMW2_BRAWLING, TMW2_FALKONSTRIKE, TMW2_CHARGEDARROW));
+ sk_lvup(any(TMW2_FROSTDIVER, TMW2_NAPALMBEAT, TMW2_MAGICSTRIKE, TMW2_METEORSTRIKE, TMW2_FIREARROW, TMW2_BRAWLING, TMW2_FALKONSTRIKE, TMW2_CHARGEDARROW));
+ sk_lvup(any(TMW2_FROSTDIVER, TMW2_NAPALMBEAT, TMW2_MAGICSTRIKE, TMW2_METEORSTRIKE, TMW2_FIREARROW, TMW2_BRAWLING, TMW2_FALKONSTRIKE, TMW2_CHARGEDARROW));
+ sk_lvup(any(TMW2_FROSTNOVA, TMW2_HOLYLIGHT, TMW2_LIGHTNINGBOLT, TMW2_METEORSHOWER, TMW2_FIREBALL, TMW2_BEARSTRIKE, TMW2_SUPREMEATTACK, SN_SHARPSHOOTING));
+ sk_lvup(any(TMW2_FROSTNOVA, TMW2_HOLYLIGHT, TMW2_LIGHTNINGBOLT, TMW2_METEORSHOWER, TMW2_FIREBALL, TMW2_BEARSTRIKE, TMW2_SUPREMEATTACK, SN_SHARPSHOOTING));
+ sk_lvup(any(TMW2_NILFHEIM, TMW2_JUDGMENT, TMW2_TEMPEST, TMW2_GAIABREAK, TMW2_ARMAGEDDON, TMW2_ALLINONE, TMW2_GROUNDSTRIKE, TMW2_ARROWSHOWER, SN_WINDWALK));
sk_lvup(any(TMW2_GDP_MAXPOWER, TMW2_GDP_SPREGEN));
getitembound GuildCoin, rand2(500), 4;
getitembound any(StrengthFruit, AgilityFruit, VitalityFruit, IntelligenceFruit, DexterityFruit, LuckFruit), 1, 4;
diff --git a/npc/003-3/malindou.txt b/npc/003-3/malindou.txt
index 193fb4bd9..8ebdb6cdc 100644
--- a/npc/003-3/malindou.txt
+++ b/npc/003-3/malindou.txt
@@ -620,6 +620,19 @@ OnInit:
debugmes "* Easter changes";
debugmes "";
}
+ // Current UPDATE value: Qua Abr 7 13:32:35 BRT 2021
+ // Skill Update
+ if ($UPDATE < 1617813155) {
+ $UPDATE=1617813155;
+ ReplaceSkillFromEveryPlayer(SM_BASH, TMW2_FALKONSTRIKE);
+ ReplaceSkillFromEveryPlayer(ASC_METEORASSAULT, TMW2_GROUNDSTRIKE);
+ ReplaceSkillFromEveryPlayer(MC_MAMMONITE, TMW2_SUPREMEATTACK);
+ ReplaceSkillFromEveryPlayer(AC_CHARGEARROW, TMW2_CHARGEDARROW);
+ ReplaceSkillFromEveryPlayer(AC_SHOWER, TMW2_ARROWSHOWER);
+ debugmes "";
+ debugmes "* Skill changes";
+ debugmes "";
+ }
// This mensures Contributors Credits, and changes only during updates.
diff --git a/npc/012-1/gwendolyn.txt b/npc/012-1/gwendolyn.txt
index daf6cedd0..42953ddf1 100644
--- a/npc/012-1/gwendolyn.txt
+++ b/npc/012-1/gwendolyn.txt
@@ -444,7 +444,7 @@ L_Success:
setq HurnscaldQuest_HarkEye, 6;
- skill AC_CHARGEARROW, 1, 0;
+ skill TMW2_CHARGEDARROW, 1, 0;
getexp .QUEST_HAWK_EXP, 0;
mesn l("Gwendolyn Bowmaker");
mesq l("Perfect indeed! Congratulations!");
diff --git a/npc/025-1/ctrl.c b/npc/025-1/ctrl.c
index 836e67cd8..6a3513ace 100644
--- a/npc/025-1/ctrl.c
+++ b/npc/025-1/ctrl.c
@@ -310,6 +310,7 @@ OnStatueBreach:
.@opt=.@opt|MD_BOSS;
.@opt=.@opt|MD_NOKNOCKBACK;
setunitdata(.@mob, UDT_MODE, .@opt);
+ setunitdata(.@mob, UDT_RACE, RC_Legendary);
// Increase health in 2% per siege
.@bhp=75000;
.@bhp=.@bhp*(50+$MK_TEMPVAR)/50;
diff --git a/npc/027-3/luca.txt b/npc/027-3/luca.txt
index 9c4d035e0..eae882444 100644
--- a/npc/027-3/luca.txt
+++ b/npc/027-3/luca.txt
@@ -72,8 +72,8 @@ function basicMagic {
mesc l("Shoot an arrow or bullet which damages everything on its way.");
mes "";
menuint
- l("Falkon Strike"), SM_BASH,
- l("Ground Strike"), ASC_METEORASSAULT,
+ l("Falkon Strike"), TMW2_FALKONSTRIKE,
+ l("Ground Strike"), TMW2_GROUNDSTRIKE,
l("Sharpshooter"), SN_SHARPSHOOTING,
l("Cancel"), 0;
return;
@@ -88,8 +88,8 @@ function standardMagic {
mesc l("Shoot FIVE arrows or bullets to the air and cause Area Of Effect Damage.");
mes "";
menuint
- l("Supreme Attack"), MC_MAMMONITE,
- l("Arrow Shower"), AC_SHOWER,
+ l("Supreme Attack"), TMW2_SUPREMEATTACK,
+ l("Arrow Shower"), TMW2_ARROWSHOWER,
l("Cancel"), 0;
return;
}
diff --git a/npc/config/magic.txt b/npc/config/magic.txt
index fa8dbc93b..9a0001bb7 100644
--- a/npc/config/magic.txt
+++ b/npc/config/magic.txt
@@ -379,27 +379,27 @@ OnInit:
//////////////////////// Physical Sciences
// Ground Strike
- RegisterMagic(2, ASC_METEORASSAULT, 3, FluoPowder, 3,
+ RegisterMagic(2, TMW2_GROUNDSTRIKE, 3, FluoPowder, 3,
CLASS_PHYSICAL, 50);
/* Skillchain */
// Falkon Punch
- RegisterMagic(1, SM_BASH, 10, FluoPowder, 3,
- CLASS_PHYSICAL, 50, false, MC_MAMMONITE);
+ RegisterMagic(1, TMW2_FALKONSTRIKE, 10, FluoPowder, 3,
+ CLASS_PHYSICAL, 50, false, TMW2_SUPREMEATTACK);
// Supreme Attack
- RegisterMagic(1, MC_MAMMONITE, 10, FluoPowder, 3,
- CLASS_PHYSICAL, 50, SM_BASH, KN_AUTOCOUNTER);
+ RegisterMagic(1, TMW2_SUPREMEATTACK, 10, FluoPowder, 3,
+ CLASS_PHYSICAL, 50, TMW2_FALKONSTRIKE, KN_AUTOCOUNTER);
// Counter Attack
RegisterMagic(2, KN_AUTOCOUNTER, 5, FluoPowder, 3,
- CLASS_PHYSICAL, 150, MC_MAMMONITE, false);
+ CLASS_PHYSICAL, 150, TMW2_SUPREMEATTACK, false);
/* Skillchain */
// Arrow Shower
- RegisterMagic(3, AC_SHOWER, 10, FluoPowder, 3,
+ RegisterMagic(3, TMW2_ARROWSHOWER, 10, FluoPowder, 3,
CLASS_PHYSICAL, 100, false, SN_SHARPSHOOTING);
// Sharpshooter
RegisterMagic(3, SN_SHARPSHOOTING, 1, FluoPowder, 3,
- CLASS_PHYSICAL, 100, AC_SHOWER, false);
+ CLASS_PHYSICAL, 100, TMW2_ARROWSHOWER, false);
@@ -509,8 +509,8 @@ OnInit:
//////////////////////// Other: Misc
// Charged Shot
- RegisterMagic(0, AC_CHARGEARROW, 1, NPCEyes, 1,
- CLASS_OTHER, 100);
+ RegisterMagic(0, TMW2_CHARGEDARROW, 10, Manapple, 1,
+ CLASS_OTHER, 50);
// Study
RegisterMagic(0, TMW2_STUDY, 1, Manapple, 1,
CLASS_OTHER, 400);
diff --git a/npc/functions/hub.txt b/npc/functions/hub.txt
index a8f21454d..ef5a94b94 100644
--- a/npc/functions/hub.txt
+++ b/npc/functions/hub.txt
@@ -657,6 +657,46 @@ function script HUB_SkillInvoke {
*/
////////////////////////////////
+ // XXX: Physical Class (Regular)
+ case TMW2_FALKONSTRIKE:
+ .@PW=100+(25*@skillLv);
+ .@ST=0+(10*@skillLv);
+ .@TM=100+(90*@skillLv);
+ harm(@skillTarget, AdjustAttackpower(.@PW), HARM_PHYS, Ele_Neutral);
+ sc_start SC_STUN, .@TM, 1, .@ST, SCFLAG_NONE, @skillTarget;
+ GetManaExp(@skillId, rand2(1,3));
+ break;
+ case TMW2_GROUNDSTRIKE:
+ .@PW=50+(40*@skillLv);
+ .@dmg=AdjustAttackpower(.@PW);
+ .@RG=2+(@skillLv/5);
+ .@TM=100+(@skillLv*200);
+ .@ST=500+(100*@skillLv);
+ .@EF=any(SC_STUN, SC_BLIND, SC_BLOODING, SC_BLIND, SC_BLOODING);
+ areaharm(@skillTarget, .@RG, .@dmg, HARM_PHYS, Ele_Neutral);
+ areasc(.@RG, .@TM, .@EF, BL_MOB | BL_PC | BL_HOM | BL_MER, 1, "filter_hostile", @skillTarget, .@ST);
+ GetManaExp(@skillId, rand2(1,3));
+ break;
+ case TMW2_SUPREMEATTACK:
+ .@PW=100+(50*@skillLv);
+ harm(@skillTarget, AdjustAttackpower(.@PW), HARM_PHYS, Ele_Neutral);
+ GetManaExp(@skillId, rand2(1,3));
+ break;
+ ////////////////////////////////
+ // XXX: Physical Class (Archery)
+ case TMW2_CHARGEDARROW:
+ .@PW=100+(50*@skillLv);
+ harm(@skillTarget, AdjustAttackpower(.@PW), HARM_PHYS, Ele_Neutral);
+ GetManaExp(@skillId, rand2(1,3));
+ break;
+ case TMW2_ARROWSHOWER:
+ .@PW=150+(10*@skillLv);
+ .@dmg=AdjustAttackpower(.@PW);
+ .@RG=1+(@skillLv/3);
+ areaharm(@skillTarget, .@RG, .@dmg, HARM_PHYS, Ele_Neutral);
+ GetManaExp(@skillId, rand2(1,3));
+ break;
+ ////////////////////////////////
// XXX: Brawling Class
case TMW2_BRAWLING:
// 75x3 = 225
@@ -818,11 +858,7 @@ function script HUB_SkillInvoke {
break;
// Experience only
- case SM_BASH:
- case MC_MAMMONITE:
- case AC_SHOWER:
case KN_AUTOCOUNTER:
- case ASC_METEORASSAULT:
case SN_SHARPSHOOTING:
case HW_MAGICPOWER:
case SM_PROVOKE:
@@ -833,7 +869,6 @@ function script HUB_SkillInvoke {
case ALL_FULL_THROTTLE:
case GC_DARKILLUSION:
case NV_TRICKDEAD:
- case AC_CHARGEARROW:
GetManaExp(@skillId, rand2(1,3));
break;
}