Far Journey LUA scripts

This commit is contained in:
LethalEncounter 2020-09-19 21:00:21 -04:00
parent 3ea7ffebb6
commit 7a03363551
13 changed files with 1114 additions and 519 deletions

View file

@ -26,7 +26,7 @@ function Init(Quest)
AddQuestStepCompleteAction(Quest, 1, "Step1Complete")
end
function Step1Complete(Quest, QuestGiver, Player)
function Step2Init(Quest, QuestGiver, Player)
UpdateQuestStepDescription(Quest, 1, "I spoke to Waulon.")
UpdateQuestTaskGroupDescription(Quest, 1, "I spoke to Waulon as Captain Varlos had asked of me.")
@ -34,7 +34,8 @@ function Step1Complete(Quest, QuestGiver, Player)
AddQuestStepCompleteAction(Quest, 2, "Step2Complete")
end
function Step2Complete(Quest, QuestGiver, Player)
function Step3Init(Quest, QuestGiver, Player)
SetTutorialStep(Player, 17)
UpdateQuestStepDescription(Quest, 2, "I found Waulon's hat.")
UpdateQuestTaskGroupDescription(Quest, 2, "I found Waulon's hat in one of the boxes.")
@ -42,39 +43,41 @@ function Step2Complete(Quest, QuestGiver, Player)
AddQuestStepCompleteAction(Quest, 3, "Step3Complete")
end
function Step3Complete(Quest, QuestGiver, Player)
function Step4Init(Quest, QuestGiver, Player)
UpdateQuestStepDescription(Quest, 3, "I returned Waulon's hat to him.")
UpdateQuestTaskGroupDescription(Quest, 3, "I returned Waulon's hat.")
AddQuestStepChat(Quest, 4, "I should speak to Ingrid.", 1, "Waulon has asked me to speak to Ingrid.", 11, Ingrid)
AddQuestStepCompleteAction(Quest, 4, "Step4Complete")
end
function Step4Complete(Quest, QuestGiver, Player)
function Step5Init(Quest, QuestGiver, Player)
UpdateQuestStepDescription(Quest, 4, "I have spoken to Ingrid as Waulon had asked.")
UpdateQuestTaskGroupDescription(Quest, 4, "I have spoken to Ingrid.")
AddQuestStepObtainItem(Quest, 5, "I should find a way to buy the shard from Merchant Vim.", 1, 100, "Ingrid would like me to buy her a Shard of Luclin.", 11, ShardOfLucin)
AddQuestStepCompleteAction(Quest, 5, "Step5Complete")
SetTutorialStep(Player, 24)
end
function Step5Complete(Quest, QuestGiver, Player)
function Step6Init(Quest, QuestGiver, Player)
UpdateQuestStepDescription(Quest, 5, "I have purchased a Shard of Luclin.")
UpdateQuestTaskGroupDescription(Quest, 5, "I purchased a Shard of Luclin.")
AddQuestStepChat(Quest, 6, "Return to Ingrid.", 1, "Ingrid would like me to give her the Shard of Luclin.", 183, Ingrid)
AddQuestStepCompleteAction(Quest, 6, "Step6Complete")
SetTutorialStep(Player, 30)
end
function Step6Complete(Quest, QuestGiver, Player)
function Step7Init(Quest, QuestGiver, Player)
UpdateQuestStepDescription(Quest, 6, "I gave the Shard of Luclin to Ingrid.")
UpdateQuestTaskGroupDescription(Quest, 6, "I gave the Shard of Luclin to Ingrid.")
UpdateQuestTaskGroupDescription(Quest, 6, "I gave the Shard of Luclin to Ingrid.")
AddQuestStepChat(Quest, 7, "I should speak to Captain Varlos again.", 1, "Captain Varlos is trying to get my attention.", 11, CaptainVarlos)
AddQuestStepCompleteAction(Quest, 7, "Step7Complete")
AddQuestStepCompleteAction(Quest, 7, "Step7Complete")
end
function Step7Complete(Quest, QuestGiver, Player)
function Step8Init(Quest, QuestGiver, Player)
UpdateQuestStepDescription(Quest, 7, "I spoke with Captain Varlos as Ingrid has asked of me.")
UpdateQuestTaskGroupDescription(Quest, 7, "I have spoken to Captain Varlos.")
@ -82,7 +85,7 @@ function Step7Complete(Quest, QuestGiver, Player)
AddQuestStepCompleteAction(Quest, 8, "Step8Complete")
end
function Step8Complete(Quest, QuestGiver, Player)
function Step9Init(Quest, QuestGiver, Player)
UpdateQuestStepDescription(Quest, 8, "I have killed the rats.")
UpdateQuestTaskGroupDescription(Quest, 8, "I killed the rats that Captain Varlos requested.")
@ -90,14 +93,156 @@ function Step8Complete(Quest, QuestGiver, Player)
AddQuestStepCompleteAction(Quest, 9, "Step9Complete")
end
function Step9Complete(Quest, QuestGiver, Player)
function Step10Init(Quest, QuestGiver, Player)
UpdateQuestStepDescription(Quest, 9, "I spoke to Captain Varlos.")
UpdateQuestTaskGroupDescription(Quest, 9, "Captain Varlos has ordered you to kill the escaped goblin.")
UpdateQuestTaskGroupDescription(Quest, 9, "I spoke to Captain Varlos.") --this this is not 100% like Live but seeing the same entry in your journal for step 9 and 10 like Live is dumb
AddQuestStepKill(Quest, 10, "I must kill the goblin.", 1, 100, "Captain Varlos has ordered you to kill the escaped goblin.", 11, Goblin)
AddQuestStepCompleteAction(Quest, 10, "QuestComplete")
end
function CurrentStep(Quest, QuestGiver, Player)
if GetQuestStep(Player, 524) == 2 then
i = 1
spawns = GetSpawnListBySpawnID(Player, 270010)
repeat
spawn = GetSpawnFromList(spawns, i-1)
if spawn then
ChangeHandIcon(spawn, 1)
end
i = i + 1
until spawn == Nil
InstructionWindow(Player, -1.0, "You completed the first part of the quest. As you complete quests and defeat enemies, you earn experience points. This is represented in your experience point display. Filling your experience point display is always a requirement to gain your next level. As you gain levels, you will gain access to more powerful skills and abilities.", "voiceover/english/narrator/boat_06p_tutorial02/narrator_011_f16aa848.mp3", 1702963584, 3318288731, "tutorial_stage_15", "", "continue")
FlashWindow(Player, "MainHUD.Experience", 15.0)
SetTutorialStep(Player, 14)
AddPrimaryEntityCommandAllSpawns(Player, 270010, "open", 10, "open")
chest = GetRandomSpawnByID(Player, 270010)
GiveLoot(chest, Player, 0, 185427)
GiveLoot(chest, Player, 0, 20902)
GiveLoot(chest, Player, 0, 15354)
elseif GetQuestStep(Player, 524) == 3 then
InstructionWindow(Player, -1.0, "The items are now in your inventory.", "voiceover/english/narrator/boat_06p_tutorial02/narrator_014_eaa89ef7.mp3", 361706387, 1106127199, "tutorial_stage_18", "", "continue")
SetTutorialStep(Player, 16)
elseif GetQuestStep(Player, 524) == 5 then
InstructionWindowClose(Player)
InstructionWindow(Player, -1.0, "A merchant is a special type of character who buys and sells things. Find and double left click on Merchant Vim to start a transaction.", "voiceover/english/narrator/boat_06p_tutorial02/narrator_020_6ea052d3.mp3", 4250953579, 3003156164, "tutorial_stage_24", "Double left click on Merchant Vim.", "server")
elseif GetQuestStep(Player, 524) == 6 then
InstructionWindowClose(Player)
InstructionWindow(Player, -1.0, "You have made the first of many purchases. Now close the merchant window and speak to Ingrid to complete the quest.", "voiceover/english/narrator/boat_06p_tutorial02/narrator_026_d484fa8d.mp3", 4213145594, 1811880905, "tutorial_stage_31", "Return to Ingrid and speak to her.", "server")
elseif GetQuestStep(Player, 524) == 7 then
InstructionWindowClose(Player)
captain = GetSpawn(Player, 270000)
AddTimer(captain, 2000, "get_attention_init", 1, Player)
elseif GetQuestStep(Player, 524) == 8 then
AddPrimaryEntityCommandAllSpawns(Player, 270009, "attack", 10000.0, "attack")
i=1
spawns = GetSpawnListBySpawnID(Player, 270009)
repeat
rat = GetSpawnFromList(spawns, i-1)
if rat then
SetAttackable(rat, 1)
if HasLootItem(rat, 11615) == false then
AddLootItem(rat, 11615)
end
end
i = i + 1
until rat == Nil
if GetQuestStepProgress(Player, 524, 8) == 1 then -- if we already have credit for a kill, remove one rat
delrat = GetRandomSpawnByID(Player, 270009)
Despawn(delrat)
end
if HasItem(Player, 88140) == false then
GiveImmediateQuestReward(Quest, Player, 0, 0, "88140")
end
if HasItemEquipped(Player, 88140) == false then
ShowWindow(Player, "Inventory.Inventory", 0)
InstructionWindow(Player, -1.0, "Open your inventory by clicking the inventory button, then right click on the club the Captain just gave you.", "voiceover/english/narrator/boat_06p_tutorial02/narrator_028_458903e8.mp3", 4151437794, 834827635, "equipping_weapons", "Open your inventory. (click on the inventory button)", "open Inventory")
ShowWindow(Player, "MainHUD.StartMenu", 1)
FlashWindow(Player, "MainHUD.StartMenu.inventory", 20.0)
end
elseif GetQuestStep(Player, 524) == 9 then
SetTutorialStep(Player, 49)
InstructionWindow(Player, -1.0, "You have earned enough experience to gain a level. Congratulations.", "voiceover/english/narrator/boat_06p_tutorial02/narrator_046_7e59cd54.mp3", 3272157184, 1454283978, "tutorial_stage_50", "", "continue")
i=1
spawns = GetSpawnListBySpawnID(Player, 270009)
repeat
delrat = GetSpawnFromList(spawns, i-1)
if IsAlive(delrat) then
Despawn(delrat)
end
i = i + 1
until delrat == Nil
elseif GetQuestStep(Player, 524) == 10 then
AddPrimaryEntityCommandAllSpawns(Player, 270008, "attack", 10000.0, "attack")
i=1
spawns = GetSpawnListBySpawnID(Player, 270011)
repeat
cage = GetSpawnFromList(spawns, i-1)
if cage then
Despawn(cage)
end
i = i + 1
until cage == Nil
i=1
spawns = GetSpawnListBySpawnID(Player, 270009)
repeat
delrat = GetSpawnFromList(spawns, i-1)
if delrat then
Despawn(delrat)
end
i = i + 1
until delrat == Nil
end
end
function Step1Complete(Quest, QuestGiver, Player)
GiveExp(Player, 110)
Step2Init(Quest, QuestGiver, Player)
CurrentStep(Quest, QuestGiver, Player)
end
function Step2Complete(Quest, QuestGiver, Player)
Step3Init(Quest, QuestGiver, Player)
CurrentStep(Quest, QuestGiver, Player)
end
function Step3Complete(Quest, QuestGiver, Player)
RemoveItem(Player, WaulonsHat)
GiveImmediateQuestReward(Quest, Player, 0, 0, "9357")
Step4Init(Quest, QuestGiver, Player)
CurrentStep(Quest, QuestGiver, Player)
end
function Step4Complete(Quest, QuestGiver, Player)
Step5Init(Quest, QuestGiver, Player)
CurrentStep(Quest, QuestGiver, Player)
end
function Step5Complete(Quest, QuestGiver, Player)
Step6Init(Quest, QuestGiver, Player)
CurrentStep(Quest, QuestGiver, Player)
end
function Step6Complete(Quest, QuestGiver, Player)
Step7Init(Quest, QuestGiver, Player)
CurrentStep(Quest, QuestGiver, Player)
end
function Step7Complete(Quest, QuestGiver, Player)
Step8Init(Quest, QuestGiver, Player)
CurrentStep(Quest, QuestGiver, Player)
end
function Step8Complete(Quest, QuestGiver, Player)
Step9Init(Quest, QuestGiver, Player)
CurrentStep(Quest, QuestGiver, Player)
end
function Step9Complete(Quest, QuestGiver, Player)
Step10Init(Quest, QuestGiver, Player)
CurrentStep(Quest, QuestGiver, Player)
end
function QuestComplete(Quest, QuestGiver, Player)
-- The following UpdateQuestStepDescription and UpdateTaskGroupDescription are not needed, parser adds them for completion in case stuff needs to be moved around
UpdateQuestStepDescription(Quest, 10, "I have killed the goblin.")
@ -109,23 +254,23 @@ end
function Reload(Quest, QuestGiver, Player, Step)
if Step == 1 then
Step1Complete(Quest, QuestGiver, Player)
Step2Init(Quest, QuestGiver, Player)
elseif Step == 2 then
Step2Complete(Quest, QuestGiver, Player)
Step3Init(Quest, QuestGiver, Player)
elseif Step == 3 then
Step3Complete(Quest, QuestGiver, Player)
Step4Init(Quest, QuestGiver, Player)
elseif Step == 4 then
Step4Complete(Quest, QuestGiver, Player)
Step5Init(Quest, QuestGiver, Player)
elseif Step == 5 then
Step5Complete(Quest, QuestGiver, Player)
Step6Init(Quest, QuestGiver, Player)
elseif Step == 6 then
Step6Complete(Quest, QuestGiver, Player)
Step7Init(Quest, QuestGiver, Player)
elseif Step == 7 then
Step7Complete(Quest, QuestGiver, Player)
Step8Init(Quest, QuestGiver, Player)
elseif Step == 8 then
Step8Complete(Quest, QuestGiver, Player)
Step9Init(Quest, QuestGiver, Player)
elseif Step == 9 then
Step9Complete(Quest, QuestGiver, Player)
Step10Init(Quest, QuestGiver, Player)
elseif Step == 10 then
QuestComplete(Quest, QuestGiver, Player)
end
@ -139,11 +284,8 @@ function Accepted(Quest, QuestGiver, Player)
AddConversationOption(conversation, "Okay.")
StartConversation(conversation, QuestGiver, Player, "Whoa there, the seas are gettin' a bit angry. Go speak ta' me first mate, Waulon. He might have something for ya' ta' do.")
local Waulon = GetSpawn(NPC, 270002)
FaceTarget(NPC, Waulon)
end
function Deleted(Quest, QuestGiver, Player)
local Waulon = GetSpawn(QuestGiver, 270002)
FaceTarget(QuestGiver, Waulon)
end
function Declined(Quest, QuestGiver, Player)

