project-meteor-server/data/scripts/unique/fst0Town01a/PopulaceStandard/kinnison.lua
CuriousJorge 3145ec5663 "Seeing the Seers" quest etc3g0 scripted, no reward handling currently. Requires actor "Nellaure" (http://ffxiv.gamerescape.com/w/index.php?title=Nellaure) to be added in. Hangs out in back-right corner of Carpenter's Guild.
Added a quest completion check to etc5g0.lua to prevent it showing "!" on quest-givers' head when you've cleared the quest already.
Fixed regression on select GM commands, !warp instant-warps within same zone again, !mypos reports to the thousandths place, !speed command works with one argument again.
2017-04-05 18:39:04 -04:00

66 lines
2.6 KiB
Lua

require ("global")
require ("quests/etc/etc3g0")
function onSpawn(player, npc)
if (player:HasQuest("Etc3g0") == true and player:GetQuest("Etc3g0"):GetPhase() == 243) then
npc:SetQuestGraphic(player, 0x4);
elseif (canAcceptQuest(player)) then
npc:SetQuestGraphic(player, 0x2);
else
npc:SetQuestGraphic(player, 0x0);
end
end
function onEventStarted(player, npc)
defaultFst = GetStaticActor("DftFst");
quest = GetStaticActor("Etc3g0");
if ((canAcceptQuest(player) == true) or (player:HasQuest("Etc3g0") == true)) then
unknown, result = callClientFunction(player, "switchEvent", defaultFst, quest, nil, nil, 1, 1, 0x3f1);
if (result == 1) then
callClientFunction(player, "delegateEvent", player, defaultFst, "defaultTalkWithKinnison_001", -1, -1);
elseif (result == 2) then
if (player:HasQuest("Etc3g0") == false) then
offerQuestResult = callClientFunction(player, "delegateEvent", player, quest, "processEventOffersStart");
if (offerQuestResult == 1) then
player:AddQuest("Etc3g0");
npc:SetQuestGraphic(player, 0x0);
-- This is to overcome some weirdness where some NPCs are not updating their quest marker upon quest accepted
-- So we're just going to force the change to be sure
mestonnaux = GetWorldManager():GetActorInWorldByUniqueId("mestonnaux");
sybell = GetWorldManager():GetActorInWorldByUniqueId("sybell");
khuma_moshroca = GetWorldManager():GetActorInWorldByUniqueId("khuma_moshroca");
lefwyne = GetWorldManager():GetActorInWorldByUniqueId("lefwyne");
nellaure = GetWorldManager():GetActorInWorldByUniqueId("nellaure");
if (mestonnaux ~= nil) then mestonnaux:SetQuestGraphic(player, 0x2); end
if (sybell ~= nil) then sybell:SetQuestGraphic(player, 0x2); end
if (khuma_moshroca ~= nil) then khuma_moshroca:SetQuestGraphic(player, 0x2); end
if (lefwyne ~= nil) then lefwyne:SetQuestGraphic(player, 0x2); end
if (nellaure ~= nil) then nellaure:SetQuestGraphic(player, 0x2); end
end
else
ownedQuest = player:GetQuest("Etc3g0");
if (ownedQuest:GetPhase() == 243) then
callClientFunction(player, "delegateEvent", player, quest, "processEventClear");
callClientFunction(player, "delegateEvent", player, quest, "sqrwa", 200, 1, 1, 9);
player:CompleteQuest("Etc3g0");
npc:SetQuestGraphic(player, 0x0);
else
callClientFunction(player, "delegateEvent", player, quest, "processEventOffersAfter");
end
end
end
else
callClientFunction(player, "delegateEvent", player, defaultFst, "defaultTalkWithKinnison_001", -1, -1);
end
player:endEvent();
end