--[[ Script Name : SpawnScripts/Generic/GenericCraftingTrainer.lua Script Purpose : Script Author : theFoof (SendSecondaryChoice() by Jabantiz) Script Date : 2013.10.20 Script Notes : This script handles crafting trainers --]] local artisan_ess_1 = 31371 local artisan_ess_2 = 31373 local ARTISAN = 1 local CRAFTSMAN = 2 local PROVISIONER = 3 local WOODWORKER = 4 local CARPENTER = 5 local OUTFITTER = 6 local ARMORER = 7 local WEAPONSMITH = 8 local TAILOR = 9 local SCHOLAR = 10 local JEWELER = 11 local SAGE = 12 local ALCHEMIST = 13 function spawn(NPC) end function respawn(NPC) spawn(NPC) end function hailed(NPC, Spawn) CraftingTrainerHail(NPC, Spawn) end function CraftingTrainerHail(NPC, Spawn) FaceTarget(NPC, Spawn) conversation = CreateConversation() if GetTradeskillLevel(Spawn) < 9 then if not HasBooks(Spawn) or GetTradeskillLevel(Spawn) < 2 then AddConversationOption(conversation, "Yes, please teach me.", "GiveBooks") AddConversationOption(conversation, "No, not at the moment.", "Chat1") StartConversation(conversation, NPC, Spawn, "You show interest in the crafting trade. Good. We can always use talented artisans. I can help you get started. Would you be interested?") else Chat2(NPC, Spawn) end elseif GetTradeskillLevel(Spawn) == 9 then Chat4(NPC, Spawn) elseif GetTradeskillLevel(Spawn) == 19 then Chat5(NPC, Spawn) elseif GetTradeskillLevel(Spawn) < 20 then Chat2(NPC, Spawn) else PlayFlavor(NPC, "", "You have learned everything I have to teach. You are free to use our crafting facilities to hone your skills and master your craft.", "hello", 0, 0, Spawn) end end function HasBooks(Spawn) local has_books = true --check if the player has certain recipe books if not HasRecipeBook(Spawn, artisan_ess_1) and not HasItem(Spawn, artisan_ess_1, 1) then has_books = false end if not HasRecipeBook(Spawn, artisan_ess_2) and not HasItem(Spawn, artisan_ess_2, 1) then has_books = false end return has_books end function GiveBooks(NPC, Spawn) --give recipe books if not scribed and does not have if not HasRecipeBook(Spawn, artisan_ess_1) and not HasItem(Spawn, artisan_ess_1, 1) then SummonItem(Spawn, artisan_ess_1, 1) end if not HasRecipeBook(Spawn, artisan_ess_2) and not HasItem(Spawn, artisan_ess_2, 1) then SummonItem(Spawn, artisan_ess_2, 1) end if GetTradeskillLevel(Spawn) < 2 then SetTradeskillClass(Spawn, ARTISAN) SetTradeskillLevel(Spawn, 2) end Chat3(NPC, Spawn) end function Chat1(NPC, Spawn) PlayFlavor(NPC, "", "Oh, well feel free to come back later whenever you'd like.", "", 1689589577, 4560189, Spawn) end function Chat2(NPC, Spawn) PlayFlavor(NPC, "", "I have nothing else to teach you for the moment. Please return to me when you have earned enough experience to choose your profession.", "", 1689589577, 4560189, Spawn) end function Chat3(NPC, Spawn) FaceTarget(NPC, Spawn) conversation = CreateConversation() AddConversationOption(conversation, "I will start on that now.") StartConversation(conversation, NPC, Spawn, "There, you now have knowledge required to begin crafting. Speak to the Tradeskill Tutor for more detailed guidance on learning to craft, if you are interested in more information. Return to me when you are ready to select a crafting specialty.") end function Chat4(NPC, Spawn) FaceTarget(NPC, Spawn) conversation = CreateConversation() AddConversationOption(conversation, "My name is " .. GetName(Spawn) ..".", "SendSecondaryChoice") AddConversationOption(conversation, "No thank you, I'll come back later.") StartConversation(conversation, NPC, Spawn, "I'm glad you have come back for more training, it looks like you've learned quite a bit in a very short time. I can certify you in your chosen trade class. Before I begin your paperwork, I'll need your name.") end function Chat5(NPC, Spawn) FaceTarget(NPC, Spawn) conversation = CreateConversation() AddConversationOption(conversation, "My name is " .. GetName(Spawn) .. ".", "Send" .. GetTradeskillClassName(Spawn) .. "Choice") StartConversation(conversation, NPC, Spawn, "I'm glad that you continued on as a " .. GetTradeskillClassName(Spawn) .. " and came back to advance your skills. I can certify you in your chosen trade specialty. I need your name before I can start your paperwork.") end function SendSecondaryChoice(NPC, Spawn) window = CreateOptionWindow() AddOptionWindowOption(window, "Craftsman", "Craftsmen become carpenters, provisioners, or woodworkers. They make furniture and strong boxes, food, drink, bows, arrows, totems, wooden weapons, and wooden shields.", 1, 420, "select_craftsman") AddOptionWindowOption(window, "Outfitter", "Outfitters become armorers, tailors, or weaponsmiths. They make plate and chainmail armor, heavy shields, cloth and leather armor, casual clothing, backpacks, hex dolls, and metal weapons.", 1, 411, "select_outfitter") AddOptionWindowOption(window, "Scholar", "Scholars become alchemists, jewelers, and sages. They make spell and combat art upgrades for adventurers, potions, poisons, and jewelry.", 1, 396, "select_scholar") SendOptionWindow(window, Spawn, "Select A Profession") end function select_craftsman(NPC, Spawn) SetTradeskillClass(Spawn, CRAFTSMAN) SetTradeskillLevel(Spawn, 10) end function select_outfitter(NPC, Spawn) SetTradeskillClass(Spawn, OUTFITTER) SetTradeskillLevel(Spawn, 10) end function select_scholar(NPC, Spawn) SetTradeskillClass(Spawn, SCHOLAR) SetTradeskillLevel(Spawn, 10) end function SendOutfitterChoice(NPC, Spawn) window = CreateOptionWindow() AddOptionWindowOption(window, "Armorer", "Armorers are skilled at creating plate and chainmail armor.", 2, 40, "select_armorer") AddOptionWindowOption(window, "Weaponsmith", "Weaponsmiths specialize in making metal weapons of all damage types.", 2, 41, "select_weaponsmith") AddOptionWindowOption(window, "Tailor", "Tailors make cloth and leather armor, casual clothing, backpacks, hex dolls, and ammo holders.", 2, 42, "select_tailor") SendOptionWindow(window, Spawn, "Select A Class") end function select_armorer(NPC, Spawn) SetTradeskillClass(Spawn, ARMORER) SetTradeskillLevel(Spawn, 20) end function select_weaponsmith(NPC, Spawn) SetTradeskillClass(Spawn, WEAPONSMITH) SetTradeskillLevel(Spawn, 20) end function select_tailor(NPC, Spawn) SetTradeskillClass(Spawn, TAILOR) SetTradeskillLevel(Spawn, 20) end function SendScholarChoice(NPC, Spawn) local window = CreateOptionWindow() AddOptionWindowOption(window, "Sage", "Sages specialize in making spell upgrade scrolls for mages and priests.", 2, 37, "select_sage") AddOptionWindowOption(window, "Alchemist", "Alchemists make fighter combat art upgrades, potions, and poisons.", 2, 38, "select_alchemist") AddOptionWindowOption(window, "Jeweler", "Jewelers make upgrades for scout combat arts, as well as jewelery such as rings, earrings, necklaces, bracelets, and belts.", 2, 39, "select_jeweler") SendOptionWindow(window, Spawn, "Select A Class") end function select_sage(NPC, Spawn) SetTradeskillClass(Spawn, SAGE) SetTradeskillLevel(Spawn, 20) end function select_alchemist(NPC, Spawn) SetTradeskillClass(Spawn, ALCHEMIST) SetTradeskillLevel(Spawn, 20) end function select_jeweler(NPC, Spawn) SetTradeskillClass(Spawn, JEWELER) SetTradeskillLevel(Spawn, 20) end function SendCraftsmanChoice(NPC, Spawn) local window = CreateOptionWindow() AddOptionWindowOption(window, "Carpenter", "Carpenters make furniture of all types, strong boxes, and a variety of sales crates.", 2, 44, "select_carpenter") AddOptionWindowOption(window, "Provisioner", "Provisioners make food and drink that will regenerate health and power faster between battles.", 2, 43, "select_provisioner") AddOptionWindowOption(window, "Woodworker", "Woodworkers make wooden weapons, totems, bows, arrows, and wooden shields.", 2, 45, "select_woodworker") SendOptionWindow(window, Spawn, "Select A Class") end function select_carpenter(NPC, Spawn) SetTradeskillClass(Spawn, CARPENTER) SetTradeskillLevel(Spawn, 20) end function select_provisioner(NPC, Spawn) SetTradeskillClass(Spawn, PROVISIONER) SetTradeskillLevel(Spawn, 20) end function select_woodworker(NPC, Spawn) SetTradeskillClass(Spawn, WOODWORKER) SetTradeskillLevel(Spawn, 20) end