View file

@ -13,28 +13,20 @@ function spawn(NPC)
end
function hailed(NPC, Spawn)
FaceTarget(NPC, Spawn)
Dialog.New(NPC, Spawn)
Dialog.AddDialog("Do you want to call down the Drake?")
Dialog.AddOption("Yes, I want to see him in action!", "callDrake")
Dialog.AddOption("Hell No!")
Dialog.Start()
goblin = GetSpawn(NPC, 270008)
if goblin == nil or IsAlive(goblin) == false then
FaceTarget(NPC, Spawn)
choice = math.random(1, 2)
if choice == 1 then
PlayFlavor(NPC, "voiceover/english/anikra/boat_06p_tutorial02_fvo_001.mp3", "Thanks for saving me", "thanks", 3802219844, 3242323771)
else
PlayFlavor(NPC, "voiceover/english/anikra/boat_06p_tutorial02/anikra_0_003.mp3", "I don't know how I did that. What was that?", "boggle", 927876289, 3048340606)
end
else
PlayFlavor(NPC, "voiceover/english/anikra/boat_06p_tutorial02_fvo_002.mp3", "I really miss my husband. Why did those smugglers have to throw him overboard?", "sigh", 1493499523, 2767493059)
end
end
function callDrake(NPC, Spawn)
FaceTarget(NPC, Spawn)
local drake = GetSpawn(NPC, 270013)
if drake ~= nil then
AddTimer(drake, 5000, "startanimation")
Say(NPC, "Drake should be flying")
AddTimer(drake, 31000, "stopanimation")
Say(NPC, "Drake should be gone now")
end
end
--[[
function callDrake(NPC, Spawn)
FaceTarget(NPC, Spawn)

View file

@ -6,150 +6,375 @@
:
--]]
get_attention_animation = true
needs_selection_help = true
finished_hailed = false
finished_where_am_I = false
finished_who_are_you = false
finished_how_did_I_get_here = false
finished_where_are_we_headed = false
finished_high_winds_1 = false
finished_high_winds_2 = false
finished_high_winds_3 = false
seen_quest_praise = false
require "SpawnScripts/Generic/DialogModule"
function spawn(NPC)
end
function hailed(NPC, Spawn)
FaceTarget(NPC, Spawn)
Dialog.New(NPC, Spawn)
Dialog.AddDialog("Ahoy! 'Tis good to see you awake. Ya seem a little squiffy, least ya' cheated death!")
Dialog.AddVoiceover("voiceover/english/captain_varlos/boat_06p_tutorial02/varlos_0_001.mp3", 1930075150, 2666442405)
Dialog.AddEmote("salute")
Dialog.AddOption("Where am I?", "dlg_1")
Dialog.Start()
function get_attention_init(NPC, player)
InstructionWindow(player, -1.0, "Captain Varlos looks like he is trying to get your attention.", "voiceover/english/narrator/boat_06p_tutorial02/narrator_027_30c39009.mp3", 2146230300, 3258594756, "captain_attention", "", "continue")
AddTimer(NPC, 100, "get_attention", 1, player)
end
function dlg_1(NPC, Spawn)
FaceTarget(NPC, Spawn)
Dialog.New(NPC, Spawn)
Dialog.AddDialog("Me apologies.")
Dialog.AddVoiceover("voiceover/english/captain_varlos/boat_06p_tutorial02/varlos_0_002.mp3", 2054400186, 1976167819)
Dialog.AddEmote("bow")
Dialog.AddOption("Who are you?", "dlg_2")
Dialog.Start()
function get_attention(NPC, player)
FaceTarget(NPC, player)
SendStateCommand(NPC, 883)
AddTimer(NPC, math.random(2000, 3000), "stop_get_attention", 1, player)
end
function dlg_2(NPC, Spawn)
FaceTarget(NPC, Spawn)
Dialog.New(NPC, Spawn)
Dialog.AddDialog("I am Captain Draik Varlos, and this 'ere fine ship is the Far Journey.")
Dialog.AddVoiceover("voiceover/english/captain_varlos/boat_06p_tutorial02/varlos_0_003.mp3", 2565389482, 560555759)
Dialog.AddOption("How did I get here?", "dlg_3")
Dialog.Start()
function stop_get_attention(NPC, player)
SendStateCommand(NPC, 0)
if get_attention_animation and HasQuest(player, 524) == true and GetQuestStep(player, 524) == 7 then
AddTimer(NPC, 500, "get_attention", 1, player)
end
end
function dlg_3(NPC, Spawn)
FaceTarget(NPC, Spawn)
Dialog.New(NPC, Spawn)
Dialog.AddDialog("Me hearties pulled ya' from the sea, you an those other bilge rats. Do ya' remember?")
Dialog.AddVoiceover("voiceover/english/captain_varlos/boat_06p_tutorial02/varlos_0_004.mp3", 29296168, 2709023783)
Dialog.AddOption("Vaguely. Where are we headed?", "dlg_4")
Dialog.Start()
function hailed(NPC, player)
FaceTarget(NPC, player)
SendStateCommand(GetSpawn(NPC, 270000), 318)
SendStateCommand(GetSpawn(NPC, 270000), 0)
if HasQuest(player, 524) == false and HasCompletedQuest(player, 524) == false then
InstructionWindowClose(player)
needs_selection_help = true
finished_hailed = false
finished_where_am_I = false
finished_who_are_you = false
finished_how_did_I_get_here = false
finished_where_are_we_headed = false
finished_high_winds_1 = false
finished_high_winds_2 = false
finished_high_winds_3 = false
Dialog.New(NPC, player)
Dialog.AddDialog("Ahoy! 'Tis good to see you awake. Ya seem a little squiffy, least ya' cheated death!")
Dialog.AddVoiceover("voiceover/english/captain_varlos/boat_06p_tutorial02/varlos_0_001.mp3", 1930075150, 2666442405)
Dialog.AddEmote("salute")
Dialog.AddOption("Where am I?", "where_am_I")
Dialog.Start()
AddTimer(NPC, 8000, "hailed_instructions", 1, player)
elseif HasQuest(player, 524) == true and GetQuestStep(player, 524) == 7 then
SetTutorialStep(player, 32)
Dialog.New(NPC, player)
Dialog.AddDialog("Avast ye! We need to talk.")
Dialog.AddVoiceover("voiceover/english/captain_varlos/boat_06p_tutorial02/varlos_0_011.mp3", 570868734, 3287597835)
Dialog.AddOption("What is it?", "quest_step_7a")
Dialog.Start()
get_attention_animation = false
elseif HasQuest(player, 524) == true and GetQuestStep(player, 524) == 10 then
PlayFlavor(NPC, "voiceover/english/captain_varlos/boat_06p_tutorial02_fvo_023.mp3", "You still need to kill that landlubber of a goblin! Get to it mate!", "", 3269557913, 3104212801)
elseif HasQuest(player, 524) == true and GetQuestStep(player, 524) == 9 then
SetTutorialStep(player, 51)
Dialog.New(NPC, player)
Dialog.AddDialog("Ya' made quick work of them vermin.")
Dialog.AddVoiceover("voiceover/english/captain_varlos/boat_06p_tutorial02/varlos_0_016.mp3", 1130776869, 4119313971)
Dialog.AddOption("Thanks.", "quest_step_9")
Dialog.Start()
elseif HasCompletedQuest(player, 524) == true and seen_quest_praise == false then
seen_quest_praise = true
Dialog.New(NPC, player)
Dialog.AddDialog("Arr! Ya saved the Far Journey and me crew! Seems ya' proved ta' be quite a hero. Well, with the help of that young lass there, ya' do.")
Dialog.AddVoiceover("voiceover/english/captain_varlos/boat_06p_tutorial02/varlos_0_024.mp3", 998172564, 1159207795)
Dialog.AddOption("It was nothing.", "quest_completed")
Dialog.Start()
elseif HasCompletedQuest(player, 524) == true then
Dialog.New(NPC, player)
Dialog.AddDialog("So, ya' ready ta go ashore matey?")
Dialog.AddVoiceover("voiceover/english/captain_varlos/boat_06p_tutorial02/varlos_0_027.mp3", 2285948102, 2994720481)
Dialog.AddOption("Yes.", "ready_to_go_ashore")
Dialog.AddOption("No. I would like some more time.", "conversation8_2")
Dialog.Start()
end
end
function dlg_4(NPC, Spawn)
FaceTarget(NPC, Spawn)
PlayFlavor(NPC, "voiceover/english/captain_varlos/boat_06p_tutorial02_fvo_005.mp3", "We are heading to the Island of Refuge.", "", 1602680439, 2810422278, Spawn)
AddTimer(NPC, 3000, "ShakeCamera_1", 1, Spawn)
function quest_completed(NPC, player)
Dialog.New(NPC, player)
Dialog.AddDialog("There be the Island of Refuge, get ready ta' drop anchor. Just let me know when ya' want ta' go ashore.")
Dialog.AddVoiceover("voiceover/english/captain_varlos/boat_06p_tutorial02/varlos_0_025.mp3", 3643967618, 2645907420)
Dialog.AddOption("Ok.", "drop_anchor")
Dialog.Start()
end
function ShakeCamera_1(NPC, Spawn)
PerformCameraShake(Spawn, 52429, 15948)
AddTimer(NPC, 400, "ShakeCamera_2", 1, Spawn)
function drop_anchor(NPC, player)
PlayFlavor(NPC, "voiceover/english/captain_varlos/boat_06p_tutorial02/varlos_0_026.mp3", "Ingrid! Swing the lead and prepare to drop anchor!", 3011518245, 3851752713)
end
function ShakeCamera_2(NPC, Spawn)
PerformCameraShake(Spawn, 52429, 15948)
AddTimer(NPC, 400, "ShakeCamera_3", 1, Spawn)
function ready_to_go_ashore(NPC, player)
Dialog.New(NPC, player)
Dialog.AddDialog("Don't ya' mind, we get paid ta' do that.")
Dialog.AddVoiceover("voiceover/english/captain_varlos/boat_06p_tutorial02/varlos_0_028.mp3", 1009737776, 2173458794)
Dialog.AddOption("Good point.", "zone_to_isle")
Dialog.Start()
end
function ShakeCamera_3(NPC, Spawn)
PerformCameraShake(Spawn, 52429, 15948)
AddTimer(NPC, 800, "CallIngrid", 1, Spawn)
function zone_to_isle(NPC, player)
Zone(GetZone(325), player)
end
function CallIngrid(NPC, Spawn)
FaceTarget(NPC, Spawn)
PlayFlavor(NPC, "voiceover/english/captain_varlos/boat_06p_tutorial02_fvo_006.mp3", "Ingird! Quit gawking at the shorty and fix that yard-arm!", "", 2753489262, 3183736171, Spawn)
local Geredo = GetSpawn(NPC, 270004)
local Ingrid = GetSpawn(NPC, 270001)
SetTempVariable(Ingrid, "TempAnimationVar", nil)
FaceTarget(NPC, Ingrid)
AddTimer(Ingrid, 500, "CaptainCallingIngrid", 1, Spawn)
AddTimer(Geredo, 500, "CaptainCallingIngrid", 1, Spawn)
function quest_step_9(NPC, player)
AddTimer(GetSpawn(NPC, 270013), 100, "attack")
AddTimer(NPC, 1000, "quest_step_9b", 1, player)
end
function TalkToCaptainVarlos(NPC, Spawn)
local Ingrid = GetSpawn(NPC, 270001)
FaceTarget(NPC, Ingrid)
PlayFlavor(NPC, "voiceover/english/captain_varlos/boat_06p_tutorial02_fvo_007.mp3", "Don't want the ship to come apart in these high winds, do ya'?!", "scold", 517097409, 4194681002, Spawn)
AddTimer(Ingrid, 4000, "SaluteCaptainVarlos", 1, Spawn)
function quest_step_9b(NPC, player)
FaceTarget(NPC, GetSpawn(NPC, 270013))
PlayFlavor(NPC, "voiceover/english/captain_varlos/boat_06p_tutorial02_fvo_017.mp3", "Wait. Tis that a... No, it cain' be!", "", 1253231512, 1752159147)
AddTimer(NPC, 5000, "quest_step_9c", 1, player)
SendStateCommand(GetSpawn(NPC, 270005), 250)
end
function IngridLeaveCaptain(NPC, Spawn)
FaceTarget(NPC, Spawn)
function quest_step_9c(NPC, player)
Drake = GetSpawn(NPC, 270013)
PlayFlavor(NPC, "voiceover/english/captain_varlos/boat_06p_tutorial02_fvo_008.mp3", "Ya think she'd never seen a gnome afore.", "", 2447879193, 4289147535, Spawn)
--AddTimer(NPC, 3000, "ShakeCamera_1", 1, Spawn)
Anikra = GetSpawn(NPC, 270006)
Valik = GetSpawn(NPC, 270005)
Geredo = GetSpawn(NPC, 270004)
--AddTimer(NPC, 4000, "TheQuestOffer")
FaceTarget(Anikra, Drake)
FaceTarget(Valik, Drake)
FaceTarget(Geredo, Drake)
SendStateCommand(Anikra, 429)
SendStateCommand(Valik, 429)
SendStateCommand(Geredo, 429)
SendStateCommand(GetSpawn(NPC, 270001), 219)
SendStateCommand(GetSpawn(NPC, 270007), 631)
PlayFlavor(NPC, "voiceover/english/captain_varlos/boat_06p_tutorial02_fvo_018.mp3", "Quick! Ingrid, secure th'loot! Thar be a Drakota off the bow! Quick now! Secure those chests!", "", 3607547478, 39534308)
AddTimer(NPC, 9000, "quest_step_9d", 1, player)
end
function TheQuestOffer(NPC,Spawn)
function quest_step_9d(NPC, player)
PlayFlavor(NPC, "voiceover/english/captain_varlos/boat_06p_tutorial02_fvo_019.mp3", "Everyone down! Watch it!", "", 2065401462, 2542613809)
SendStateCommand(GetSpawn(NPC, 270007), 219)
SendStateCommand(GetSpawn(NPC, 270001), 220)
SendStateCommand(GetSpawn(NPC, 270004), 210)
SendStateCommand(GetSpawn(NPC, 270006), 403)
SendStateCommand(GetSpawn(NPC, 270005), 218)
SendStateCommand(GetSpawn(NPC, 270002), 218)
AddTimer(NPC, 3500, "quest_step_9e", 1, player)
i=1
spawns = GetSpawnListBySpawnID(player, 270011)
repeat
cage = GetSpawnFromList(spawns, i-1)
if cage then
Despawn(cage)
end
i = i + 1
until cage == Nil
end
function callDrake(NPC, Spawn)
FaceTarget(NPC, Spawn)
local drake = GetSpawn(NPC, 270013)
if drake ~= nil then
AddTimer(drake, 5000, "startanimation")
Say(NPC, "Drake should be flying")
AddTimer(drake, 31000, "stopanimation")
Say(NPC, "Drake should be gone now")
end
function quest_step_9e(NPC, player)
PerformCameraShake(player, 0.699999988079071)
PerformCameraShake(player, 0.5)
PerformCameraShake(player, 0.30000001192092896)
PerformCameraShake(player, 0.10000000149011612)
AddTimer(NPC, 3500, "quest_step_9f", 1, player)
end
--[[
function callDrake(NPC, Spawn)
FaceTarget(NPC, Spawn)
Say(NPC,"I have made it past FaceTarget")
local drake = GetSpawn(Spawn, 270013)
Say(NPC, "I have set the local drake to the spawn id")
Say(NPC, "Test " .. drake)
SpawnSet(drake, "visual_state", 10783)
function quest_step_9f(NPC, player)
AddTimer(NPC, 3500, "quest_step_9g", 1, player)
end
function quest_step_9g(NPC, player)
AddTimer(NPC, 3000, "quest_step_9h", 1, player)
end
function quest_step_9h(NPC, player)
SendStateCommand(GetSpawn(NPC, 270001), 0)
SendStateCommand(GetSpawn(NPC, 270004), 0)
SendStateCommand(GetSpawn(NPC, 270006), 0)
SendStateCommand(GetSpawn(NPC, 270005), 0)
SendStateCommand(GetSpawn(NPC, 270002), 0)
SendStateCommand(GetSpawn(NPC, 270007), 220)
PlayFlavor(NPC, "voiceover/english/captain_varlos/boat_06p_tutorial02_fvo_020.mp3", "Blimey! That was close! It has been near two months since the last reported sightings of one of them.", "", 814285897, 1688547621)
AddTimer(NPC, 6000, "quest_step_9i", 1, player)
end
function quest_step_9i(NPC, player)
PlayFlavor(NPC, "voiceover/english/captain_varlos/boat_06p_tutorial02_fvo_021.mp3", "That damnable goblin has escaped. An' look, me beautiful ship is on fire!", "", 1401094820, 2183903275)
AddTimer(NPC, 6000, "quest_step_9j", 1, player)
end
function quest_step_9j(NPC, player)
SetStepComplete(player, 524, 9)
PlayFlavor(NPC, "voiceover/english/captain_varlos/boat_06p_tutorial02_fvo_022.mp3", "Ye must put an end to 'is life, afore he tears me ship apart!", "", 2385052787, 1324494518)
end
function quest_step_7a(NPC, player)
Dialog.New(NPC, player)
Dialog.AddDialog("Well, 'tis a bit of a problem. Ya' see, there be rats on board. The vermin keep eating the supplies and I need ya' to go feed them to the deep, afore they eat anything else.")
Dialog.AddVoiceover("voiceover/english/captain_varlos/boat_06p_tutorial02/varlos_0_012.mp3", 705765462, 3202743441)
Dialog.AddOption("So you want me to kill them?", "quest_step_7b")
Dialog.Start()
end
function quest_step_7b(NPC, player)
Dialog.New(NPC, player)
Dialog.AddDialog("Yar! That's what we be needin'.")
Dialog.AddVoiceover("voiceover/english/captain_varlos/boat_06p_tutorial02/varlos_0_013.mp3", 3880459741, 170861362)
Dialog.AddOption("How do you expect me to kill them?", "quest_step_7c")
Dialog.Start()
end
function quest_step_7c(NPC, player)
Dialog.New(NPC, player)
Dialog.AddDialog("Wit this 'ere club. It is nice and splintered, sure ta' cause them some pain.")
Dialog.AddVoiceover("voiceover/english/captain_varlos/boat_06p_tutorial02/varlos_0_014.mp3", 2083163804, 202693960)
Dialog.AddOption("Aye, aye, Captain!", "quest_step_7d")
Dialog.Start()
end
function quest_step_7d(NPC, player)
SetStepComplete(player, 524, 7)
end
function hailed_instructions(NPC, player)
if needs_selection_help == true then
InstructionWindowGoal(player,0)
InstructionWindowClose(player)
InstructionWindow(player, -1.0, "To respond to the Captain and other characters you will meet, left click on the response text.", "voiceover/english/narrator/boat_06p_tutorial02/narrator_006_7521b625.mp3", 3936228257, 1877316160, "tutorial_stage_8", "Left click on one of the response options.", "server")
needs_selection_help = false
end
end
function where_am_I(NPC, player)
finished_hailed = true
--[[Say(NPC, "Testing function call")
drake = GetSpawn(player, 270013)
SendStateCommand(drake,65")
Say(drake, "attacking")
AddTimer(drake, 40000, "drake_rain")
--]]
if needs_selection_help == true then
needs_selection_help = false
else
InstructionWindowGoal(player,0)
InstructionWindowClose(player)
end
if finished_where_am_I == false then
FaceTarget(NPC, player)
Dialog.New(NPC, player)
Dialog.AddDialog("Me apologies.")
Dialog.AddVoiceover("voiceover/english/captain_varlos/boat_06p_tutorial02/varlos_0_002.mp3", 2054400186, 1976167819)
Dialog.AddOption("Who are you?", "who_are_you")
Dialog.Start()
end
end
function who_are_you(NPC, player)
if finished_who_are_you == false then
finished_where_am_I = true
FaceTarget(NPC, player)
Dialog.New(NPC, player)
Dialog.AddDialog("I am Captain Draik Varlos, and this 'ere fine ship is the Far Journey.")
Dialog.AddVoiceover("voiceover/english/captain_varlos/boat_06p_tutorial02/varlos_0_003.mp3", 2565389482, 560555759)
Dialog.AddOption("How did I get here?", "how_did_I_get_here")
Dialog.Start()
end
end
function how_did_I_get_here(NPC, player)
finished_who_are_you = true
if finished_how_did_I_get_here == false then
FaceTarget(NPC, player)
Dialog.New(NPC, player)
Dialog.AddDialog("Me hearties pulled ya' from the sea, you an those other bilge rats. Do ya' remember?")
Dialog.AddVoiceover("voiceover/english/captain_varlos/boat_06p_tutorial02/varlos_0_004.mp3", 29296168, 2709023783)
Dialog.AddOption("Vaguely. Where are we headed?", "where_are_we_headed")
Dialog.Start()
end
end
function where_are_we_headed(NPC, player)
finished_how_did_I_get_here = true
if finished_where_are_we_headed == false then
FaceTarget(NPC, player)
PlayFlavor(NPC, "voiceover/english/captain_varlos/boat_06p_tutorial02_fvo_005.mp3", "We are heading to the Island of Refuge.", "", 1602680439, 2810422278)
AddTimer(NPC, 500, "shake_camera_medium", 1, player)
AddTimer(NPC, 1500, "shake_camera_low", 1, player)
AddTimer(NPC, 2500, "shake_camera_low", 1, player)
AddTimer(NPC, 3000, "high_winds_1", 1, player)
end
end
function shake_camera_low(NPC, player)
PerformCameraShake(player, 0.10000000149011612)
end
function shake_camera_medium(NPC, player)
PerformCameraShake(player, 0.20000000298023224)
end
function shake_camera_high(NPC, player)
PerformCameraShake(player, 0.699999988079071)
end
function high_winds_1(NPC, player)
finished_where_are_we_headed = true
if finished_high_winds_1 == false then
FaceTarget(NPC, GetSpawn(NPC, 270001))
PlayFlavor(NPC, "voiceover/english/captain_varlos/boat_06p_tutorial02_fvo_006.mp3", "Ingrid! Quit gawking at the shorty and fix that yard-arm!", "", 2753489262, 3183736171)
SendStateCommand(GetSpawn(NPC, 270001), 0)
AddTimer(NPC, 3500, "high_winds_2", 1, player)
end
end
function high_winds_2(NPC, player)
finished_high_winds_1 = true
if finished_high_winds_2 == false then
PlayFlavor(GetSpawn(NPC, 270001), "voiceover/english/ingrid/boat_06p_tutorial02/020_deckhand_ingrid_010_1637e047.mp3", "Aye, aye, Captain!", "", 1250282628, 237171958)
SendStateCommand(GetSpawn(NPC, 270001), 520)
AddTimer(NPC, 2500, "high_winds_3", 1, player)
end
end
function high_winds_3(NPC, player)
finished_high_winds_2 = true
if finished_high_winds_3 == false then
PlayFlavor(NPC, "voiceover/english/captain_varlos/boat_06p_tutorial02_fvo_007.mp3", "Don't want the ship to come apart in these high winds, do ya'?!", "", 517097409, 4194681002)
SendStateCommand(GetSpawn(NPC, 270001), 0)
AddTimer(NPC, 5000, "high_winds_4", 1, player)
end
end
function high_winds_4(NPC, player)
finished_high_winds_3 = true
FaceTarget(NPC, player)
PlayFlavor(NPC, "voiceover/english/captain_varlos/boat_06p_tutorial02_fvo_008.mp3", "Ya think she'd never seen a gnome afore.", "", 2447879193, 4289147535)
SendStateCommand(GetSpawn(NPC, 270001), 630)
AddTimer(NPC, 500, "shake_camera_medium", 1, player)
AddTimer(NPC, 3500, "shake_camera_high", 1, player)
AddTimer(NPC, 5500, "shake_camera_medium", 1, player)
AddTimer(NPC, 9500, "shake_camera_low", 1, player)
AddTimer(NPC, 5000, "offer_quest", 1, player)
end
function offer_quest(NPC, player)
if HasQuest(player, 524) == false then
OfferQuest(NPC, player, 524, true)
AddTimer(NPC, 7000, "Accepted_Tutorial_Instructions", 1, player)
end
end
function Accepted_Tutorial_Instructions(NPC, player)
InstructionWindowClose(player)
ShowWindow(player, "Journals.JournalsQuest", 0)
InstructionWindow(player, -1.0, "The Captain has given you a quest. Left click on the quest journal button to open your quest journal.", "voiceover/english/narrator/boat_06p_tutorial02/narrator_007_59f6d83b.mp3", 1470829818, 519016852, "tutorial_stage_9", "Open your quest journal. (click on the journal button)", "open JournalsQuest")
ShowWindow(player, "MainHUD.StartMenu", 1)
FlashWindow(player, "MainHUD.StartMenu.quest_journal", 20.0)
SetTutorialStep(player, 8)
end
]]--
function respawn(NPC)

View file

@ -3,104 +3,23 @@
Script Author : Cynnar
Script Date : 2019.08.04 12:08:08
Script Purpose :
Notes : Geredo is suppose to blow a kiss to Ingrid. PlayFlavor(NPC, "", "", "blowkiss", 0, 0) is not working
Notes : Replaced with PlayFlavor(NPC, "", "", "scheme", 0, 0) for now
:
--]]
local TempAnimationPos = nil
function spawn(NPC)
end
-- sent from Ingrid to start the flirting
-- sends back to Ingrid after Geredo starts flirting with a flex
function GeredoFlirtingWithIngird(NPC, Spawn)
local Ingrid = GetSpawn(NPC, 270001)
if GetTempVariable(Ingrid, "TempAnimationVar") ~= nil then
PlayFlavor(NPC, "", "", "flex", 0, 0)
end
if Ingrid ~= nil then
AddTimer(Ingrid, 2000, "FlirtWithIngrid")
end
--Say(NPC, "TempAnimationVar = " .. GetTempVariable(Ingrid, "TempAnimationVar") .. "!")
--SetTempVariable(Ingrid, "TempAnimationVar", "SecondRun")
end
-- sent from Ingrid's chuckle
-- sends back to Ingrid after Geredo responds with a bow
function FlirtingWithGeredo(NPC, Spawn)
local Ingrid = GetSpawn(NPC, 270001)
if GetTempVariable(Ingrid, "TempAnimationVar") ~= nil then
PlayFlavor(NPC, "", "", "bow", 0, 0)
end
if Ingrid ~= nil then
AddTimer(Ingrid, 3000, "FlirtWithIngrid_2")
end
end
-- sent from Ingrid's curtsey
-- sends back to Ingrid afer Geredo responds with a flirt
function FlirtingWithGeredo_2(NPC, Spawn)
local Ingrid = GetSpawn(NPC, 270001)
if GetTempVariable(Ingrid, "TempAnimationVar") ~= nil then
PlayFlavor(NPC, "", "", "flirt", 0, 0)
end
if Ingrid ~= nil then
AddTimer(Ingrid, 2500, "FlirtWithIngrid_3")
end
end
-- sent from Ingrid's flustered
-- sends back to Ingrid afer Geredo responds with a blowkiss
function FlirtingWithGeredo_3(NPC, Spawn)
local Ingrid = GetSpawn(NPC, 270001)
if GetTempVariable(Ingrid, "TempAnimationVar") ~= nil then
PlayFlavor(NPC, "", "", "scheme", 0, 0)
--PlayAnimation(NPC, 11762)
end
if Ingrid ~= nil then
AddTimer(Ingrid, 2000, "FlirtWithIngrid_4")
end
end
-- sent from Ingrid's no
-- sends back to Ingrid afer Geredo responds with beg
function FlirtingWithGeredo_4(NPC, Spawn)
local Ingrid = GetSpawn(NPC, 270001)
if GetTempVariable(Ingrid, "TempAnimationVar") ~= nil then
PlayFlavor(NPC, "", "", "beg", 0, 0)
end
if Ingrid ~= nil then
AddTimer(Ingrid, 1500, "FlirtWithIngrid_5")
end
end
function CaptainCallingIngrid(NPC, Spawn)
-- Testing to set animation during the captain calling ingrid
--PlayFlavor(NPC, "", "", "blowkiss", 0, 0)
PlayAnimation(NPC, 12246)
end
function hailed(NPC, Spawn)
choice = math.random(0, 2)
FaceTarget(NPC, Spawn)
if choice == 1 then
PlayFlavor(NPC, "voiceover/english/geredo/boat_06p_tutorial02_fvo_001.mp3", "Do you happen to have any mechanical leg extenders? I want to see the water.", "agree", 2902186099, 1357276764)
elseif choice == 2 then
PlayFlavor(NPC, "voiceover/english/geredo/boat_06p_tutorial02_fvo_002.mp3", "Thinking I should design a new mechanical boat. It would be perfect! Yes, perfect indeed!", "ponder", 2630458163, 1309095480)
else
PlayFlavor(NPC, "voiceover/english/geredo/boat_06p_tutorial02_fvo_003.mp3", "Owie, my elbow is sore! It always gets this way when I am near water. I could have helped rescue Anikra and Valik, but I wasn't able to swim. Thanks for helping me.", "grumble", 2653823570, 1351171804)
end
end
function respawn(NPC)

