summaryrefslogtreecommitdiff
path: root/npc
diff options
context:
space:
mode:
Diffstat (limited to 'npc')
-rw-r--r--npc/craft/options.txt119
-rw-r--r--npc/craft/tweak.txt2
-rw-r--r--npc/scripts.conf1
3 files changed, 121 insertions, 1 deletions
diff --git a/npc/craft/options.txt b/npc/craft/options.txt
new file mode 100644
index 000000000..515cd315c
--- /dev/null
+++ b/npc/craft/options.txt
@@ -0,0 +1,119 @@
+// TMW2 Script
+// Author:
+// Jesusalva
+// Description:
+// Item Option System
+// Notes:
+// Awarded for crafters and their own base skill tree system
+
+// Player knowledge structure
+// CRAFTSYS[ SKILL_SCOPE ] = SKILL_LV
+
+// ReturnVarID() takes the scope and finds out the skills on the group
+// It'll fill the following variables:
+// @csys_attr → Available attributes
+// @csys_penalty → Penalty attribute array
+//
+// use getarraysize(@csys_attr) to know how many are there.
+// Players can active the bonus groups they want to use (in future, TODO)
+
+// Max Level for base: 10
+// Max Level for first tier: 5
+// Max Level for second tier:
+// Max Level for third tier:
+// Max Level for ultimate tier: 1
+
+// ReturnVarID( cr_id{, preserve} )
+function script ReturnVarID {
+ .@gid=getarg(0);
+ if (!getarg(1, false)) {
+ deletearray(@csys_attr);
+ }
+ .@lvl=getd("CRAFTSYS["+.@gid+"]");
+
+ switch (.@gid) {
+ case CRGROUP_BASE:
+ if (@lvl >= 1)
+ array_push(@csys_attr, VAR_STRAMOUNT);
+ if (@lvl >= 2)
+ array_push(@csys_attr, VAR_AGIAMOUNT);
+ if (@lvl >= 3)
+ array_push(@csys_attr, VAR_VITAMOUNT);
+ if (@lvl >= 4)
+ array_push(@csys_attr, VAR_INTAMOUNT);
+ if (@lvl >= 5)
+ array_push(@csys_attr, VAR_DEXAMOUNT);
+ if (@lvl >= 6)
+ array_push(@csys_attr, VAR_LUKAMOUNT);
+ if (@lvl >= 8)
+ array_push(@csys_attr, VAR_MAXHPAMOUNT);
+ if (@lvl >= 10)
+ array_push(@csys_attr, VAR_MAXSPAMOUNT);
+ break;
+ // First tier
+ case CRGROUP_ATK:
+ if (@lvl >= 1) {
+ array_push(@csys_attr, VAR_ATTPOWER);
+ array_push(@csys_attr, VAR_ATTMPOWER);
+ }
+ if (@lvl >= 5) {
+ array_push(@csys_attr, VAR_MAGICATKPERCENT);
+ array_push(@csys_attr, VAR_ATKPERCENT);
+ }
+ array_push(@csys_penalty, VAR_ITEMDEFPOWER);
+ array_push(@csys_penalty, VAR_MDEFPOWER);
+ break;
+ case CRGROUP_DEF:
+ if (@lvl >= 1) {
+ array_push(@csys_attr, VAR_ITEMDEFPOWER);
+ array_push(@csys_attr, VAR_MDEFPOWER);
+ }
+ if (@lvl >= 5) {
+ array_push(@csys_attr, DAMAGE_CRI_USER);
+ array_push(@csys_attr, RANGE_ATTACK_DAMAGE_USER);
+ }
+ array_push(@csys_penalty, VAR_ATTPOWER);
+ array_push(@csys_penalty, VAR_ATTMPOWER);
+ break;
+ case CRGROUP_ACC:
+ if (@lvl >= 1) {
+ array_push(@csys_attr, VAR_HITSUCCESSVALUE);
+ }
+ if (@lvl >= 5) {
+ array_push(@csys_attr, VAR_CRITICALSUCCESSVALUE);
+ }
+ array_push(@csys_penalty, VAR_ATTPOWER);
+ array_push(@csys_penalty, VAR_ATTMPOWER);
+ break;
+ break;
+ case CRGROUP_EVD:
+ if (@lvl >= 1) {
+ array_push(@csys_attr, VAR_AVOIDSUCCESSVALUE);
+ }
+ if (@lvl >= 5) {
+ array_push(@csys_attr, VAR_PLUSAVOIDSUCCESSVALUE);
+ }
+ array_push(@csys_penalty, VAR_ATTPOWER);
+ array_push(@csys_penalty, VAR_ATTMPOWER);
+ break;
+ break;
+ // Second tier
+ case CRGROUP_REGEN:
+ if (@lvl >= 1) {
+ array_push(@csys_attr, VAR_HPACCELERATION);
+ }
+ if (@lvl >= 5) {
+ array_push(@csys_attr, VAR_SPACCELERATION);
+ }
+ array_push(@csys_penalty, VAR_ATTPOWER);
+ array_push(@csys_penalty, VAR_ATTMPOWER);
+ break;
+ }
+
+ return Exception("Invalid ID");
+}
+
+
+
+
+
diff --git a/npc/craft/tweak.txt b/npc/craft/tweak.txt
index 4f10ac3c1..c6d966f4e 100644
--- a/npc/craft/tweak.txt
+++ b/npc/craft/tweak.txt
@@ -44,7 +44,7 @@ function script SmithTweakSystem {
}
// Eh, apply some stuff for testing
- setitemoptionbyindex(.@id, 0, VAR_MAXHPAMOUNT, 200);
+ setitemoptionbyindex(.@id, 0, VAR_MAXHPAMOUNT, 2000);
setitemoptionbyindex(.@id, 1, VAR_STRAMOUNT, 10);
setitemoptionbyindex(.@id, 2, VAR_VITAMOUNT, -5);
mesc l("SUCCESS!"), 3;
diff --git a/npc/scripts.conf b/npc/scripts.conf
index 6376db465..823f1913a 100644
--- a/npc/scripts.conf
+++ b/npc/scripts.conf
@@ -76,6 +76,7 @@
"npc/items/teleporter.txt",
// Crafting System
+"npc/craft/options.txt",
"npc/craft/alchemy.txt",
"npc/craft/smith.txt",
"npc/craft/tweak.txt",