diff options
Diffstat (limited to 'npc')
-rw-r--r-- | npc/craft/options.txt | 119 | ||||
-rw-r--r-- | npc/craft/tweak.txt | 2 | ||||
-rw-r--r-- | npc/scripts.conf | 1 |
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", |