View file

@ -3,248 +3,93 @@
Script Author : Cynnar
Script Date : 2019.10.18 06:10:27
Script Purpose :
Notes :
Notes :
:
--]]
require "SpawnScripts/Generic/DialogModule"
local TaskAboardTheFarJourney = 524
local TempAnimationVar = nil
local ShardOfLucin = 12565
function spawn(NPC)
if not HasCompletedQuest(Player, TaskAboardTheFarJourney) then
SetTempVariable(NPC, "TempAnimationVar", "FirstRun")
AddTimer(NPC, 1500, "WalkToGeredo")
else
SetTempVariable(NPC, "TempAnimationVar", nil)
end
end
function hailed(NPC, Spawn)
if GetTempVariable(NPC, "TempAnimationVar") == nil then
FaceTarget(NPC, Spawn)
local rand = math.random(0, 2)
if rand == 0 then
PlayFlavor(NPC, "voiceover/english/ingrid/boat_06p_tutorial02_fvo_009.mp3", "I hate rats, every time we dock they get on board and eat our supplies.", "grumble", 3636322414, 1973183674, Spawn)
elseif rand == 1 then
PlayFlavor(NPC, "voiceover/english/ingrid/boat_06p_tutorial02_fvo_008.mp3", "Don't you just love the sea?", "sniff", 541733813, 1294072887, Spawn)
function hailed(NPC, player)
FaceTarget(NPC, player)
if HasQuest(player, 524) == false or HasCompletedQuest(player, 524) == true then
choice = math.random(1, 3)
if choice == 1 then
PlayFlavor(NPC, "voiceover/english/ingrid/boat_06p_tutorial02_fvo_008.mp3", "Don't you just love the sea?", "", 541733813, 1294072887)
elseif choice == 2 then
PlayFlavor(NPC, "voiceover/english/ingrid/boat_06p_tutorial02_fvo_007.mp3", "Yo ho ho and a bottle of rum!", "", 964088856, 3568852318)
else
PlayFlavor(NPC, "voiceover/english/ingrid/boat_06p_tutorial02_fvo_007.mp3", "Yo ho ho and a bottle of rum!", "smile", 964088856, 3568852318, Spawn)
PlayFlavor(NPC, "voiceover/english/ingrid/boat_06p_tutorial02_fvo_009.mp3", "I hate rats, every time we dock they get on board and eat our supplies.", "", 3636322414, 1973183674)
end
else
step = GetQuestStep(player, 524)
if step == 4 then
SendStateCommand(NPC, 0)
Dialog.New(NPC, player)
Dialog.AddDialog("Hello, how are you?")
Dialog.AddVoiceover("voiceover/english/ingrid/boat_06p_tutorial02/ingrid_0_001.mp3", 1960704460, 917558592)
Dialog.AddOption("Good, thanks. How about you?", "small_talk")
Dialog.Start()
elseif step == 5 then
PlayFlavor(NPC, "voiceover/english/ingrid/boat_06p_tutorial02_fvo_005.mp3", "Is Vim not going to sell it to you? That is just my luck... well I guess I will have to finish this work then.", "", 4181806501, 3186272404)
elseif step == 6 then
SetTutorialStep(player, 31)
AddCoin(player, 10)
DisplayText(player, 34, "You receive 10 Copper.")
Dialog.New(NPC, player)
Dialog.AddDialog("Ah! You got the shard. Great! Now I can stop doing this work and enjoy the rest of this trip. Here is some coin for your help.")
Dialog.AddVoiceover("voiceover/english/ingrid/boat_06p_tutorial02/ingrid_0_006.mp3", 502975024, 483052250)
Dialog.AddOption("Thanks.", "thanks_for_getting_shard")
Dialog.Start()
end
end
end
function WalkToGeredo(NPC, Spawn)
MoveToLocation(NPC, 5.85, -2.07, -2.94, 2, nil, true)
MoveToLocation(NPC, 5.77, -2.07, -1.56, 2, nil, false)
AddTimer(NPC, 1500, "EmoteAnimationStart")
function thanks_for_getting_shard(NPC, player)
SetStepComplete(player, 524, 6)
RemoveItem(player, ShardOfLucin)
end
--sends to Geredo to start the flirting
--no action on Ingrid's part yet
function EmoteAnimationStart(NPC, Spawn)
if GetTempVariable(NPC, "TempAnimationVar") ~= nil then
AnimationChoice = math.random(0, 10)
local Geredo = GetSpawn(NPC, 270004)
if Geredo ~= nil then
if GetTempVariable(NPC, "TempAnimationVar") == "FirstRun" then
AddTimer(Geredo, 2000, "GeredoFlirtingWithIngird")
else
if GetTempVariable(NPC, "TempAnimationVar") == "SecondRun" and AnimationChoice <= 5 then
AddTimer(Geredo, 5000, "GeredoFlirtingWithIngird")
else
AddTimer(Geredo, 5000, "FlirtingWithGeredo")
end
end
end
end
function small_talk(NPC, player)
Dialog.New(NPC, player)
Dialog.AddDialog("I am fine, just... after the last pickup I have been working extra hard, since Vim said she would give me the piece of Luclin she found.")
Dialog.AddVoiceover("voiceover/english/ingrid/boat_06p_tutorial02/ingrid_0_002.mp3", 3891218598, 1657063801)
Dialog.AddOption("Vim?", "vim_who")
Dialog.Start()
end
--sent from Geredo's flex
--sends back to Geredo after Ingrid's response with a chuckle
function FlirtWithIngrid(NPC, Spawn)
if GetTempVariable(NPC, "TempAnimationVar") ~= nil then
PlayFlavor(NPC, "", "", "chuckle", 0, 0)
AnimationChoice = math.random(0, 9)
local Geredo = GetSpawn(NPC, 270004)
if Geredo ~= nil then
if GetTempVariable(NPC, "TempAnimationVar") == "FirstRun" then
AddTimer(Geredo, 5000, "FlirtingWithGeredo")
else
if GetTempVariable(NPC, "TempAnimationVar") == "SecondRun" and AnimationChoice >= 7 then
AddTimer(Geredo, 5000, "FlirtingWithGeredo")
else
EmoteAnimationStart(NPC, Spawn)
end
end
end
end
function vim_who(NPC, player)
Dialog.New(NPC, player)
Dialog.AddDialog("Yes, yes, Vim. The merchant over there. She found a small piece of the moon and is having me work for it. Maybe you can go buy it from her for me?")
Dialog.AddVoiceover("voiceover/english/ingrid/boat_06p_tutorial02/ingrid_0_003.mp3", 3050752668, 1437910974)
Dialog.AddOption("Sure, but I have no money.", "no_money")
Dialog.Start()
vim = GetRandomSpawnByID(NPC, 270007)
FaceTarget(NPC, vim)
AddTimer(NPC, 3000, "turn_towards_player", 1, player)
end
--sent form Geredo's bow
--sends back to Geredo after Ingrid's curtsey
function FlirtWithIngrid_2(NPC, Spawn)
if GetTempVariable(NPC, "TempAnimationVar") ~= nil then
PlayFlavor(NPC, "", "", "curtsey", 0, 0)
AnimationChoice = math.random(0, 9)
local Geredo = GetSpawn(NPC, 270004)
if Geredo ~= nil then
if GetTempVariable(NPC, "TempAnimationVar") == "FirstRun" then
AddTimer(Geredo, 5000, "FlirtingWithGeredo_2")
elseif GetTempVariable(NPC, "TempAnimationVar") == "SecondRun" and AnimationChoice >= 7 then
AddTimer(Geredo, 5000, "FlirtingWithGeredo_2")
else
EmoteAnimationStart(NPC, Spawn)
end
end
end
function turn_towards_player(NPC, player)
FaceTarget(NPC, player)
end
--sent form Geredo's flirt
--sends to flustered animation next
function FlirtWithIngrid_3(NPC, Spawn)
if GetTempVariable(NPC, "TempAnimationVar") ~= nil then
PlayFlavor(NPC, "", "", "giggle", 0, 0)
AddTimer(NPC, 2500, "Ingridflustered")
end
function no_money(NPC, player)
Dialog.New(NPC, player)
Dialog.AddDialog("Maybe you have something she will buy. Why don't you go talk to her.")
Dialog.AddVoiceover("voiceover/english/ingrid/boat_06p_tutorial02/ingrid_0_004.mp3", 3978048706, 2537762235)
Dialog.AddOption("Sure.", "finished_step_four")
Dialog.Start()
end
--emotes flustered
--sends back to Geredo after Ingrid's giggle
function Ingridflustered(NPC, Spawn)
if GetTempVariable(NPC, "TempAnimationVar") ~= nil then
PlayFlavor(NPC, "", "", "flustered", 0, 0)
local Geredo = GetSpawn(NPC, 270004)
if Geredo ~= nil then
AddTimer(Geredo, 3000, "FlirtingWithGeredo_3")
end
end
end
--sent form Geredo's blowkiss
--sends back to Geredo after Ingrid's no
function FlirtWithIngrid_4(NPC, Spawn)
if GetTempVariable(NPC, "TempAnimationVar") ~= nil then
PlayFlavor(NPC, "", "", "no", 0, 0)
local Geredo = GetSpawn(NPC, 270004)
if Geredo ~= nil then
AddTimer(Geredo, 2000, "FlirtingWithGeredo_4")
end
end
end
--sent form Geredo's beg
--sends to foot tap animation
function FlirtWithIngrid_5(NPC, Spawn)
if GetTempVariable(NPC, "TempAnimationVar") ~= nil then
PlayFlavor(NPC, "", "", "tapfoot", 0, 0)
AddTimer(NPC, 3000, "IngridTapFoot")
end
end
--emotes foot tap
--sends back to Geredo after Ingrid's shrug
function IngridTapFoot(NPC, Spawn)
if GetTempVariable(NPC, "TempAnimationVar") ~= nil then
PlayFlavor(NPC, "", "", "shrug", 0, 0)
if GetTempVariable(NPC, "TempAnimationVar") == "FirstRun" then
SetTempVariable(NPC, "TempAnimationVar", "SecondRun")
end
AddTimer(NPC, 5000, "EmoteAnimationStart")
end
end
function CaptainCallingIngrid(NPC, Spawn)
if GetTempVariable(NPC, "TempAnimationVar") == nil then
MoveToLocation(NPC, 2.47, -2.07, -3.26, 5)
end
MoveToLocation(NPC, -2.72, -2.00, -8.34, 5, nil, true)
MoveToLocation(NPC, -2.11, 1.21, -14.69, 5, nil, true)
MoveToLocation(NPC, 0.78, 1.21, -14.51, 5, nil, true)
MoveToLocation(NPC, 0.54, 1.18, -11.70, 5, nil, true)
MoveToLocation(NPC, 1.68, 1.19, -12.13, 5, "FaceCaptainVarlos", false)
end
function FaceCaptainVarlos(NPC, Spawn)
local Varlos = GetSpawn(NPC, 270000)
FaceTarget(NPC, Varlos)
if GetDistance(NPC, Varlos) >= 1.48 then
AddTimer(Varlos, 500, "TalkToCaptainVarlos", 1, Spawn)
end
end
function SaluteCaptainVarlos(NPC, Spawn)
local Varlos = GetSpawn(NPC, 270000)
PlayFlavor(NPC, "voiceover/english/ingrid/boat_06p_tutorial02/020_deckhand_ingrid_010_1637e047.mp3", "Aye, aye, Captain!", "salute", 1250282628, 237171958, Spawn)
AddTimer(Varlos, 3000, "IngridLeaveCaptain", 1, Spawn)
AddTimer(NPC, 2000, "ReturnToSpawnPoint", 1, Spawn)
end
function ReturnToSpawnPoint(NPC, Spawn)
MoveToLocation(NPC, 0.78, 1.21, -14.51, 5, nil, true)
MoveToLocation(NPC, -2.11, 1.21, -14.69, 5, nil, true)
MoveToLocation(NPC, -2.72, -2.00, -8.34, 5, nil, true)
MoveToLocation(NPC, 3.34, -2.07, -3.97, 5, nil, true)
MoveToLocation(NPC, 2.35, -2.07, -3.34, 5, nil, false)
function finished_step_four(NPC, player)
SetTutorialStep(player, 22)
SetStepComplete(player, 524, 4)
end
function respawn(NPC)
end

