summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--npc/003-0/audsbel.txt29
-rw-r--r--npc/003-0/tanker.txt190
2 files changed, 218 insertions, 1 deletions
diff --git a/npc/003-0/audsbel.txt b/npc/003-0/audsbel.txt
index ca5edecbb..3568a12c7 100644
--- a/npc/003-0/audsbel.txt
+++ b/npc/003-0/audsbel.txt
@@ -3,13 +3,40 @@
// Jesusalva
// Description:
// One of the Mana Magic Leaders
+// Planned, there are only Auldsbel and Sagratha as Mana Wizards.
+
// Gives #parum
-003-0,34,37,0 script Audsbel NPC_AULDSBEL,{
+003-0,34,37,0 script Auldsbel NPC_AULDSBEL,{
+ if (MAGIC_LVL < 2)
+ goto L_Cheat;
+ mesn l("Auldsbel the Wizard");
+ mesq l("Welcome back, Padric!");
+ mesq l("Do you believe I've lost my @@? I can't see anything well without that! %%a", getitemlink(Googles));
+ next;
+ mesn l("Auldsbel the Wizard");
+ mesq l("Anyway, I am one of the few Mana Wizard, and I love Transmutation!");
+ next;
+ select
+ l("What's the difference from a Mana Wizard and a Mage?"),
+ l("Where are you from?"),
+ l("Do you still need help with your experiments?"),
+ l("Can you teach me Mana Magic?"),
+ l("What do you know about Sagratha?"),
+ l("Actually, I gotta go, see ya!");
+
goodbye;
closedialog;
close;
+L_Cheat:
+ atcommand "@jail "+strcharinfo(0);
+ setparam(MaxHp, readparam(MaxHp)/2); // testing
+ setparam(Karma, -1); // testing
+ setparam(Manner, -10); // testing
+ dispbottom l("You are not allowed on this building, and was caught by Jesusalva's Police!!");
+ end;
+
OnInit:
.sex=G_MALE;
.distance=5;
diff --git a/npc/003-0/tanker.txt b/npc/003-0/tanker.txt
new file mode 100644
index 000000000..cf0e29807
--- /dev/null
+++ b/npc/003-0/tanker.txt
@@ -0,0 +1,190 @@
+// TMW2 scripts.
+// Authors:
+// Jesusalva
+// Description:
+// Leader of the TANKER class
+
+003-0,38,41,2 script Tanker Master NPC_PLAYER,{
+ if (!is_staff())
+ goto L_Close;
+ if (!(MAGIC_SUBCLASS & CL_TANKER))
+ 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 Tanker 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_TANKER;
+ mesn;
+ mesq l("Welcome to the tanker 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
+// Tanker
+// CR_TRUST (raise Max HP in 200 and Holy Resistance in 5%, passive)
+// CR_AUTOGUARD (5% chance to complety block attack. Freeze you for a while. Req. Shield. Last 5m.)
+// CR_DEFENDER (less damage from ranged attacks, but lowers move & attack speed. Req. Shield) - max lv 4 plz. Last 3m.
+// SM_RECOVERY (insignificant HP recovery every 10s without moving. Better with higher level.) - low mp cost
+
+L_Member:
+ mesn;
+ mesq l("Hey there! Do you want to learn new skills for a very small teaching fee?");
+ select
+ rif(sk_intcost(CR_TRUST) && !getskilllv(CR_TRUST), l("Learn Last Standing Man")),
+ rif(sk_intcost(CR_AUTOGUARD) && sk_canlvup(CR_AUTOGUARD), l("Improve Guard")),
+ rif(sk_intcost(CR_DEFENDER) && sk_canlvup(CR_DEFENDER), l("Improve Arrow Shield")),
+ rif(sk_intcost(SM_RECOVERY) && sk_canlvup(SM_RECOVERY), l("Improve Standing HP Regen")),
+ l("Nothing at the moment.");
+ mes "";
+ switch (@menu) {
+ case 1:
+ mesn;
+ mesq l("This useful skill will only require:");
+ mesc l("@@/@@ @@", countitem(Cheese), (getskilllv(CR_TRUST)+1)*50, getitemlink(Cheese));
+ mesc l("@@/@@ @@", countitem(Coral), (getskilllv(CR_TRUST)+1)*30, getitemlink(Coral));
+ mesc l("@@/@@ @@", countitem(PiberriesInfusion), (getskilllv(CR_TRUST)+1)*20, getitemlink(PiberriesInfusion));
+ mesc l("@@/@@ @@", countitem(FluoPowder), (getskilllv(CR_TRUST)+1)*15, getitemlink(FluoPowder));
+ mesc l("@@/@@ @@", countitem(HastePotion), (getskilllv(CR_TRUST)+1)*10, getitemlink(HastePotion));
+ mesc l("@@/@@ @@", countitem(DiamondPowder), (getskilllv(CR_TRUST)+1)*3, getitemlink(DiamondPowder));
+ mesc l("@@/@@ @@", countitem(GrassCarp), (getskilllv(CR_TRUST)+1)*1, getitemlink(GrassCarp));
+ mesc l("@@/@@ @@", countitem(ElixirOfLife), (getskilllv(CR_TRUST)+1)*1, getitemlink(ElixirOfLife));
+ next;
+ if (askyesno() == ASK_YES) {
+ if (
+ countitem(Cheese) < (getskilllv(CR_TRUST)+1)*50 ||
+ countitem(Coral) < (getskilllv(CR_TRUST)+1)*30 ||
+ countitem(PiberriesInfusion) < (getskilllv(CR_TRUST)+1)*20 ||
+ countitem(FluoPowder) < (getskilllv(CR_TRUST)+1)*15 ||
+ countitem(HastePotion) < (getskilllv(CR_TRUST)+1)*10 ||
+ countitem(DiamondPowder) < (getskilllv(CR_TRUST)+1)*3 ||
+ countitem(GrassCarp) < (getskilllv(CR_TRUST)+1)*1 ||
+ countitem(ElixirOfLife) < (getskilllv(CR_TRUST)+1)*1) goto L_Missing;
+
+ delitem Cheese, (getskilllv(CR_TRUST)+1)*50;
+ delitem Coral, (getskilllv(CR_TRUST)+1)*30;
+ delitem PiberriesInfusion, (getskilllv(CR_TRUST)+1)*20;
+ delitem FluoPowder, (getskilllv(CR_TRUST)+1)*15;
+ delitem HastePotion, (getskilllv(CR_TRUST)+1)*10;
+ delitem DiamondPowder, (getskilllv(CR_TRUST)+1)*3;
+ delitem GrassCarp, (getskilllv(CR_TRUST)+1)*1;
+ delitem ElixirOfLife, (getskilllv(CR_TRUST)+1)*1;
+
+ sk_lvup(CR_TRUST);
+
+ next;
+ }
+ break;
+ case 2:
+ // TODO: Requirem, quest, agree
+ sk_lvup(CR_AUTOGUARD);
+ break;
+ case 3:
+ // TODO: Requirem, quest, agree
+ sk_lvup(CR_DEFENDER);
+ break;
+ case 4:
+ // TODO: Requirem, quest, agree
+ sk_lvup(SM_RECOVERY);
+ break;
+ /*
+ case 1:
+ mesn;
+ mesq l("This useful skill will only require:");
+ mesc l("@@/@@ @@", countitem(ManaPiouFeathers), (getskilllv(SM_BASH)+1)*15, getitemlink(ManaPiouFeathers));
+ mesc l("@@/@@ @@", countitem(CaveSnakeSkin), (getskilllv(SM_BASH)+1)*4, getitemlink(CaveSnakeSkin));
+ mesc l("@@/@@ @@", countitem(RubyPowder), (getskilllv(SM_BASH)+1)*2, getitemlink(RubyPowder));
+ mesc l("@@/@@ @@", countitem(StrengthPotion), (getskilllv(SM_BASH)+1)*2, getitemlink(StrengthPotion));
+ next;
+ if (askyesno() == ASK_YES) {
+ if (
+ countitem(ManaPiouFeathers) < (getskilllv(SM_BASH)+1)*15 ||
+ countitem(CaveSnakeSkin) < (getskilllv(SM_BASH)+1)*4 ||
+ countitem(RubyPowder) < (getskilllv(SM_BASH)+1)*2 ||
+ countitem(StrengthPotion) < (getskilllv(SM_BASH)+1)*2) goto L_Missing;
+
+ delitem PiberriesInfusion, (getskilllv(SM_BASH)+1)*15;
+ delitem BlackMambaEgg, (getskilllv(SM_BASH)+1)*4;
+ delitem MoubooSteak, (getskilllv(SM_BASH)+1)*2;
+ delitem IronIngot, (getskilllv(SM_BASH)+1)*2;
+
+ sk_lvup(SM_BASH);
+
+ next;
+ }
+ break;
+ case 2:
+ mesn;
+ mesq l("This useful skill will only require:");
+ mesc l("@@/@@ @@", countitem(PiberriesInfusion), (getskilllv(AL_ANGELUS)+1)*10, getitemlink(PiberriesInfusion));
+ mesc l("@@/@@ @@", countitem(BlackMambaEgg), (getskilllv(AL_ANGELUS)+1)*2, getitemlink(BlackMambaEgg));
+ mesc l("@@/@@ @@", countitem(MoubooSteak), (getskilllv(AL_ANGELUS)+1)*4, getitemlink(MoubooSteak));
+ mesc l("@@/@@ @@", countitem(IronIngot), (getskilllv(AL_ANGELUS)+1)*1, getitemlink(IronIngot));
+ next;
+ if (askyesno() == ASK_YES) {
+ if (
+ countitem(PiberriesInfusion) < (getskilllv(AL_ANGELUS)+1)*10 ||
+ countitem(BlackMambaEgg) < (getskilllv(AL_ANGELUS)+1)*2 ||
+ countitem(MoubooSteak) < (getskilllv(AL_ANGELUS)+1)*4 ||
+ countitem(IronIngot) < (getskilllv(AL_ANGELUS)+1)*1) goto L_Missing;
+
+ delitem PiberriesInfusion, (getskilllv(AL_ANGELUS)+1)*10;
+ delitem BlackMambaEgg, (getskilllv(AL_ANGELUS)+1)*2;
+ delitem MoubooSteak, (getskilllv(AL_ANGELUS)+1)*4;
+ delitem IronIngot, (getskilllv(AL_ANGELUS)+1)*1;
+
+ sk_lvup(AL_ANGELUS);
+
+ next;
+ }
+ break;
+ case 3:
+ // TODO: Requirem, quest, agree
+ sk_lvup(MER_INCAGI);
+ break;
+ case 4:
+ // TODO: Requirem, quest, agree
+ sk_lvup(PR_REDEMPTIO);
+ 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, SteelShield);
+ setunitdata(.@npcId, UDT_WEAPON, JeansChaps);
+ setunitdata(.@npcId, UDT_HAIRSTYLE, 2);
+ setunitdata(.@npcId, UDT_HAIRCOLOR, 4);
+
+ .sex=G_MALE;
+ .distance=5;
+ end;
+}
+