diff options
Diffstat (limited to 'npc/003-0/priest.txt')
-rw-r--r-- | npc/003-0/priest.txt | 279 |
1 files changed, 0 insertions, 279 deletions
diff --git a/npc/003-0/priest.txt b/npc/003-0/priest.txt deleted file mode 100644 index 958c9d710..000000000 --- a/npc/003-0/priest.txt +++ /dev/null @@ -1,279 +0,0 @@ -// TMW2 scripts. -// Authors: -// Jesusalva -// Description: -// Leader of the PRIEST class - -003-0,58,30,0 script Priest Master NPC_PLAYER,{ - /* - if (!is_staff()) - goto L_Close; - */ - if (!(MAGIC_SUBCLASS & CL_PRIEST)) - 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(WIZARD_MAGE) < 2) - goto L_Close; - mesn; - mesq l("Hey there! Do you want to join the Priest Class?"); - mesc l("Warning: If you join a subclass, you can't leave it later!"), 1; - mesc b(l("Warning: This class haven't been tested/balanced yet. Feedback is required!")), 1; - next; - if (askyesno() != ASK_YES) - close; - // TODO: Requeriment for signing up to a subclass? Or is the tier + skill quest hard enough? - MAGIC_SUBCLASS=MAGIC_SUBCLASS|CL_PRIEST; - mesn; - mesq l("Welcome to the Priest guild!"); - close; - -// Close -L_Close: - goodbye; - closedialog; - close; - -L_Missing: - mesn; - mesq l("Hey hey! You don't have that stuff, CAN'T YOU READ?!"); - percentheal 0, -10; - next; - goto L_Member; - -// Membership area -// Priest -// AL_HOLYLIGHT (standard holy magic attack - 125% of MATK) -// MG_SRECOVERY (small increase to SP Recovery while idle each 10 sec.) -// ALL_RESURRECTION (Revive at 10% HP. May insta-kill undead. Max Level 3~4) -// PR_ASPERSIO (Change anyone weapon to holy for 60s. Or 40 defense-disregard holy dmg to undead/evil) -// TF_DETOXIFY (cancels poison. 40% MP.) - -L_Member: - mesn; - mesq l("Hey there! Do you want to learn new skills for a very small teaching fee?"); - select - rif(sk_intcost(AL_HOLYLIGHT) && !getskilllv(AL_HOLYLIGHT), l("Learn Holy Light")), - rif(sk_intcost(TF_DETOXIFY) && !getskilllv(TF_DETOXIFY), l("Learn Detoxify")), - rif(sk_intcost(ALL_RESURRECTION) && getskilllv(ALL_RESURRECTION) < (1+degree_subclass()/2), l("Learn Ressurection")), - rif(sk_intcost(MG_SRECOVERY) && sk_canlvup(MG_SRECOVERY), l("Improve Mana Recovery")), - rif(sk_intcost(PR_ASPERSIO) && sk_canlvup(PR_ASPERSIO), l("Improve Blessed Weapon")), - rif(sk_intcost(AB_HIGHNESSHEAL) && sk_canlvup(AB_HIGHNESSHEAL), l("Improve Luma")), - l("Leave Subclass"), - l("Nothing at the moment."); - mes ""; - switch (@menu) { - case 1: - mesc l("[Holy Light]"); - mesc l("The basic magic attack from a Priest. No effect against Holy Monsters."); - mes ""; - mesn; - mesq l("This useful skill will only require:"); - mesc l("@@/@@ @@", countitem(MoubooFigurine), (getskilllv(AL_HOLYLIGHT)+1)*3, getitemlink(MoubooFigurine)); - mesc l("@@/@@ @@", countitem(GemPowder), (getskilllv(AL_HOLYLIGHT)+1)*1, getitemlink(GemPowder)); - next; - if (askyesno() == ASK_YES) { - if ( - countitem(MoubooFigurine) < (getskilllv(AL_HOLYLIGHT)+1)*3 || - countitem(GemPowder) < (getskilllv(AL_HOLYLIGHT)+1)*1) goto L_Missing; - - delitem MoubooFigurine, (getskilllv(AL_HOLYLIGHT)+1)*3; - delitem GemPowder, (getskilllv(AL_HOLYLIGHT)+1)*1; - - sk_lvup(AL_HOLYLIGHT); - - next; - } - break; - case 2: - mesc l("[Detoxify]"); - mesc l("Cancels Poison. Antidotes are hard to come by, anyway."); - mes ""; - mesn; - mesq l("This useful skill will only require:"); - mesc l("@@/@@ @@", countitem(Candy), (getskilllv(TF_DETOXIFY)+1)*70, getitemlink(Candy)); - mesc l("@@/@@ @@", countitem(Root), (getskilllv(TF_DETOXIFY)+1)*10, getitemlink(Root)); - mesc l("@@/@@ @@", countitem(Mashmallow), (getskilllv(TF_DETOXIFY)+1)*2, getitemlink(Mashmallow)); - mesc l("@@/@@ @@", countitem(FluoPowder), (getskilllv(TF_DETOXIFY)+1)*1, getitemlink(FluoPowder)); - next; - if (askyesno() == ASK_YES) { - if ( - countitem(Candy) < (getskilllv(TF_DETOXIFY)+1)*70 || - countitem(Root) < (getskilllv(TF_DETOXIFY)+1)*10 || - countitem(Mashmallow) < (getskilllv(TF_DETOXIFY)+1)*2 || - countitem(FluoPowder) < (getskilllv(TF_DETOXIFY)+1)*1) goto L_Missing; - - delitem Candy, (getskilllv(TF_DETOXIFY)+1)*70; - delitem Root, (getskilllv(TF_DETOXIFY)+1)*10; - delitem Mashmallow, (getskilllv(TF_DETOXIFY)+1)*2; - delitem FluoPowder, (getskilllv(TF_DETOXIFY)+1)*1; - - sk_lvup(TF_DETOXIFY); - - next; - } - break; - case 3: - mesc l("[Ressurection]"); - mesc l("Raise fallen party members so they can keep fighting."); - mes ""; - mesn; - mesq l("This useful skill will only require:"); - mesc l("@@/@@ @@", countitem(Acorn), (getskilllv(ALL_RESURRECTION)+1)*60, getitemlink(Acorn)); - mesc l("@@/@@ @@", countitem(Bread), (getskilllv(ALL_RESURRECTION)+1)*20, getitemlink(Bread)); - mesc l("@@/@@ @@", countitem(SmallMushroom), (getskilllv(ALL_RESURRECTION)+1)*20, getitemlink(SmallMushroom)); - mesc l("@@/@@ @@", countitem(PinkBlobime), (getskilllv(ALL_RESURRECTION)+1)*15, getitemlink(PinkBlobime)); - mesc l("@@/@@ @@", countitem(Pearl), (getskilllv(ALL_RESURRECTION)+1)*2, getitemlink(Pearl)); - next; - if (askyesno() == ASK_YES) { - if ( - countitem(Acorn) < (getskilllv(ALL_RESURRECTION)+1)*60 || - countitem(Bread) < (getskilllv(ALL_RESURRECTION)+1)*20 || - countitem(SmallMushroom) < (getskilllv(ALL_RESURRECTION)+1)*15 || - countitem(PinkBlobime) < (getskilllv(ALL_RESURRECTION)+1)*20 || - countitem(Pearl) < (getskilllv(ALL_RESURRECTION)+1)*2) goto L_Missing; - - delitem Acorn, (getskilllv(ALL_RESURRECTION)+1)*60; - delitem Bread, (getskilllv(ALL_RESURRECTION)+1)*20; - delitem SmallMushroom, (getskilllv(ALL_RESURRECTION)+1)*20; - delitem PinkBlobime, (getskilllv(ALL_RESURRECTION)+1)*15; - delitem Pearl, (getskilllv(ALL_RESURRECTION)+1)*2; - - sk_lvup(ALL_RESURRECTION); - - next; - } - break; - case 4: - mesc l("[MP Regen]"); - mesc l("Heals more mana while standing."); - mes ""; - mesn; - mesq l("This useful skill will only require:"); - mesc l("@@/@@ @@", countitem(Acorn), (getskilllv(MG_SRECOVERY)+1)*70, getitemlink(Acorn)); - mesc l("@@/@@ @@", countitem(Root), (getskilllv(MG_SRECOVERY)+1)*10, getitemlink(Root)); - mesc l("@@/@@ @@", countitem(FrozenYetiTear),(getskilllv(MG_SRECOVERY)+1)*2, getitemlink(FrozenYetiTear)); - mesc l("@@/@@ @@", countitem(FluoPowder), (getskilllv(MG_SRECOVERY)+1)*1, getitemlink(FluoPowder)); - next; - if (askyesno() == ASK_YES) { - if ( - countitem(Acorn) < (getskilllv(MG_SRECOVERY)+1)*70 || - countitem(Root) < (getskilllv(MG_SRECOVERY)+1)*10 || - countitem(FrozenYetiTear) < (getskilllv(MG_SRECOVERY)+1)*2 || - countitem(FluoPowder) < (getskilllv(MG_SRECOVERY)+1)*1) goto L_Missing; - - delitem Acorn, (getskilllv(MG_SRECOVERY)+1)*70; - delitem Root, (getskilllv(MG_SRECOVERY)+1)*10; - delitem FrozenYetiTear, (getskilllv(MG_SRECOVERY)+1)*2; - delitem FluoPowder, (getskilllv(MG_SRECOVERY)+1)*1; - - sk_lvup(MG_SRECOVERY); - - next; - } - break; - case 5: - mesc l("[Bless Weapon]"); - mesc l("Changes anyone's weapon to Holy elemental. Causes small damage when used on offensive."); - mes ""; - mesn; - mesq l("This useful skill will only require:"); - mesc l("@@/@@ @@", countitem(Acorn), (getskilllv(PR_ASPERSIO)+1)*70, getitemlink(Acorn)); - mesc l("@@/@@ @@", countitem(Root), (getskilllv(PR_ASPERSIO)+1)*10, getitemlink(Root)); - mesc l("@@/@@ @@", countitem(FrozenYetiTear),(getskilllv(PR_ASPERSIO)+1)*2, getitemlink(FrozenYetiTear)); - mesc l("@@/@@ @@", countitem(FluoPowder), (getskilllv(PR_ASPERSIO)+1)*1, getitemlink(FluoPowder)); - next; - if (askyesno() == ASK_YES) { - if ( - countitem(Acorn) < (getskilllv(PR_ASPERSIO)+1)*70 || - countitem(Root) < (getskilllv(PR_ASPERSIO)+1)*10 || - countitem(FrozenYetiTear) < (getskilllv(PR_ASPERSIO)+1)*2 || - countitem(FluoPowder) < (getskilllv(PR_ASPERSIO)+1)*1) goto L_Missing; - - delitem Acorn, (getskilllv(PR_ASPERSIO)+1)*70; - delitem Root, (getskilllv(PR_ASPERSIO)+1)*10; - delitem FrozenYetiTear, (getskilllv(PR_ASPERSIO)+1)*2; - delitem FluoPowder, (getskilllv(PR_ASPERSIO)+1)*1; - - sk_lvup(PR_ASPERSIO); - - next; - } - break; - case 6: - mesc l("[Luma]"); - mesc l("More powerful version of healing. Requires @@ each cast.", getitemlink(Lifestone)); - mes ""; - mesn; - mesq l("This useful skill will only require:"); - mesc l("@@/@@ @@", countitem(Lifestone), (getskilllv(AB_HIGHNESSHEAL)+1)*70, getitemlink(Lifestone)); - mesc l("@@/@@ @@", countitem(Root), (getskilllv(AB_HIGHNESSHEAL)+1)*10, getitemlink(Root)); - mesc l("@@/@@ @@", countitem(FrozenYetiTear),(getskilllv(AB_HIGHNESSHEAL)+1)*2, getitemlink(FrozenYetiTear)); - mesc l("@@/@@ @@", countitem(FluoPowder), (getskilllv(AB_HIGHNESSHEAL)+1)*1, getitemlink(FluoPowder)); - next; - if (askyesno() == ASK_YES) { - if ( - countitem(Lifestone) < (getskilllv(AB_HIGHNESSHEAL)+1)*70 || - countitem(Root) < (getskilllv(AB_HIGHNESSHEAL)+1)*10 || - countitem(FrozenYetiTear) < (getskilllv(AB_HIGHNESSHEAL)+1)*2 || - countitem(FluoPowder) < (getskilllv(AB_HIGHNESSHEAL)+1)*1) goto L_Missing; - - delitem Lifestone, (getskilllv(AB_HIGHNESSHEAL)+1)*70; - delitem Root, (getskilllv(AB_HIGHNESSHEAL)+1)*10; - delitem FrozenYetiTear, (getskilllv(AB_HIGHNESSHEAL)+1)*2; - delitem FluoPowder, (getskilllv(AB_HIGHNESSHEAL)+1)*1; - - sk_lvup(AB_HIGHNESSHEAL); - - next; - } - break; - case 7: - // All skills related may include the basic class skills if they're related. - mesc l("WARNING: If you leave the subclass, you'll lose all skills related to it!"), 1; - mesc l("This cannot be undone. Are you sure?"), 1; - mes ""; - if (askyesno() == ASK_YES) { - mes ""; - if (validatepin()) { - skill AL_HOLYLIGHT, 0, 0; - skill TF_DETOXIFY, 0, 0; - skill ALL_RESURRECTION, 0, 0; - skill MG_SRECOVERY, 0, 0; - skill PR_ASPERSIO, 0, 0; - MAGIC_SUBCLASS=MAGIC_SUBCLASS^CL_PRIEST; - mesc l("You abandoned the PRIEST class!"), 1; - close; - } else { - mesc l("Failed to validate pin. Aborting."); - next; - } - } else { - mes ""; - mesc l("Operation aborted. Phew!"); - next; - } - break; - default: - goto L_Close; - } - - goto L_Member; - -OnInit: - .@npcId = getnpcid(.name$); - //setunitdata(.@npcId, UDT_HEADTOP, WarlordHelmet); // TODO: wizard hat - setunitdata(.@npcId, UDT_HEADMIDDLE, SorcererRobe); - 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; -} - |