View file

@ -7,29 +7,12 @@
--]]
function spawn(NPC)
AddTimer(NPC, 5000, "ValikMove")
end
function ValikMove(NPC, Spawn)
MoveToLocation(NPC, -4.17, -2.02, -1.52, 2)
MoveToLocation(NPC, -5.37, -1.97, -4.22, 2)
MoveToLocation(NPC, -6.39, -1.81, -3.96, 2)
AddTimer(NPC, 30000, "ValikMove_2")
end
function ValikMove_2(NPC, Spawn)
MoveToLocation(NPC, -4.17, -2.02, -1.52, 2)
MoveToLocation(NPC, -6.62, -1.82, 5.12, 2)
AddTimer(NPC, 30000, "ValikMove")
end
function hailed(NPC, Spawn)
choice = math.random(0, 1)
FaceTarget(NPC, Spawn)
choice = math.random(0, 1)
FaceTarget(NPC, Spawn)
if choice == 1 then
PlayFlavor(NPC, "voiceover/english/valik/boat_06p_tutorial02/001_refugee_valik_002_eaf98080.mp3", "I can't wait to reach the island, dry land and dry food. Fish is only good for a while, even for a Kerran.", "", 1919549905, 2798982211)
else

View file

@ -12,23 +12,27 @@ function spawn(NPC)
end
function hailed(NPC, Spawn)
choice = math.random(0, 3)
FaceTarget(NPC, Spawn)
if choice == 0 then
PlayFlavor(NPC, "voiceover/english/merchant_vim/boat_06p_tutorial02/020_merchant_vim_hail_c5d0b965.mp3", "I have some tattered clothes for sale, want to take a look?", "agree", 1974233264, 2156679701)
elseif choice == 1 then
PlayFlavor(NPC, "voiceover/english/merchant_vim/boat_06p_tutorial02/020_merchant_vim_hail_6c0c3c22.mp3", "The Far Journey is a beautiful ship, ain't she?", "smirk", 139722646, 2672074756)
function hailed(NPC, player)
choice = math.random(1, 5)
FaceTarget(NPC, player)
if choice == 1 then
PlayFlavor(NPC, "voiceover/english/merchant_vim/boat_06p_tutorial02/020_merchant_vim_hail_c5d0b965.mp3", "I have some tattered clothes for sale, want to take a look?", "", 1974233264, 2156679701)
elseif choice == 2 then
PlayFlavor(NPC, "voiceover/english/merchant_vim/boat_06p_tutorial02/020_merchant_vim_hail_d3204929.mp3", "Looking for something sturdy to wear?", "nod", 696787059, 2593820637)
PlayFlavor(NPC, "voiceover/english/merchant_vim/boat_06p_tutorial02/020_merchant_vim_hail_6c0c3c22.mp3", "The Far Journey is a beautiful ship, ain't she?", "", 139722646, 2672074756)
elseif choice == 3 then
PlayFlavor(NPC, "voiceover/english/merchant_vim/boat_06p_tutorial02/020_merchant_vim_hail_187fc6bb.mp3", "I am busy right now...", "no", 1835666244, 487490745)
PlayFlavor(NPC, "voiceover/english/merchant_vim/boat_06p_tutorial02/020_merchant_vim_hail_d3204929.mp3", "Looking for something sturdy to wear?", "", 696787059, 2593820637)
elseif choice == 4 then
--PlayFlavor(NPC, "voiceover/english/merchant_vim/boat_06p_tutorial02/020_merchant_vim_hail_187fc6bb.mp3", "I am busy right now...", "", 1835666244, 487490745)
PlayFlavor(NPC, "voiceover/english/merchant_vim/boat_06p_tutorial02/020_merchant_vim_hail_481beac8.mp3", "I love traveling the seas... Oh! Did you need something?", "", 2187888771, 2112320089)
else
PlayFlavor(NPC, "voiceover/english/merchant_vim/boat_06p_tutorial02_fvo_005.mp3", "The Far Journey's a beautiful ship, ain't she?", "",3585442471, 604828909)
end
if GetTutorialStep(player) == 24 then
InstructionWindow(player, -1.0, "This is the merchant screen where all buying and selling takes place. Money comes in four denominations: copper, silver, gold, and platinum. Each type of coin is worth 100 times more than the previous one. For example, 100 copper pieces equals 1 silver piece. But right now, as this display shows, you have no money, so left click on the sell tab.", "voiceover/english/narrator/boat_06p_tutorial02/narrator_021_6c80e66e.mp3", 1226703760, 969427050, "tutorial_stage_25", "Click on the 'Sell' tab in the merchant window.", "pane Merchant Sell")
FlashWindow(player, "Inventory.Merchant.PlatinumCoinIcon", 8.0)
FlashWindow(player, "Inventory.Merchant.GoldCoinIcon", 8.0)
FlashWindow(player, "Inventory.Merchant.SilverCoinIcon", 8.0)
FlashWindow(player, "Inventory.Merchant.CopperCoinIcon", 8.0)
end
end
@ -36,8 +40,6 @@ function respawn(NPC)
end
function targeted(NPC, Spawn)
if GetDistance(Spawn, NPC) < 10 then
hailed(NPC, Spawn)
end
function targeted(NPC, Player)
end

