summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--db/re/item_db.conf12
-rw-r--r--db/re/skill_db.conf12
-rw-r--r--db/re/skill_tree.conf1
-rw-r--r--npc/017-1/paxel.txt2
-rw-r--r--npc/magic/demure.txt102
-rw-r--r--npc/scripts.conf5
6 files changed, 124 insertions, 10 deletions
diff --git a/db/re/item_db.conf b/db/re/item_db.conf
index a726fc396..f11911b33 100644
--- a/db/re/item_db.conf
+++ b/db/re/item_db.conf
@@ -184,15 +184,11 @@ item_db: (
Delay: 500
UseEffect: "EFFECT_HEAL"
Script: <"
- if (@useType == 1)
- {
- if (!getmapxy(.@map$, .@x, .@y, 0))
- {
+ if (@useType == 1) {
+ if (!getmapxy(.@map$, .@x, .@y, 0)) {
monster(.@map$, .@x, .@y, l("Oak"), 1017, 1);
}
- }
- else
- {
+ } else {
@min = 15;
@max = 45;
@delay = 3;
@@ -214,6 +210,7 @@ item_db: (
Delay: 500
UseEffect: "EFFECT_HEAL"
Script: <"
+ sc_start SC_INCATKRATE, 10000, 100;
@min = 50;
@max = 180;
@delay = 3;
@@ -1982,6 +1979,7 @@ item_db: (
Script: <"
// SC_PLUSATTACKPOWER is not caught by client but works.
// SC_STRUP is caught by client, but raises STR in a weird way.
+ // SC_INCATKRATE works best of all ^.^
sc_start SC_PLUSATTACKPOWER, 15000, 5;
@min = 30;
@max = 60;
diff --git a/db/re/skill_db.conf b/db/re/skill_db.conf
index 2fe36e791..3c22add1d 100644
--- a/db/re/skill_db.conf
+++ b/db/re/skill_db.conf
@@ -38475,6 +38475,18 @@ skill_db: (
}
},
{
+ Id: 20028
+ Name: "TMW2_DEMURE"
+ Description: "Full Rage"
+ MaxLevel: 15
+ SkillType: {
+ Self: true
+ }
+ SkillInfo: {
+ Quest: true
+ }
+},
+{
Id: 20031
Name: "TMW2_FAKESKILL"
Description: "Fake Skill Resync"
diff --git a/db/re/skill_tree.conf b/db/re/skill_tree.conf
index 8b2478992..e77f885b2 100644
--- a/db/re/skill_tree.conf
+++ b/db/re/skill_tree.conf
@@ -45,6 +45,7 @@ Human: {
TMW2_PARUM: 0
TMW2_KALMURK: 4
TMW2_MKPOT: 20
+ TMW2_DEMURE: 15
// Unrelated
ALL_INCCARRY: 0
diff --git a/npc/017-1/paxel.txt b/npc/017-1/paxel.txt
index cfa323b1a..7d097472b 100644
--- a/npc/017-1/paxel.txt
+++ b/npc/017-1/paxel.txt
@@ -134,7 +134,7 @@ L_More_Needed1:
L_More_Needed2:
mesn;
- mesq l("I am sorry but i can see that you don't have all that I asked you.");
+ mesq l("I am sorry but I can see that you don't have all that I asked you.");
next;
mesn;
mesq l("Please bring me that or I won't be able to make something really special for you.");
diff --git a/npc/magic/demure.txt b/npc/magic/demure.txt
new file mode 100644
index 000000000..0a6f6d8bf
--- /dev/null
+++ b/npc/magic/demure.txt
@@ -0,0 +1,102 @@
+// TMW2 script
+// Author: Jesusalva <admin@tmw2.org>
+//
+// Magic Script: TMW2_DEMURE
+//
+// Let yourself rage and go out of control destroy everything around you
+// Doubles attack speed but nullifies evade complety for 30 seconds.
+// Each level grants +30s and +1% evade and +5% attack speed.
+// After level 1, evade penalty/cooldown raises in 1s per additional level
+//
+// Cooldown is cast duration
+
+- script sk#demure 32767,{
+ end;
+
+/*
+ SC_INCAGI: 190
+ SC_INCVIT: 191
+ SC_INCINT: 192
+ SC_INCDEX: 193
+ SC_INCLUK: 194
+ SC_INCHIT: 195
+ SC_INCHITRATE: 196
+ SC_INCFLEE: 197
+ SC_INCFLEERATE: 198
+ SC_INCMHPRATE: 199
+ SC_INCMSPRATE: 200
+ SC_INCATKRATE: 201
+ SC_INCMATKRATE: 202
+ SC_INCDEFRATE: 203
+
+ SC_WALKSPEED (?)
+ SC_INVINCIBLE (?)
+ SC_MANA_PLUS (?)
+ SC_INCMHP (?)
+ SC_INCMSP (?)
+
+ // The basic ones
+ SC_STONE: 0
+ SC_FREEZE: 1
+ SC_STUN: 2
+ SC_SLEEP: 3
+ SC_POISON: 4
+ SC_CURSE: 5
+ SC_SILENCE: 6
+ SC_CONFUSION: 7
+ SC_BLIND: 8
+ SC_BLOODING: 9
+ SC_DPOISON: 10
+ SC_FEAR: 11
+ SC_COLD: 12
+ SC_BURNING: 13
+ SC_DEEP_SLEEP: 14
+ SC_PROVOKE: 20
+ SC_ENDURE: 21
+
+ SC_ATTHASTE_POTION1: 55
+ SC_ATTHASTE_POTION2: 56
+ SC_ATTHASTE_POTION3: 57
+ SC_ATTHASTE_INFINITY: 58
+ SC_MOVHASTE_HORSE: 59
+ SC_MOVHASTE_INFINITY: 60
+ SC_PLUSATTACKPOWER: 61
+ SC_PLUSMAGICPOWER: 62
+
+*/
+
+OnCall:
+
+ // Check cooldown
+ if (@demure_at > gettimetick(2)) {
+ dispbottom l("Skill is in cooldown for @@.", FuzzyTime(@demure_at));
+ end;
+ }
+
+ // Check requisites
+ if (!MagicCheck(TMW2_DEMURE, 100, 100))
+ end;
+
+ // Determine length: 30s per skill level
+ .@length=getskilllv(TMW2_DEMURE)*30000;
+ .@effect=100+getskilllv(TMW2_DEMURE)*5;
+ .@penalty=getskilllv(TMW2_DEMURE)-101;
+ .@malus=(getskilllv(TMW2_DEMURE)-1)*1000;
+
+ // Add two SC_ effects: One to raise attack speed and other to drop evade
+ //sc_start(<effect type>, <ticks>, <value 1>{, <rate>, <flag>{, <GID>}})
+ sc_start SC_ATTHASTE_POTION2, .@length, .@effect;
+ sc_start SC_INCFLEERATE, (.@length+.@malus), .@penalty;
+
+ // set cooldown
+ @demure_at=gettimetick(2);
+ @demure_at=@demure_at+(.@length+.@malus)/1000;
+
+ // Get a few mana experience points (this is NOT used by Mana Stone)
+ GetManaExp(TMW2_DEMURE, rand(1,getskilllv(TMW2_DEMURE)));
+ end;
+
+OnInit:
+ bindatcmd "sk-demure", "sk#demure::OnCall", 0, 100, 0;
+ end;
+}
diff --git a/npc/scripts.conf b/npc/scripts.conf
index 8fef3c023..59b8168df 100644
--- a/npc/scripts.conf
+++ b/npc/scripts.conf
@@ -88,10 +88,11 @@
"npc/commands/ucp.txt",
// Magic Commands
-"npc/magic/zarkor.txt",
-"npc/magic/parum.txt",
+"npc/magic/demure.txt",
"npc/magic/kalmurk.txt",
"npc/magic/mkpot.txt",
+"npc/magic/parum.txt",
+"npc/magic/zarkor.txt",
// These are to be proccessed later
"npc/functions/gmbot.txt",