diff options
-rw-r--r-- | npc/003-0/_import.txt | 4 | ||||
-rw-r--r-- | npc/003-0/paladin.txt | 94 | ||||
-rw-r--r-- | npc/functions/util.txt | 8 |
3 files changed, 106 insertions, 0 deletions
diff --git a/npc/003-0/_import.txt b/npc/003-0/_import.txt index c7c3d11f3..9363c4fa0 100644 --- a/npc/003-0/_import.txt +++ b/npc/003-0/_import.txt @@ -1,3 +1,7 @@ // Map 003-0: Magic Academy // This file is generated automatically. All manually added changes will be removed when running the Converter. "npc/003-0/_warps.txt", +"npc/003-0/audsbel.txt", +"npc/003-0/mages.txt", +"npc/003-0/paladin.txt", +"npc/003-0/warriors.txt", diff --git a/npc/003-0/paladin.txt b/npc/003-0/paladin.txt new file mode 100644 index 000000000..38dfbd7cf --- /dev/null +++ b/npc/003-0/paladin.txt @@ -0,0 +1,94 @@ +// TMW2 scripts. +// Authors: +// Jesusalva +// Description: +// Leader of the PALADIN class + +003-0,34,37,0 script Paladin Master NPC_PLAYER,{ + if (!(MAGIC_SUBCLASS & CL_PALADIN)) + goto L_SignUp; + goto L_Member; + +// Sign Up +L_SignUp: + // Not allowed if subclass filled or not from main class + if (total_subclass() >= max_subclass() || getskilllv(MAGIC_WARRIOR) < 2) + goto L_Close; + mesn; + mesq l("Hey there! Do you want to join the Paladin Class?"); + mesc l("Warning: If you join a subclass, you can't leave it later!"), 1; + next; + if (askyesno() != ASK_YES) + close; + // TODO: Requeriment for signing up to a subclass? Or is the tier quest hard enough? + MAGIC_SUBCLASS=MAGIC_SUBCLASS|CL_PALADIN; + mesn; + mesq l("Welcome to the paladin guild!"); + close; + +// Close +L_Close: + goodbye; + closedialog; + close; + +// Membership area +// Paladin +// CR_TRUST (raise Max HP in 200 and Holy Resistance in 5%, passive) +// AL_ANGELUS (DEF Increase 5% for 15s/LVL, 14x14 area for PARTY) +// PR_REDEMPTIO (suicide with death penalty. Revive dead party members on a 29x29 area. Min. 1% xp. 0.01% xp penalty reduction per revive) +// MER_INCAGI (raise agi and move speed for 20s/LVL. Have an HP cost.) +// SM_BASH up to level 4 (+220% dmg and +20% acc). PS. If you have MP, SM_BASH is very powerful. + +L_Member: + mesn; + mesq l("Hey there! Do you want to learn new skills for a very small teaching fee?"); + select + rif(sk_intcost(SM_BASH) && sk_canlvup(SM_BASH), l("Improve Bash Skill"), + rif(sk_intcost(AL_ANGELUS) && sk_canlvup(AL_ANGELUS), l("Improve Party Area Defense"), + rif(sk_intcost(MER_INCAGI) && sk_canlvup(MER_INCAGI), l("Improve Increase Agility"), + rif(sk_intcost(PR_REDEMPTIO) && !getskilllv(PR_REDEMPTIO), l("Learn Redemption"), + rif(sk_intcost(CR_TRUST) && !getskilllv(CR_TRUST), l("Learn Last Standing Man"), + l("Nothing at the moment."); + mes ""; + switch (@menu) { + case 1: + // TODO: Requirem, quest, agree + sk_lvup(SM_BASH); + break; + case 2: + // TODO: Requirem, quest, agree + sk_lvup(AL_ANGELUS); + break; + case 3: + // TODO: Requirem, quest, agree + sk_lvup(MER_INCAGI); + break; + case 4: + // TODO: Requirem, quest, agree + sk_lvup(PR_REDEMPTIO); + break; + case 5: + // TODO: Requirem, quest, agree + sk_lvup(CR_TRUST); + break; + default: + goto L_Close; + } + + goto L_Member; + +OnInit: + .@npcId = getnpcid(0, .name$); + setunitdata(.@npcId, UDT_HEADTOP, WarlordHelmet); + setunitdata(.@npcId, UDT_HEADMIDDLE, WarlordPlate); + setunitdata(.@npcId, UDT_HEADBOTTOM, NPCEyes); + setunitdata(.@npcId, UDT_WEAPON, JeansChaps); + setunitdata(.@npcId, UDT_HAIRSTYLE, 2); + setunitdata(.@npcId, UDT_HAIRCOLOR, 4); + + .sex=G_MALE; + .distance=5; + end; +} + diff --git a/npc/functions/util.txt b/npc/functions/util.txt index 37764ed1b..f73d447de 100644 --- a/npc/functions/util.txt +++ b/npc/functions/util.txt @@ -293,4 +293,12 @@ function script sk_lvup { return; } +// Returns the intelligence cost based on skill level +// sk_intcost( sk ) +function script sk_intcost { + .@cost=(getskilllv(getarg(0))+1)*17; + if (readparam(bInt) >= .@cost) + return 1; + return 0; +} |