View file

@ -5,16 +5,82 @@
Script Purpose :
:
--]]
require "SpawnScripts/Generic/DialogModule"
function spawn(NPC)
end
function hailed(NPC, Spawn)
FaceTarget(NPC, Spawn)
PlayFlavor(NPC, "voiceover/english/waulon/boat_06p_tutorial02/walon_0_008.mp3", "What? Can't ye see? Busy, away with ye!", "", 1608066875, 70639594)
function hailed(NPC, player)
FaceTarget(NPC, player)
if HasQuest(player, 524) == false or HasCompletedQuest(player, 524) == true then
PlayFlavor(NPC, "voiceover/english/waulon/boat_06p_tutorial02/walon_0_008.mp3", "What? Can't ye see? Busy, away with ye!", "", 1608066875, 70639594)
else
step = GetQuestStep(player, 524)
if step == 1 then
InstructionWindowGoal(player,0)
InstructionWindowClose(player)
Dialog.New(NPC, player)
Dialog.AddDialog("Wot? Oh, hey there, ye' startled me.")
Dialog.AddVoiceover("voiceover/english/waulon/boat_06p_tutorial02/walon_0_001.mp3", 814960513, 2301562586)
Dialog.AddOption("Sorry about that.", "startled_me")
Dialog.Start()
elseif step == 3 then
PlayFlavor(NPC, "voiceover/english/waulon/boat_06p_tutorial02/walon_0_004.mp3", "Where's me hat? Needs me lucky hat!", "", 2688932325, 103225044)
Dialog.New(NPC, player)
Dialog.AddDialog("Ah, me hat! Was worried. See, dis' hat gives me the luck.")
Dialog.AddVoiceover("voiceover/english/waulon/boat_06p_tutorial02/walon_0_005.mp3", 4097259098, 893296183)
Dialog.AddOption("Glad to help!", "returned_hat")
Dialog.Start()
InstructionWindowGoal(player, 0)
end
end
end
function returned_hat(NPC, player)
Dialog.New(NPC, player)
Dialog.AddDialog("Now me is safe, thanks ta' ye. Here, take this charm. Ya' may find a use for it.")
Dialog.AddVoiceover("voiceover/english/waulon/boat_06p_tutorial02/walon_0_006.mp3", 316186630, 2628530085)
Dialog.AddOption("Thanks, Waulon.", "received_charm")
Dialog.Start()
end
function returned_hat(NPC, player)
Dialog.New(NPC, player)
Dialog.AddDialog("Well now, Ingrid o'er there, can show ya' the rest of the ship. Me needs ta' plot the course ta' the isles now.")
Dialog.AddVoiceover("voiceover/english/waulon/boat_06p_tutorial02/walon_0_007.mp3", 1973137904, 2648127610)
Dialog.AddOption("Ok.", "finished_step_three")
Dialog.Start()
end
function finished_step_three(NPC, player)
SetStepComplete(player, 524, 3)
end
function startled_me(NPC, player)
Dialog.New(NPC, player)
Dialog.AddDialog("Can't seem ta' find me hat.")
Dialog.AddVoiceover("voiceover/english/waulon/boat_06p_tutorial02/walon_0_002.mp3", 1759807851, 3940656870)
Dialog.AddOption("Do you need some help?", "help_find_hat")
Dialog.Start()
end
function help_find_hat(NPC, player)
chest = GetRandomSpawnByID(NPC, 270010)
FaceTarget(NPC, chest)
Dialog.New(NPC, player)
Dialog.AddDialog("Sure! Me needs ya' ta' go lookie in them there boxes and if ye' find it, lets me know.")
Dialog.AddVoiceover("voiceover/english/waulon/boat_06p_tutorial02/walon_0_003.mp3", 2072797774, 185252141)
Dialog.AddOption("Ok.", "finished_step_one")
Dialog.Start()
end
function finished_step_one(NPC, player)
InstructionWindowGoal(player, 0)
InstructionWindowClose(player)
SetStepComplete(player, 524, 1)
end
function respawn(NPC)
end

