mirror of
https://bitbucket.org/Ioncannon/project-meteor-server.git
synced 2025-06-10 22:44:36 +02:00
"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.
This commit is contained in:
parent
4bb222a47a
commit
3145ec5663
11 changed files with 363 additions and 54 deletions
|
@ -1,7 +1,54 @@
|
|||
require ("global")
|
||||
require ("quests/etc/etc3g0")
|
||||
|
||||
function onSpawn(player, npc)
|
||||
|
||||
if (player:HasQuest("Etc3g0") == true and player:GetQuest("Etc3g0"):GetPhase() == 0) then
|
||||
if player:GetQuest("Etc3g0"):GetQuestFlag(FLAG_TALKED_KHUMA_MOSHROCA) == false then
|
||||
npc:SetQuestGraphic(player, 0x2);
|
||||
else
|
||||
npc:SetQuestGraphic(player, 0x0);
|
||||
end
|
||||
else
|
||||
npc:SetQuestGraphic(player, 0x0);
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
|
||||
|
||||
function onEventStarted(player, npc)
|
||||
defaultFst = GetStaticActor("DftFst");
|
||||
callClientFunction(player, "delegateEvent", player, defaultFst, "defaultTalkWithKhuma_moshroca_001", nil, nil, nil);
|
||||
|
||||
defaultFst = GetStaticActor("DftFst");
|
||||
quest = GetStaticActor("Etc3g0");
|
||||
|
||||
if (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, "defaultTalkWithKhumamoshroca_001", nil, nil, nil);
|
||||
elseif (result == 2) then
|
||||
ownedQuest = player:GetQuest("Etc3g0");
|
||||
|
||||
if (ownedQuest:GetQuestFlag(FLAG_TALKED_KHUMA_MOSHROCA)) == false then
|
||||
callClientFunction(player, "delegateEvent", player, quest, "processEventKhumaSpeak", nil, nil, nil);
|
||||
ownedQuest:SetQuestFlag(FLAG_TALKED_KHUMA_MOSHROCA, true);
|
||||
ownedQuest:SaveData();
|
||||
npc:SetQuestGraphic(player, 0x0);
|
||||
checkNextPhase(player);
|
||||
else
|
||||
callClientFunction(player, "delegateEvent", player, quest, "processEventKhumaSpeakAfter", nil, nil, nil);
|
||||
end
|
||||
end
|
||||
|
||||
else
|
||||
callClientFunction(player, "delegateEvent", player, defaultFst, "defaultTalkWithKhumamoshroca_001", nil, nil, nil);
|
||||
end
|
||||
|
||||
|
||||
player:endEvent();
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -3,40 +3,64 @@ require ("quests/etc/etc3g0")
|
|||
|
||||
function onSpawn(player, npc)
|
||||
|
||||
if (player:HasQuest("Etc3g0") == false and player:GetQuest("Etc3g0"):GetQuestFlag(TALKED_4)) then
|
||||
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
|
||||
|
||||
end
|
||||
|
||||
function onEventStarted(player, npc)
|
||||
|
||||
defaultFst = GetStaticActor("DftFst");
|
||||
quest = GetStaticActor("Etc3g0");
|
||||
|
||||
unknown, result = callClientFunction(player, "switchEvent", defaultFst, quest, nil, nil, 1, 1, 0x3f1);
|
||||
if ((canAcceptQuest(player) == true) or (player:HasQuest("Etc3g0") == true)) then
|
||||
|
||||
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);
|
||||
end
|
||||
else
|
||||
ownedQuest = player:GetQuest("Etc3g0");
|
||||
if (ownedQuest:GetPhase() == 1) then
|
||||
callClientFunction(player, "delegateEvent", player, quest, "processEventClear");
|
||||
callClientFunction(player, "delegateEvent", player, quest, "sqrwa", 200, 1, 1, 9);
|
||||
player:CompleteQuest("Etc3g0");
|
||||
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
|
||||
callClientFunction(player, "delegateEvent", player, quest, "processEventOffersAfter");
|
||||
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
|
||||
end
|
||||
else
|
||||
callClientFunction(player, "delegateEvent", player, defaultFst, "defaultTalkWithKinnison_001", -1, -1);
|
||||
end
|
||||
|
||||
player:endEvent();
|
||||
end
|
|
@ -1,7 +1,53 @@
|
|||
require ("global")
|
||||
require ("quests/etc/etc3g0")
|
||||
|
||||
function onSpawn(player, npc)
|
||||
|
||||
if (player:HasQuest("Etc3g0") == true and player:GetQuest("Etc3g0"):GetPhase() == 0) then
|
||||
if player:GetQuest("Etc3g0"):GetQuestFlag(FLAG_TALKED_LEFWYNE) == false then
|
||||
npc:SetQuestGraphic(player, 0x2);
|
||||
else
|
||||
npc:SetQuestGraphic(player, 0x0);
|
||||
end
|
||||
else
|
||||
npc:SetQuestGraphic(player, 0x0);
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
|
||||
|
||||
function onEventStarted(player, npc)
|
||||
defaultFst = GetStaticActor("DftFst");
|
||||
callClientFunction(player, "delegateEvent", player, defaultFst, "defaultTalkWithLefwyne_001", nil, nil, nil);
|
||||
|
||||
defaultFst = GetStaticActor("DftFst");
|
||||
quest = GetStaticActor("Etc3g0");
|
||||
|
||||
if (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, "defaultTalkWithLefwyne_001", nil, nil, nil);
|
||||
elseif (result == 2) then
|
||||
ownedQuest = player:GetQuest("Etc3g0");
|
||||
|
||||
if (ownedQuest:GetQuestFlag(FLAG_TALKED_LEFWYNE)) == false then
|
||||
callClientFunction(player, "delegateEvent", player, quest, "processEventLefwyneSpeak", nil, nil, nil);
|
||||
ownedQuest:SetQuestFlag(FLAG_TALKED_LEFWYNE, true);
|
||||
ownedQuest:SaveData();
|
||||
npc:SetQuestGraphic(player, 0x0);
|
||||
checkNextPhase(player);
|
||||
else
|
||||
callClientFunction(player, "delegateEvent", player, quest, "processEventLefwyneSpeakAfter", nil, nil, nil);
|
||||
end
|
||||
end
|
||||
|
||||
else
|
||||
callClientFunction(player, "delegateEvent", player, defaultFst, "defaultTalkWithLefwyne_001", nil, nil, nil);
|
||||
end
|
||||
|
||||
player:endEvent();
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -1,7 +1,54 @@
|
|||
require ("global")
|
||||
require ("quests/etc/etc3g0")
|
||||
|
||||
function onSpawn(player, npc)
|
||||
|
||||
if (player:HasQuest("Etc3g0") == true and player:GetQuest("Etc3g0"):GetPhase() == 0) then
|
||||
if player:GetQuest("Etc3g0"):GetQuestFlag(FLAG_TALKED_MESTONNAUX) == false then
|
||||
npc:SetQuestGraphic(player, 0x2);
|
||||
else
|
||||
npc:SetQuestGraphic(player, 0x0);
|
||||
end
|
||||
else
|
||||
npc:SetQuestGraphic(player, 0x0);
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
|
||||
|
||||
function onEventStarted(player, npc)
|
||||
defaultFst = GetStaticActor("DftFst");
|
||||
callClientFunction(player, "delegateEvent", player, defaultFst, "defaultTalkWithMestonnaux_001", nil, nil, nil);
|
||||
|
||||
defaultFst = GetStaticActor("DftFst");
|
||||
quest = GetStaticActor("Etc3g0");
|
||||
|
||||
if (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, "defaultTalkWithMestonnaux_001", nil, nil, nil);
|
||||
elseif (result == 2) then
|
||||
ownedQuest = player:GetQuest("Etc3g0");
|
||||
|
||||
if (ownedQuest:GetQuestFlag(FLAG_TALKED_MESTONNAUX)) == false then
|
||||
callClientFunction(player, "delegateEvent", player, quest, "processEventMestonnauxSpeak", nil, nil, nil);
|
||||
ownedQuest:SetQuestFlag(FLAG_TALKED_MESTONNAUX, true);
|
||||
ownedQuest:SaveData();
|
||||
npc:SetQuestGraphic(player, 0x0);
|
||||
checkNextPhase(player);
|
||||
else
|
||||
callClientFunction(player, "delegateEvent", player, quest, "processEventMestonnauxSpeakAfter", nil, nil, nil);
|
||||
end
|
||||
end
|
||||
|
||||
else
|
||||
callClientFunction(player, "delegateEvent", player, defaultFst, "defaultTalkWithMestonnaux_001", nil, nil, nil);
|
||||
end
|
||||
|
||||
|
||||
player:endEvent();
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -0,0 +1,51 @@
|
|||
require ("global")
|
||||
require ("quests/etc/etc3g0")
|
||||
|
||||
function onSpawn(player, npc)
|
||||
|
||||
if (player:HasQuest("Etc3g0") == true and player:GetQuest("Etc3g0"):GetPhase() == 0) then
|
||||
if player:GetQuest("Etc3g0"):GetQuestFlag(FLAG_TALKED_NELLAURE) == false then
|
||||
npc:SetQuestGraphic(player, 0x2);
|
||||
else
|
||||
npc:SetQuestGraphic(player, 0x0);
|
||||
end
|
||||
else
|
||||
npc:SetQuestGraphic(player, 0x0);
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
|
||||
|
||||
function onEventStarted(player, npc)
|
||||
|
||||
defaultFst = GetStaticActor("DftFst");
|
||||
quest = GetStaticActor("Etc3g0");
|
||||
|
||||
if (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, "defaultTalkWithNellaure_001", nil, nil, nil);
|
||||
elseif (result == 2) then
|
||||
ownedQuest = player:GetQuest("Etc3g0");
|
||||
|
||||
if (ownedQuest:GetQuestFlag(FLAG_TALKED_NELLAURE)) == false then
|
||||
callClientFunction(player, "delegateEvent", player, quest, "processEventNellaureSpeak", nil, nil, nil);
|
||||
ownedQuest:SetQuestFlag(FLAG_TALKED_NELLAURE, true);
|
||||
ownedQuest:SaveData();
|
||||
npc:SetQuestGraphic(player, 0x0);
|
||||
checkNextPhase(player);
|
||||
else
|
||||
callClientFunction(player, "delegateEvent", player, quest, "processEventNellaureSpeakAfter", nil, nil, nil);
|
||||
end
|
||||
end
|
||||
|
||||
else
|
||||
callClientFunction(player, "delegateEvent", player, defaultFst, "defaultTalkWithNellaure_001", nil, nil, nil);
|
||||
end
|
||||
|
||||
|
||||
player:endEvent();
|
||||
end
|
|
@ -1,7 +1,54 @@
|
|||
require ("global")
|
||||
require ("quests/etc/etc3g0")
|
||||
|
||||
function onSpawn(player, npc)
|
||||
|
||||
if (player:HasQuest("Etc3g0") == true and player:GetQuest("Etc3g0"):GetPhase() == 0) then
|
||||
if player:GetQuest("Etc3g0"):GetQuestFlag(FLAG_TALKED_SYBELL) == false then
|
||||
npc:SetQuestGraphic(player, 0x2);
|
||||
else
|
||||
npc:SetQuestGraphic(player, 0x0);
|
||||
end
|
||||
else
|
||||
npc:SetQuestGraphic(player, 0x0);
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
|
||||
|
||||
function onEventStarted(player, npc)
|
||||
defaultFst = GetStaticActor("DftFst");
|
||||
callClientFunction(player, "delegateEvent", player, defaultFst, "defaultTalkWithSybell_001", nil, nil, nil);
|
||||
|
||||
defaultFst = GetStaticActor("DftFst");
|
||||
quest = GetStaticActor("Etc3g0");
|
||||
|
||||
if (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, "defaultTalkWithSybell_001", nil, nil, nil);
|
||||
elseif (result == 2) then
|
||||
ownedQuest = player:GetQuest("Etc3g0");
|
||||
|
||||
if (ownedQuest:GetQuestFlag(FLAG_TALKED_SYBELL)) == false then
|
||||
callClientFunction(player, "delegateEvent", player, quest, "processEventSybellSpeak", nil, nil, nil);
|
||||
ownedQuest:SetQuestFlag(FLAG_TALKED_SYBELL, true);
|
||||
ownedQuest:SaveData();
|
||||
npc:SetQuestGraphic(player, 0x0);
|
||||
checkNextPhase(player);
|
||||
else
|
||||
callClientFunction(player, "delegateEvent", player, quest, "processEventSybellSpeakAfter", nil, nil, nil);
|
||||
end
|
||||
end
|
||||
|
||||
else
|
||||
callClientFunction(player, "delegateEvent", player, defaultFst, "defaultTalkWithSybell_001", nil, nil, nil);
|
||||
end
|
||||
|
||||
|
||||
player:endEvent();
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue