// 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) < 1+(degree_subclass()/2), 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) && !getskilllv(SM_RECOVERY), l("Learn 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:
mesn;
mesq l("This useful skill will only require:");
mesc l("@@/@@ @@", countitem(PiberriesInfusion), (getskilllv(SM_RECOVERY)+1)*10, getitemlink(PiberriesInfusion));
mesc l("@@/@@ @@", countitem(BlackMambaEgg), (getskilllv(SM_RECOVERY)+1)*6, getitemlink(BlackMambaEgg));
mesc l("@@/@@ @@", countitem(MoubooSteak), (getskilllv(SM_RECOVERY)+1)*4, getitemlink(MoubooSteak));
mesc l("@@/@@ @@", countitem(TonoriDelight), (getskilllv(SM_RECOVERY)+1)*8, getitemlink(TonoriDelight));
next;
if (askyesno() == ASK_YES) {
if (
countitem(PiberriesInfusion) < (getskilllv(SM_RECOVERY)+1)*10 ||
countitem(BlackMambaEgg) < (getskilllv(SM_RECOVERY)+1)*6 ||
countitem(MoubooSteak) < (getskilllv(SM_RECOVERY)+1)*4 ||
countitem(TonoriDelight) < (getskilllv(SM_RECOVERY)+1)*8) goto L_Missing;
delitem PiberriesInfusion, (getskilllv(SM_RECOVERY)+1)*10;
delitem BlackMambaEgg, (getskilllv(SM_RECOVERY)+1)*6;
delitem MoubooSteak, (getskilllv(SM_RECOVERY)+1)*4;
delitem TonoriDelight, (getskilllv(SM_RECOVERY)+1)*8;
sk_lvup(SM_RECOVERY);
mesc l("This skill can be further improved with Job Points");
next;
}
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;
}