View file

@ -0,0 +1,137 @@
--[[
Script Name : SpawnScripts/FarJourneyFreeport/a goblin.lua
Script Author : LethalEncounter
Script Date : 2020.07.02
Script Purpose :
:
--]]
function spawn(NPC)
AddTimer(NPC, 5000, "idle_loop")
end
function hailed(NPC, player)
AddTimer(NPC, 100, "idle_loop")
end
function idle_loop(NPC)
choice = math.random(0, 15)
if choice == 0 then
SendStateCommand(NPC, 217)
elseif choice == 1 then
SendStateCommand(NPC, 218)
elseif choice == 2 then
SendStateCommand(NPC, 883)
elseif choice == 3 then
SendStateCommand(NPC, 226)
elseif choice == 4 then
SendStateCommand(NPC, 296)
elseif choice == 5 then
SendStateCommand(NPC, 311)
elseif choice == 6 then
SendStateCommand(NPC, 315)
elseif choice == 7 then
SendStateCommand(NPC, 488)
elseif choice == 8 then
SendStateCommand(NPC, 519)
elseif choice == 9 then
SendStateCommand(NPC, 521)
elseif choice == 10 then
SendStateCommand(NPC, 524)
elseif choice == 11 then
SendStateCommand(NPC, 550)
elseif choice == 12 then
SendStateCommand(NPC, 632)
elseif choice == 13 then
SendStateCommand(NPC, 637)
elseif choice == 14 then
SendStateCommand(NPC, 717)
else
SendStateCommand(NPC, 82)
end
AddTimer(NPC, math.random(5000, 7000), "stop_animation")
end
function stop_animation(NPC)
SendStateCommand(NPC, 0)
if GetSpawn(NPC, 270011) == Nil then
AddTimer(NPC, 500, "run_around_loop_init")
else
AddTimer(NPC, math.random(3000, 10000), "idle_loop")
end
end
function run_around_loop_init(NPC)
MoveToLocation(NPC, 2.92, 0.57, 15.98, 5, "run_around_loop_init_pause", false)
end
function run_around_loop_init_pause(NPC)
ClearRunningLocations(NPC)
AddTimer(NPC, 700, "run_around_loop_init_continue")
end
function run_around_loop_init_continue(NPC)
MoveToLocation(NPC, 3.23, -2.07, 10.83, 5, "run_around_loop_init_finished", false)
end
function run_around_loop_init_finished(NPC)
ClearRunningLocations(NPC)
AddTimer(NPC, 100, "run_around_loop")
end
function run_around_loop(NPC)
MovementLoopAdd(NPC, -4.43, -2.07, 6.17, 5, 3, "run_around_loop_pause1")
MovementLoopAdd(NPC, -5.23, -2.01, 0.39, 5, 3, "run_around_loop_pause2")
MovementLoopAdd(NPC, -4.88, -2.06, 4.26, 5, 3, "run_around_loop_pause3")
MovementLoopAdd(NPC, 3.94, -2.07, 0.66, 5, 3, "run_around_loop_pause4")
MovementLoopAdd(NPC, 2.84, -2.07, -2.07, 5, 3, "run_around_loop_pause5")
MovementLoopAdd(NPC, 3.41, -1.99, -7.42, 5, 3, "run_around_loop_pause6")
end
function run_around_loop_pause(NPC)
choice = math.random(0, 7) --[ mostly get threaten (125) this way ]--
if choice == 0 then
SendStateCommand(NPC, 217)
elseif choice == 1 then
SendStateCommand(NPC, 226)
elseif choice == 2 then
SendStateCommand(NPC, 550)
elseif choice == 3 then
SendStateCommand(NPC, 717)
else
SendStateCommand(NPC, 125)
end
AddTimer(NPC, 2800, "run_around_loop_stop_animation")
end
function run_around_loop_pause1(NPC)
SendStateCommand(GetSpawn(NPC, 270005), 218)
run_around_loop_pause(NPC)
end
function run_around_loop_pause2(NPC)
SendStateCommand(GetSpawn(NPC, 270006), 525)
run_around_loop_pause(NPC)
end
function run_around_loop_pause3(NPC)
run_around_loop_pause(NPC)
end
function run_around_loop_pause4(NPC)
SendStateCommand(GetSpawn(NPC, 270004), 535)
run_around_loop_pause(NPC)
end
function run_around_loop_pause5(NPC)
SendStateCommand(GetSpawn(NPC, 270001), 218)
run_around_loop_pause(NPC)
end
function run_around_loop_pause6(NPC)
run_around_loop_pause(NPC)
end
function run_around_loop_stop_animation(NPC)
SendStateCommand(NPC, 0)
end

View file

@ -0,0 +1,28 @@
--[[
Script Name : SpawnScripts/FarJourneyFreeport/atreasurechest.lua
Script Author : LethalEncounter
Script Date : 2020.07.02
Script Purpose :
:
--]]
function spawn(NPC)
end
function open(NPC, Player)
SendStateCommand(NPC, 399)
AddTimer(NPC, 2000, "finished_open_animation")
if HasPendingLoot(NPC, Player) then
ShowLootWindow(Player, NPC)
DisplayText(Player, 12, "There appears to be something inside this box.")
InstructionWindow(Player, -1.0, "This screen shows the contents of the box you just opened. Left click on the loot all button to take the items from the box.", "voiceover/english/narrator/boat_06p_tutorial02/narrator_013_f0780e49.mp3", 1581263773, 1569244108, "tutorial_stage_17", "Left click on the loot all button.", "server")
SetTutorialStep(player, 16)
else
DisplayText(Player, 12, "This box is empty.")
end
end
function finished_open_animation(NPC)
SendStateCommand(NPC, 400)
end

View file

@ -10,20 +10,16 @@ function spawn(NPC)
end
function hailed(NPC, Spawn)
FaceTarget(NPC, Spawn)
SpawnSet(NPC, visual_state, 10783)
Say(NPC, "I should have changed my visual state")
function attack(NPC)
SendStateCommand(NPC, 65)
AddTimer(NPC, 40000, "drake_rain")
end
function respawn(NPC)
function drake_rain(NPC)
SendStateCommand(NPC, 910)
AddTimer(NPC, 10000, "drake_stop")
end
function startanimation(NPC, Spawn)
SpawnSet(NPC, "visual_state", "10783")
end
function stopanimation(NPC, Spawn)
SpawnSet(NPC, "visual_state", "0")
end
function drake_stop(NPC)
SendStateCommand(NPC, 33678)
end

View file

