Added missing dialog to some npcs in Legends Adrift. Finished Never Shall the Twain Meet.

This commit is contained in:
Filip Maj 2022-04-12 01:07:17 -04:00
parent ac22637b4f
commit c3b4735cc5
2 changed files with 117 additions and 45 deletions

View File

@ -61,7 +61,8 @@ TRIGGER_FSH = 1090006;
TRIGGER_SEAFLD = 1090082; TRIGGER_SEAFLD = 1090082;
-- ACN Guild Echo -- ACN Guild Echo
ASSESSOR = 1000121; ASSESSOR1 = 1000120;
ASSESSOR2 = 1000121;
PTAHJHA = 1000150; PTAHJHA = 1000150;
HALDBERK = 1000160; HALDBERK = 1000160;
LILINA = 1000178; LILINA = 1000178;
@ -141,7 +142,8 @@ function onStateChange(player, quest, sequence)
quest:SetENpc(PTAHJHA, QFLAG_PLATE); quest:SetENpc(PTAHJHA, QFLAG_PLATE);
elseif (sequence == SEQ_100) then elseif (sequence == SEQ_100) then
quest:SetENpc(TRIGGER_ACN_LOWER, QFLAG_MAP, false, true); quest:SetENpc(TRIGGER_ACN_LOWER, QFLAG_MAP, false, true);
quest:SetENpc(ASSESSOR); quest:SetENpc(ASSESSOR1);
quest:SetENpc(ASSESSOR2);
quest:SetENpc(HALDBERK); quest:SetENpc(HALDBERK);
quest:SetENpc(LILINA); quest:SetENpc(LILINA);
quest:SetENpc(VOLUPTUOUS_PIRATE); quest:SetENpc(VOLUPTUOUS_PIRATE);
@ -271,9 +273,9 @@ function seq000_030_040_onTalk(player, quest, npc, classId)
end end
function seq000_100_onTalk(player, quest, npc, classId) function seq000_100_onTalk(player, quest, npc, classId)
if (classId == ASSESSOR) then if (classId == ASSESSOR1) then
callClientFunction(player, "delegateEvent", player, quest, "processEvent2000_2"); callClientFunction(player, "delegateEvent", player, quest, "processEvent2000_2");
elseif (classId == 0) then -- !!!MISSING DIALOG OWNER!!! elseif (classId == ASSESSOR2) then
callClientFunction(player, "delegateEvent", player, quest, "processEvent2000_3"); callClientFunction(player, "delegateEvent", player, quest, "processEvent2000_3");
elseif (classId == HALDBERK) then elseif (classId == HALDBERK) then
callClientFunction(player, "delegateEvent", player, quest, "processEvent2000_4"); callClientFunction(player, "delegateEvent", player, quest, "processEvent2000_4");

View File

