mirror of
https://bitbucket.org/Ioncannon/project-meteor-server.git
synced 2025-07-25 11:58:17 +02:00
Merge remote-tracking branch 'origin/ioncannon/quest_system' into Jorge/quest_system
This commit is contained in:
commit
594e08f990
84 changed files with 2660 additions and 1279 deletions
|
@ -23,7 +23,7 @@ end
|
|||
|
||||
function onEventStarted(player, npc, eventType, eventName)
|
||||
local defaultTalk = player:GetDefaultTalkQuest(npc);
|
||||
local tutorialTalk = player:GetTutorialQuest(npc);
|
||||
local tutorialTalk = player:GetTutorialQuest(npc);
|
||||
local activeQuests = player:GetQuestsForNpc(npc);
|
||||
local possibleQuests = {};
|
||||
|
||||
|
|
58
Data/scripts/commands/gm/completedQuest.lua
Normal file
58
Data/scripts/commands/gm/completedQuest.lua
Normal file
|
@ -0,0 +1,58 @@
|
|||
require("global");
|
||||
|
||||
properties = {
|
||||
permissions = 0,
|
||||
parameters = "dd",
|
||||
description =
|
||||
[[
|
||||
Sets if a quest is completed.
|
||||
!completedQuest <questId> true/false
|
||||
]],
|
||||
}
|
||||
|
||||
function onTrigger(player, argc, questId, flag)
|
||||
|
||||
print("HEY");
|
||||
local messageID = MESSAGE_TYPE_SYSTEM_ERROR;
|
||||
local sender = "[completedQuest] ";
|
||||
local message = "Error";
|
||||
|
||||
if (argc < 1) then
|
||||
return;
|
||||
end
|
||||
|
||||
local questId = tonumber(questId);
|
||||
local flag = flag or nil;
|
||||
|
||||
-- Fail if not valid questId
|
||||
if (questId < 110001 or questId > 110001 + 2048) then
|
||||
player:SendMessage(messageID, sender, "Invalid questId entered");
|
||||
return;
|
||||
end
|
||||
|
||||
-- Getting
|
||||
if (arc == 1) then
|
||||
player:SendMessage(messageID, sender, string.format("Quest %d completion is set to: %s", questId, tostring(player:IsQuestCompleted(questId))));
|
||||
return;
|
||||
-- Setting
|
||||
else
|
||||
-- Fail if not valid flag
|
||||
if (not flag == nil) then
|
||||
player:SendMessage(messageID, sender, "Invalid flag entered");
|
||||
else
|
||||
local boolFlag = false;
|
||||
|
||||
if (flag == "true" or flag == "1" or flag == "on" or flag == "O") then
|
||||
boolFlag = true;
|
||||
elseif (flag == "false" or flag == "0" or flag == "off" or flag == "X") then
|
||||
boolFlag = false;
|
||||
elseif flag == "flip" or flag == "toggle" then
|
||||
boolFlag = not player:IsQuestCompleted(questId);
|
||||
end
|
||||
|
||||
player:SetQuestComplete(questId, boolFlag);
|
||||
player:SendMessage(messageID, sender, string.format("Quest %d completion set to: %s", questId, tostring(player:IsQuestCompleted(questId))));
|
||||
return;
|
||||
end
|
||||
end
|
||||
end
|
|
@ -66,7 +66,7 @@ function onTrigger(player, argc, command, var1, var2, var3)
|
|||
|
||||
local flagStr = "";
|
||||
for i=0,31,1 do
|
||||
if (quest:GetFlag(i)) then
|
||||
if (quest:GetData():GetFlag(i)) then
|
||||
flagStr = flagStr .. "O";
|
||||
else
|
||||
flagStr = flagStr .. "X";
|
||||
|
@ -76,10 +76,12 @@ function onTrigger(player, argc, command, var1, var2, var3)
|
|||
end
|
||||
end
|
||||
|
||||
local data = quest:GetData();
|
||||
|
||||
message = string.format("\nInfo for quest %s [%d]\n", quest.Name, quest:GetQuestId());
|
||||
message = message .. string.format("Current Sequence: %d\n", quest:getSequence());
|
||||
message = message .. string.format("Flags: \n%s\n", flagStr)
|
||||
message = message .. string.format("Counters: %d,%d,%d,%d", quest:getCounter(0), quest:getCounter(1), quest:getCounter(2), quest:getCounter(3));
|
||||
message = message .. string.format("Counters: %d,%d,%d,%d", data:getCounter(0), data:getCounter(1), data:getCounter(2), data:getCounter(3));
|
||||
else
|
||||
message = ("Quest not active: "..var1);
|
||||
end
|
||||
|
@ -118,7 +120,7 @@ function onTrigger(player, argc, command, var1, var2, var3)
|
|||
boolvar = false;
|
||||
elseif var3 == "flip" or var3 == "toggle" then
|
||||
if player:HasQuest(questvar) == true then
|
||||
boolvar = not player:GetQuest(questvar):GetFlag(flagvar);
|
||||
boolvar = not player:GetQuest(questvar):GetData():GetFlag(flagvar);
|
||||
end
|
||||
else
|
||||
message = ("error: flag: boolean not recognized");
|
||||
|
@ -126,13 +128,13 @@ function onTrigger(player, argc, command, var1, var2, var3)
|
|||
return;
|
||||
end
|
||||
|
||||
var4 = player:GetQuest(questvar):GetFlag(flagvar);
|
||||
var4 = player:GetQuest(questvar):GetData():GetFlag(flagvar);
|
||||
|
||||
if var4 ~= boolvar then
|
||||
if (boolvar == true) then
|
||||
player:GetQuest(questvar):SetFlag(flagvar);
|
||||
player:GetQuest(questvar):GetData():SetFlag(flagvar);
|
||||
else
|
||||
player:GetQuest(questvar):ClearFlag(flagvar);
|
||||
player:GetQuest(questvar):GetData():ClearFlag(flagvar);
|
||||
end
|
||||
player:GetQuest(questvar):UpdateENPCs();
|
||||
player:GetQuest(questvar):SaveData();
|
||||
|
@ -152,7 +154,7 @@ function onTrigger(player, argc, command, var1, var2, var3)
|
|||
questvar = tonumber(var1);
|
||||
index = (tonumber(var2));
|
||||
|
||||
player:GetQuest(questvar):SetCounter(index, tonumber(var3));
|
||||
player:GetQuest(questvar):GetData():SetCounter(index, tonumber(var3));
|
||||
player:GetQuest(questvar):UpdateENPCs();
|
||||
player:GetQuest(questvar):SaveData();
|
||||
message = ("changing counter "..tonumber(var2).." to "..var3);
|
||||
|
|
|
@ -41,8 +41,6 @@ FLAG_TALKED_LEFWYNE = 4;
|
|||
-- Quest Counters
|
||||
COUNTER_TALKED = 0;
|
||||
|
||||
--offerQuestResult = callClientFunction(player, "delegateEvent", player, quest, "processEventOffersStart");
|
||||
|
||||
function onStart(player, quest)
|
||||
quest:StartSequence(SEQ_000);
|
||||
end
|
||||
|
@ -50,79 +48,93 @@ end
|
|||
function onFinish(player, quest)
|
||||
end
|
||||
|
||||
function onSequence(player, quest, sequence)
|
||||
function onStateChange(player, quest, sequence)
|
||||
if (sequence == 65535) then
|
||||
quest:SetENpc(KINNISON, QFLAG_PLATE);
|
||||
end
|
||||
|
||||
local data = quest:GetData();
|
||||
if (sequence == SEQ_000) then
|
||||
quest:AddENpc(KINNISON);
|
||||
quest:AddENpc(SYBELL, (not quest:GetFlag(FLAG_TALKED_SYBELL) and QFLAG_PLATE or QFLAG_NONE));
|
||||
quest:AddENpc(KHUMA_MOSHROCA, (not quest:GetFlag(FLAG_TALKED_KHUMA_MOSHROCA) and QFLAG_PLATE or QFLAG_NONE));
|
||||
quest:AddENpc(NELLAURE, (not quest:GetFlag(FLAG_TALKED_NELLAURE) and QFLAG_PLATE or QFLAG_NONE));
|
||||
quest:AddENpc(MESTONNAUX, (not quest:GetFlag(FLAG_TALKED_MESTONNAUX) and QFLAG_PLATE or QFLAG_NONE));
|
||||
quest:AddENpc(LEFWYNE, (not quest:GetFlag(FLAG_TALKED_LEFWYNE) and QFLAG_PLATE or QFLAG_NONE));
|
||||
quest:SetENpc(KINNISON);
|
||||
quest:SetENpc(SYBELL, (not data:GetFlag(FLAG_TALKED_SYBELL) and QFLAG_PLATE or QFLAG_NONE));
|
||||
quest:SetENpc(KHUMA_MOSHROCA, (not data:GetFlag(FLAG_TALKED_KHUMA_MOSHROCA) and QFLAG_PLATE or QFLAG_NONE));
|
||||
quest:SetENpc(NELLAURE, (not data:GetFlag(FLAG_TALKED_NELLAURE) and QFLAG_PLATE or QFLAG_NONE));
|
||||
quest:SetENpc(MESTONNAUX, (not data:GetFlag(FLAG_TALKED_MESTONNAUX) and QFLAG_PLATE or QFLAG_NONE));
|
||||
quest:SetENpc(LEFWYNE, (not data:GetFlag(FLAG_TALKED_LEFWYNE) and QFLAG_PLATE or QFLAG_NONE));
|
||||
elseif (sequence == SEQ_001) then
|
||||
quest:AddENpc(KINNISON, QFLAG_PLATE);
|
||||
quest:SetENpc(KINNISON, QFLAG_PLATE);
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
function onTalk(player, quest, npc, eventName)
|
||||
local npcClassId = npc.GetActorClassId();
|
||||
local seq = quest:GetSequence();
|
||||
local incCounter = false;
|
||||
|
||||
-- Offer the quest
|
||||
if (npcClassId == KINNISON and not player:HasQuest(quest)) then
|
||||
local questAccepted = callClientFunction(player, "delegateEvent", player, quest, "processEventOffersStart");
|
||||
if (questAccepted == 1) then
|
||||
player:AcceptQuest(quest);
|
||||
end
|
||||
player:EndEvent();
|
||||
return;
|
||||
end
|
||||
|
||||
-- Quest Progress
|
||||
local data = quest:GetData();
|
||||
if (seq == SEQ_000) then
|
||||
if (npcClassId == KINNISON) then
|
||||
callClientFunction(player, "delegateEvent", player, quest, "processEventOffersAfter");
|
||||
elseif (npcClassId == SYBELL) then
|
||||
if (not quest:GetFlag(FLAG_TALKED_SYBELL)) then
|
||||
if (not data:GetFlag(FLAG_TALKED_SYBELL)) then
|
||||
callClientFunction(player, "delegateEvent", player, quest, "processEventSybellSpeak");
|
||||
quest:SetFlag(FLAG_TALKED_SYBELL);
|
||||
data:SetFlag(FLAG_TALKED_SYBELL);
|
||||
incCounter = true;
|
||||
else
|
||||
callClientFunction(player, "delegateEvent", player, quest, "processEventSybellSpeakAfter");
|
||||
end
|
||||
elseif (npcClassId == KHUMA_MOSHROCA) then
|
||||
if (not quest:GetFlag(FLAG_TALKED_KHUMA_MOSHROCA)) then
|
||||
if (not data:GetFlag(FLAG_TALKED_KHUMA_MOSHROCA)) then
|
||||
callClientFunction(player, "delegateEvent", player, quest, "processEventKhumaSpeak");
|
||||
quest:SetFlag(FLAG_TALKED_KHUMA_MOSHROCA);
|
||||
data:SetFlag(FLAG_TALKED_KHUMA_MOSHROCA);
|
||||
incCounter = true;
|
||||
else
|
||||
callClientFunction(player, "delegateEvent", player, quest, "processEventKhumaSpeakAfter");
|
||||
end
|
||||
elseif (npcClassId == NELLAURE) then
|
||||
if (not quest:GetFlag(FLAG_TALKED_NELLAURE)) then
|
||||
if (not data:GetFlag(FLAG_TALKED_NELLAURE)) then
|
||||
callClientFunction(player, "delegateEvent", player, quest, "processEventNellaureSpeak");
|
||||
quest:SetFlag(FLAG_TALKED_NELLAURE);
|
||||
data:SetFlag(FLAG_TALKED_NELLAURE);
|
||||
incCounter = true;
|
||||
else
|
||||
callClientFunction(player, "delegateEvent", player, quest, "processEventNellaureSpeakAfter");
|
||||
end
|
||||
elseif (npcClassId == MESTONNAUX) then
|
||||
if (not quest:GetFlag(FLAG_TALKED_MESTONNAUX)) then
|
||||
if (not data:GetFlag(FLAG_TALKED_MESTONNAUX)) then
|
||||
callClientFunction(player, "delegateEvent", player, quest, "processEventMestonnauxSpeak");
|
||||
quest:SetFlag(FLAG_TALKED_MESTONNAUX);
|
||||
data:SetFlag(FLAG_TALKED_MESTONNAUX);
|
||||
incCounter = true;
|
||||
else
|
||||
callClientFunction(player, "delegateEvent", player, quest, "processEventMestonnauxSpeakAfter");
|
||||
end
|
||||
elseif (npcClassId == LEFWYNE) then
|
||||
if (not quest:GetFlag(FLAG_TALKED_LEFWYNE)) then
|
||||
if (not data:GetFlag(FLAG_TALKED_LEFWYNE)) then
|
||||
callClientFunction(player, "delegateEvent", player, quest, "processEventLefwyneSpeak");
|
||||
quest:SetFlag(FLAG_TALKED_LEFWYNE);
|
||||
data:SetFlag(FLAG_TALKED_LEFWYNE);
|
||||
incCounter = true;
|
||||
else
|
||||
callClientFunction(player, "delegateEvent", player, quest, "processEventLefwyneSpeakAfter");
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
|
||||
-- Increase objective counter & play relevant messages
|
||||
if (incCounter == true) then
|
||||
quest:IncCounter(COUNTER_TALKED);
|
||||
local counterAmount = quest:GetCounter(COUNTER_TALKED);
|
||||
local counterAmount = data:IncCounter(COUNTER_TALKED);
|
||||
|
||||
attentionMessage(player, 51061, 0, counterAmount, 5); -- You have heard word of the Seedseers. (... of 5)
|
||||
|
||||
if (seq000_checkCondition(quest)) then -- All Seers spoken to
|
||||
if (seq000_checkCondition(data)) then -- All Seers spoken to
|
||||
attentionMessage(player, 25225, 110674); -- "Seeing the Seers" objectives complete!
|
||||
quest:UpdateENPCs(); -- Band-aid for a QFLAG_PLATE issue
|
||||
quest:StartSequence(SEQ_001);
|
||||
|
@ -134,7 +146,7 @@ function onTalk(player, quest, npc, eventName)
|
|||
if (npcClassId == KINNISON) then
|
||||
callClientFunction(player, "delegateEvent", player, quest, "processEventClear");
|
||||
callClientFunction(player, "delegateEvent", player, quest, "sqrwa", 200, 1, 1, 9);
|
||||
player:CompleteQuest(quest:GetQuestId());
|
||||
player:CompleteQuest(quest);
|
||||
end
|
||||
end
|
||||
quest:UpdateENPCs();
|
||||
|
@ -143,12 +155,12 @@ end
|
|||
|
||||
|
||||
-- Check if all seers are talked to
|
||||
function seq000_checkCondition(quest)
|
||||
return (quest:GetFlag(FLAG_TALKED_SYBELL) and
|
||||
quest:GetFlag(FLAG_TALKED_KHUMA_MOSHROCA) and
|
||||
quest:GetFlag(FLAG_TALKED_NELLAURE) and
|
||||
quest:GetFlag(FLAG_TALKED_MESTONNAUX) and
|
||||
quest:GetFlag(FLAG_TALKED_LEFWYNE));
|
||||
function seq000_checkCondition(data)
|
||||
return (data:GetFlag(FLAG_TALKED_SYBELL) and
|
||||
data:GetFlag(FLAG_TALKED_KHUMA_MOSHROCA) and
|
||||
data:GetFlag(FLAG_TALKED_NELLAURE) and
|
||||
data:GetFlag(FLAG_TALKED_MESTONNAUX) and
|
||||
data:GetFlag(FLAG_TALKED_LEFWYNE));
|
||||
end
|
||||
|
||||
|
||||
|
@ -157,11 +169,11 @@ function getJournalMapMarkerList(player, quest)
|
|||
local possibleMarkers = {};
|
||||
|
||||
if (sequence == SEQ_000) then
|
||||
if (not quest:GetFlag(FLAG_TALKED_SYBELL)) then table.insert(possibleMarkers, MRKR_SYBELL); end
|
||||
if (not quest:GetFlag(FLAG_TALKED_KHUMA_MOSHROCA)) then table.insert(possibleMarkers, MRKR_KHUMA_MOSHROCA); end
|
||||
if (not quest:GetFlag(FLAG_TALKED_NELLAURE)) then table.insert(possibleMarkers, MRKR_NELLAURE); end
|
||||
if (not quest:GetFlag(FLAG_TALKED_MESTONNAUX)) then table.insert(possibleMarkers, MRKR_MESTONNAUX); end
|
||||
if (not quest:GetFlag(FLAG_TALKED_LEFWYNE)) then table.insert(possibleMarkers, MRKR_LEFWYNE); end
|
||||
if (not data:GetFlag(FLAG_TALKED_SYBELL)) then table.insert(possibleMarkers, MRKR_SYBELL); end
|
||||
if (not data:GetFlag(FLAG_TALKED_KHUMA_MOSHROCA)) then table.insert(possibleMarkers, MRKR_KHUMA_MOSHROCA); end
|
||||
if (not data:GetFlag(FLAG_TALKED_NELLAURE)) then table.insert(possibleMarkers, MRKR_NELLAURE); end
|
||||
if (not data:GetFlag(FLAG_TALKED_MESTONNAUX)) then table.insert(possibleMarkers, MRKR_MESTONNAUX); end
|
||||
if (not data:GetFlag(FLAG_TALKED_LEFWYNE)) then table.insert(possibleMarkers, MRKR_LEFWYNE); end
|
||||
elseif (sequence == SEQ_001) then
|
||||
table.insert(possibleMarkers, MRKR_KINNISON);
|
||||
end
|
||||
|
|
|
@ -40,13 +40,13 @@ end
|
|||
|
||||
|
||||
|
||||
function onSequence(player, quest, sequence)
|
||||
function onStateChange(player, quest, sequence)
|
||||
if (sequence == SEQ_000) then
|
||||
quest:AddENpc(VKOROLON);
|
||||
quest:AddENpc(PFARAHR, QFLAG_PLATE);
|
||||
quest:SetENpc(VKOROLON);
|
||||
quest:SetENpc(PFARAHR, QFLAG_PLATE);
|
||||
elseif (sequence == SEQ_001) then
|
||||
quest:AddENpc(VKOROLON, QFLAG_PLATE);
|
||||
quest:AddENpc(PFARAHR);
|
||||
quest:SetENpc(VKOROLON, QFLAG_PLATE);
|
||||
quest:SetENpc(PFARAHR);
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
@ -62,7 +62,7 @@ end
|
|||
function onFinish(player, quest)
|
||||
end
|
||||
|
||||
function onSequence(player, quest, sequence)
|
||||
function onStateChange(player, quest, sequence)
|
||||
if (sequence == SEQ_000) then
|
||||
-- Setup states incase we loaded in.
|
||||
local rostnsthalFlag = quest:GetFlag(FLAG_SEQ000_MINITUT1) and QFLAG_NONE or QFLAG_PLATE;
|
||||
|
@ -72,34 +72,34 @@ function onSequence(player, quest, sequence)
|
|||
local exitCanPush = quest:GetFlags() == 0xF;
|
||||
local exitFlag = quest:GetFlags() == 0xF and QFLAG_MAP or QFLAG_NONE;
|
||||
|
||||
quest:AddENpc(WELLTRAVELED_MERCHANT);
|
||||
quest:AddENpc(TIPSY_ADVENTURER);
|
||||
quest:AddENpc(CULTIVATED_TENDER);
|
||||
quest:AddENpc(ANXIOUS_ADVENTURER);
|
||||
quest:AddENpc(BABYFACED_ADVENTURER, babyfaceFlag);
|
||||
quest:AddENpc(AUSTERE_ADVENTURER);
|
||||
quest:AddENpc(UNDIGNIFIED_ADVENTURER);
|
||||
quest:AddENpc(SHADOWY_TRAVELER);
|
||||
quest:AddENpc(ASTUTE_MERCHANT);
|
||||
quest:AddENpc(VOLUPTUOUS_VIXEN, vixenFlag);
|
||||
quest:AddENpc(INDIFFERENT_PASSERBY);
|
||||
quest:AddENpc(PRATTLING_ADVENTURER);
|
||||
quest:AddENpc(LANKY_TRAVELER);
|
||||
quest:AddENpc(GRINNING_ADVENTURER);
|
||||
quest:AddENpc(ROSTNSTHAL, rostnsthalFlag, true, rostnsthalCanPush);
|
||||
quest:AddENpc(EXIT_TRIGGER, exitFlag, false, exitCanPush);
|
||||
quest:SetENpc(WELLTRAVELED_MERCHANT);
|
||||
quest:SetENpc(TIPSY_ADVENTURER);
|
||||
quest:SetENpc(CULTIVATED_TENDER);
|
||||
quest:SetENpc(ANXIOUS_ADVENTURER);
|
||||
quest:SetENpc(BABYFACED_ADVENTURER, babyfaceFlag);
|
||||
quest:SetENpc(AUSTERE_ADVENTURER);
|
||||
quest:SetENpc(UNDIGNIFIED_ADVENTURER);
|
||||
quest:SetENpc(SHADOWY_TRAVELER);
|
||||
quest:SetENpc(ASTUTE_MERCHANT);
|
||||
quest:SetENpc(VOLUPTUOUS_VIXEN, vixenFlag);
|
||||
quest:SetENpc(INDIFFERENT_PASSERBY);
|
||||
quest:SetENpc(PRATTLING_ADVENTURER);
|
||||
quest:SetENpc(LANKY_TRAVELER);
|
||||
quest:SetENpc(GRINNING_ADVENTURER);
|
||||
quest:SetENpc(ROSTNSTHAL, rostnsthalFlag, true, rostnsthalCanPush);
|
||||
quest:SetENpc(EXIT_TRIGGER, exitFlag, false, exitCanPush);
|
||||
elseif (sequence == SEQ_005) then
|
||||
elseif (sequence == SEQ_010) then
|
||||
quest:AddENpc(HOB);
|
||||
quest:AddENpc(GERT);
|
||||
quest:AddENpc(LORHZANT);
|
||||
quest:AddENpc(MUSCLEBOUND_DECKHAND);
|
||||
quest:AddENpc(PEARLYTOOTHED_PORTER);
|
||||
quest:AddENpc(UNDIGNIFIED_ADVENTURER);
|
||||
quest:AddENpc(WELLTRAVELED_MERCHANT);
|
||||
quest:AddENpc(VOLUPTUOUS_VIXEN);
|
||||
quest:AddENpc(LANKY_TRAVELER);
|
||||
quest:AddENpc(PRIVAREA_PAST_EXIT, QFLAG_NONE, false, true);
|
||||
quest:SetENpc(HOB);
|
||||
quest:SetENpc(GERT);
|
||||
quest:SetENpc(LORHZANT);
|
||||
quest:SetENpc(MUSCLEBOUND_DECKHAND);
|
||||
quest:SetENpc(PEARLYTOOTHED_PORTER);
|
||||
quest:SetENpc(UNDIGNIFIED_ADVENTURER);
|
||||
quest:SetENpc(WELLTRAVELED_MERCHANT);
|
||||
quest:SetENpc(VOLUPTUOUS_VIXEN);
|
||||
quest:SetENpc(LANKY_TRAVELER);
|
||||
quest:SetENpc(PRIVAREA_PAST_EXIT, QFLAG_NONE, false, true);
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
@ -85,56 +85,56 @@ end
|
|||
function onFinish(player, quest)
|
||||
end
|
||||
|
||||
function onSequence(player, quest, sequence)
|
||||
function onStateChange(player, quest, sequence)
|
||||
|
||||
if (sequence == SEQ_000) then
|
||||
quest:AddENpc(YSHTOLA);
|
||||
quest:AddENpc(CRAPULOUS_ADVENTURER);
|
||||
quest:AddENpc(DUPLICITOUS_TRADER);
|
||||
quest:AddENpc(DEBONAIR_PIRATE);
|
||||
quest:AddENpc(ONYXHAIRED_ADVENTURER);
|
||||
quest:AddENpc(SKITTISH_ADVENTURER);
|
||||
quest:AddENpc(RELAXING_ADVENTURER);
|
||||
quest:AddENpc(BADERON, QFLAG_PLATE);
|
||||
quest:AddENpc(MYTESYN);
|
||||
quest:AddENpc(COCKAHOOP_COCKSWAIN);
|
||||
quest:AddENpc(SENTENIOUS_SELLSWORD);
|
||||
quest:AddENpc(SOLICITOUS_SELLSWORD);
|
||||
quest:SetENpc(YSHTOLA);
|
||||
quest:SetENpc(CRAPULOUS_ADVENTURER);
|
||||
quest:SetENpc(DUPLICITOUS_TRADER);
|
||||
quest:SetENpc(DEBONAIR_PIRATE);
|
||||
quest:SetENpc(ONYXHAIRED_ADVENTURER);
|
||||
quest:SetENpc(SKITTISH_ADVENTURER);
|
||||
quest:SetENpc(RELAXING_ADVENTURER);
|
||||
quest:SetENpc(BADERON, QFLAG_PLATE);
|
||||
quest:SetENpc(MYTESYN);
|
||||
quest:SetENpc(COCKAHOOP_COCKSWAIN);
|
||||
quest:SetENpc(SENTENIOUS_SELLSWORD);
|
||||
quest:SetENpc(SOLICITOUS_SELLSWORD);
|
||||
elseif (sequence == SEQ_003) then
|
||||
quest:AddENpc(BADERON);
|
||||
quest:SetENpc(BADERON);
|
||||
elseif (sequence == SEQ_005) then
|
||||
quest:AddENpc(BADERON, QFLAG_PLATE);
|
||||
quest:SetENpc(BADERON, QFLAG_PLATE);
|
||||
elseif (sequence == SEQ_006) then
|
||||
quest:AddENpc(BADERON, QFLAG_PLATE);
|
||||
quest:SetENpc(BADERON, QFLAG_PLATE);
|
||||
elseif (sequence == SEQ_007) then
|
||||
local subseqCUL = quest:GetCounter(CNTR_SEQ7_CUL);
|
||||
local subseqMRD = quest:GetCounter(CNTR_SEQ7_MRD);
|
||||
|
||||
-- Always active in this seqence
|
||||
quest:AddENpc(BADERON);
|
||||
quest:AddENpc(CHARLYS, subseqCUL == 0 and QFLAG_PLATE or QFLAG_NONE);
|
||||
quest:SetENpc(BADERON);
|
||||
quest:SetENpc(CHARLYS, subseqCUL == 0 and QFLAG_PLATE or QFLAG_NONE);
|
||||
|
||||
-- Down and Up the MSK guild
|
||||
quest:AddENpc(ISANDOREL, (subseqMRD == 0 or subseqMRD == 2) and QFLAG_PLATE or QFLAG_NONE);
|
||||
quest:SetENpc(ISANDOREL, (subseqMRD == 0 or subseqMRD == 2) and QFLAG_PLATE or QFLAG_NONE);
|
||||
|
||||
if (subseqMRD == 1) then
|
||||
quest:AddENpc(MSK_TRIGGER, QFLAG_MAP, false, true);
|
||||
quest:SetENpc(MSK_TRIGGER, QFLAG_MAP, false, true);
|
||||
elseif (subseqMRD == 2) then
|
||||
quest:AddENpc(MERLZIRN);
|
||||
quest:SetENpc(MERLZIRN);
|
||||
end
|
||||
|
||||
-- In Echo
|
||||
quest:AddENpc(NERVOUS_BARRACUDA);
|
||||
quest:AddENpc(INTIMIDATING_BARRACUDA);
|
||||
quest:AddENpc(OVEREAGER_BARRACUDA);
|
||||
quest:AddENpc(SOPHISTICATED_BARRACUDA);
|
||||
quest:AddENpc(SMIRKING_BARRACUDA);
|
||||
quest:AddENpc(MANNSKOEN);
|
||||
quest:AddENpc(TOTORUTO);
|
||||
quest:AddENpc(ADVENTURER1);
|
||||
quest:AddENpc(ADVENTURER2);
|
||||
quest:AddENpc(ADVENTURER3);
|
||||
quest:AddENpc(ECHO_EXIT_TRIGGER, subseqMRD == 3 and QFLAG_MAP or QFLAG_NONE, false, subseqMRD == 3);
|
||||
quest:SetENpc(NERVOUS_BARRACUDA);
|
||||
quest:SetENpc(INTIMIDATING_BARRACUDA);
|
||||
quest:SetENpc(OVEREAGER_BARRACUDA);
|
||||
quest:SetENpc(SOPHISTICATED_BARRACUDA);
|
||||
quest:SetENpc(SMIRKING_BARRACUDA);
|
||||
quest:SetENpc(MANNSKOEN);
|
||||
quest:SetENpc(TOTORUTO);
|
||||
quest:SetENpc(ADVENTURER1);
|
||||
quest:SetENpc(ADVENTURER2);
|
||||
quest:SetENpc(ADVENTURER3);
|
||||
quest:SetENpc(ECHO_EXIT_TRIGGER, subseqMRD == 3 and QFLAG_MAP or QFLAG_NONE, false, subseqMRD == 3);
|
||||
|
||||
if (subseqCUL == 1 and subseqMRD == 4) then
|
||||
player:SetNpcLS(1, 1);
|
||||
|
|
|
@ -103,7 +103,7 @@ end
|
|||
function onFinish(player, quest)
|
||||
end
|
||||
|
||||
function onSequence(player, quest, sequence)
|
||||
function onStateChange(player, quest, sequence)
|
||||
|
||||
if (sequence == SEQ_000) then
|
||||
-- Setup states incase we loaded in.
|
||||
|
@ -119,34 +119,34 @@ function onSequence(player, quest, sequence)
|
|||
gildiggingmistressFlag = QFLAG_NONE;
|
||||
end
|
||||
|
||||
--AddENpc(classId, byte flagType=0,isTalkEnabled, isPushEnabled, isEmoteEnabled, isSpawned)
|
||||
quest:AddENpc(ASCILIA, asciliaFlag, true, asciliaCanPush);
|
||||
quest:AddENpc(WARBURTON);
|
||||
quest:AddENpc(RURURAJI);
|
||||
quest:AddENpc(BIG_BELLIED_BARKER);
|
||||
quest:AddENpc(FRETFUL_FARMHAND, fretfulfarmhandFlag);
|
||||
quest:AddENpc(DEBAUCHED_DEMONESS);
|
||||
quest:AddENpc(DAPPER_DAN);
|
||||
quest:AddENpc(LOUTISH_LAD);
|
||||
quest:AddENpc(GIL_DIGGING_MISTRESS, gildiggingmistressFlag);
|
||||
quest:AddENpc(TWITTERING_TOMBOY);
|
||||
quest:AddENpc(STOCKY_STRANGER);
|
||||
quest:AddENpc(EXIT_TRIGGER, exitFlag, false, true);
|
||||
quest:AddENpc(OPENING_STOPER_ULDAH, QFLAG_NONE, false, false, true);
|
||||
--SetENpc(classId, byte flagType=0,isTalkEnabled, isPushEnabled, isEmoteEnabled, isSpawned)
|
||||
quest:SetENpc(ASCILIA, asciliaFlag, true, asciliaCanPush);
|
||||
quest:SetENpc(WARBURTON);
|
||||
quest:SetENpc(RURURAJI);
|
||||
quest:SetENpc(BIG_BELLIED_BARKER);
|
||||
quest:SetENpc(FRETFUL_FARMHAND, fretfulfarmhandFlag);
|
||||
quest:SetENpc(DEBAUCHED_DEMONESS);
|
||||
quest:SetENpc(DAPPER_DAN);
|
||||
quest:SetENpc(LOUTISH_LAD);
|
||||
quest:SetENpc(GIL_DIGGING_MISTRESS, gildiggingmistressFlag);
|
||||
quest:SetENpc(TWITTERING_TOMBOY);
|
||||
quest:SetENpc(STOCKY_STRANGER);
|
||||
quest:SetENpc(EXIT_TRIGGER, exitFlag, false, true);
|
||||
quest:SetENpc(OPENING_STOPER_ULDAH, QFLAG_NONE, false, false, true);
|
||||
|
||||
elseif (sequence == SEQ_010) then
|
||||
local yayatokiFlag = quest:GetFlag(FLAG_SEQ010_TALK0) and QFLAG_NONE or QFLAG_PLATE;
|
||||
local uldahopeningexitFlag = QFLAG_MAP;
|
||||
quest:AddENpc(KEEN_EYED_MERCHANT);
|
||||
quest:AddENpc(HIGH_SPIRITED_FELLOW);
|
||||
quest:AddENpc(DISREPUTABLE_MIDLANDER);
|
||||
quest:AddENpc(LONG_LEGGED_LADY);
|
||||
quest:AddENpc(LARGE_LUNGED_LABORER);
|
||||
quest:AddENpc(TOOTH_GRINDING_TRAVELER);
|
||||
quest:AddENpc(FULL_LIPPED_FILLE);
|
||||
quest:AddENpc(YAYATOKI, yayatokiFlag);
|
||||
quest:AddENpc(BLOCKER, QFLAG_NONE, false, true);
|
||||
quest:AddENpc(ULDAH_OPENING_EXIT, uldahopeningexitFlag, false, true);
|
||||
quest:SetENpc(KEEN_EYED_MERCHANT);
|
||||
quest:SetENpc(HIGH_SPIRITED_FELLOW);
|
||||
quest:SetENpc(DISREPUTABLE_MIDLANDER);
|
||||
quest:SetENpc(LONG_LEGGED_LADY);
|
||||
quest:SetENpc(LARGE_LUNGED_LABORER);
|
||||
quest:SetENpc(TOOTH_GRINDING_TRAVELER);
|
||||
quest:SetENpc(FULL_LIPPED_FILLE);
|
||||
quest:SetENpc(YAYATOKI, yayatokiFlag);
|
||||
quest:SetENpc(BLOCKER, QFLAG_NONE, false, true);
|
||||
quest:SetENpc(ULDAH_OPENING_EXIT, uldahopeningexitFlag, false, true);
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
@ -127,17 +127,17 @@ end
|
|||
function onFinish(player, quest)
|
||||
end
|
||||
|
||||
function onSequence(player, quest, sequence)
|
||||
function onStateChange(player, quest, sequence)
|
||||
|
||||
if (sequence == SEQ_000) then
|
||||
-- Setup states incase we loaded in.
|
||||
|
||||
--AddENpc(classId, byte flagType=0,isTalkEnabled, isPushEnabled, isEmoteEnabled, isSpawned)
|
||||
quest:AddENpc(MOMODI, QFLAG_PLATE);
|
||||
quest:AddENpc(OTOPA_POTTOPA);
|
||||
--SetENpc(classId, byte flagType=0,isTalkEnabled, isPushEnabled, isEmoteEnabled, isSpawned)
|
||||
quest:SetENpc(MOMODI, QFLAG_PLATE);
|
||||
quest:SetENpc(OTOPA_POTTOPA);
|
||||
|
||||
elseif (sequence == SEQ_005) then
|
||||
quest:AddENpc(MOMODI);
|
||||
quest:SetENpc(MOMODI);
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
@ -7,7 +7,7 @@ end
|
|||
function onFinish(player, quest)
|
||||
end
|
||||
|
||||
function onSequence(player, quest, seqNum)
|
||||
function onStateChange(player, quest, seqNum)
|
||||
quest:ClearENpcs();
|
||||
end
|
||||
|
||||
|
|
|
@ -1,29 +0,0 @@
|
|||
require ("global")
|
||||
|
||||
--[[
|
||||
|
||||
Quest Script
|
||||
|
||||
Name: Getting Started (Mother Miounne)
|
||||
Code: Trl0g1
|
||||
Id: 110141
|
||||
|
||||
Enables the "Getting Started" option on Miounne.
|
||||
* NOTE: This quest is active for all players at all times.
|
||||
]]
|
||||
|
||||
function onTalk(player, quest, npc, eventName)
|
||||
local choice = callClientFunction(player, "delegateEvent", player, quest, "processEventMiounneStart");
|
||||
|
||||
if (choice == 1) then
|
||||
callClientFunction(player, "delegateEvent", player, quest, "processEvent225");
|
||||
elseif (choice == 2) then
|
||||
callClientFunction(player, "delegateEvent", player, quest, "processEvent230");
|
||||
end
|
||||
|
||||
player:EndEvent();
|
||||
end
|
||||
|
||||
function IsQuestENPC(player, quest, npc)
|
||||
return npc:GetActorClassId()] == 1000230;
|
||||
end
|
|
@ -1,29 +0,0 @@
|
|||
require ("global")
|
||||
|
||||
--[[
|
||||
|
||||
Quest Script
|
||||
|
||||
Name: Getting Started (Baderon)
|
||||
Code: Trl0l1
|
||||
Id: 110140
|
||||
|
||||
Enables the "Getting Started" option on Baderon.
|
||||
* NOTE: This quest is active for all players at all times.
|
||||
]]
|
||||
|
||||
function onTalk(player, quest, npc, eventName)
|
||||
local choice = callClientFunction(player, "delegateEvent", player, quest, "processEventBaderonStart");
|
||||
|
||||
if (choice == 1) then
|
||||
callClientFunction(player, "delegateEvent", player, quest, "processEvent640");
|
||||
elseif (choice == 2) then
|
||||
callClientFunction(player, "delegateEvent", player, quest, "processEvent650");
|
||||
end
|
||||
|
||||
player:EndEvent();
|
||||
end
|
||||
|
||||
function IsQuestENPC(player, quest, npc)
|
||||
return npc:GetActorClassId()] == 1000137;
|
||||
end
|
|
@ -1,29 +0,0 @@
|
|||
require ("global")
|
||||
|
||||
--[[
|
||||
|
||||
Quest Script
|
||||
|
||||
Name: Getting Started (Momodi)
|
||||
Code: Trl0u1
|
||||
Id: 110142
|
||||
|
||||
Enables the "Getting Started" option on Momodi.
|
||||
* NOTE: This quest is active for all players at all times.
|
||||
]]
|
||||
|
||||
function onTalk(player, quest, npc, eventName)
|
||||
local choice = callClientFunction(player, "delegateEvent", player, quest, "processEventMomodiStart");
|
||||
|
||||
if (choice == 1) then
|
||||
callClientFunction(player, "delegateEvent", player, quest, "processEvent235");
|
||||
elseif (choice == 2) then
|
||||
callClientFunction(player, "delegateEvent", player, quest, "processEvent240");
|
||||
end
|
||||
|
||||
player:EndEvent();
|
||||
end
|
||||
|
||||
function IsQuestENPC(player, quest, npc)
|
||||
return npc:GetActorClassId() == 1000841;
|
||||
end
|
|
@ -1,51 +1,29 @@
|
|||
-- MySQL dump 10.13 Distrib 5.7.10, for Win64 (x86_64)
|
||||
--
|
||||
-- Host: localhost Database: ffxiv_database
|
||||
-- ------------------------------------------------------
|
||||
-- Server version 5.7.10-log
|
||||
-- --------------------------------------------------------
|
||||
-- Host: 127.0.0.1
|
||||
-- Server version: 5.6.17 - MySQL Community Server (GPL)
|
||||
-- Server OS: Win64
|
||||
-- HeidiSQL Version: 10.1.0.5464
|
||||
-- --------------------------------------------------------
|
||||
|
||||
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
|
||||
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
|
||||
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
|
||||
/*!40101 SET NAMES utf8 */;
|
||||
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
|
||||
/*!40103 SET TIME_ZONE='+00:00' */;
|
||||
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
|
||||
/*!50503 SET NAMES utf8mb4 */;
|
||||
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
|
||||
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
|
||||
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
|
||||
|
||||
--
|
||||
-- Table structure for table `characters_quest_completed`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `characters_quest_completed`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8 */;
|
||||
CREATE TABLE `characters_quest_completed` (
|
||||
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
||||
-- Dumping database structure for ffxiv_server
|
||||
CREATE DATABASE IF NOT EXISTS `ffxiv_server` /*!40100 DEFAULT CHARACTER SET latin1 */;
|
||||
USE `ffxiv_server`;
|
||||
|
||||
-- Dumping structure for table ffxiv_server.characters_quest_completed
|
||||
CREATE TABLE IF NOT EXISTS `characters_quest_completed` (
|
||||
`characterId` int(10) unsigned NOT NULL,
|
||||
`questId` int(10) unsigned NOT NULL,
|
||||
PRIMARY KEY (`id`)
|
||||
`completedQuests` varbinary(2048) DEFAULT NULL,
|
||||
PRIMARY KEY (`characterId`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
|
||||
--
|
||||
-- Dumping data for table `characters_quest_completed`
|
||||
--
|
||||
|
||||
LOCK TABLES `characters_quest_completed` WRITE;
|
||||
/*!40000 ALTER TABLE `characters_quest_completed` DISABLE KEYS */;
|
||||
/*!40000 ALTER TABLE `characters_quest_completed` ENABLE KEYS */;
|
||||
UNLOCK TABLES;
|
||||
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
|
||||
|
||||
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
|
||||
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
|
||||
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
|
||||
-- Data exporting was unselected.
|
||||
/*!40101 SET SQL_MODE=IFNULL(@OLD_SQL_MODE, '') */;
|
||||
/*!40014 SET FOREIGN_KEY_CHECKS=IF(@OLD_FOREIGN_KEY_CHECKS IS NULL, 1, @OLD_FOREIGN_KEY_CHECKS) */;
|
||||
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
|
||||
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
|
||||
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
|
||||
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
|
||||
|
||||
-- Dump completed on 2016-06-07 22:54:47
|
||||
|
|
560
Data/sql/gamedata_quests.sql
Normal file
560
Data/sql/gamedata_quests.sql
Normal file
|
@ -0,0 +1,560 @@
|
|||
-- --------------------------------------------------------
|
||||
-- Host: 127.0.0.1
|
||||
-- Server version: 5.6.17 - MySQL Community Server (GPL)
|
||||
-- Server OS: Win64
|
||||
-- HeidiSQL Version: 10.1.0.5464
|
||||
-- --------------------------------------------------------
|
||||
|
||||
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
|
||||
/*!40101 SET NAMES utf8 */;
|
||||
/*!50503 SET NAMES utf8mb4 */;
|
||||
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
|
||||
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
|
||||
|
||||
|
||||
-- Dumping database structure for ffxiv_server
|
||||
CREATE DATABASE IF NOT EXISTS `ffxiv_server` /*!40100 DEFAULT CHARACTER SET latin1 */;
|
||||
USE `ffxiv_server`;
|
||||
|
||||
-- Dumping structure for table ffxiv_server.gamedata_quests
|
||||
DROP TABLE IF EXISTS `gamedata_quests`;
|
||||
CREATE TABLE IF NOT EXISTS `gamedata_quests` (
|
||||
`id` int(11) unsigned NOT NULL,
|
||||
`questName` varchar(50) NOT NULL,
|
||||
`className` varchar(10) NOT NULL,
|
||||
`prerequisite` int(11) unsigned NOT NULL,
|
||||
`minLevel` smallint(5) unsigned NOT NULL
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
|
||||
|
||||
-- Dumping data for table ffxiv_server.gamedata_quests: ~524 rows (approximately)
|
||||
/*!40000 ALTER TABLE `gamedata_quests` DISABLE KEYS */;
|
||||
REPLACE INTO `gamedata_quests` (`id`, `questName`, `className`, `prerequisite`, `minLevel`) VALUES
|
||||
(110001, 'Shapeless Melody', 'Man0l0', 0, 1),
|
||||
(110002, 'Treasures of the Main', 'Man0l1', 0, 1),
|
||||
(110003, 'Legends Adrift', 'Man1l0', 0, 8),
|
||||
(110004, 'Never the Twain Shall Meet', 'Man2l0', 0, 13),
|
||||
(110005, 'Sundered Skies', 'Man0g0', 0, 1),
|
||||
(110006, 'Souls Gone Wild', 'Man0g1', 0, 1),
|
||||
(110007, 'Whispers in the Wood', 'Man1g0', 0, 8),
|
||||
(110008, 'Beckon of the Elementals', 'Man2g0', 0, 13),
|
||||
(110009, 'Flowers for All', 'Man0u0', 0, 1),
|
||||
(110010, 'Court in the Sands', 'Man0u1', 0, 1),
|
||||
(110011, 'Golden Sacrifices', 'Man1u0', 0, 8),
|
||||
(110012, 'Calamity Cometh', 'Man2u0', 0, 13),
|
||||
(110013, 'Fade to White', 'Man200', 0, 18),
|
||||
(110014, 'Together We Stand', 'Man206', 0, 22),
|
||||
(110015, 'Toll of the Warden', 'Man300', 0, 30),
|
||||
(110016, 'Forever Taken', 'Man304', 0, 34),
|
||||
(110017, 'Lord Errant', 'Man308', 0, 38),
|
||||
(110018, 'Of Men They Sing', 'Man402', 0, 42),
|
||||
(110019, 'Futures Perfect', 'Man406', 0, 46),
|
||||
(110020, '[en]', 'Man502', 0, 52),
|
||||
(110021, '[en]', 'Man504', 0, 54),
|
||||
(110060, 'The House Always Wins', 'Pgl200', 0, 20),
|
||||
(110061, 'Here There Be Pirates', 'Pgl300', 0, 30),
|
||||
(110062, 'Two Sides to Every Chip', 'Pgl306', 0, 36),
|
||||
(110063, '[en]', 'Pgl400', 0, 40),
|
||||
(110080, 'All Bark and No Bite', 'Gla200', 0, 20),
|
||||
(110081, 'Unalienable Rights', 'Gla300', 0, 30),
|
||||
(110082, 'Thrill of the Fight', 'Gla306', 0, 36),
|
||||
(110083, '[en]', 'Gla400', 0, 40),
|
||||
(110100, 'Bloody Baptism', 'Exc200', 0, 20),
|
||||
(110101, 'Two-man Crew', 'Exc300', 0, 30),
|
||||
(110102, 'Captain\'s Orders', 'Exc306', 0, 36),
|
||||
(110103, '[en]', 'Exc400', 0, 40),
|
||||
(110104, '[en]', 'Exc500', 0, 50),
|
||||
(110105, '[en]', 'Exc506', 0, 56),
|
||||
(110140, 'Getting Started', 'Trl0l1', 0, 20),
|
||||
(110141, 'Getting Started', 'Trl0g1', 0, 30),
|
||||
(110142, '[en]', 'Trl0u1', 0, 36),
|
||||
(110143, '[en]', 'Trl0l2', 0, 20),
|
||||
(110144, 'Selecting a Different Path Companion', 'Trl0l3', 0, 50),
|
||||
(110145, '[en]', 'Trl0l4', 0, 56),
|
||||
(110160, 'Filling the Quiver', 'Arc200', 0, 20),
|
||||
(110161, 'The Foreboding Forest', 'Arc300', 110160, 30),
|
||||
(110162, 'There Can Be Only One', 'Arc306', 110161, 36),
|
||||
(110163, '[en]', 'Arc400', 0, 40),
|
||||
(110164, '[en]', 'Arc500', 0, 50),
|
||||
(110165, '[en]', 'Arc506', 0, 56),
|
||||
(110180, 'A Wailing Welcome', 'Lnc200', 0, 20),
|
||||
(110181, 'Culture Shock', 'Lnc300', 110180, 30),
|
||||
(110182, 'Necessary Evils', 'Lnc306', 110181, 36),
|
||||
(110183, '[en]', 'Lnc400', 0, 40),
|
||||
(110184, '[en]', 'Lnc500', 0, 50),
|
||||
(110185, '[en]', 'Lnc506', 0, 56),
|
||||
(110240, 'The Big Payback', 'Thm200', 0, 20),
|
||||
(110241, 'Revelry in Rivalry', 'Thm300', 0, 30),
|
||||
(110242, 'Law and the Order', 'Thm306', 0, 36),
|
||||
(110243, '[en]', 'Thm400', 0, 40),
|
||||
(110260, 'Dendrological Duties', 'Cnj200', 0, 20),
|
||||
(110261, 'Good Knight, Sweet Dreams', 'Cnj300', 110260, 30),
|
||||
(110262, 'The Call of Nature', 'Cnj306', 110261, 36),
|
||||
(110263, '[en]', 'Cnj400', 0, 40),
|
||||
(110264, '[en]', 'Cnj500', 0, 50),
|
||||
(110265, '[en]', 'Cnj506', 0, 56),
|
||||
(110280, '[en]', 'Acn200', 0, 20),
|
||||
(110281, '[en]', 'Acn300', 0, 30),
|
||||
(110282, '[en]', 'Acn306', 0, 36),
|
||||
(110283, '[en]', 'Acn400', 0, 40),
|
||||
(110284, '[en]', 'Acn500', 0, 50),
|
||||
(110285, '[en]', 'Acn506', 0, 56),
|
||||
(110300, 'The Mouths of Babes', 'Wdk200', 0, 20),
|
||||
(110301, 'Hide and Seek Shenanigans', 'Wdk300', 110300, 30),
|
||||
(110302, 'Spanning the Spectrum', 'Wdk306', 110301, 36),
|
||||
(110303, '[en]', 'Wdk400', 0, 40),
|
||||
(110304, '[en]', 'Wdk500', 0, 50),
|
||||
(110305, '[en]', 'Wdk506', 0, 56),
|
||||
(110320, 'An Ear for Quality', 'Bsm200', 0, 20),
|
||||
(110321, 'Song of the Sirens', 'Bsm300', 0, 30),
|
||||
(110322, 'The Sound of Silence', 'Bsm306', 0, 36),
|
||||
(110323, '[en]', 'Bsm400', 0, 40),
|
||||
(110324, '[en]', 'Bsm500', 0, 50),
|
||||
(110325, '[en]', 'Bsm506', 0, 56),
|
||||
(110360, 'She Walks in Beauty', 'Gld200', 0, 20),
|
||||
(110361, 'F\'lhaminn\'s Flower', 'Gld300', 0, 30),
|
||||
(110362, 'Struck Through the Heart', 'Gld306', 0, 36),
|
||||
(110363, '[en]', 'Gld400', 0, 40),
|
||||
(110364, '[en]', 'Gld500', 0, 50),
|
||||
(110365, '[en]', 'Gld506', 0, 56),
|
||||
(110380, 'The Silent Partners', 'Tan200', 0, 20),
|
||||
(110381, 'Design Imposters', 'Tan300', 110380, 30),
|
||||
(110382, 'Head of the Class', 'Tan306', 110381, 36),
|
||||
(110383, '[en]', 'Tan400', 0, 40),
|
||||
(110384, '[en]', 'Tan500', 0, 50),
|
||||
(110385, '[en]', 'Tan506', 0, 56),
|
||||
(110400, 'Hoodwinked', 'Wvr200', 0, 20),
|
||||
(110401, 'Dance the Night Away', 'Wvr300', 0, 30),
|
||||
(110402, 'A Fruitful Murder', 'Wvr306', 0, 36),
|
||||
(110403, '[en]', 'Wvr400', 0, 40),
|
||||
(110404, '[en]', 'Wvr500', 0, 50),
|
||||
(110405, '[en]', 'Wvr506', 0, 56),
|
||||
(110420, 'Sleep, Cousin of Death', 'Alc200', 0, 20),
|
||||
(110421, 'The Boy and the Dragon Gay', 'Alc300', 110420, 30),
|
||||
(110422, 'Dream On, Dream Away', 'Alc306', 110421, 36),
|
||||
(110423, '[en]', 'Alc400', 0, 40),
|
||||
(110424, '[en]', 'Alc500', 0, 50),
|
||||
(110425, '[en]', 'Alc506', 0, 56),
|
||||
(110440, 'Showdown', 'Cul200', 0, 20),
|
||||
(110441, 'Mystery of the Gastronome Gone Home', 'Cul300', 0, 30),
|
||||
(110442, 'Something in the Soup', 'Cul306', 0, 36),
|
||||
(110443, '[en]', 'Cul400', 0, 40),
|
||||
(110444, '[en]', 'Cul500', 0, 50),
|
||||
(110445, '[en]', 'Cul506', 0, 56),
|
||||
(110460, 'A Piece of History', 'Min200', 0, 20),
|
||||
(110461, 'Little Saboteurs', 'Min300', 0, 30),
|
||||
(110462, 'Runaway Little Girl', 'Min306', 0, 36),
|
||||
(110463, '[en]', 'Min400', 0, 40),
|
||||
(110464, '[en]', 'Min500', 0, 50),
|
||||
(110465, '[en]', 'Min506', 0, 56),
|
||||
(110480, 'Gridanian Roots', 'Hrv200', 0, 20),
|
||||
(110481, 'The Grass is Always Greener', 'Hrv300', 110480, 30),
|
||||
(110482, 'A Moogle Bouquet', 'Hrv306', 110481, 36),
|
||||
(110483, '[en]', 'Hrv400', 0, 40),
|
||||
(110484, '[en]', 'Hrv500', 0, 50),
|
||||
(110485, '[en]', 'Hrv506', 0, 56),
|
||||
(110500, 'To Fight a Fishback', 'Fsh200', 0, 20),
|
||||
(110501, 'The Beast of the Barrel', 'Fsh300', 0, 30),
|
||||
(110502, 'Polishing the Mast', 'Fsh306', 0, 36),
|
||||
(110503, '[en]', 'Fsh400', 0, 40),
|
||||
(110504, '[en]', 'Fsh500', 0, 50),
|
||||
(110505, '[en]', 'Fsh506', 0, 56),
|
||||
(110540, 'Small Talk', 'Dftsea', 0, 0),
|
||||
(110541, 'Small Talk', 'Dftfst', 0, 0),
|
||||
(110542, 'Small Talk', 'Dftroc', 0, 0),
|
||||
(110543, 'Small Talk', 'Dftwil', 0, 0),
|
||||
(110544, 'Small Talk', 'Dftsrt', 0, 0),
|
||||
(110545, 'Small Talk', 'Dftlak', 0, 0),
|
||||
(110600, '[en]', 'Etc0l1', 0, 0),
|
||||
(110601, '[en]', 'Etc0l2', 0, 0),
|
||||
(110602, '[en]', 'Etc0l3', 0, 0),
|
||||
(110603, '[en]', 'Etc0l4', 0, 0),
|
||||
(110604, '[en]', 'Etc0l5', 0, 0),
|
||||
(110605, '[en]', 'Etc0l6', 0, 0),
|
||||
(110606, '[en]', 'Etc0l7', 0, 0),
|
||||
(110607, '[en]', 'Etc0l8', 0, 0),
|
||||
(110608, '[en]', 'Etc0l9', 0, 0),
|
||||
(110609, '[en]', 'Etc0g1', 0, 0),
|
||||
(110610, '[en]', 'Etc0g2', 0, 0),
|
||||
(110611, '[en]', 'Etc0g3', 0, 0),
|
||||
(110612, '[en]', 'Etc0g4', 0, 0),
|
||||
(110613, '[en]', 'Etc0g5', 0, 0),
|
||||
(110614, '[en]', 'Etc0g6', 0, 0),
|
||||
(110615, '[en]', 'Etc0g7', 0, 0),
|
||||
(110616, '[en]', 'Etc0g8', 0, 0),
|
||||
(110617, '[en]', 'Etc0g9', 0, 0),
|
||||
(110618, '[en]', 'Etc0u1', 0, 0),
|
||||
(110619, '[en]', 'Etc0u2', 0, 0),
|
||||
(110620, '[en]', 'Etc0u3', 0, 0),
|
||||
(110621, '[en]', 'Etc0u4', 0, 0),
|
||||
(110622, '[en]', 'Etc0u5', 0, 0),
|
||||
(110623, '[en]', 'Etc0u6', 0, 0),
|
||||
(110624, '[en]', 'Etc0u7', 0, 0),
|
||||
(110625, '[en]', 'Etc0u8', 0, 0),
|
||||
(110626, '[en]', 'Etc0u9', 0, 0),
|
||||
(110627, 'Ifrit Bleeds, We Can Kill It', 'Sum6a0', 0, 45),
|
||||
(110628, '[en]', 'Sum7l0', 0, 0),
|
||||
(110629, '[en]', 'Sum7t0', 0, 0),
|
||||
(110630, '[en]', 'Sum8a0', 0, 0),
|
||||
(110631, '[en]', 'Sum8l0', 0, 0),
|
||||
(110632, '[en]', 'Sum8t0', 0, 0),
|
||||
(110633, 'Assessing the Damage', 'Etc1l0', 0, 20),
|
||||
(110634, 'Bridging the Gap', 'Etc1l1', 0, 10),
|
||||
(110635, '[en]', 'Etc1l2', 0, 0),
|
||||
(110636, 'Revenge on the Reavers', 'Etc1l3', 0, 45),
|
||||
(110637, '[en]', 'Etc1l4', 0, 0),
|
||||
(110638, 'Till Death Do Us Part', 'Etc1l5', 0, 20),
|
||||
(110639, 'Beryl Overboard', 'Etc1l6', 110638, 20),
|
||||
(110640, 'Have You Seen My Son', 'Etc1l7', 0, 30),
|
||||
(110641, 'Food for Thought', 'Etc1l8', 0, 20),
|
||||
(110642, 'Seashells by the Seashore', 'Etc1l9', 0, 20),
|
||||
(110643, 'Fishing for Answers', 'Etc2l0', 0, 25),
|
||||
(110644, 'Moonstruck', 'Etc2l1', 0, 20),
|
||||
(110645, '[en]', 'Etc2l2', 0, 0),
|
||||
(110646, 'A Misty Past', 'Etc2l3', 0, 17),
|
||||
(110647, '[en]', 'Etc2l4', 0, 0),
|
||||
(110648, 'Carving a Name', 'Etc2l5', 0, 47),
|
||||
(110649, '[en]', 'Etc2l6', 0, 0),
|
||||
(110650, '[en]', 'Etc2l7', 0, 0),
|
||||
(110651, '[en]', 'Etc2l8', 0, 0),
|
||||
(110652, '[en]', 'Etc2l9', 0, 0),
|
||||
(110653, 'The Tug of the Whorl', 'Etc3l0', 0, 5),
|
||||
(110654, 'Proceed with Caution', 'Etc1g0', 0, 10),
|
||||
(110655, 'Playing with Fire', 'Etc1g1', 0, 15),
|
||||
(110656, 'A Well-Balanced Diet', 'Etc1g2', 0, 25),
|
||||
(110657, '[en]', 'Etc1g3', 0, 0),
|
||||
(110658, 'The Penultimate Prank', 'Etc1g4', 0, 30),
|
||||
(110659, 'The Search for Sicksa', 'Etc1g5', 0, 10),
|
||||
(110660, 'The Ultimate Prank', 'Etc1g6', 110658, 35),
|
||||
(110661, '[en]', 'Etc1g7', 0, 0),
|
||||
(110662, 'Say it with Wolf Tails', 'Etc1g8', 110640, 30),
|
||||
(110663, 'Embarrassing Excerpts', 'Etc1g9', 0, 30),
|
||||
(110664, 'A Forbidden Love', 'Etc2g0', 110663, 30),
|
||||
(110665, 'Last Respects', 'Etc2g1', 0, 40),
|
||||
(110666, 'Stone Deaf', 'Etc2g2', 0, 18),
|
||||
(110667, 'Hunting the Hunters', 'Etc2g3', 0, 24),
|
||||
(110668, 'To Deskunk A Beer', 'Etc2g4', 0, 31),
|
||||
(110669, 'Losing One\'s Thread', 'Etc2g5', 0, 25),
|
||||
(110670, '[en]', 'Etc2g6', 0, 0),
|
||||
(110671, '[en]', 'Etc2g7', 0, 0),
|
||||
(110672, '[en]', 'Etc2g8', 0, 0),
|
||||
(110673, '[en]', 'Etc2g9', 0, 0),
|
||||
(110674, 'Seeing the Seers', 'Etc3g0', 0, 5),
|
||||
(110675, 'A Knock in the Night', 'Etc1u0', 0, 35),
|
||||
(110676, 'Sleepless in Eorzea', 'Etc1u1', 0, 10),
|
||||
(110677, 'Dressed to Be Killed', 'Etc1u2', 0, 45),
|
||||
(110678, '[en]', 'Etc1u3', 0, 0),
|
||||
(110679, 'The Customer Comes First', 'Etc1u4', 0, 30),
|
||||
(110680, 'An Inconvenient Dodo', 'Etc1u5', 0, 15),
|
||||
(110681, 'Besmitten and Besmirched', 'Etc1u6', 0, 15),
|
||||
(110682, 'Clasping to Hope', 'Etc1u7', 0, 34),
|
||||
(110683, 'Traumaturgy', 'Etc1u8', 110682, 36),
|
||||
(110684, 'Best Flower Ever', 'Etc1u9', 0, 10),
|
||||
(110685, 'The Unheard Horizon', 'Etc2u0', 0, 20),
|
||||
(110686, 'Freedom Isn\'t Free', 'Etc2u1', 0, 32),
|
||||
(110687, 'Ore for an Ore', 'Etc2u2', 0, 28),
|
||||
(110688, '[en]', 'Etc2u3', 0, 0),
|
||||
(110689, '[en]', 'Etc2u4', 0, 0),
|
||||
(110690, 'No Other Dodo Will Do', 'Etc2u5', 0, 15),
|
||||
(110691, '[en]', 'Etc2u6', 0, 0),
|
||||
(110692, '[en]', 'Etc2u7', 0, 0),
|
||||
(110693, '[en]', 'Etc2u8', 0, 0),
|
||||
(110694, '[en]', 'Etc2u9', 0, 0),
|
||||
(110695, 'A Call to Arms', 'Etc3u0', 0, 5),
|
||||
(110696, '[en]', 'Etc1i0', 0, 0),
|
||||
(110697, '[en]', 'Etc1i1', 0, 0),
|
||||
(110698, '[en]', 'Etc1i2', 0, 0),
|
||||
(110699, '[en]', 'Etc1i3', 0, 0),
|
||||
(110700, '[en]', 'Etc1i4', 0, 0),
|
||||
(110701, '[en]', 'Etc1i5', 0, 0),
|
||||
(110702, '[en]', 'Etc1i6', 0, 0),
|
||||
(110703, '[en]', 'Etc1i7', 0, 0),
|
||||
(110704, '[en]', 'Etc1i8', 0, 0),
|
||||
(110705, '[en]', 'Etc1i9', 0, 0),
|
||||
(110706, 'Counting Sheep', 'Etc2i0', 0, 25),
|
||||
(110707, 'A Hypocritical Oath', 'Etc2i1', 0, 25),
|
||||
(110708, 'Blood Price', 'Etc2i2', 0, 45),
|
||||
(110709, '[en]', 'Etc2i3', 0, 0),
|
||||
(110710, '[en]', 'Etc2i4', 0, 0),
|
||||
(110711, '[en]', 'Etc2i5', 0, 0),
|
||||
(110712, '[en]', 'Etc2i6', 0, 0),
|
||||
(110713, '[en]', 'Etc2i7', 0, 0),
|
||||
(110714, '[en]', 'Etc2i8', 0, 0),
|
||||
(110715, '[en]', 'Etc2i9', 0, 0),
|
||||
(110716, '[en]', 'Etc3i0', 0, 0),
|
||||
(110717, '[en]', 'Etc3i1', 0, 0),
|
||||
(110718, '[en]', 'Etc3i2', 0, 0),
|
||||
(110719, '[en]', 'Etc3i3', 0, 0),
|
||||
(110720, '[en]', 'Etc3i4', 0, 0),
|
||||
(110721, '[en]', 'Etc3i5', 0, 0),
|
||||
(110722, '[en]', 'Etc3i6', 0, 0),
|
||||
(110723, '[en]', 'Etc3i7', 0, 0),
|
||||
(110724, '[en]', 'Etc3i8', 0, 0),
|
||||
(110725, '[en]', 'Etc3i9', 0, 0),
|
||||
(110726, 'Quid Pro Quo', 'Etc3u1', 0, 15),
|
||||
(110727, 'There Might Be Blood', 'Etc3u2', 0, 21),
|
||||
(110728, 'Cutthroat Prices', 'Etc3u3', 0, 15),
|
||||
(110729, '[en]', 'Etc3u4', 0, 0),
|
||||
(110730, '[en]', 'Etc3u5', 0, 0),
|
||||
(110731, '[en]', 'Etc3u6', 0, 0),
|
||||
(110732, '[en]', 'Etc3u7', 0, 0),
|
||||
(110733, '[en]', 'Etc3u8', 0, 0),
|
||||
(110734, 'Monster of Maw Most Massive', 'Etc3u9', 0, 45),
|
||||
(110735, 'Scrubbing the Soul', 'Etc3g1', 0, 15),
|
||||
(110736, 'Disorganized Crime', 'Etc3g2', 0, 21),
|
||||
(110737, 'A Slippery Stone', 'Etc3g3', 0, 15),
|
||||
(110738, '[en]', 'Etc3g4', 0, 0),
|
||||
(110739, '[en]', 'Etc3g5', 0, 0),
|
||||
(110740, '[en]', 'Etc3g6', 0, 0),
|
||||
(110741, '[en]', 'Etc3g7', 0, 0),
|
||||
(110742, '[en]', 'Etc3g8', 0, 0),
|
||||
(110743, '[en]', 'Etc3g9', 0, 0),
|
||||
(110744, 'Winds of Change', 'Etc3l1', 0, 15),
|
||||
(110745, 'Shot Through the Heart', 'Etc3l2', 0, 21),
|
||||
(110746, 'What a Pirate Wants', 'Etc3l3', 0, 15),
|
||||
(110747, '[en]', 'Etc3l4', 0, 0),
|
||||
(110748, '[en]', 'Etc3l5', 0, 0),
|
||||
(110749, '[en]', 'Etc3l6', 0, 0),
|
||||
(110750, '[en]', 'Etc3l7', 0, 0),
|
||||
(110751, '[en]', 'Etc3l8', 0, 0),
|
||||
(110752, '[en]', 'Etc3l9', 0, 0),
|
||||
(110753, 'Of Archons and Muses', 'Wld0u1', 0, 10),
|
||||
(110754, 'Sanguine Studies', 'Wld0u2', 0, 27),
|
||||
(110755, 'Secrets Unearthed', 'Wld0u3', 0, 17),
|
||||
(110756, 'Rustproof', 'Wld0u4', 0, 28),
|
||||
(110757, '[en]', 'Wld0u5', 0, 0),
|
||||
(110758, '[en]', 'Wld0u6', 0, 0),
|
||||
(110759, '[en]', 'Wld0u7', 0, 0),
|
||||
(110760, '[en]', 'Wld0u8', 0, 0),
|
||||
(110761, '[en]', 'Wld0u9', 0, 0),
|
||||
(110762, 'In the Name of Science', 'Wld0g1', 0, 10),
|
||||
(110763, 'Hearing Confession', 'Wld0g2', 0, 10),
|
||||
(110764, 'A Bitter Oil to Swallow', 'Wld0g3', 0, 17),
|
||||
(110765, 'Spores on the Brain', 'Wld0g4', 110762, 11),
|
||||
(110766, '[en]', 'Wld0g5', 0, 0),
|
||||
(110767, '[en]', 'Wld0g6', 0, 0),
|
||||
(110768, '[en]', 'Wld0g7', 0, 0),
|
||||
(110769, '[en]', 'Wld0g8', 0, 0),
|
||||
(110770, '[en]', 'Wld0g9', 0, 0),
|
||||
(110771, 'Trading Tongueflaps', 'Wld0l1', 0, 5),
|
||||
(110772, 'Letting Out Orion\'s Belt', 'Wld0l2', 0, 10),
|
||||
(110773, 'Sour Grapes', 'Wld0l3', 0, 17),
|
||||
(110774, 'Sniffing Out a Profit', 'Wld0l4', 0, 37),
|
||||
(110775, '[en]', 'Wld0l5', 0, 0),
|
||||
(110776, '[en]', 'Wld0l6', 0, 0),
|
||||
(110777, '[en]', 'Wld0l7', 0, 0),
|
||||
(110778, '[en]', 'Wld0l8', 0, 0),
|
||||
(110779, '[en]', 'Wld0l9', 0, 0),
|
||||
(110780, '[en]', 'Wld0i1', 0, 0),
|
||||
(110781, '[en]', 'Wld0i2', 0, 0),
|
||||
(110782, '[en]', 'Wld0i3', 0, 0),
|
||||
(110783, '[en]', 'Wld0i4', 0, 0),
|
||||
(110784, '[en]', 'Wld0i5', 0, 0),
|
||||
(110785, '[en]', 'Wld0i6', 0, 0),
|
||||
(110786, '[en]', 'Wld0i7', 0, 0),
|
||||
(110787, '[en]', 'Wld0i8', 0, 0),
|
||||
(110788, '[en]', 'Wld0i9', 0, 0),
|
||||
(110789, 'The Dreamer\'s Gospel (Ul\'dah)', 'Spl0u1', 0, 5),
|
||||
(110790, 'The Dreamer\'s Dilemma (Ul\'dah)', 'Spl0u2', 0, 5),
|
||||
(110791, '[en]', 'Spl0u3', 0, 0),
|
||||
(110792, '[en]', 'Spl0u4', 0, 0),
|
||||
(110793, '[en]', 'Spl0u5', 0, 0),
|
||||
(110794, 'The Dreamer\'s Gospel (Gridania)', 'Spl0g1', 0, 5),
|
||||
(110795, 'The Dreamer\'s Dilemma (Gridania)', 'Spl0g2', 0, 5),
|
||||
(110796, '[en]', 'Spl0g3', 0, 0),
|
||||
(110797, '[en]', 'Spl0g4', 0, 0),
|
||||
(110798, '[en]', 'Spl0g5', 0, 0),
|
||||
(110799, 'The Heat Is On', 'Spl0i1', 0, 1),
|
||||
(110800, 'Impish Impositions', 'Spl0i2', 0, 1),
|
||||
(110801, 'Winter Is Not Coming', 'Spl0i3', 0, 1),
|
||||
(110802, 'Gone with the Snow', 'Spl0i4', 0, 1),
|
||||
(110803, '[en]', 'Spl0i5', 0, 0),
|
||||
(110804, 'The Dreamer\'s Gospel (Limsa Lominsa)', 'Spl0l1', 0, 5),
|
||||
(110805, 'The Dreamer\'s Dilemma (Limsa Lominsa)', 'Spl0l2', 0, 5),
|
||||
(110806, '[en]', 'Spl0l3', 0, 0),
|
||||
(110807, '[en]', 'Spl0l4', 0, 0),
|
||||
(110808, '[en]', 'Spl0l5', 0, 0),
|
||||
(110809, 'Guild Tasks', 'Noc000', 0, 0),
|
||||
(110810, 'Call of Booty', 'Etc303', 110737, 15),
|
||||
(110811, 'Risky Business', 'Etc101', 0, 18),
|
||||
(110812, 'Forging the Spirit', 'Etc102', 0, 18),
|
||||
(110813, 'Joining the Spirit', 'Etc103', 0, 18),
|
||||
(110814, 'Waking the Spirit', 'Etc104', 0, 18),
|
||||
(110815, '[en]', 'Etc105', 0, 0),
|
||||
(110816, 'A Feast of Fools', 'Sum6m0', 0, 45),
|
||||
(110817, 'Provisioning & Supply Missions', 'Noc001', 0, 0),
|
||||
(110818, 'A Light in the Dark', 'Etc200', 0, 45),
|
||||
(110819, 'What Glitters Always Isn\'t Gold', 'Etc201', 0, 45),
|
||||
(110820, '[en]', 'Etc202', 0, 1),
|
||||
(110821, 'the Thousand Maws of Toto’Rak', 'Etc202', 0, 1),
|
||||
(110822, 'Dzemael Darkhold', 'Etc202', 0, 1),
|
||||
(110823, 'Aurum Vale', 'Etc202', 0, 1),
|
||||
(110824, 'Cutter\'s Cry', 'Etc202', 0, 1),
|
||||
(110828, 'Waste Not Want Not', 'Etc5g0', 110006, 1),
|
||||
(110829, 'In Plain Sight', 'Etc5g1', 0, 15),
|
||||
(110838, 'The Ink Thief', 'Etc5l0', 110002, 1),
|
||||
(110839, 'Private Eyes', 'Etc5l1', 0, 15),
|
||||
(110840, 'Mysteries of the Red Moon', 'Etc5l2', 110839, 20),
|
||||
(110841, 'Prophecy Inspection', 'Etc5l3', 110840, 20),
|
||||
(110848, 'Ring of Deceit', 'Etc5u0', 110010, 1),
|
||||
(110849, 'The Usual Suspect', 'Etc5u1', 0, 15),
|
||||
(110850, '[en]', 'Etc5u2', 0, 1),
|
||||
(110851, '[en]', 'Etc5u3', 0, 1),
|
||||
(110858, 'Seasonal Event', 'Spl000', 0, 1),
|
||||
(110859, 'Scrambled Eggs', 'Spl101', 0, 1),
|
||||
(110860, 'Bombard Backlash', 'Spl102', 0, 1),
|
||||
(110861, 'Seasonal Event (All City-states)', 'Spl103', 0, 1),
|
||||
(110862, 'Hamlet Defense', 'Noc002', 0, 1),
|
||||
(110863, 'Class is in Session', 'Noc003', 0, 1),
|
||||
(110867, 'Taming the Tempest', 'Sum6g0', 0, 45),
|
||||
(110868, 'A Relic Reborn', 'Etc106', 0, 50),
|
||||
(110869, 'Living on a Prayer', 'Etc304', 0, 45),
|
||||
(110870, 'The Raven, Nevermore', 'Sum6w0', 0, 45),
|
||||
(111201, 'Pride and Duty (Will Take You from the Mountain)', 'War0j1', 0, 15),
|
||||
(111202, 'Embracing the Beast', 'War0j2', 0, 15),
|
||||
(111203, 'Curious Gorge Goes to the Bazaar', 'War0j3', 0, 15),
|
||||
(111204, 'Looking the Part', 'War0j4', 0, 15),
|
||||
(111205, 'Proof is in the Pudding', 'War0j5', 0, 15),
|
||||
(111206, 'How to Quit You', 'War0j6', 0, 15),
|
||||
(111221, 'Brother from Another Mother', 'Mnk0j1', 0, 15),
|
||||
(111222, 'Insulted Intelligence', 'Mnk0j2', 0, 15),
|
||||
(111223, 'The Pursuit of Power', 'Mnk0j3', 0, 15),
|
||||
(111224, 'Good Vibrations', 'Mnk0j4', 0, 15),
|
||||
(111225, 'Five Easy Pieces', 'Mnk0j5', 0, 15),
|
||||
(111226, 'Return of the King...of Ruin', 'Mnk0j6', 0, 15),
|
||||
(111241, 'Seeds of Initiative', 'Whm0j1', 0, 15),
|
||||
(111242, 'When Sheep Attack', 'Whm0j2', 0, 15),
|
||||
(111243, 'Lost in Rage', 'Whm0j3', 0, 15),
|
||||
(111244, 'The Wheel of Disaster', 'Whm0j4', 0, 15),
|
||||
(111245, 'In Search of Succor', 'Whm0j5', 0, 15),
|
||||
(111246, 'The Chorus of Cataclysm', 'Whm0j6', 0, 15),
|
||||
(111261, 'Hearing Voices', 'Blm0j1', 0, 15),
|
||||
(111262, 'A Time to Kill', 'Blm0j2', 0, 15),
|
||||
(111263, 'International Relations', 'Blm0j3', 0, 15),
|
||||
(111264, 'The Voidgate Breathes Gloomy', 'Blm0j4', 0, 15),
|
||||
(111265, 'Gearing Up', 'Blm0j5', 0, 15),
|
||||
(111266, 'Always Bet on Black', 'Blm0j6', 0, 15),
|
||||
(111281, 'Paladin\'s Pledge', 'Pld0j1', 0, 15),
|
||||
(111282, 'Honor Lost', 'Pld0j2', 0, 15),
|
||||
(111283, 'Power Struggles', 'Pld0j3', 0, 15),
|
||||
(111284, 'Poisoned Hearts', 'Pld0j4', 0, 15),
|
||||
(111285, 'Parley on High Ground', 'Pld0j5', 0, 15),
|
||||
(111286, 'Keeping the Oath', 'Pld0j6', 0, 15),
|
||||
(111301, 'A Song of Bards and Bowmen', 'Brd0j1', 0, 15),
|
||||
(111302, 'The Archer\'s Anthem', 'Brd0j2', 0, 15),
|
||||
(111303, 'Bard\'s-Eye View', 'Brd0j3', 0, 15),
|
||||
(111304, 'Doing It the Bard Way', 'Brd0j4', 0, 15),
|
||||
(111305, 'Pieces of the Past', 'Brd0j5', 0, 15),
|
||||
(111306, 'Requiem for the Fallen', 'Brd0j6', 0, 15),
|
||||
(111321, 'Eye of the Dragon', 'Drg0j1', 0, 15),
|
||||
(111322, 'Lance of Fury', 'Drg0j2', 0, 15),
|
||||
(111323, 'Unfading Scars', 'Drg0j3', 0, 15),
|
||||
(111324, 'Double Dragoon', 'Drg0j4', 0, 15),
|
||||
(111325, 'Fatal Seduction', 'Drg0j5', 0, 15),
|
||||
(111326, 'Into the Dragon\'s Maw', 'Drg0j6', 0, 15),
|
||||
(111401, 'The Price of Integrity', 'Com0l1', 0, 22),
|
||||
(111402, 'Testing the Waters', 'Com0l2', 0, 22),
|
||||
(111403, 'Seals for the Whorl', 'Com0l3', 0, 22),
|
||||
(111404, 'Engineering Victory', 'Com0l4', 0, 22),
|
||||
(111405, 'An Officer and a Wise Man', 'Com0l5', 0, 25),
|
||||
(111406, 'Ceruleum Shock', 'Com0l6', 0, 25),
|
||||
(111407, 'Till Sea Swallows All', 'Com0l7', 0, 25),
|
||||
(111408, '[en]', 'Com0l8', 0, 0),
|
||||
(111409, '[en]', 'Com0l9', 0, 0),
|
||||
(111410, 'Imperial Devices (Limsa Lominsa)', 'Com5l0', 0, 25),
|
||||
(111411, 'Into the Dark (Limsa Lominsa)', 'Com5l1', 0, 45),
|
||||
(111412, '[en]', 'Com5l2', 0, 0),
|
||||
(111413, '[en]', 'Com5l3', 0, 0),
|
||||
(111414, '[en]', 'Com5l4', 0, 0),
|
||||
(111415, '[en]', 'Com5l5', 0, 0),
|
||||
(111416, 'It Kills with Fire (Limsa Lominsa)', 'Gcl101', 0, 30),
|
||||
(111417, 'The Cove', 'Gcl301', 0, 25),
|
||||
(111418, 'Saving the Stead Instead', 'Gcl302', 0, 25),
|
||||
(111419, 'It\'s a Piece of Cake to Bake a Poison Cake', 'Gcl303', 0, 40),
|
||||
(111420, 'Kobold and the Beautiful', 'Gcl304', 0, 45),
|
||||
(111421, '[en]', 'Gcl501', 0, 0),
|
||||
(111422, '[en]', 'Gcl502', 0, 0),
|
||||
(111423, '[en]', 'Gcl601', 0, 0),
|
||||
(111424, '[en]', 'Gcl602', 0, 0),
|
||||
(111425, '[en]', 'Gcl603', 0, 0),
|
||||
(111426, 'Oil Crisis', 'Gcl305', 0, 50),
|
||||
(111427, 'Alive', 'Gcl102', 0, 40),
|
||||
(111428, 'The Weakest Link', 'Gcl701', 0, 45),
|
||||
(111429, 'Deus ex Machina', 'Gcl103', 0, 45),
|
||||
(111430, 'In for Garuda Wakening (Limsa Lominsa)', 'Gcl104', 0, 45),
|
||||
(111431, 'Don\'t Hate the Messenger (Limsa Lominsa)', 'Gcl105', 0, 45),
|
||||
(111432, 'United We Stand (Limsa Lominsa)', 'Gcl106', 0, 45),
|
||||
(111433, 'To Kill a Raven (Limsa Lominsa)', 'Gcl107', 0, 45),
|
||||
(111434, 'Patrol, Interrupted', 'Gcl702', 0, 50),
|
||||
(111601, 'Breaking the Seals', 'Com0g1', 0, 22),
|
||||
(111602, 'Why Did It Have to Be Snakes', 'Com0g2', 0, 22),
|
||||
(111603, 'Adder\'s Nest Egg', 'Com0g3', 0, 22),
|
||||
(111604, 'The Mail Must Get Through', 'Com0g4', 0, 22),
|
||||
(111605, 'Their Finest Hour', 'Com0g5', 0, 25),
|
||||
(111606, 'Appetite for Destruction', 'Com0g6', 0, 25),
|
||||
(111607, 'Serenity, Purity, Sanctity', 'Com0g7', 0, 25),
|
||||
(111608, '[en]', 'Com0g8', 0, 0),
|
||||
(111609, '[en]', 'Com0g9', 0, 0),
|
||||
(111610, 'Imperial Devices (Gridania)', 'Com5g0', 0, 25),
|
||||
(111611, 'Into the Dark (Gridania)', 'Com5g1', 0, 45),
|
||||
(111612, '[en]', 'Com5g2', 0, 0),
|
||||
(111613, '[en]', 'Com5g3', 0, 0),
|
||||
(111614, '[en]', 'Com5g4', 0, 0),
|
||||
(111615, '[en]', 'Com5g5', 0, 0),
|
||||
(111616, 'It Kills with Fire (Gridania)', 'Gcg101', 0, 30),
|
||||
(111617, 'Eternal Recurrence', 'Gcg301', 0, 25),
|
||||
(111618, 'The Pen Is Mightier Than the Spear', 'Gcg302', 0, 25),
|
||||
(111619, 'Woes of the Botanist', 'Gcg303', 0, 40),
|
||||
(111620, 'Gone with the Wind', 'Gcg304', 0, 45),
|
||||
(111621, '[en]', 'Gcg501', 0, 0),
|
||||
(111622, '[en]', 'Gcg502', 0, 0),
|
||||
(111623, '[en]', 'Gcg601', 0, 0),
|
||||
(111624, '[en]', 'Gcg602', 0, 0),
|
||||
(111625, '[en]', 'Gcg603', 0, 0),
|
||||
(111626, 'A Taste for Death', 'Gcg305', 0, 50),
|
||||
(111627, 'Two Vans are Better than One', 'Gcg102', 0, 40),
|
||||
(111628, 'You Don\'t Have the Rite', 'Gcg701', 0, 45),
|
||||
(111629, 'Shadow of the Raven', 'Gcg103', 0, 45),
|
||||
(111630, 'In for Garuda Wakening (Gridania)', 'Gcg104', 0, 45),
|
||||
(111631, 'Don\'t Hate the Messenger (Gridania)', 'Gcg105', 0, 45),
|
||||
(111632, 'United We Stand (Gridania)', 'Gcg106', 0, 45),
|
||||
(111633, 'To Kill a Raven (Gridania)', 'Gcg107', 0, 45),
|
||||
(111634, 'Cure for the Common Pox', 'Gcg702', 0, 50),
|
||||
(111801, 'Career Opportunities', 'Com0u1', 0, 22),
|
||||
(111802, 'Kindling a Flame', 'Com0u2', 0, 22),
|
||||
(111803, 'Burning a Hole in One\'s Pocket', 'Com0u3', 0, 22),
|
||||
(111804, 'Arms Race', 'Com0u4', 0, 22),
|
||||
(111805, 'Burning Man', 'Com0u5', 0, 25),
|
||||
(111806, 'Know Your Enemy', 'Com0u6', 0, 25),
|
||||
(111807, 'By Fire Reborn', 'Com0u7', 0, 25),
|
||||
(111808, '[en]', 'Com0u8', 0, 0),
|
||||
(111809, '[en]', 'Com0u9', 0, 0),
|
||||
(111810, 'Imperial Devices (Ul\'dah)', 'Com5u0', 0, 25),
|
||||
(111811, 'Into the Dark (Ul\'dah)', 'Com5u1', 0, 45),
|
||||
(111812, '[en]', 'Com5u2', 0, 0),
|
||||
(111813, '[en]', 'Com5u3', 0, 0),
|
||||
(111814, '[en]', 'Com5u4', 0, 0),
|
||||
(111815, '[en]', 'Com5u5', 0, 0),
|
||||
(111816, 'It Kills with Fire (Ul\'dah)', 'Gcu101', 0, 30),
|
||||
(111817, 'Prying Eyes', 'Gcu301', 0, 25),
|
||||
(111818, 'Different Strokes', 'Gcu302', 0, 25),
|
||||
(111819, 'A Weaver and a Mummer', 'Gcu303', 0, 40),
|
||||
(111820, 'When Alchemists Cry', 'Gcu304', 0, 45),
|
||||
(111821, '[en]', 'Gcu501', 0, 0),
|
||||
(111822, '[en]', 'Gcu502', 0, 0),
|
||||
(111823, '[en]', 'Gcu601', 0, 0),
|
||||
(111824, '[en]', 'Gcu602', 0, 0),
|
||||
(111825, '[en]', 'Gcu603', 0, 0),
|
||||
(111826, 'Challenge Accepted', 'Gcu305', 0, 50),
|
||||
(111827, 'Like Father, Like Son', 'Gcu102', 0, 40),
|
||||
(111828, 'Gore a Lizard, Hurry', 'Gcu701', 0, 45),
|
||||
(111829, 'Careless Whispers', 'Gcu103', 0, 45),
|
||||
(111830, 'In for Garuda Wakening (Ul\'dah)', 'Gcu104', 0, 45),
|
||||
(111831, 'Don\'t Hate the Messenger (Ul\'dah)', 'Gcu105', 0, 45),
|
||||
(111832, 'United We Stand (Ul\'dah)', 'Gcu106', 0, 45),
|
||||
(111833, 'To Kill a Raven (Ul\'dah)', 'Gcu107', 0, 45),
|
||||
(111834, 'Mess with the Goat, Get the Horns', 'Gcu702', 0, 50);
|
||||
/*!40000 ALTER TABLE `gamedata_quests` ENABLE KEYS */;
|
||||
|
||||
/*!40101 SET SQL_MODE=IFNULL(@OLD_SQL_MODE, '') */;
|
||||
/*!40014 SET FOREIGN_KEY_CHECKS=IF(@OLD_FOREIGN_KEY_CHECKS IS NULL, 1, @OLD_FOREIGN_KEY_CHECKS) */;
|
||||
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
|
Loading…
Add table
Add a link
Reference in a new issue