From 7f91b4f988ba3a7d4c6eb44b372aec40ada214c7 Mon Sep 17 00:00:00 2001 From: Jesusaves Date: Wed, 7 Apr 2021 14:04:30 -0300 Subject: Convert a few Physical Skills from built-in to Magicv3 --- db/re/skill_db.conf | 221 ++++++++++++++++++++++++++++++++++++++++++++++++ db/re/skill_tree.conf | 16 ++-- npc/000-0/sailors.txt | 16 ++-- npc/003-3/malindou.txt | 13 +++ npc/012-1/gwendolyn.txt | 2 +- npc/025-1/ctrl.c | 1 + npc/027-3/luca.txt | 8 +- npc/config/magic.txt | 20 ++--- npc/functions/hub.txt | 45 ++++++++-- 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; } -- cgit v1.2.3-60-g2f50