// TMW2 scripts. // Authors: // Jesusalva // Description: // Craftmaster, teaches player TMW2_CRAFT 024-16,27,42,0 script Dwarf Craftsmaster NPC_DWARF_CRAFTMASTER,{ function calcRequisites; function calcPrices; function calcUpgrade; if (.@q < 13) { hello; end; } mesn; mesq lg("Look what we have here, it is a girl!", "Look what we have here, it is a boy!"); next; mesn; mesq l("I'm Thurgar the mighty craftsman. I can make anything reality! But I only work to the king!"); next; mesn; mesq l("...Unless, of course, if you're interested in learning this art. You'll not regret it, I assure you."); next; // Main Loop mesc l("Crafting Skill Level: @@", getskilllv(TMW2_CRAFT)); mesc l("Completed Crafts: @@/@@", CRAFTING_SCORE, calcRequisites()); mesc l("Money: @@ GP", format_number(Zeny)), 3; mes ""; select rif(!CRAFTING_SCORE, l("How can I complete a craft?")), rif(CRAFTING_SCORE >= calcRequisites(), l("Learn crafting for @@ GP", format_number(calcPrices())) ), l("Nothing for now, thanks."); mes ""; switch (@menu) { case 1: mesn; mesq l("I dunno."); break; case 2: if (calcUpgrade()) { mesn; mesq l("There you go. Craft hard, mwhahahahaha!"); } else { mesn; mesq l("You don't have met all requisites, like money and successful crafts, or you already reached the maximum level for this skill."); } break; } close; // Calc successful crafts required to learn crafting // Returns amount of crafts needed function calcRequisites { switch (getskilllv(TMW2_CRAFT)) { case 0: return 1; case 1: return 3; case 2: return 7; case 3: return 12; case 4: return 18; case 5: return 24; case 6: return 32; } return -1; } // Calc how much GP the skill will cost you // Returns amount of GP function calcPrices { switch (getskilllv(TMW2_CRAFT)) { case 0: return 1000; case 1: return 5000; case 2: return 9000; case 3: return 15000; case 4: return 27000; case 5: return 36000; case 6: return 50000; } return false; } // calcUpgrade() returns true if skill // can be leveled up. And levels it up. function calcUpgrade { .@gp=calcPrices(); .@cf=calcRequisites(); if (Zeny < .@gp) return false; if (CRAFTING_SCORE < .@cf) return false; if (.@cf < 0) return false; Zeny-=.@gp; skill TMW2_CRAFT, getskilllv(TMW2_CRAFT)+1, 0; return true; } OnInit: .distance=5; end; }