@ -34,12 +34,14 @@ HOB = 1000151;
ISAUDOREL = 1000152; ISAUDOREL = 1000152;
BARRACUDA_KNIGHT1 = 1000183; BARRACUDA_KNIGHT1 = 1000183;
BARRACUDA_KNIGHT2 = 1000184; BARRACUDA_KNIGHT2 = 1000184;
TRIGGER_SHIP1 = 1090003; TRIGGER_DOCKS = 1090386;
TRIGGER_SHIP2 = 1090003; EVENTDOOR_SHIP1 = 1090098;
EVENTDOOR_SHIP2 = 1090099;
TRIGGER_DUTYSTART = 1090085;
TRIGGER_MSK = 1090003; TRIGGER_MSK = 1090003;
TRIGGER_SEAFLD1 = 1090003; TRIGGER_SEAFLD1 = 1090082;
TRIGGER_SEAFLD2 = 1090003; TRIGGER_SEAFLD2 = 1090086;
TRIGGER_SEAFLD3 = 1090003; TRIGGER_SEAFLD3 = 1090087;
-- Quest Markers -- Quest Markers
@ -61,29 +63,38 @@ function onStateChange(player, quest, sequence)
if (sequence == SEQ_ACCEPT) then if (sequence == SEQ_ACCEPT) then
quest:SetENpc(BADERON, QFLAG_PLATE); quest:SetENpc(BADERON, QFLAG_PLATE);
elseif (sequence == SEQ_000) then elseif (sequence == SEQ_000) then
quest:SetENpc(TRIGGER_DOCKS, QFLAG_MAP, false, true);
quest:SetENpc(HOB, QFLAG_PLATE); quest:SetENpc(HOB, QFLAG_PLATE);
quest:SetENpc(BADERON); quest:SetENpc(BADERON);
elseif (sequence == SEQ_010) then elseif (sequence == SEQ_010) then
quest:SetENpc(TRIGGER_DOCKS, QFLAG_NONE, false, true);
quest:SetENpc(HOB); quest:SetENpc(HOB);
quest:SetENpc(BARRACUDA_KNIGHT1); quest:SetENpc(BARRACUDA_KNIGHT1);
quest:SetENpc(BARRACUDA_KNIGHT2); quest:SetENpc(BARRACUDA_KNIGHT2);
quest:SetENpc(EVENTDOOR_SHIP1, QFLAG_MAP, false, true);
elseif (sequence == SEQ_015) then elseif (sequence == SEQ_015) then
quest:SetENpc(TRIGGER_DOCKS, QFLAG_NONE, false, true);
quest:SetENpc(HOB); quest:SetENpc(HOB);
quest:SetENpc(BARRACUDA_KNIGHT1); quest:SetENpc(BARRACUDA_KNIGHT1);
quest:SetENpc(BARRACUDA_KNIGHT2); quest:SetENpc(BARRACUDA_KNIGHT2);
quest:SetENpc(EVENTDOOR_SHIP2, QFLAG_MAP, false, true);
quest:SetENpc(TRIGGER_DUTYSTART, QFLAG_MAP, false, true);
elseif (sequence == SEQ_020) then elseif (sequence == SEQ_020) then
-- DUTY HAPPENS HERE -- DUTY HAPPENS HERE
elseif (sequence == SEQ_035) then elseif (sequence == SEQ_035) then
quest:SetENpc(BADERON, QFLAG_PLATE); quest:SetENpc(BADERON, QFLAG_PLATE);
elseif (sequence == SEQ_037) then elseif (sequence == SEQ_037) then
quest:SetENpc(TRIGGER_SEAFLD1, QFLAG_MAP, false, true);
quest:SetENpc(BADERON); quest:SetENpc(BADERON);
elseif (sequence == SEQ_040) then
elseif (sequence == SEQ_042) then elseif (sequence == SEQ_042) then
quest:SetENpc(TRIGGER_MSK, QFLAG_MAP, false, true);
quest:SetENpc(BADERON); quest:SetENpc(BADERON);
elseif (sequence == SEQ_045) then elseif (sequence == SEQ_045) then
quest:SetENpc(ISAUDOREL, QFLAG_PLATE); quest:SetENpc(ISAUDOREL, QFLAG_PLATE);
elseif (sequence == SEQ_050) then elseif (sequence == SEQ_050) then
quest:SetENpc(TRIGGER_SEAFLD2, QFLAG_MAP, false, true);
elseif (sequence == SEQ_055) then elseif (sequence == SEQ_055) then
quest:SetENpc(TRIGGER_SEAFLD3, QFLAG_MAP, false, true);
quest:SetENpc(YSHTOLA); quest:SetENpc(YSHTOLA);
end end
@ -96,29 +107,27 @@ function onTalk(player, quest, npc)
if (sequence == SEQ_ACCEPT) then if (sequence == SEQ_ACCEPT) then
if (classId == BADERON) then if (classId == BADERON) then
callClientFunction(player, "delegateEvent", player, quest, "processEvent000"); callClientFunction(player, "delegateEvent", player, quest, "processEvent000");
player:EndEvent();
player:AcceptQuest(quest, true);
return;
end end
elseif (sequence == SEQ_000) then elseif (sequence == SEQ_000) then
if (classId == HOB) then if (classId == HOB) then
callClientFunction(player, "delegateEvent", player, quest, "processEvent010"); callClientFunction(player, "delegateEvent", player, quest, "processEvent010");
quest:StartSequence(SEQ_010); quest:StartSequence(SEQ_010);
player:EndEvent();
GetWorldManager():DoZoneChange(player, 192, "PrivateAreaMasterPast", 0, 0, 1832.243, 16.352, 1834.965, 1.584);
return;
elseif (classId == BADERON) then elseif (classId == BADERON) then
if (npc.CurrentArea.IsPrivate()) then
callClientFunction(player, "delegateEvent", player, quest, "processEvent000_2"); callClientFunction(player, "delegateEvent", player, quest, "processEvent000_2");
else
callClientFunction(player, "delegateEvent", player, quest, "processEvent010_3");
end end
elseif (sequence == SEQ_010) then
if (classId == HOB) then
callClientFunction(player, "delegateEvent", player, quest, "processEvent011_2");
elseif (classId == BARRACUDA_KNIGHT1) then
callClientFunction(player, "delegateEvent", player, quest, "processEvent011_3");
elseif (classId == BARRACUDA_KNIGHT2) then
callClientFunction(player, "delegateEvent", player, quest, "processEvent011_4");
end end
elseif (sequence == SEQ_015) then elseif (sequence >= SEQ_010 and sequence <= SEQ_020) then
if (classId == HOB) then if (onTalk_shipSequences(player, quest, npc, classId, sequence) == 1) then
callClientFunction(player, "delegateEvent", player, quest, "processEvent011_2"); return;
elseif (classId == BARRACUDA_KNIGHT1) then
callClientFunction(player, "delegateEvent", player, quest, "processEvent011_3");
elseif (classId == BARRACUDA_KNIGHT2) then
callClientFunction(player, "delegateEvent", player, quest, "processEvent011_4");
end end
elseif (sequence == SEQ_035) then elseif (sequence == SEQ_035) then
if (classId == BADERON) then if (classId == BADERON) then
@ -148,30 +157,91 @@ function onTalk(player, quest, npc)
quest:UpdateENPCs(); quest:UpdateENPCs();
end end
function onTalk_shipSequences(player, quest, npc, classId, sequence)
if (classId == HOB) then
if (npc.CurrentArea.ZoneId == 230 and npc.CurrentArea.IsPrivate()) then
local returnToShip = callClientFunction(player, "delegateEvent", player, quest, "processEvent010_2");
if (returnToShip == 1) then
player:EndEvent();
if (sequence == SEQ_015 or sequence == SEQ_020) then
GetWorldManager():DoZoneChange(player, 192, "PrivateAreaMasterPast", 0, 0, 1828.785, 11.852, 1829.20, -1.675);
else
GetWorldManager():DoZoneChange(player, 192, "PrivateAreaMasterPast", 0, 0, 1832.243, 16.352, 1834.965, 1.584);
end
return 1;
end
elseif (npc.CurrentArea.ZoneId == 192 and npc.CurrentArea.IsPrivate()) then
local returnToPublic = callClientFunction(player, "delegateEvent", player, quest, "processEvent011_2");
if (returnToPublic == 1) then
player:EndEvent();
GetWorldManager():DoZoneChange(player, 230, nil, 0, 0, -639.325, 1, 403.967, 1.655);
return 1;
end
elseif (npc.CurrentArea.IsPublic()) then
callClientFunction(player, "delegateEvent", player, quest, "processEvent010_3");
end
elseif (classId == BARRACUDA_KNIGHT1) then
callClientFunction(player, "delegateEvent", player, quest, "processEvent011_3");
elseif (classId == BARRACUDA_KNIGHT2) then
callClientFunction(player, "delegateEvent", player, quest, "processEvent011_4");
end
end
function onPush(player, quest, npc) function onPush(player, quest, npc)
local data = quest:GetData(); local data = quest:GetData();
local sequence = quest:getSequence(); local sequence = quest:getSequence();
local classId = npc:GetActorClassId(); local classId = npc:GetActorClassId();
if (sequence == SEQ_037) then if (sequence >= SEQ_000 and sequence <= SEQ_020) then
if (classId == TRIGGER_SEAFLD1) then if (classId == TRIGGER_DOCKS) then
callClientFunction(player, "delegateEvent", player, quest, "processEvent060"); player:EndEvent();
quest:StartSequence(SEQ_040); GetWorldManager():WarpToPrivateArea(player, "PrivateAreaMasterPast", 8, -631.93, 2, 391.75, -0.05);
return;
end end
elseif (sequence == SEQ_042) then if (sequence == SEQ_010) then
if (classId == TRIGGER_MSK) then if (classId == EVENTDOOR_SHIP1) then
callClientFunction(player, "delegateEvent", player, quest, "processEvent012");
quest:StartSequence(SEQ_015);
player:EndEvent();
GetWorldManager():WarpToPrivateArea(player, "PrivateAreaMasterPast", 1, 1823.579, -61.65, 1816.102, 2.42);
return;
end
elseif (sequence == SEQ_015) then
if (classId == EVENTDOOR_SHIP2) then
player:EndEvent();
GetWorldManager():WarpToPrivateArea(player, "PrivateAreaMasterPast", 0, 1821.675, 10.352, 1814.964, 2.288);
return;
elseif (classId == TRIGGER_DUTYSTART) then
local result = callClientFunction(player, "delegateEvent", player, quest, "contentsJoinAskInBasaClass");
if (result == 1) then
-- DO COMBAT DUTY HERE
-- For now just skip the sequence
quest:StartSequence(SEQ_020);
math.randomseed(os.time());
local randomVal = math.random(1, 2); -- Randomize the winner for now
callClientFunction(player, "delegateEvent", player, quest, "processEvent020", randomVal);
player:EndEvent();
quest:StartSequence(SEQ_035);
GetWorldManager():DoZoneChange(player, 230, nil, 0, 0, -639.325, 1, 403.967, 1.655);
return;
end
player:EndEvent();
end
end
elseif (sequence == SEQ_037 and classId == TRIGGER_SEAFLD1) then
callClientFunction(player, "delegateEvent", player, quest, "processEvent060");
quest:NewNpcLsMsg(1);
quest:StartSequence(SEQ_040);
elseif (sequence == SEQ_042 and classId == TRIGGER_MSK) then
callClientFunction(player, "delegateEvent", player, quest, "processEvent070"); callClientFunction(player, "delegateEvent", player, quest, "processEvent070");
quest:StartSequence(SEQ_045); quest:StartSequence(SEQ_045);
end elseif (sequence == SEQ_050 and classId == TRIGGER_SEAFLD2) then
elseif (sequence == SEQ_050) then
if (classId == TRIGGER_SEAFLD2) then
callClientFunction(player, "delegateEvent", player, quest, "processEvent080"); callClientFunction(player, "delegateEvent", player, quest, "processEvent080");
quest:StartSequence(SEQ_055); quest:StartSequence(SEQ_055);
end GetWorldManager():DoZoneChange(player, 128, "PrivateAreaMasterPast", 3, 0, 198.314, 25.928, 1186.126, 1.6);
elseif (sequence == SEQ_055) then elseif (sequence == SEQ_055 and classId == TRIGGER_SEAFLD3) then
if (classId == TRIGGER_SEAFLD3) then
callClientFunction(player, "delegateEvent", player, quest, "processEvent081"); callClientFunction(player, "delegateEvent", player, quest, "processEvent081");
end GetWorldManager():DoZoneChange(player, 133, nil, 0, 0, -435.501, 40, 202.698, -2.152);
end end
player:EndEvent(); player:EndEvent();