summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSean Hulka <sean.hulka@gmail.com>2021-05-29 16:11:42 +0000
committerJesusaves <cpntb1@ymail.com>2021-05-29 16:11:42 +0000
commit112879ece31a385584499263da67f84f98ed29cc (patch)
tree24b7d6ee847b42054851bb3df2d1893562108471
parent7aacf4a9d36cf3e07d1b8ecfa3b657c8f31855a0 (diff)
downloadserverdata-112879ece31a385584499263da67f84f98ed29cc.tar.gz
serverdata-112879ece31a385584499263da67f84f98ed29cc.tar.bz2
serverdata-112879ece31a385584499263da67f84f98ed29cc.tar.xz
serverdata-112879ece31a385584499263da67f84f98ed29cc.zip
Implement Brawler Sciences Class and skills
-rw-r--r--db/re/skill_db.conf41
-rw-r--r--db/re/skill_tree.conf1
-rw-r--r--npc/027-3/_import.txt1
-rw-r--r--npc/027-3/angel.txt111
-rw-r--r--npc/functions/hub.txt15
5 files changed, 169 insertions, 0 deletions
diff --git a/db/re/skill_db.conf b/db/re/skill_db.conf
index 8b08621f9..609039aca 100644
--- a/db/re/skill_db.conf
+++ b/db/re/skill_db.conf
@@ -40342,6 +40342,47 @@ skill_db: (
}
}*/
},
+{
+ Id: 20076
+ Name: "TMW2_STUNNINGSTRIKE"
+ Description: "Stunning Strike"
+ MaxLevel: 10
+ Range: 2
+ SkillType: {
+ Enemy: true
+ }
+ SkillInfo: {
+ Quest: true
+ }
+ Hit: "BDT_SKILL"
+ AttackType: "Weapon"
+ Element: "Ele_Neutral"
+ DamageType: {
+ NoDamage: true
+ }
+ InterruptCast: true
+ CoolDown: {
+ Lv1: 7000
+ Lv2: 6000
+ Lv3: 5000
+ Lv4: 4000
+ Lv5: 3000
+ Lv6: 2500
+ Lv7: 2000
+ Lv8: 1500
+ Lv9: 1000
+ Lv10: 500
+ }
+ CastTime: 225
+ FixedCastTime: 100
+ AfterCastActDelay: 225
+ Requirements: {
+ SPCost: 120
+ WeaponTypes: {
+ NoWeapon: true
+ }
+ }
+},
diff --git a/db/re/skill_tree.conf b/db/re/skill_tree.conf
index 072850f53..1ffa2296a 100644
--- a/db/re/skill_tree.conf
+++ b/db/re/skill_tree.conf
@@ -109,6 +109,7 @@ Human: {
TMW2_BRAWLING: 0
TMW2_BEARSTRIKE: 0
TMW2_ALLINONE: 0
+ TMW2_STUNNINGSTRIKE: 0
TMW2_FALKONSTRIKE: 0
TMW2_GROUNDSTRIKE: 0
TMW2_SUPREMEATTACK: 0
diff --git a/npc/027-3/_import.txt b/npc/027-3/_import.txt
index 750829745..feb1974d7 100644
--- a/npc/027-3/_import.txt
+++ b/npc/027-3/_import.txt
@@ -1,4 +1,5 @@
// Map 027-3: Physical Sciences Classroom
// This file is generated automatically. All manually added changes will be removed when running the Converter.
"npc/027-3/_warps.txt",
+"npc/027-3/angel.txt",
"npc/027-3/luca.txt",
diff --git a/npc/027-3/angel.txt b/npc/027-3/angel.txt
new file mode 100644
index 000000000..b811e3d37
--- /dev/null
+++ b/npc/027-3/angel.txt
@@ -0,0 +1,111 @@
+// TMW2 script.
+// Author:
+// dangerDuck
+// Description:
+// Angel, of Physical Science Class.
+
+027-3,36,28,0 script Angel NPC_PLAYER,{
+ function basicMagic;
+ function standardMagic;
+ function advancedMagic;
+ if (!MAGIC_LVL) goto L_NoMagic;
+ mes l(".:: Physical Sciences Class ::.");
+ mesc l("Specialized in skills with fist-based damage and unarmed mastery.");
+ next;
+ mesn;
+ mesc l("You have @@ magic skill points available.", sk_points());
+ select
+ l("Basic Magic"),
+ l("Standard Magic"),
+ l("Advanced Magic");
+ //l("Mastery Magic");
+ mes "";
+ .@lv=@menu;
+ do
+ {
+ // Display appropriate menu
+ if (.@lv == 1)
+ basicMagic();
+ else if (.@lv == 2)
+ standardMagic();
+ else if (.@lv == 3)
+ advancedMagic();
+
+ // Handle result
+ mes "";
+ if (@menuret) {
+ if (!learn_magic(@menuret)) {
+ mesc l("You do not meet all requisites for this skill."), 1;
+ next;
+ }
+ } else {
+ closeclientdialog;
+ }
+
+ } while (@menuret);
+ close;
+
+L_NoMagic:
+ next;
+ mesn;
+ mesq l("You do not have enough magic power for these classes.");
+ next;
+ if ($FIRESOFSTEAM < 9) {
+ mesn;
+ mesq l("Besides the Magic Council, Andrei Sakar have his own Mana Stone, but I doubt he would train the likes of you, or share his Mana Stone.");
+ next;
+ }
+ mesn;
+ mesq l("Perhaps, in the city, someone knows rumors about Mana Stones and can teach you. Other than that, you're on your own.");
+ close;
+
+function basicMagic {
+ if (MAGIC_LVL < 1) goto L_NoMagic;
+ mes l(".:: Brawling ::.");
+ mesc l("Three powerful consecutive brawn attacks.");
+ mes "";
+ menuint
+ l("Brawling"), TMW2_BRAWLING,
+ l("Cancel"), 0;
+ return;
+}
+
+function standardMagic {
+ if (MAGIC_LVL < 2) goto L_NoMagic;
+ mes l(".:: Bear Strike ::.");
+ mesc l("Five powerful consecutive brawn attacks.");
+ mes "";
+ mes l(".:: Stunning Strike ::.");
+ mesc l("Three powerful consecutive brawn attacks with a chance to stun target.");
+ mes "";
+ menuint
+ l("Bear Strike"), TMW2_BEARSTRIKE,
+ l("Stunning Strike"), TMW2_STUNNINGSTRIKE,
+ l("Cancel"), 0;
+ return;
+}
+
+function advancedMagic {
+ if (MAGIC_LVL < 3) goto L_NoMagic;
+ mes l(".:: All In One ::.");
+ mesc l("Seven consecutive brawn attacks of diff. elements.");
+ mes "";
+ menuint
+ l("All In One"), TMW2_ALLINONE,
+ l("Cancel"), 0;
+ return;
+}
+
+OnInit:
+ .@npcId = getnpcid(.name$);
+ setunitdata(.@npcId, UDT_HEADTOP, NPCEyes);
+ setunitdata(.@npcId, UDT_HEADMIDDLE, AssassinChest);
+ setunitdata(.@npcId, UDT_HEADBOTTOM, AssassinPants);
+ setunitdata(.@npcId, UDT_WEAPON, AssassinBoots);
+ setunitdata(.@npcId, UDT_HAIRSTYLE, 20);
+ setunitdata(.@npcId, UDT_HAIRCOLOR, 7);
+
+ .sex = G_FEMALE;
+ .distance = 5;
+ end;
+}
diff --git a/npc/functions/hub.txt b/npc/functions/hub.txt
index f3ff72983..a2a981da9 100644
--- a/npc/functions/hub.txt
+++ b/npc/functions/hub.txt
@@ -1,6 +1,7 @@
// TMW2 scripts.
// Authors:
// Jesusalva
+// dangerDuck
// TMW Org.
// Description:
// HUB functions (Login, Logout, Death)
@@ -847,6 +848,20 @@ function script HUB_SkillInvoke {
// and also hits behind (and on your square)
rectharm(@skillTarget, 0, 1, AdjustAttackpower(.@PW/2), HARM_PHYS, Ele_Neutral);
break;
+ case TMW2_STUNNINGSTRIKE:
+ // 70x3 = 210
+ .@PW=65+(5*@skillLv);
+ .@TM=1600+(@skillLv*200);
+ // Using a shield, so power is halved
+ if (getequipid(EQI_HAND_L) > 0)
+ .@PW=.@PW/2;
+ harm(@skillTarget, AdjustAttackpower(.@PW), HARM_PHYS, Ele_Neutral);
+ sleep2(10);
+ harm(@skillTarget, AdjustAttackpower(.@PW), HARM_PHYS, Ele_Neutral);
+ sleep2(10);
+ harm(@skillTarget, AdjustAttackpower(.@PW), HARM_PHYS, Ele_Neutral);
+ sc_start SC_STUN, .@TM, 1, 3333, SCFLAG_NONE, @skillTarget;
+ break;
////////////////////////////////
// CLASS_OTHER