eq2emu-content/SpawnScripts/Generic/GenericCraftingTrainer.lua
2024-10-26 11:37:28 +00:00

212 lines
No EOL
8.3 KiB
Lua
Executable file

--[[
Script Name : SpawnScripts/Generic/GenericCraftingTrainer.lua
Script Purpose : <Crafting Trainer>
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