summaryrefslogtreecommitdiff
path: root/npc/003-0/tanker.txt
diff options
context:
space:
mode:
authorJesusaves <cpntb1@ymail.com>2018-07-16 00:44:33 -0300
committerJesusaves <cpntb1@ymail.com>2018-07-16 00:44:33 -0300
commit4bcdc6f58fee39e968dc0864c8c25057aa4b943d (patch)
tree6b7a67be963fb3dd2356cf35fbba9b2d058c089f /npc/003-0/tanker.txt
parent66db149de62000a8ac7d6b0fb0594659962f171e (diff)
downloadserverdata-4bcdc6f58fee39e968dc0864c8c25057aa4b943d.tar.gz
serverdata-4bcdc6f58fee39e968dc0864c8c25057aa4b943d.tar.bz2
serverdata-4bcdc6f58fee39e968dc0864c8c25057aa4b943d.tar.xz
serverdata-4bcdc6f58fee39e968dc0864c8c25057aa4b943d.zip
Tanker & Auldsbel Prototype.
Diffstat (limited to 'npc/003-0/tanker.txt')
-rw-r--r--npc/003-0/tanker.txt190
1 files changed, 190 insertions, 0 deletions
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;
+}
+