diff options
Diffstat (limited to 'npc')
-rw-r--r-- | npc/001-2/tondar.txt | 3 | ||||
-rw-r--r-- | npc/functions/main.txt | 96 | ||||
-rw-r--r-- | npc/magic/config.txt | 53 | ||||
-rw-r--r-- | npc/magic/final.txt | 2 | ||||
-rw-r--r-- | npc/magic/level1-experience.txt | 55 | ||||
-rw-r--r-- | npc/scripts.conf | 1 |
6 files changed, 112 insertions, 98 deletions
diff --git a/npc/001-2/tondar.txt b/npc/001-2/tondar.txt index 44ea860d..8ffd2523 100644 --- a/npc/001-2/tondar.txt +++ b/npc/001-2/tondar.txt @@ -39,8 +39,9 @@ L_Askspell: L_spell: mes "[Tondar]"; - mes "\"Well, all right; this one can't do much harm. Press your hands together and say `" + get(.invocation$, "spell-experience") + "'.\""; + mes "\"Well, all right; this one can't do much harm. Press your hands together and say `" + b("abizit") + "'.\""; mes "\"This will release a steady flow of magic within you. Focus and try to control it; it is a good meditative practice.\""; + learnskill SKILL_ABIZIT; close; L_Nopay: diff --git a/npc/functions/main.txt b/npc/functions/main.txt index bb1887d2..e274bd91 100644 --- a/npc/functions/main.txt +++ b/npc/functions/main.txt @@ -468,7 +468,57 @@ function script Exception { } return getarg(2, 0); +} + +// mescordialog(text, color, {dialog=1}) +function script mescordialog { + if (getarg(2, true)) + mesc getarg(0), getarg(1); + else + dispbottom col(getarg(0), getarg(1)); + return; +} +// Delayed healing. Takes 3~5 seconds. Variates with Vit up to +100%. +// The vit can have an additional 20% bonus as well. +function script itheal { + .@bas=getarg(0); + .@vit=readbattleparam(getcharid(3), UDT_VIT); + .@vit=cap_value(.@vit-1, 0, 100); + if (getargcount() > 2) + .@tim=getarg(3); + else + .@tim=rand2(3,5); + .@min=.@bas*(100+.@vit)/100; + .@max=.@bas*(100+.@vit*120/100)/100; + // Now divide the HP values by the time + .@min=max(1, .@min/.@tim); + .@max=max(1, .@max/.@tim); + callfunc("SC_Bonus", .@tim, SC_S_LIFEPOTION, .@min, .@max); + if (getarg(1,0) > 0) + heal 0, getarg(1, 0); + return; +} + +// sqldate({day variation, month variation}) +function script sqldate { + .@d=gettime(GETTIME_DAYOFMONTH)+getarg(0, 0); + .@m=gettime(GETTIME_MONTH)+getarg(1, 0); + .@y=gettime(GETTIME_YEAR); + // Overflow prevention + if (.@d <= 0) { + .@d=1; + } + while (.@m > 12) { + .@y+=1; + .@m-=12; + } + while (.@m < 1) { + .@y-=1; + .@m+=12; + } + .@strdate$=sprintf("%04d-%02d-%02d %02d:%02d:%02d", .@y, .@m, .@d, gettime(GETTIME_HOUR), gettime(GETTIME_MINUTE), gettime(GETTIME_SECOND)); + return .@strdate$; } // Linking functions @@ -628,50 +678,8 @@ function script updateskill { } function script learnskill { - if (getskilllv(getarg(0)) < getarg(1)) - skill getarg(0), getarg(1), 0; - return; -} - -// Delayed healing. Takes 3~5 seconds. Variates with Vit up to +100%. -// The vit can have an additional 20% bonus as well. -function script itheal { - .@bas=getarg(0); - .@vit=readbattleparam(getcharid(3), UDT_VIT); - .@vit=cap_value(.@vit-1, 0, 100); - if (getargcount() > 2) - .@tim=getarg(3); - else - .@tim=rand2(3,5); - .@min=.@bas*(100+.@vit)/100; - .@max=.@bas*(100+.@vit*120/100)/100; - // Now divide the HP values by the time - .@min=max(1, .@min/.@tim); - .@max=max(1, .@max/.@tim); - callfunc("SC_Bonus", .@tim, SC_S_LIFEPOTION, .@min, .@max); - if (getarg(1,0) > 0) - heal 0, getarg(1, 0); + if (getskilllv(getarg(0)) < getarg(1, 1)) + skill getarg(0), getarg(1, 1), 0; return; } -// sqldate({day variation, month variation}) -function script sqldate { - .@d=gettime(GETTIME_DAYOFMONTH)+getarg(0, 0); - .@m=gettime(GETTIME_MONTH)+getarg(1, 0); - .@y=gettime(GETTIME_YEAR); - // Overflow prevention - if (.@d <= 0) { - .@d=1; - } - while (.@m > 12) { - .@y+=1; - .@m-=12; - } - while (.@m < 1) { - .@y-=1; - .@m+=12; - } - .@strdate$=sprintf("%04d-%02d-%02d %02d:%02d:%02d", .@y, .@m, .@d, gettime(GETTIME_HOUR), gettime(GETTIME_MINUTE), gettime(GETTIME_SECOND)); - return .@strdate$; -} - diff --git a/npc/magic/config.txt b/npc/magic/config.txt index 57d42189..29d7d0d3 100644 --- a/npc/magic/config.txt +++ b/npc/magic/config.txt @@ -319,59 +319,6 @@ function script massprovoke { } -// mescordialog(text, color, {dialog=1}) -function script mescordialog { - if (getarg(2, true)) - mesc getarg(0), getarg(1); - else - dispbottom col(getarg(0), getarg(1)); - return; -} - -// ShowAbizit({dialog=1}) -function script ShowAbizit { - .@dial=getarg(0, true); - if (.@dial) - mesn l("Current Magic Control"); - - // FIXME - switch (abizit()) { - case 10: - mescordialog l("Magic flows naturally from you, readily and with ease. You feel in perfect control of your magic."), 3, .@dial; - break; - case 9: - mescordialog l("You feel in almost perfect control of your magic."), 2, .@dial; - break; - case 8: - mescordialog l("You feel that you have very good control of your magic."), 2, .@dial; - break; - case 7: - mescordialog l("You feel quite in control of your magic."), 4, .@dial; - break; - case 6: - mescordialog l("You feel mostly in control of your magic."), 4, .@dial; - break; - case 5: - mescordialog l("You feel somewhat in control of your magic."), 7, .@dial; - break; - case 4: - mescordialog l("You feel you still have a few difficulties in controlling your magic."), 7, .@dial; - break; - case 3: - mescordialog l("Trying to control your magic is still rather troublesome."), 6, .@dial; - break; - case 2: - mescordialog l("You feel that you have only the bare minimum of control over your magic."), 6, .@dial; - break; - case 1: - mescordialog l("You feel quite overwhelmed by your magic, but are beginning to see patterns."), 1, .@dial; - break; - case 0: - mescordialog l("You feel completely overwhelmed by your magic."), 1, .@dial; - break; - } - return; -} // getactivatedpoolskilllist(?) function script getactivatedpoolskilllist { diff --git a/npc/magic/final.txt b/npc/magic/final.txt index 96cc7440..ea67f85d 100644 --- a/npc/magic/final.txt +++ b/npc/magic/final.txt @@ -32,6 +32,8 @@ function script HUB_SkillInvoke { case TMW2_FAKESKILL: charcommand("@refresh"); // Possibly broken on too up-to-date Herc break; + case SKILL_ABIZIT: + SK_Abizit(); break; case EVOL_AREA_PROVOKE: if (@skillTargetX && @skillTargetY) massprovoke(1+@skillLv, getmap(), @skillTargetX, @skillTargetY); diff --git a/npc/magic/level1-experience.txt b/npc/magic/level1-experience.txt new file mode 100644 index 00000000..7435fb71 --- /dev/null +++ b/npc/magic/level1-experience.txt @@ -0,0 +1,55 @@ +// The Mana World script +// Author: Jesusalva <jesusalva@themanaworld.org> +// +// Magic Script: SKILL_ABIZIT (Level 1) +// School: General 1 + +// ShowAbizit({dialog=true}) +function script ShowAbizit { + .@dial=getarg(0, true); + if (.@dial) + mesn l("Current Magic Control"); + + switch (abizit()) { + case 10: + mescordialog l("Magic flows naturally from you, readily and with ease. You feel in perfect control of your magic."), 3, .@dial; + break; + case 9: + mescordialog l("You feel in almost perfect control of your magic."), 2, .@dial; + break; + case 8: + mescordialog l("You feel that you have very good control of your magic."), 2, .@dial; + break; + case 7: + mescordialog l("You feel quite in control of your magic."), 4, .@dial; + break; + case 6: + mescordialog l("You feel mostly in control of your magic."), 4, .@dial; + break; + case 5: + mescordialog l("You feel somewhat in control of your magic."), 7, .@dial; + break; + case 4: + mescordialog l("You feel you still have a few difficulties in controlling your magic."), 7, .@dial; + break; + case 3: + mescordialog l("Trying to control your magic is still rather troublesome."), 6, .@dial; + break; + case 2: + mescordialog l("You feel that you have only the bare minimum of control over your magic."), 6, .@dial; + break; + case 1: + mescordialog l("You feel quite overwhelmed by your magic, but are beginning to see patterns."), 1, .@dial; + break; + case 0: + mescordialog l("You feel completely overwhelmed by your magic."), 1, .@dial; + break; + } + return; +} + +function script SK_Abizit { + ShowAbizit(false); + return; +} + diff --git a/npc/scripts.conf b/npc/scripts.conf index 55a337b4..566421f5 100644 --- a/npc/scripts.conf +++ b/npc/scripts.conf @@ -65,6 +65,7 @@ //Magic "npc/magic/config.txt", +"npc/magic/level1-experience.txt", "npc/magic/final.txt", // Commands |