summaryrefslogtreecommitdiff
path: root/npc/craft
diff options
context:
space:
mode:
Diffstat (limited to 'npc/craft')
-rw-r--r--npc/craft/options.txt2
-rw-r--r--npc/craft/recipes.txt29
-rw-r--r--npc/craft/smith.txt14
3 files changed, 32 insertions, 13 deletions
diff --git a/npc/craft/options.txt b/npc/craft/options.txt
index 37e19e8be..c0ad5c8b7 100644
--- a/npc/craft/options.txt
+++ b/npc/craft/options.txt
@@ -708,7 +708,7 @@ function script csysGUI_OptReq {
case CRGROUP_BOSSATK:
return (getskilllv(TMW2_CRAFT) >= 4 &&
CRAFTSYS[CRGROUP_ATK] >= 3 &&
- CRAFTSYS[CRGROUP_HIT] >= 3 &&
+ CRAFTSYS[CRGROUP_ACC] >= 3 &&
CRAFTSYS[CRGROUP_BASE] >= 4);
case CRGROUP_FINAL:
return (getskilllv(TMW2_CRAFT) >= 5 &&
diff --git a/npc/craft/recipes.txt b/npc/craft/recipes.txt
index c8a3362ca..65409aee8 100644
--- a/npc/craft/recipes.txt
+++ b/npc/craft/recipes.txt
@@ -223,6 +223,19 @@ function readCrafting {
1, TinIngot,
20, Coal,
1, EverburnPowder);
+ // Reserved ID 63 and 64
+ // Halberd is really cheap as it doesn't uses Platinum/Iridium :P
+ showRecipe(CraftHalberd, Halberd,
+ 45, SilverIngot,
+ 5, TinIngot,
+ 34, Coal,
+ 1, EverburnPowder);
+ showRecipe(CraftImmortalSword, ImmortalSword,
+ 40, SilverIngot,
+ 2, PlatinumIngot,
+ 3, IridiumIngot,
+ 1, BlueManaPearl);
+
next;
// Archery Weapons: Always use Wood, Root and Carp.
mesc "----------"+l("Archery Weapon Recipes")+"----------", 2;
@@ -382,11 +395,12 @@ function script MakeBlueprint {
// Now you'll learn some recipe!
.@rcp=any_of(.@recipes);
if (RECIPES_ALCHEMY[.@rcp]) {
- dispbottom l("It was a recipe you already knew...");
+ .@mpot=rand2(900, 1000*.@rarity);
+ dispbottom l("It was a recipe you already knew... (+ @@ Mobpt)", .@mpot);
getexp (BaseLevel+JobLevel)*rand2(1,.@rarity), JobLevel+rand2(1,.@rarity);
// Give you some Monster Points to use with Intense Beard
// You do NOT need to be registered with Aidan for this.
- Mobpt+=rand2(900, 1000*.@rarity);
+ Mobpt+=.@mpot;
} else {
dispbottom l("Learned a new recipe!");
RECIPES_ALCHEMY[.@rcp]=true;
@@ -406,6 +420,7 @@ function script MakeBlueprint {
if (.@rarity & CRAFT_INTERMEDIARY) {
array_push(.@recipes, CraftBugSlayer);
array_push(.@recipes, CraftShortGladius);
+ array_push(.@recipes, CraftMiereCleaver);
array_push(.@recipes, CraftBladeShield);
array_push(.@recipes, CraftNoviceWand);
array_push(.@recipes, CraftForestBow);
@@ -415,7 +430,7 @@ function script MakeBlueprint {
array_push(.@recipes, CraftShortsword);
array_push(.@recipes, CraftBoneKnife);
array_push(.@recipes, CraftKitana);
- array_push(.@recipes, CraftMiereCleaver);
+ array_push(.@recipes, CraftBroadsword);
array_push(.@recipes, CraftPynRevolver);
array_push(.@recipes, CraftApprenticeWand);
array_push(.@recipes, CraftElficBow);
@@ -424,7 +439,7 @@ function script MakeBlueprint {
array_push(.@recipes, CraftGoldenRing);
array_push(.@recipes, CraftLongSword);
array_push(.@recipes, CraftRockKnife);
- array_push(.@recipes, CraftBroadsword);
+ array_push(.@recipes, CraftHalberd);
array_push(.@recipes, CraftPynRifle);
array_push(.@recipes, CraftPynGatling);
array_push(.@recipes, CraftLeaderWand);
@@ -432,6 +447,7 @@ function script MakeBlueprint {
}
if (.@rarity & CRAFT_MASTER) {
array_push(.@recipes, CraftDivineSword);
+ array_push(.@recipes, CraftImmortalSword);
array_push(.@recipes, CraftPynShotgun);
array_push(.@recipes, CraftLegendaryWand);
array_push(.@recipes, CraftBansheeBow);
@@ -440,11 +456,12 @@ function script MakeBlueprint {
// Now you'll learn some recipe!
.@rcp=any_of(.@recipes);
if (RECIPES_EQUIPMENT[.@rcp]) {
- dispbottom l("It was a recipe you already knew...");
+ .@mpot=rand2(900, 1000*.@rarity);
+ dispbottom l("It was a recipe you already knew... (+ @@ Mobpt)", .@mpot);
getexp (BaseLevel+JobLevel)*rand2(1,.@rarity), JobLevel+rand2(1,.@rarity);
// Give you some Monster Points to use with Intense Beard
// You do NOT need to be registered with Aidan for this.
- Mobpt+=rand2(900, 1000*.@rarity);
+ Mobpt+=.@mpot;
} else {
dispbottom l("Learned a new recipe!");
RECIPES_EQUIPMENT[.@rcp]=true;
diff --git a/npc/craft/smith.txt b/npc/craft/smith.txt
index 87dc9d55d..fa866f7eb 100644
--- a/npc/craft/smith.txt
+++ b/npc/craft/smith.txt
@@ -17,15 +17,14 @@
// Usage: SmithSystem ({scope})
// Scopes: CRAFT_NPC, CRAFT_PLAYER, CRAFT_GUILD
-// If an invalid scope is passed, .knowledge won't be set but will be required
+// CRAFT_NPC - Unlocks all recipes
+// CRAFT_PLAYER - Normal behavior
+// CRAFT_GUILD - Items created will be Guild-bound
// Returns true on success, false on failure
function script SmithSystem {
// Set .scope, .knowledge and .success
.scope=getarg(0, CRAFT_PLAYER);
- if (.scope == CRAFT_PLAYER)
- copyarray(.knowledge,RECIPES_EQUIPMENT,getarraysize(RECIPES_EQUIPMENT));
- else if (.scope == CRAFT_GUILD)
- copyarray(.knowledge,$@RECIPES_EQUIPMENT[getcharid(2)],getarraysize($@RECIPES_EQUIPMENT[getcharid(2)]));
+ copyarray(.knowledge,RECIPES_EQUIPMENT,getarraysize(RECIPES_EQUIPMENT));
.success=false;
setskin "craft4";
@@ -49,7 +48,10 @@ function script SmithSystem {
// Mark the crafting in your score book (except dagger)
if (.@it != Dagger)
CRAFTING_SCORE+=1;
- getnameditem(.@it, strcharinfo(0));
+ if (.scope == CRAFT_GUILD)
+ getitembound(.@it, 1, 2); // Create a guild-bound item
+ else
+ getnameditem(.@it, strcharinfo(0));
if (getskilllv(TMW2_CRAFT)) {
delinventorylist(); // Needed, because we'll rely on rfind()
getinventorylist();