summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--npc/003-0/_import.txt4
-rw-r--r--npc/003-0/paladin.txt94
-rw-r--r--npc/functions/util.txt8
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;
+}