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

341 lines
No EOL
15 KiB
Lua
Executable file

--[[
Script Name : SpawnScripts/Commonlands/VentarTKal.lua
Script Author : Premierio015
Script Date : 2021.03.21 01:03:05
Script Purpose :
:
--]]
local QUEST = 407 -- Ventar T'Kal quest
local QUEST2 = 408 -- Orcs of the Ree quest
local QUEST3 = 409 -- An Aquisition quest
local QUEST4 = 410 -- Gifts from the Earth quest
local QUEST5 = 411 -- The Skeleton Key quest
local QUEST6 = 412 -- Returning to Captain Feralis quest
function spawn(NPC)
SetPlayerProximityFunction(NPC, 10, "InRange")
end
function InRange(NPC, Spawn)
if GetDeity(Spawn) ~= 1 then
if HasCompletedQuest(Spawn, QUEST) then
ProvidesQuest(NPC, QUEST2)
elseif HasCompletedQuest(Spawn, QUEST2) then
ProvidesQuest(NPC, QUEST3)
elseif HasCompletedQuest(Spawn, QUEST3) then
ProvidesQuest(NPC, QUEST4)
elseif HasCompletedQuest(Spawn, QUEST4) then
ProvidesQuest(NPC, QUEST5)
elseif HasCompletedQuest(Spawn, QUEST5) then
ProvidesQuest(NPC, QUEST6)
end
end
end
function spawn(NPC)
end
function hailed(NPC, Spawn)
FaceTarget(NPC, Spawn)
if GetDeity(Spawn) ~= 1 then
PlayFlavor(NPC, "voiceover/english/voice_emotes/greetings/greetings_2_1048.mp3", "", "", 0, 0, Spawn)
if not HasQuest(Spawn, QUEST) and not HasCompletedQuest(Spawn, QUEST) or HasQuest(Spawn, QUEST6) or HasCompletedQuest(Spawn, QUEST6) then
local choice = MakeRandomInt(1, 2)
if choice == 1 then
PlayFlavor(NPC, "", "Overlord protect us!", "", 1689589577, 4560189, Spawn)
else
PlayFlavor(NPC, "", "These nomads can be quite pleasant to deal with.", "", 1689589577, 4560189, Spawn)
end
end
if HasQuest(Spawn, QUEST) and HasItem(Spawn, 14661) or HasCompletedQuest(Spawn, QUEST) and HasItem(Spawn, 14661) and not HasQuest(Spawn, QUEST2) and not HasCompletedQuest(Spawn, QUEST2) and not HasQuest(Spawn, QUEST3) and not HasCompletedQuest(Spawn, QUEST3) and not HasQuest(Spawn, QUEST4) and not HasCompletedQuest(Spawn, QUEST4) then
local conversation = CreateConversation()
AddConversationOption(conversation, "Yes. I have these roots for you.", "Option1")
StartConversation(conversation, NPC, Spawn, "Are you "..GetName(Spawn).."?")
elseif GetQuestStep(Spawn, QUEST2) == 1 or GetQuestStep(Spawn, QUEST2) == 2 then
QUEST2_PROGRESS(NPC, Spawn)
elseif GetQuestStep(Spawn, QUEST2) == 3 then
QUEST2_FINISH(NPC, Spawn)
elseif HasCompletedQuest(Spawn, QUEST2) and not HasQuest(Spawn, QUEST3) and not HasCompletedQuest(Spawn, QUEST3) then
Option6(NPC, Spawn)
elseif GetQuestStep(Spawn, QUEST3) == 1 or GetQuestStep(Spawn, QUEST3) == 2 then
QUEST3_PROGRESS(NPC, Spawn)
elseif GetQuestStep(Spawn, QUEST3) == 3 then
QUEST3_FINISH(NPC, Spawn)
elseif HasCompletedQuest(Spawn, QUEST2) and not HasQuest(Spawn, QUEST3) and HasCompletedQuest(Spawn, QUEST3) and not HasQuest(Spawn, QUEST4) and not HasCompletedQuest(Spawn, QUEST4) then
Option11(NPC, Spawn)
elseif GetQuestStep(Spawn, QUEST4) == 1 or GetQuestStep(Spawn, QUEST4) == 2 then
QUEST4_PROGRESS(NPC, Spawn)
elseif GetQuestStep(Spawn, QUEST4) == 3 then
QUEST4_FINISH(NPC, Spawn)
elseif HasCompletedQuest(Spawn, QUEST2) and not HasQuest(Spawn, QUEST3) and HasCompletedQuest(Spawn, QUEST3) and HasCompletedQuest(Spawn, QUEST4) and not HasQuest(Spawn, QUEST5) and not HasCompletedQuest(Spawn, QUEST5) then
Option13(NPC, Spawn)
elseif GetQuestStep(Spawn, QUEST5) == 1 or GetQuestStep(Spawn, QUEST5) == 2 or GetQuestStep(Spawn, QUEST5) == 3 or GetQuestStep(Spawn, QUEST5) == 4 or GetQuestStep(Spawn, QUEST5) == 5 then
QUEST5_PROGRESS(NPC, Spawn)
elseif GetQuestStep(Spawn, QUEST5) == 6 or HasCompletedQuest(Spawn, QUEST5) and not HasCompletedQuest(Spawn, QUEST6) and not HasQuest(Spawn, QUEST6) then
QUEST5_FINISH(NPC, Spawn)
end
elseif GetDeity(Spawn) == 1 then
PlayFlavor(NPC, "voiceover/english/voice_emotes/greetings/greetings_2_1048.mp3", "Don't talk to me", 0, 0, Spawn)
end
end
function Option1(NPC, Spawn)
if GetQuestStep(Spawn, QUEST) == 1 then
SetStepComplete(Spawn, QUEST, 1)
end
FaceTarget(NPC, Spawn)
local conversation = CreateConversation()
AddConversationOption(conversation, "With what?", "Option2")
StartConversation(conversation, NPC, Spawn, "Good, good. That means Feralis thinks you're able to help me.")
end
function Option2(NPC, Spawn)
FaceTarget(NPC, Spawn)
local conversation = CreateConversation()
AddConversationOption(conversation, "Living and dead?", "Option3")
StartConversation(conversation, NPC, Spawn, "The orcs of Ree, living and dead alike.")
end
function Option3(NPC, Spawn)
FaceTarget(NPC, Spawn)
local conversation = CreateConversation()
AddConversationOption(conversation, "What do you need me to do?", "Option4")
StartConversation(conversation, NPC, Spawn, "I don't know the specifics, but the orcs of Ree inhabit this land and so do their skeletons. Only recently, however, have the living emerged from the Wailing Caves. They are becoming bolder.")
end
function Option4(NPC, Spawn)
FaceTarget(NPC, Spawn)
local conversation = CreateConversation()
AddConversationOption(conversation, "What is your intent?", "Option5")
StartConversation(conversation, NPC, Spawn, "Poison them. When I heard of Rainus' roots I smelled an opportunity.")
end
function Option5(NPC, Spawn)
FaceTarget(NPC, Spawn)
local conversation = CreateConversation()
AddConversationOption(conversation, "I can do this.", "offer")
StartConversation(conversation, NPC, Spawn, "My intent is to get you to do work for me while I continue dealing with these nomads. What do I intend you to do on my behalf? I'd like you to travel west of here with the root, they have an encampment there. When you reach the orcs, place it near them. Let them consume it. From there I'm sure nature will take its course.")
end
function Option6(NPC, Spawn)
FaceTarget(NPC, Spawn)
local conversation = CreateConversation()
AddConversationOption(conversation, "What do you mean?", "Option7")
StartConversation(conversation, NPC, Spawn, "Interesting, quite interesting. I may have been wrong on their intentions.")
end
function Option7(NPC, Spawn)
FaceTarget(NPC, Spawn)
local conversation = CreateConversation()
AddConversationOption(conversation, "Why are they here?", "Option8")
StartConversation(conversation, NPC, Spawn, "I had thought the Ree orcs to be attempting to expand outward from the Wailing Caves. That may still be their intent, but this specific group of orcs is not here for that reason.")
end
function Option8(NPC, Spawn)
FaceTarget(NPC, Spawn)
local conversation = CreateConversation()
AddConversationOption(conversation, "What's in the box?", "Option9")
StartConversation(conversation, NPC, Spawn, "Treasure hunting. Their orders are to seek out some sort of ancient Shin'Ree box. It appears one of their agents already had it in his possession. He buried it for safe keeping but was slain. However, it would seem he expected death and had word delivered to his people, though he didn't mention its exact location.")
end
function Option9(NPC, Spawn)
FaceTarget(NPC, Spawn)
local conversation = CreateConversation()
AddConversationOption(conversation, "How can we get it?", "Option10")
StartConversation(conversation, NPC, Spawn, "They list it simply as \"useful.\" I don't know what that means to the orcs specifically, but I would prefer they didn't have it. The orders mention a shipment landing at the Blackshield Docks. I imagine the shipment will lead us to this package before the orcs...")
end
function Option10(NPC, Spawn)
FaceTarget(NPC, Spawn)
local conversation = CreateConversation()
AddConversationOption(conversation, "I will find him.", "offer2")
StartConversation(conversation, NPC, Spawn, "Two ways, both involving the orc courier. I am not sure precisely how old these orders are, but the sooner we act the better. Find the runner of Ree. If he is on his way to the docks then kill him and take the shipping receipt. Use it to get the package from the docks. If you catch the runner on the way from the docks then he will have the shipment, in which case you can take it directly from him. He'll be somewhere between the Ree camp west of here and the docks.")
end
function Option11(NPC, Spawn)
if GetQuestStep(Spawn, QUEST3) == 3 then
SetStepComplete(Spawn, QUEST3, 3)
end
FaceTarget(NPC, Spawn)
local conversation = CreateConversation()
AddConversationOption(conversation, "...", "Option12")
StartConversation(conversation, NPC, Spawn, "Excellent work. If I am right this will tell us where the orc buried this \'' useful \'' treasure. Give me a moment, please.")
end
function Option12(NPC, Spawn)
FaceTarget(NPC, Spawn)
local conversation = CreateConversation()
AddConversationOption(conversation, "Ok.", "offer3")
StartConversation(conversation, NPC, Spawn, "Perfect. It's somewhere near the Nektulous Station griffin tower, west of here. Go find it, dig it up, and bring it back to me.")
end
function Option13(NPC, Spawn)
if GetQuestStep(Spawn, QUEST4) == 3 then
SetStepComplete(Spawn, QUEST4, 3)
end
FaceTarget(NPC, Spawn)
local conversation = CreateConversation()
AddConversationOption(conversation, "I can get a bloody orc hand!", "Option14")
AddConversationOption(conversation, "What can we do?", "Option15")
StartConversation(conversation, NPC, Spawn, "Aye. I've read more of the Ree orders. This is an old relic from the Shin'Ree clan. Apparently the \''key\'' to opening it was, \''...a Shin'Ree orc with bloodied hand.\''")
end
function Option14(NPC, Spawn)
FaceTarget(NPC, Spawn)
local conversation = CreateConversation()
AddConversationOption(conversation, "Well then what can we do?", "Option15")
StartConversation(conversation, NPC, Spawn, "I'm afraid it's not that simple.")
end
function Option15(NPC, Spawn)
FaceTarget(NPC, Spawn)
local conversation = CreateConversation()
AddConversationOption(conversation, "How?", "Option16")
StartConversation(conversation, NPC, Spawn, "Well, orc magic is simplistic but it isn't something we can simply ignore. If the key to this chest is the bloodied hand of a Shin'Ree orc then that is what we must find. The skeletal orcs outside of the Wailing Caves are what's left of the Shin'Ree orcs. Among them you can find blood stained bones... which means hands. Unfortunately I doubt any of the skeletal orcs have preserved their bloody hands for us. But there is still a way.")
end
function Option16(NPC, Spawn)
FaceTarget(NPC, Spawn)
local conversation = CreateConversation()
AddConversationOption(conversation, "I will bring you your fingers.", "offer4")
StartConversation(conversation, NPC, Spawn, "We can build a bloody hand ourselves! Slay the Shin'Ree orcs. Among their fallen bones collect the bloodied fingers--enough to form a hand. That will fulfill the needs of this orc spell, I am certain.")
end
function Option17(NPC, Spawn)
if GetQuestStep(Spawn, QUEST5) == 6 then
SetStepComplete(Spawn, QUEST5, 6)
end
FaceTarget(NPC, Spawn)
local conversation = CreateConversation()
AddConversationOption(conversation, "Thanks.", "Option18")
StartConversation(conversation, NPC, Spawn, "Good, good... Opening it should be as simple as... yes! A sash?... worthless. And under it? ...paper... The Code of the Shin'Ree? Useful? USEFUL? It's nothing but PAPER")
end
function Option18(NPC, Spawn)
FaceTarget(NPC, Spawn)
local conversation = CreateConversation()
AddConversationOption(conversation, "Gee... thanks for telling me.", "Option19")
AddConversationOption(conversation, "Alright.", "offer5")
StartConversation(conversation, NPC, Spawn, "Yeah, yeah. Maybe next time we won't be so unlucky. Anyway, I neglected to mention this earlier--after all I wanted to get as much from you as I could--but Feralis has been asking for you. You should go speak with him, I believe he has another underling who could use your help.")
end
function Option19(NPC, Spawn)
FaceTarget(NPC, Spawn)
local conversation = CreateConversation()
AddConversationOption(conversation, "Right.", "offer5")
StartConversation(conversation, NPC, Spawn, "Push your advantages, "..GetName(Spawn).."...")
end
function offer(NPC, Spawn)
FaceTarget(NPC, Spawn)
OfferQuest(NPC, Spawn, QUEST2)
end
function offer2(NPC, Spawn)
FaceTarget(NPC, Spawn)
OfferQuest(NPC, Spawn, QUEST3)
end
function offer3(NPC, Spawn)
FaceTarget(NPC, Spawn)
OfferQuest(NPC, Spawn, QUEST4)
end
function offer4(NPC, Spawn)
FaceTarget(NPC, Spawn)
OfferQuest(NPC, Spawn, QUEST5)
end
function offer5(NPC, Spawn)
FaceTarget(NPC, Spawn)
OfferQuest(NPC, Spawn, QUEST6)
end
function QUEST2_PROGRESS(NPC, Spawn)
FaceTarget(NPC, Spawn)
local conversation = CreateConversation()
AddConversationOption(conversation, "Not yet.")
if not HasItem(Spawn, 46427) then
AddConversationOption(conversation, "I need the treated frenzy root.", "root")
end
StartConversation(conversation, NPC, Spawn, "Is it done?")
end
function QUEST3_PROGRESS(NPC, Spawn)
FaceTarget(NPC, Spawn)
local conversation = CreateConversation()
AddConversationOption(conversation, "Not yet.")
StartConversation(conversation, NPC, Spawn, "Did you get the shipment?")
end
function QUEST3_FINISH(NPC, Spawn)
FaceTarget(NPC, Spawn)
local conversation = CreateConversation()
AddConversationOption(conversation, "I did, here you go.", "Option11")
StartConversation(conversation, NPC, Spawn, "Did you get the shipment?")
end
function QUEST2_FINISH(NPC, Spawn)
FaceTarget(NPC, Spawn)
SetStepComplete(Spawn, QUEST2, 3)
local conversation = CreateConversation()
AddConversationOption(conversation, "...", "Option6")
StartConversation(conversation, NPC, Spawn, "Nice, very nice. Give me a moment while I read over these orders.")
end
function QUEST4_PROGRESS(NPC, Spawn)
FaceTarget(NPC, Spawn)
local conversation = CreateConversation()
AddConversationOption(conversation, "Not yet.")
StartConversation(conversation, NPC, Spawn, "Did you get it?")
end
function QUEST4_FINISH(NPC, Spawn)
FaceTarget(NPC, Spawn)
local conversation = CreateConversation()
AddConversationOption(conversation, "I did. The buried chest is locked.", "Option13")
StartConversation(conversation, NPC, Spawn, "Did you get it?")
end
function QUEST5_PROGRESS(NPC, Spawn)
FaceTarget(NPC, Spawn)
local conversation = CreateConversation()
AddConversationOption(conversation, "Not yet.")
StartConversation(conversation, NPC, Spawn, "Do you have the fingers?")
end
function QUEST5_FINISH(NPC, Spawn)
FaceTarget(NPC, Spawn)
local conversation = CreateConversation()
AddConversationOption(conversation, "I do.", "Option17")
StartConversation(conversation, NPC, Spawn, "Do you have the fingers?")
end
function root(NPC, Spawn)
FaceTarget(NPC, Spawn)
PlayFlavor(NPC, "", "Of course, here you are.", "", 0, 0, Spawn)
AddItem(Spawn, 46427, 5)
end
function respawn(NPC)
spawn(NPC)
end