@ -0,0 +1,247 @@
--[[
Script Name : FarJourneyFreeport.lua
Script Purpose : Handles boat scripted events
Script Author : LethalEncounter
Script Date : 6/28/2020
Script Notes :
--]]
seen_step_45 = false
function signal_changed(zone, player, signal)
if signal == "sys_client_avatar_ready" and HasQuest(player, 524) == false and HasCompletedQuest(player, 524) == false then
i = 1
spawns = GetSpawnListBySpawnID(player, 270010)
repeat
spawn = GetSpawnFromList(spawns, i-1)
if spawn then
ChangeHandIcon(spawn, 0)
end
i = i + 1
until spawn == Nil
InstructionWindow(player, 10.0, "Welcome to Norrath, the world of EverQuest II. Left click on the help button at any time for more detailed help and information.", "voiceover/english/narrator/boat_06p_tutorial02/narrator_001_63779ca0.mp3", 3450229107, 2555116653, "introduction", "", "continue")
ShowWindow(player, "MainHUD.StartMenu", 1)
FlashWindow(player, "MainHUD.StartMenu.help", 10.0)
SetTutorialStep(player, 1)
end
if signal == "introduction" then
ShowWindow(player, "MainHUD.StartMenu", 0)
InstructionWindow(player, -1.0, "EverQuest II can be played in either a third person view, which you see now, or from a first person perspective. Scrolling the mouse wheel or pressing the F9 key will change your view. Try changing your view now.", "voiceover/english/narrator/boat_06p_tutorial02/narrator_002_57cbfd77.mp3", 3053902814, 2060319388, "camera_control", "Switch the camera view to first-person. (mouse wheel up)", "camera firstperson", "Switch the camera view to third-person. (mouse wheel down)", "camera thirdperson")
SetTutorialStep(player, 2)
end
if signal == "camera_control" then
InstructionWindow(player, -1.0, "The first thing you need to know how to do is look around using the mouse. Hold down the right mouse button and move the mouse right and left. Notice that moving your mouse up and down will make you look in those directions as well.", "voiceover/english/narrator/boat_06p_tutorial02/narrator_003_a3b38888.mp3", 130321605, 3870508467, "tutorial_stage_4", "Look to the left (hold right mouse button and move the mouse left)", "mouselook left", "Look to the right (hold right mouse button and move the mouse right)", "mouselook right", "Look up (hold right mouse button and move the mouse up)", "mouselook up", "Look down (hold right mouse button and move the mouse down)", "mouselook down")
SetTutorialStep(player, 3)
end
if signal == "tutorial_stage_4" and GetTutorialStep(player) == 3 then
InstructionWindow(player, -1.0, "Use the A, S, W, and D keys for basic movement. These keys cause you to turn left and right as well as to move forward and back.", "voiceover/english/narrator/boat_06p_tutorial02/narrator_004_ff730a9b.mp3", 825281976, 127545929, "tutorial_stage_5", "Turn left. (press the A key)", "move turnleft", "Turn right. (press the D key)", "move turnright", "Move forward. (press the W key)", "move forward", "Move backward. (press the S key)", "move back")
SetTutorialStep(player, 4)
end
if signal == "tutorial_stage_5" and GetTutorialStep(player) == 4 then
InstructionWindow(player, -1.0, "Double left click on Captain Varlos to interact with him.", "", 0, 0, "tutorial_stage_6", "", "server")
SetTutorialStep(player, 5)
end
if signal == "tutorial_stage_9" and GetTutorialStep(player) == 8 then
ShowWindow(player, "MainHUD.StartMenu", 0)
FlashWindow(player, "MainHUD.StartMenu.quest_journal", 0.0)
InstructionWindow(player, -1.0, "The quest journal will keep track of all important quest information for you.", "voiceover/english/narrator/boat_06p_tutorial02/narrator_008_dea98146.mp3", 1585802421, 4158930887, "tutorial_stage_10", "", "continue")
SetTutorialStep(player, 9)
end
if signal == "tutorial_stage_10" and GetTutorialStep(player) == 9 then
FlashWindow(player, "Journals.ActiveQuest", 6.5)
InstructionWindow(player, -1.0, "This is your quest helper. It displays the current step of your active quest.", "voiceover/english/narrator/boat_06p_tutorial02/narrator_009_7270f5ed.mp3", 1886677883, 3646680727, "tutorial_stage_13", "", "continue")
SetTutorialStep(player, 10)
end
if (signal == "tutorial_stage_13" and GetTutorialStep(player) == 10) or (signal == "sys_client_avatar_ready" and HasQuest(player, 524) == true and GetQuestStep(player, 524) == 1) then
InstructionWindow(player, -1.0, "Place your mouse pointer on Waulon. Notice that your mouse pointer changes shape. This indicates what the normal action of a double left click on that object or person will do. In this case you will hail Waulon. Double left click on Waulon now.", "voiceover/english/narrator/boat_06p_tutorial02/narrator_010_73e16723.mp3", 1311374862, 3104741396, "tutorial_stage_14", "Double left click on Waulon to hail him.", "server")
ShowWindow(player, "Journals.JournalsQuest", 0)
SetTutorialStep(player, 13)
end
if (signal == "tutorial_stage_15" and GetTutorialStep(player) == 14) or (signal == "sys_client_avatar_ready" and HasQuest(player, 524) == true and GetQuestStep(player, 524) == 2) then
InstructionWindow(player, -1.0, "Move your mouse pointer over the boxes. Notice that your mouse pointer changes shape again, and the boxes start to glow. Double left click to open each of the boxes.", "voiceover/english/narrator/boat_06p_tutorial02/narrator_012_9ba468fb.mp3", 1009896073, 25784171, "tutorial_stage_16", "Double left click on a box to open it.", "server")
SetTutorialStep(player, 15)
end
if signal == "tutorial_stage_18" and GetTutorialStep(player) == 16 then
ShowWindow(player, "Inventory.Inventory", 0)
InstructionWindow(player, -1.0, "Managing your inventory and equipment is very important. It is how you use all of the gear that you will find on your adventures. Left click on the inventory button.", "voiceover/english/narrator/boat_06p_tutorial02/narrator_015_46f20016.mp3", 2394903675, 552673556, "tutorial_stage_19", "Open your inventory. (click on the inventory button)", "open Inventory")
ShowWindow(player, "MainHUD.StartMenu", 1)
FlashWindow(player, "MainHUD.StartMenu.inventory", 16.0)
SetTutorialStep(player, 18)
end
if signal == "tutorial_stage_19" and GetTutorialStep(player) == 18 then
ShowWindow(player, "MainHUD.StartMenu", 0)
FlashWindow(player, "MainHUD.StartMenu.inventory", 0.0)
InstructionWindow(player, -1.0, "This is your inventory. These slots represent available space to carry items.", "voiceover/english/narrator/boat_06p_tutorial02/narrator_016_3f62b542.mp3", 2423921165, 856268766, "tutorial_stage_20", "", "continue")
ShowWindow(player, "Inventory.Inventory", 1)
FlashWindow(player, "Inventory.Inventory.GeneralPage.InvSlot0", 6.0)
FlashWindow(player, "Inventory.Inventory.GeneralPage.InvSlot1", 6.0)
FlashWindow(player, "Inventory.Inventory.GeneralPage.InvSlot2", 6.0)
FlashWindow(player, "Inventory.Inventory.GeneralPage.InvSlot3", 6.0)
FlashWindow(player, "Inventory.Inventory.GeneralPage.InvSlot4", 6.0)
FlashWindow(player, "Inventory.Inventory.GeneralPage.InvSlot5", 6.0)
SetTutorialStep(player, 19)
end
if (signal == "tutorial_stage_20" and GetTutorialStep(player) == 19) or (signal == "sys_client_avatar_ready" and HasQuest(player, 524) == true and GetQuestStep(player, 524) == 3) then
InstructionWindow(player, -1.0, "This is your equipment. These slots represent the locations you can equip with armor, weapons, jewelry, and other items. Double left click on the tunic in your inventory.", "voiceover/english/narrator/boat_06p_tutorial02/narrator_017_d8bd9733.mp3", 598366253, 952105390, "tutorial_stage_21", "Double left click on the threadbare tunic to equip it.", "server")
FlashWindow(player, "Inventory.Inventory.EquipmentPage.EqSlot0", 8.0)
FlashWindow(player, "Inventory.Inventory.EquipmentPage.EqSlot1", 8.0)
FlashWindow(player, "Inventory.Inventory.EquipmentPage.EqSlot2", 8.0)
FlashWindow(player, "Inventory.Inventory.EquipmentPage.EqSlot3", 8.0)
FlashWindow(player, "Inventory.Inventory.EquipmentPage.EqSlot4", 8.0)
FlashWindow(player, "Inventory.Inventory.EquipmentPage.EqSlot5", 8.0)
FlashWindow(player, "Inventory.Inventory.EquipmentPage.EqSlot6", 8.0)
FlashWindow(player, "Inventory.Inventory.EquipmentPage.EqSlot7", 8.0)
FlashWindow(player, "Inventory.Inventory.EquipmentPage.EqSlot8", 8.0)
FlashWindow(player, "Inventory.Inventory.EquipmentPage.EqSlot9", 8.0)
FlashWindow(player, "Inventory.Inventory.EquipmentPage.EqSlot10", 8.0)
FlashWindow(player, "Inventory.Inventory.EquipmentPage.EqSlot11", 8.0)
FlashWindow(player, "Inventory.Inventory.EquipmentPage.EqSlot12", 8.0)
FlashWindow(player, "Inventory.Inventory.EquipmentPage.EqSlot13", 8.0)
FlashWindow(player, "Inventory.Inventory.EquipmentPage.EqSlot14", 8.0)
FlashWindow(player, "Inventory.Inventory.EquipmentPage.EqSlot15", 8.0)
FlashWindow(player, "Inventory.Inventory.EquipmentPage.EqSlot16", 8.0)
FlashWindow(player, "Inventory.Inventory.EquipmentPage.EqSlot17", 8.0)
FlashWindow(player, "Inventory.Inventory.EquipmentPage.EqSlot18", 8.0)
FlashWindow(player, "Inventory.Inventory.EquipmentPage.EqSlot19", 8.0)
FlashWindow(player, "Inventory.Inventory.EquipmentPage.EqSlot20", 8.0)
FlashWindow(player, "Inventory.Inventory.EquipmentPage.EqSlot21", 8.0)
SetTutorialStep(player, 20)
end
if signal == "tutorial_stage_21" and GetTutorialStep(player) == 20 then
InstructionWindow(player, -1.0, "Notice the tunic now occupies the chest equipment slot and you are now wearing it.", "voiceover/english/narrator/boat_06p_tutorial02/narrator_018_8786e939.mp3", 3902294834, 2836623234, "tutorial_stage_22", "", "continue")
FlashWindow(player, "Inventory.Inventory.EquipmentPage.EqSlot3", 6.0)
SetTutorialStep(player, 21)
end
if signal == "tutorial_stage_22" and GetTutorialStep(player) == 21 then
FlashWindow(player, "Inventory.Inventory.EquipmentPage.Chest3", 0.0)
InstructionWindow(player, -1.0, "Waulon is waiting for you to return with his hat. Close your inventory window and go talk to him. Remember, double left clicking on Waulon will start the conversation.", "voiceover/english/narrator/boat_06p_tutorial02/narrator_019_9da1b75d.mp3", 741062937, 535829184, "tutorial_stage_23", "Double left click on Waulon to hail him.", "server")
end
if signal == "sys_client_avatar_ready" and HasQuest(player, 524) == true and GetQuestStep(player, 524) == 5 then
InstructionWindow(player, -1.0, "A merchant is a special type of character who buys and sells things. Find and double left click on Merchant Vim to start a transaction.", "voiceover/english/narrator/boat_06p_tutorial02/narrator_020_6ea052d3.mp3", 4250953579, 3003156164, "tutorial_stage_24", "Double left click on Merchant Vim.", "server")
SetTutorialStep(player, 24)
end
if signal == "tutorial_stage_25" and GetTutorialStep(player) == 24 then
InstructionWindow(player, -1.0, "The sell tab displays the items in your inventory that a merchant is interested in and how much they will pay for each item. Different merchants are interested in different things, and the price they will pay varies.", "voiceover/english/narrator/boat_06p_tutorial02/narrator_022_11c56393.mp3", 3020037974, 1310705478, "tutorial_stage_26", "", "continue")
SetTutorialStep(player, 25)
end
if signal == "tutorial_stage_26" and GetTutorialStep(player) == 25 then
InstructionWindow(player, -1.0, "Congratulations. Now left click on the buy tab", "voiceover/english/narrator/boat_06p_tutorial02/narrator_024_d8a4efd6.mp3", 2701661062, 119120428, "tutorial_stage_28", "Click on the 'Buy' tab in the merchant window.", "pane Merchant Buy")
SetTutorialStep(player, 26)
end
if signal == "tutorial_stage_28" and GetTutorialStep(player) == 26 then
InstructionWindow(player, -1.0, "Double left click on the Shard of Luclin.", "voiceover/english/narrator/boat_06p_tutorial02/narrator_025_fae8d9aa.mp3", 2465701012, 531235298, "tutorial_stage_30", "Double left click on the Shard of Luclin.", "server")
SetTutorialStep(player, 28)
end
if signal == "equipping_weapons" then
SetTutorialStep(player, 34)
ShowWindow(player, "MainHUD.StartMenu", 0)
FlashWindow(player, "MainHUD.StartMenu.inventory", 0.0)
InstructionWindow(player, -1.0, "This is an action menu. Right clicking on any character, item, or interface element will bring up the action menu for that object.", "voiceover/english/narrator/boat_06p_tutorial02/narrator_029_759b20ee.mp3", 2551751095, 1683887648, "tutorial_stage_35", "Right click on an item in your inventory.", "open RadialMenu")
ShowWindow(player, "Inventory.Inventory", 1)
end
if signal == "tutorial_stage_35" then
SetTutorialStep(player, 35)
InstructionWindow(player, -1.0, "Left click on the examine action.", "voiceover/english/narrator/boat_06p_tutorial02/narrator_030_ae336060.mp3", 1661740791, 1051227725, "tutorial_stage_36", "Right click on an item, then left click on the examine button.", "open ExamineItem")
end
if signal == "tutorial_stage_36" then
SetTutorialStep(player, 36)
InstructionWindow(player, -1.0, "This window shows the detailed specifics about an item. Notice that the name of the item is white. This indicates that the item is a good match for you. If an item's name ever turns grey, you will want to replace it with a better version. A red name indicates that the item is either unusable by your character class or out of your level range.", "voiceover/english/narrator/boat_06p_tutorial02/narrator_030_ae336060.mp3", 1307292988, 58658687, "tutorial_stage_37", "", "continue")
end
if signal == "tutorial_stage_37" then
SetTutorialStep(player, 37)
InstructionWindow(player, -1.0, "Left clicking and dragging on an item will pick that item up and allow you to move it from one slot to another. Pick up the club.", "voiceover/english/narrator/boat_06p_tutorial02/narrator_032_c4d45830.mp3", 1069757593, 1169701151, "tutorial_stage_38", "", "continue")
end
if signal == "tutorial_stage_38" then
SetTutorialStep(player, 38)
InstructionWindow(player, -1.0, "Releasing the mouse button over an available slot will drop the item again.", "voiceover/english/narrator/boat_06p_tutorial02/narrator_033_7310c971.mp3", 329734483, 2927325554, "tutorial_stage_39", "", "continue")
end
if signal == "tutorial_stage_39" then
SetTutorialStep(player, 39)
InstructionWindow(player, -1.0, "If you drag and drop items onto the paper doll display, your character will attempt to equip that item. If the item cannot be equipped, it will automatically be stored into the first available inventory slot. Try auto-equipping the club.", "voiceover/english/narrator/boat_06p_tutorial02/narrator_034_cb993d34.mp3", 2169570288, 2277767239, "tutorial_stage_40", "Left click and hold down the mouse button on the splintered club, then drag it to your character display.", "server")
FlashWindow(player, "Inventory.Inventory.EquipmentPage.PaperDoll", 6.0)
end
if (signal == "tutorial_stage_40" and GetTutorialStep(player) == 39) or (signal == "sys_client_avatar_ready" and HasQuest(player, 524) == true and GetQuestStep(player, 524) == 8) then
SetTutorialStep(player, 40)
InstructionWindow(player, -1.0, "Before approaching a potential enemy, you should evaluate a few things. This is your health display. As you are injured, your health decreases. If it runs out completely you will collapse and could die. It is very important to keep an eye on your health at all times.", "voiceover/english/narrator/boat_06p_tutorial02/narrator_036_ff1a8605.mp3", 4286041154, 293958730, "tutorial_stage_42", "", "continue")
FlashWindow(player, "MainHUD.Player.HealthBar", 18.0)
FlashWindow(player, "MainHUD.Player.Name", 18.0)
end
if signal == "tutorial_stage_42" then
SetTutorialStep(player, 42)
FlashWindow(player, "MainHUD.Player.HealthBar", 0.0)
FlashWindow(player, "MainHUD.Player.Name", 0.0)
InstructionWindow(player, -1.0, "It is also important to consider how powerful your opponent is. Place your mouse cursor onto the rat.", "voiceover/english/narrator/boat_06p_tutorial02/narrator_037_e7c85534.mp3", 1222496721, 345453852, "tutorial_stage_42.5", "", "continue")
end
if signal == "tutorial_stage_42.5" then
InstructionWindow(player, -1.0, "Notice the mouse pointer changes color. This color indicates how difficult an opponent is. The cursor is white, which means that the rat is an even fight. Easier fights will be green or blue, meaning that these creatures are lower level than you. More difficult, higher level fights will be yellow, orange or red. Looks however, can be deceiving. Some creatures are very powerful for their size, and may require a group to conquer.", "voiceover/english/narrator/boat_06p_tutorial02/narrator_038_19982dd.mp3", 1535688531, 2987489092, "tutorial_stage_43", "", "continue")
end
if signal == "tutorial_stage_43" then
SetTutorialStep(player, 43)
InstructionWindow(player, -1.0, "Notice his name is now flashing and there is a large targeting ring on the ground below him. This indicates that the rat is now your target.", "voiceover/english/narrator/boat_06p_tutorial02/narrator_040_1e780c5b.mp3", 2045181958, 2230466907, "tutorial_stage_44.5", "", "continue")
FlashWindow(player, "MainHUD.Target.HealthBar", 12.0)
FlashWindow(player, "MainHUD.Target.Name", 12.0)
end
if signal == "tutorial_stage_44.5" then
SetTutorialStep(player, 44)
FlashWindow(player, "MainHUD.Player.HealthBar", 0.0)
FlashWindow(player, "MainHUD.Player.Name", 0.0)
InstructionWindow(player, -1.0, "You can see both the health and level of your target in the target display. You will also notice a downward pointing arrow above the rat's health bar. This means that it is a below average difficulty opponent and can be defeated by a single player. Opponents can range from three downward arrows (a very weak opponent) to three upward arrows (a heroic opponent requiring a group of players to defeat). An opponent that indicates no arrows at all is considered to be of average difficulty.", "", 0, 0, "tutorial_stage_45", "", "continue")
FlashWindow(player, "MainHUD.Target.HealthBar", 12.0)
FlashWindow(player, "MainHUD.Target.Name", 12.0)
end
if signal == "tutorial_stage_45" then
SetTutorialStep(player, 45)
FlashWindow(player, "MainHUD.Player.HealthBar", 0.0)
FlashWindow(player, "MainHUD.Player.Name", 0.0)
InstructionWindow(player, -1.0, "Place your mouse pointer over the target box. The tool-tip will show you detailed information about the target and its encounter.", "voiceover/english/narrator/boat_06p_tutorial02/narrator_040_1e780c5b.mp3", 0, 9, "tutorial_stage_45.5", "", "continue")
FlashWindow(player, "MainHUD.Target.HealthBar", 12.0)
FlashWindow(player, "MainHUD.Target.Name", 12.0)
end
if signal == "tutorial_stage_45.5" then
FlashWindow(player, "MainHUD.Player.HealthBar", 0.0)
FlashWindow(player, "MainHUD.Player.Name", 0.0)
InstructionWindow(player, -1.0, "It's time for some adventure. Double left click on the rat to attack it.", "voiceover/english/narrator/boat_06p_tutorial02/narrator_042_791576f2.mp3", 1866452922, 760329708, "tutorial_stage_46", "Double left click on the rat.", "server")
end
if signal == "tutorial_stage_47" then
SetTutorialStep(player, 47)
InstructionWindow(player, 10.0, "Always be sure to take everything you can from a fallen opponent. Many seemingly worthless items can be valuable to merchants or other players.", "voiceover/english/narrator/boat_06p_tutorial02/narrator_044_dc34536.mp3", 4221017573, 1055524726, "tutorial_stage_48", "", "continue")
end
if signal == "tutorial_stage_48" then
SetTutorialStep(player, 48)
InstructionWindow(player, -1.0, "Congratulations! As you see, you also earn experience and rewards for defeating enemies.", "voiceover/english/narrator/boat_06p_tutorial02/narrator_045_db304a48.mp3", 3903602846, 3454863851, "tutorial_stage_49", "", "continue")
end
if signal == "tutorial_stage_50" then
SetTutorialStep(player, 50)
InstructionWindow(player, -1.0, "Notice that your experience point display is now empty, and your maximum health and power have increased.", "voiceover/english/narrator/boat_06p_tutorial02/narrator_047_5c382a71.mp3", 1130515024, 564825664, "tutorial_stage_51", "", "continue")
FlashWindow(player, "MainHUD.Player.HealthBarBkg", 6.0)
FlashWindow(player, "MainHUD.Player.ManaBarBkg", 6.0)
FlashWindow(player, "MainHUD.Player.Name", 6.0)
FlashWindow(spawn, "MainHUD.Experience", 3.0)
end
end
function item_equipped(zone, player, item_id, item_name, item_unique_id)
if item_name == "threadbare tunic" then
InstructionWindowGoal(player, 0)
elseif item_name == "splintered club" then
InstructionWindowClose(player)
FlashWindow(player, "Inventory.Inventory.EquipmentPage.PaperDoll", 0.0)
InstructionWindow(player, -1.0, "Now, go and complete the quest that the Captain gave to you.", "voiceover/english/narrator/boat_06p_tutorial02/narrator_035_acb2990a.mp3", 395837788, 2869210055, "tutorial_stage_40", "", "continue")
end
end
function item_unequipped(zone, player, item_id, item_name, item_unique_id)
end
function spawn_killed(zone, dead, killer)
if seen_step_45 == false and GetName(dead) == "a rat" then
InstructionWindowClose(killer)
InstructionWindow(killer, 8.0, "Double click on the dead rat to search its body for valuables.", "voiceover/english/narrator/boat_06p_tutorial02/narrator_043_a33564f1.mp3", 2552146487, 2098243078, "tutorial_stage_47", "Double left click on the corpse of a rat.", "open Loot")
seen_step_45 = true
end
SendStateCommand(GetSpawn(killer, 270001), 0)
SendStateCommand(GetSpawn(killer, 270004), 0)
SendStateCommand(GetSpawn(killer, 270005), 0)
SendStateCommand(GetSpawn(killer, 270007), 0)
end

View file

@ -0,0 +1,13 @@
--[[
Script Name : IsleOfRefuge.lua
Script Purpose : Handles Isle of Refuge events
Script Author : LethalEncounter
Script Date : 9/06/2020
Script Notes :
--]]
function signal_changed(zone, player, signal)
if signal == "sys_client_avatar_ready" and HasQuest(player, 1) == false and HasCompletedQuest(player, 1) == false then
InstructionWindow(player, -1.0, "Garven Tralk can guide you on what to do next.", "voiceover/english/narrator/tutorial_island02/narrator_031_328946a9.mp3", 933085482, 646811402, "tutorial_stage_52", "", "continue")
end
end