- Fixed !anim targeting the incorrect actor.

- Etc5u0 scripted start to finish.  Ul'dah Inn quest.
- DftWil - Added quest checks to the Inn NPCs.
- DfFst - Commiting what's been done thus far.  fst0Town01 zone nearly done.  Still have 100 something fst0Town01a & field npcs to add.
- Removed some fst0Town01 uniqueId scripts
This commit is contained in:
CuriousJorge 2022-02-23 20:52:25 -05:00
parent 8c70d0ddb6
commit 682ddd9cae
32 changed files with 284 additions and 345 deletions

View File

@ -2,21 +2,36 @@ require("global");
properties = { properties = {
permissions = 0, permissions = 0,
parameters = "ddd", parameters = "dddd",
description = description =
[[ [[
Sets anim id for current target Sets anim id for current target
!anim <animID> | !anim <animID> |
!anim <category> <effect> <motion>
]], ]],
} }
function onTrigger(player, argc, aType, a1, a2) function onTrigger(player, argc, aType, a1, a2, uID)
npc = player;--GetWorldManager():GetActorInWorldByUniqueId("test"); --if uID == nil then uID = "test"; end
local npc = GetWorldManager():GetActorInWorld(player.currentTarget) or nil;
--npc = GetWorldManager():GetActorInWorldByUniqueId(uID);
--[[ if argc == 1 then
-- aType = tonumber(aType, 16) or 0;
if aType > 4294967295 then
player:SendMessage(0x20, "[anim] ", "Error: Value too large");
return;
else
player:PlayAnimation(aType);
end
else--]]
aType = tonumber(aType) or 0;
a1 = tonumber(a1) or 0;
a2 = tonumber(a2) or 1;
aType = tonumber(aType);
a1 = tonumber(a1);
a2 = tonumber(a2);
a1 = bit32.band(a1, 0xFFF); a1 = bit32.band(a1, 0xFFF);
a2 = bit32.band(a2, 0xFFF); a2 = bit32.band(a2, 0xFFF);
@ -24,7 +39,114 @@ function onTrigger(player, argc, aType, a1, a2)
animId = bit32.bor(bit32.lshift(a2, 12), a1); animId = bit32.bor(bit32.lshift(a2, 12), a1);
animId = bit32.bor(bit32.lshift(aType, 24), animId); animId = bit32.bor(bit32.lshift(aType, 24), animId);
print(animId);
--[[
if npc == nil then
player:PlayAnimation(animId);
else
npc:PlayAnimation(animId);
end
--]]
local actor = player.CurrentArea.FindActorInArea(player.currentTarget) or nil;
if player and actor then
a1 = bit32.band(a1, 0xFFF);
a2 = bit32.band(a2, 0xFFF);
aType = bit32.band(aType, 0xFF);
animId = bit32.bor(bit32.lshift(a2, 12), a1);
animId = bit32.bor(bit32.lshift(aType, 24), animId);
-- player:SendMessage(0x20, "[anim] ", tostring(animId));
actor:PlayAnimation(animId);
local output = string.format("%x", animId)
player:SendMessage(0x20, "[anim] ", "0x"..tostring(output).. " Target:"..tostring(actor));
end;
print("AHHH");
player:PlayAnimation(0x10005000);
end; end;
--[[ Categories:
1 MGK: 01 - Magic
2 SYS: 02 - System noises
3 ETC: 03 - ?? - Item sound?
4 LIB: 04 - Posing animations
5-9 ITM: 05-09 - Items
10 KAO: 0A - KAO = Face emotes?
11-12 GLI1/2/3: 0B/0C - Leve card things
13 CBI: 0D - Two small effects
14 ABL: 0E - Cooldown buffs
15 POP: 0F - Warp effects
16 CFT: 10 - Crafting?
17 BTL: 11 - More Crafting?
18 WSC: 12 - Weapon Skills Arg1 - Weapon Skill Arg2 - Player Animation
19 WSS: 13 - Mob animations
20 PIC: 14 - Gathering weapons?
21 LIU: 15 - Player Hand Emotes
22 LIN: 16 - Doesn't exist?
23 LIF: 17 - Doesn't exist?
24 LIL: 18 - Mouth
25 ATK: 19 - Autoattacks
33 = ?
34 = Crash
120 = ???
CATEGORY
Shift 18 bits right
CMP 0xB
ANIMATION??????
Shift 0xC bits right
AND 0x0FFF
PARTICLE EFFECT
AND 0x0FFF
This number is in the subfolder (wsc, abi, etc)
That 12 is:
CMP 7C
CMP 6f
CMP 70
CMP 71
7C000062
ec000000
00FFFFFF
BTL:
ETC:
GL2:
KAO:
MGK: 01
SYS: 02
LIB: 046
ITM: 05-09
GL?: 0B
GL1: 0C
CBI: 0D
ABL: 0E
POP: 0F
CFT: 10
PIC: 14
WSC: 12
19: Auto Attack?
6F: Casting
71: Seems to deal with signaling monster parts
7C: Sheath/Unsheath
7F: Cast failed
--]]

View File

@ -17,50 +17,57 @@ local defaultTalkFst = {
[1000071] = "defaultTalkWithBertennant_001", -- Bertennant (Gridania: Blue Badger Gate) [1000071] = "defaultTalkWithBertennant_001", -- Bertennant (Gridania: Blue Badger Gate)
[1000230] = "defaultTalkWithMiounne_001", -- Miounne (Gridania: Adv. Guild) [1000230] = "defaultTalkWithMiounne_001", -- Miounne (Gridania: Adv. Guild)
[1000427] = "defaultTalkWithAnene_001", -- Anene (Gridania: Adv. Guild) defaultTalkWithAnene_002 / 003 (PGL informant) [1000427] = "defaultTalkWithAnene_001", -- Anene (Gridania: Adv. Guild) defaultTalkWithAnene_002 / 003 (PGL informant)
[1000428] = "defaultTalkWithSylbyrt_001", -- Sylbyrt (Gridania: Adv. Guild) defaultTalkWithSylbyrt_002 / 003 (MRD informant)
[1000429] = "defaultTalkWithHongavunga_001", -- Honga Vunga (Gridania: Adv. Guild) defaultTalkWithHongavunga_002 / 003 (WVR informant)
[1000430] = "defaultTalkWithNoncomananco_001", -- Nonco Menanco (Gridania: Adv. Guild) arg1=1 or 21, mentions checking out DoW/M, otherwise DoH. defaultTalkWithNoncomananco_002 / 003 (GSM informant)
[1000431] = "defaultTalkWithLtandhaa_001", -- L'tandhaa (Gridania: Adv. Guild) defaultTalkWithLtandhaa_002 / 003 (ALC informant)
[1000432] = "defaultTalkWithPofufu_001", -- Pofufu (Gridania: Adv. Guild) defaultTalkWithPofufu_002 / 003 (MIN informant)
[1000433] = "defaultTalkWithDrividot_001", -- Drividot (Gridania: Adv. Guild) defaultTalkWithDrividot_002 / 003 (FSH informant) [1000433] = "defaultTalkWithDrividot_001", -- Drividot (Gridania: Adv. Guild) defaultTalkWithDrividot_002 / 003 (FSH informant)
[1000435] = "defaultTalkWithBasewin_001", -- Basewin (Gridania: Adv. Guild) defaultTalkWithBasewin_002 / 003 (BSM informant) [1000435] = "defaultTalkWithBasewin_001", -- Basewin (Gridania: Adv. Guild) defaultTalkWithBasewin_002 / 003 (BSM informant)
[1000436] = "defaultTalkWithSeikfrae_001", -- Seikfrae (Gridania: Adv. Guild) defaultTalkWithSeikfrae_002 / 003 (GLD informant)
[1000437] = "defaultTalkWithEdasshym_001", -- E'dasshym (Gridania: Adv. Guild) defaultTalkWithEdasshym_002 / 003 (THM informant) [1000437] = "defaultTalkWithEdasshym_001", -- E'dasshym (Gridania: Adv. Guild) defaultTalkWithEdasshym_002 / 003 (THM informant)
--[1000456] = "", -- Tierney (Gridania: Adv. Guild) Guildleve NPC - Will not fire, not PplStd.
--[1000457] = "", -- Gontrant (Gridania: Adv. Guild) Guildleve NPC - Will not fire, not PplStd.
[1000458] = "defaultTalkWithInn_Desk", -- V'korolon (Gridania: Adv. Guild) - defaultTalkWithVkorolon_001 - Pre-Inn unlocked dialog
[1000821] = "defaultTalkWithNellaure_001", -- Nellaure [1000821] = "defaultTalkWithNellaure_001", -- Nellaure
[1000951] = "defaultTalkWithLonsygg_001", -- Lonsygg (Gridania: Blue Badger Gate)
[1001081] = "defaultTalkWithKhumamoshroca_001", -- Khuma Moshroca [1001081] = "defaultTalkWithKhumamoshroca_001", -- Khuma Moshroca
[1001103] = "defaultTalkWithMestonnaux_001", -- Mestonnaux [1001103] = "defaultTalkWithMestonnaux_001", -- Mestonnaux
--[1001183] = "", -- Emoni (Gridania: Adv. Guild) - Will not fire, not PplStd. --[1001183] = "", -- Emoni (Gridania: Adv. Guild) Linkshell NPC - Will not fire, not PplStd.
--[1001184] = "", -- Gyles (Gridania: Adv. Guild) Retainer NPC - Will not fire, not PplStd.
[1001396] = "defaultTalkWithLefwyne_001", -- Lefwyne [1001396] = "defaultTalkWithLefwyne_001", -- Lefwyne
[1001430] = "defaultTalkWithKinnison_001", -- Kinnison - Two args (nil errors client). If either >= 0, dialog mentions you've met Kan-E-Senna. [1001430] = "defaultTalkWithKinnison_001", -- Kinnison - Two args (nil errors client). If either >= 0, dialog mentions you've met Kan-E-Senna.
[1001432] = "defaultTalkWithMathye_001", -- Mathye (Gridania: Blue Badger Gate)
[1001433] = "defaultTalkWithUlta_001", -- Ulta (Gridania: Blue Badger Gate)
[1000434] = "defaultTalkWithOdilie_001", -- Odilie (Gridania: Adv. Guild) defaultTalkWithOdilie_002 / 003 (CUL informant)
[1001437] = "defaultTalkWithSybell_001", -- Sybell [1001437] = "defaultTalkWithSybell_001", -- Sybell
[1001459] = "defaultTalkWithFlavielle_001", -- Flavielle (Gridania: Adv. Guild) defaultTalkWithFlavielle_002 / 003 (ARM informant) [1001459] = "defaultTalkWithFlavielle_001", -- Flavielle (Gridania: Adv. Guild) defaultTalkWithFlavielle_002 / 003 (ARM informant)
[1001706] = "defaultTalkWithMemama_001", -- Memama (Gridania: Adv. Guild)
[1001707] = "defaultTalkWithPfarahr_001", -- Pfarahr (Gridania: Adv. Guild)
[1001708] = "defaultTalkWithBeaudonet_001", -- Beaudonet (Gridania: Adv. Guild) [1001708] = "defaultTalkWithBeaudonet_001", -- Beaudonet (Gridania: Adv. Guild)
[1001709] = "defaultTalkWithFryswyde_001", -- Fryswyde (Gridania: Adv. Guild) [1001709] = "defaultTalkWithFryswyde_001", -- Fryswyde (Gridania: Adv. Guild)
[1001710] = "defaultTalkWithWillielmus_001", -- Willielmus (Gridania: Adv. Guild)
[1001951] = "defaultTalkWithAnselm_001", -- Anselm (Gridania: Adv. Guild) [1001951] = "defaultTalkWithAnselm_001", -- Anselm (Gridania: Adv. Guild)
[1002091] =
[1500055] = "defaultTalkWithLionnellais_001", -- Lionnellais (Gridania: Adv. Guild) - Will not fire, not PplStd. Pre-airship dialog?
[1500056] = "defaultTalkWithHida_001", -- Hida (Gridania: Adv. Guild) - Will not fire, not PplStd. Pre-airship dialog?
--[1500334] = "", -- Serpent Private Hill (Gridania: Adv. Guild) Company Warp NPC - Will not fire, not PplStd.
--[1500393] = "", -- Torsefers (Gridania: Adv. Guild) Wards NPC - Will not fire, not PplStd.
--[1600092] = "", -- Aeduin (Gridania: Adv. Guild) Shop - Will not fire, not PplStd.
--[1600100] = "", -- Zagylhaemr (Gridania: Adv. Guild) Shop - Will not fire, not PplStd.
--[1600119] = "", -- Naih Khamazom (Gridania: Adv. Guild) Shop - Will not fire, not PplStd.
[1700001] = "defaultTalkWithPenelope_001", -- Penelope (Gridania: Adv. Guild)
[1000001] = "defaultTalkWithLionnellais_001",
--[1600092] = "", -- Aeduin - Will not fire since it isn't PplStd.
-- [1000458] = "defaultTalkWithInn_Desk" -- [1000458] = "defaultTalkWithInn_Desk"
--[[ --[[
defaultTalkWithVkorolon_001(A0_1, A1_2, A2_3) -- defaultTalkWithStewart_001 -- Hodder line?
defaultTalkWithPenelope_001(A0_4, A1_5, A2_6)
defaultTalkWithSylbyrt_001(A0_19, A1_20, A2_21)
defaultTalkWithSylbyrt_002(A0_22, A1_23, A2_24)
defaultTalkWithSylbyrt_003(A0_25, A1_26, A2_27)
defaultTalkWithHongavunga_001(A0_28, A1_29, A2_30)
defaultTalkWithHongavunga_002(A0_31, A1_32, A2_33)
defaultTalkWithHongavunga_003(A0_34, A1_35, A2_36)
defaultTalkWithNoncomananco_001(A0_37, A1_38, A2_39, A3_40)
defaultTalkWithNoncomananco_002(A0_41, A1_42, A2_43)
defaultTalkWithNoncomananco_003(A0_44, A1_45, A2_46)
defaultTalkWithSeikfrae_001(A0_47, A1_48, A2_49)
defaultTalkWithSeikfrae_002(A0_50, A1_51, A2_52)
defaultTalkWithSeikfrae_003(A0_53, A1_54, A2_55)
defaultTalkWithLtandhaa_001(A0_74, A1_75, A2_76)
defaultTalkWithLtandhaa_002(A0_77, A1_78, A2_79)
defaultTalkWithLtandhaa_003(A0_80, A1_81, A2_82)
defaultTalkWithPofufu_001(A0_83, A1_84, A2_85)
defaultTalkWithPofufu_002(A0_86, A1_87, A2_88)
defaultTalkWithPofufu_003(A0_89, A1_90, A2_91)
defaultTalkWithOdilie_001(A0_101, A1_102, A2_103)
defaultTalkWithOdilie_002(A0_104, A1_105, A2_106)
defaultTalkWithOdilie_003(A0_107, A1_108, A2_109)
defaultTalkWithHereward_001(A0_119, A1_120, A2_121) defaultTalkWithHereward_001(A0_119, A1_120, A2_121)
defaultTalkWithBeli_001(A0_122, A1_123, A2_124) defaultTalkWithBeli_001(A0_122, A1_123, A2_124)
defaultTalkWithMaddeline_001(A0_125, A1_126, A2_127) defaultTalkWithMaddeline_001(A0_125, A1_126, A2_127)
@ -127,12 +134,11 @@ defaultTalkWithSandre_001(A0_312, A1_313, A2_314)
defaultTalkWithEburhart_001(A0_318, A1_319, A2_320) defaultTalkWithEburhart_001(A0_318, A1_319, A2_320)
defaultTalkWithOnguen_001(A0_321, A1_322, A2_323) defaultTalkWithOnguen_001(A0_321, A1_322, A2_323)
defaultTalkEnie_001(A0_324, A1_325, A2_326) defaultTalkEnie_001(A0_324, A1_325, A2_326)
defaultTalkWithLionnellais_001(A0_327, A1_328, A2_329)
defaultTalkWithHida_001(A0_330, A1_331, A2_332)
defaultTalkWithNoes_001(A0_333, A1_334, A2_335) defaultTalkWithNoes_001(A0_333, A1_334, A2_335)
defaultTalkWithFhrudhem_001(A0_336, A1_337, A2_338) defaultTalkWithFhrudhem_001(A0_336, A1_337, A2_338)
defaultTalkWithUlta_001(A0_342, A1_343, A2_344)
defaultTalkWithMathye_001(A0_345, A1_346, A2_347)
defaultTalkWithMitainie_001(A0_348, A1_349, A2_350) defaultTalkWithMitainie_001(A0_348, A1_349, A2_350)
defaultTalkWithNicia_001(A0_351, A1_352, A2_353) defaultTalkWithNicia_001(A0_351, A1_352, A2_353)
defaultTalkWithBlandie_001(A0_354, A1_355, A2_356) defaultTalkWithBlandie_001(A0_354, A1_355, A2_356)
@ -166,7 +172,7 @@ defaultTalkWithBloisirant_001(A0_447, A1_448, A2_449)
defaultTalkWithGylbart_001(A0_450, A1_451, A2_452) defaultTalkWithGylbart_001(A0_450, A1_451, A2_452)
defaultTalkWithHonoroit_001(A0_453, A1_454, A2_455) defaultTalkWithHonoroit_001(A0_453, A1_454, A2_455)
defaultTalkWithYlessa_001(A0_456, A1_457, A2_458) defaultTalkWithYlessa_001(A0_456, A1_457, A2_458)
defaultTalkWithLonsygg_001(A0_459, A1_460, A2_461)
defaultTalkWithSwaenhylt_001(A0_465, A1_466, A2_467) defaultTalkWithSwaenhylt_001(A0_465, A1_466, A2_467)
defaultTalkWithMarcette_001(A0_468, A1_469, A2_470) defaultTalkWithMarcette_001(A0_468, A1_469, A2_470)
defaultTalkWithGuildleveClientG_001(A0_471, A1_472, A2_473) defaultTalkWithGuildleveClientG_001(A0_471, A1_472, A2_473)
@ -188,10 +194,7 @@ defaultTalkWithAruhnsenna_001(A0_516, A1_517, A2_518)
defaultTalkWithMoogle010_001(A0_519, A1_520, A2_521) defaultTalkWithMoogle010_001(A0_519, A1_520, A2_521)
defaultTalkWithMoogle002_001(A0_522, A1_523, A2_524) defaultTalkWithMoogle002_001(A0_522, A1_523, A2_524)
defaultTalkWithAilith_001(A0_525, A1_526, A2_527) defaultTalkWithAilith_001(A0_525, A1_526, A2_527)
defaultTalkWithMemama_001(A0_528, A1_529, A2_530)
defaultTalkWithPfarahr_001(A0_531, A1_532, A2_533)
defaultTalkWithWillielmus_001(A0_540, A1_541, A2_542)
defaultTalkWithQZamqo_001(A0_543, A1_544, A2_545) defaultTalkWithQZamqo_001(A0_543, A1_544, A2_545)
defaultTalkLouisoix_001(A0_546, A1_547, A2_548) defaultTalkLouisoix_001(A0_546, A1_547, A2_548)
defaultTalkWithRonanKognan_001(A0_549, A1_550, A2_551) defaultTalkWithRonanKognan_001(A0_549, A1_550, A2_551)
@ -241,10 +244,11 @@ function onTalk(player, quest, npc, eventName)
local npcId = npc:GetActorClassId(); local npcId = npc:GetActorClassId();
local clientFunc = defaultTalkFst[npcId]; local clientFunc = defaultTalkFst[npcId];
if (npcId == 1001430) then -- Kinnison if (npcId == 1000430) then -- Nonco Menanco
callClientFunction(player, "delegateEvent", player, quest, clientFunc, 21);
elseif (npcId == 1001430) then -- Kinnison
callClientFunction(player, "delegateEvent", player, quest, clientFunc, -1,-1); callClientFunction(player, "delegateEvent", player, quest, clientFunc, -1,-1);
else else
callClientFunction(player, "delegateEvent", player, quest, clientFunc); callClientFunction(player, "delegateEvent", player, quest, clientFunc);
end end

View File

@ -65,7 +65,7 @@ local defaultTalkWil = {
[1000861] = "defaultTalkWithLinette_001", -- Linette [1000861] = "defaultTalkWithLinette_001", -- Linette
[1000862] = "defaultTalkWithGagaruna_001", -- Gagaruna [1000862] = "defaultTalkWithGagaruna_001", -- Gagaruna
[1000863] = "defaultTalkWithLulutsu_001", -- Lulutsu [1000863] = "defaultTalkWithLulutsu_001", -- Lulutsu
[1000864] = "defaultTalkWithInn_Desk", -- Otopa Pottopa - defaultTalkWithOtopapottopa_001 (pre-Inn unlock?) [1000864] = "defaultTalkWithOtopapottopa_001", -- Otopa Pottopa - defaultTalkWithInn_Desk - used when Inn unlocked
[1000865] = "defaultTalkWithThaisie_001", -- Thaisie - Mentions retainers, but will not fire since she's not PplStd. [1000865] = "defaultTalkWithThaisie_001", -- Thaisie - Mentions retainers, but will not fire since she's not PplStd.
[1000887] = "defaultTalkWithZssapa_001", -- <<<NOT IMPLEMENTED>>> - Z'ssapa (Central Thanalan: Black Brush: 92.779999 183.837 -1030.310059) alt actor ID: 1001217 (used in a quest presumably, different outfit from wiki image) [1000887] = "defaultTalkWithZssapa_001", -- <<<NOT IMPLEMENTED>>> - Z'ssapa (Central Thanalan: Black Brush: 92.779999 183.837 -1030.310059) alt actor ID: 1001217 (used in a quest presumably, different outfit from wiki image)
[1000915] = "defaultTalkWithCahernaut_001", -- Cahernaut [1000915] = "defaultTalkWithCahernaut_001", -- Cahernaut
@ -227,7 +227,7 @@ local defaultTalkWil = {
[1001925] = "defaultTalkWithHortwann_001", -- <<<NOT IMPLEMENTED>>> - Flame Private Hanskalsyn - (North Thanalan: Camp Bluefog) [1001925] = "defaultTalkWithHortwann_001", -- <<<NOT IMPLEMENTED>>> - Flame Private Hanskalsyn - (North Thanalan: Camp Bluefog)
[1001932] = "defaultTalkWithSIBOLD_001", -- Sibold [1001932] = "defaultTalkWithSIBOLD_001", -- Sibold
[1001953] = "defaultTalkWithBerndan_001", -- Berndan [1001953] = "defaultTalkWithBerndan_001", -- Berndan
[1002047] = "defaultTalkWithInn_Desk_2", -- Kopuru Fupuru - Inn NPC. - defaultTalkWithKopuruFupuru_001 (pre-Inn unlock?) [1002047] = "defaultTalkWithKopuruFupuru_001", -- Kopuru Fupuru - Inn NPC - defaultTalkWithInn_Desk_2 used when Inn unlocked
[1002101] = "defaultTalkWithDuraltharal_001", -- Dural Tharal [1002101] = "defaultTalkWithDuraltharal_001", -- Dural Tharal
[1002110] = "processEventSOMBER", -- Flame Lieutenant Somber Meadow (Foundation Day 2012 Dialog) Spl000 staticactor [1002110] = "processEventSOMBER", -- Flame Lieutenant Somber Meadow (Foundation Day 2012 Dialog) Spl000 staticactor
[1002111] = "processEventMIMIO", -- Flame Sergeant Mimio Mio (Foundation Day 2012 Dialog) Spl000 staticactor [1002111] = "processEventMIMIO", -- Flame Sergeant Mimio Mio (Foundation Day 2012 Dialog) Spl000 staticactor
@ -271,9 +271,19 @@ function onTalk(player, quest, npc, eventName)
local npcId = npc:GetActorClassId(); local npcId = npc:GetActorClassId();
local clientFunc = defaultTalkWil[npcId]; local clientFunc = defaultTalkWil[npcId];
if (npcId == 1002047) then -- Kopuru Fupuru - Inn NPC if (npcId == 1000864) then -- Kopuru Fupuru (Adv. Guild Inn NPC)
defaultTalkWithInn(player, quest, clientFunc); if (player:IsQuestCompleted(110848)) then -- "Ring of Deceit" completed.
elseif ((npcId >= 1002110) and (npcId <= 1002112)) then defaultTalkWithInn(player, quest, "defaultTalkWithInn_Desk");
else
callClientFunction(player, "delegateEvent", player, quest, clientFunc);
end
elseif (npcId == 1002047) then -- Kopuru Fupuru (Rear-Entrance Inn NPC)
if (player:IsQuestCompleted(110848)) then -- "Ring of Deceit" completed.
defaultTalkWithInn(player, quest, "defaultTalkWithInn_Desk_2");
else
callClientFunction(player, "delegateEvent", player, quest, clientFunc);
end
elseif ((npcId >= 1002110) and (npcId <= 1002112)) then -- Foundation Day 2012 NPCs
talkWithSpecial(player, npcId, clientFunc) talkWithSpecial(player, npcId, clientFunc)
else else
callClientFunction(player, "delegateEvent", player, quest, clientFunc); callClientFunction(player, "delegateEvent", player, quest, clientFunc);

View File

@ -0,0 +1,98 @@
require("global");
--[[
Quest Script
Name: Ring of Deceit
Code: Etc5u0
Id: 110848
Prereq: Level 1 on any class. Second MSQ completed. (110002 Man0l1 / 110006 Man0g1 / 110010 Man0u1)
Notes: Unlocks Ul'dah Inn exit from the rear entrance. Rewards 200 EXP
]]
-- Sequence Numbers
SEQ_000 = 0; -- Talk to Judithe
SEQ_001 = 1; -- Return to Otopa Pottopa
-- Actor Class Ids
OTOPA_POTTOPA = 1000864;
JUDITHE = 1001443;
-- Quest Markers
MRKR_JUDITHE = 11092001;
MRKR_OTOPA_POTTOPA = 11092002;
function onStart(player, quest)
quest:StartSequence(SEQ_000);
end
function onFinish(player, quest)
end
function onStateChange(player, quest, sequence)
if (sequence == 65535) then
quest:SetENpc(OTOPA_POTTOPA, QFLAG_PLATE);
elseif (sequence == SEQ_000) then
quest:SetENpc(OTOPA_POTTOPA);
quest:SetENpc(JUDITHE, QFLAG_PLATE);
elseif (sequence == SEQ_001) then
quest:SetENpc(OTOPA_POTTOPA, QFLAG_REWARD);
quest:SetENpc(JUDITHE);
end
end
function onTalk(player, quest, npc)
local sequence = quest:getSequence();
local classId = npc:GetActorClassId();
if (sequence == 65535) then
if (classId == OTOPA_POTTOPA) then
local questAccepted = callClientFunction(player, "delegateEvent", player, quest, "processEventOTOPAPOTTOPAStart");
if (questAccepted == 1) then
player:AcceptQuest(quest);
end
end
elseif (sequence == SEQ_000) then
if (classId == OTOPA_POTTOPA) then
callClientFunction(player, "delegateEvent", player, quest, "processEvent_000_1");
elseif (classId == JUDITHE) then
callClientFunction(player, "delegateEvent", player, quest, "processEvent_010");
attentionMessage(player, 25225, 110848); -- <Quest name> objectives complete!
quest:StartSequence(SEQ_001);
end
elseif (sequence == SEQ_001) then
if (classId == JUDITHE) then
callClientFunction(player, "delegateEvent", player, quest, "processEvent_010_1");
elseif (classId == OTOPA_POTTOPA) then
callClientFunction(player, "delegateEvent", player, quest, "processEvent_020");
callClientFunction(player, "delegateEvent", player, quest, "sqrwa", 200, 1, 1); -- 200 exp rewarded
player:CompleteQuest(quest);
end
end
player:EndEvent()
quest:UpdateENPCs();
end
function getJournalInformation(player, quest)
end
function getJournalMapMarkerList(player, quest)
local sequence = quest:getSequence();
local possibleMarkers = {};
if (sequence == SEQ_000) then
table.insert(possibleMarkers, MRKR_JUDITHE);
elseif (sequence == SEQ_001) then
table.insert(possibleMarkers, MRKR_OTOPA_POTTOPA);
end
return unpack(possibleMarkers)
end

View File

@ -1,7 +0,0 @@
require ("global")
function onEventStarted(player, npc)
defaultFst = GetStaticActor("DftFst");
callClientFunction(player, "delegateEvent", player, defaultFst, "defaultTalkWithFryswyde_001", nil, nil, nil);
player:endEvent();
end

View File

@ -1,7 +0,0 @@
require ("global")
function onEventStarted(player, npc)
defaultFst = GetStaticActor("DftFst");
callClientFunction(player, "delegateEvent", player, defaultFst, "defaultTalkWithGontrant_001", nil, nil, nil);
player:endEvent();
end

View File

@ -1,7 +0,0 @@
require ("global")
function onEventStarted(player, npc)
defaultFst = GetStaticActor("DftFst");
callClientFunction(player, "delegateEvent", player, defaultFst, "defaultTalkWithGyles_001", nil, nil, nil);
player:endEvent();
end

View File

@ -1,7 +0,0 @@
require ("global")
function onEventStarted(player, npc)
defaultFst = GetStaticActor("DftFst");
callClientFunction(player, "delegateEvent", player, defaultFst, "defaultTalkWithHida_001", nil, nil, nil);
player:endEvent();
end

View File

@ -1,7 +0,0 @@
require ("global")
function onEventStarted(player, npc)
defaultFst = GetStaticActor("DftFst");
callClientFunction(player, "delegateEvent", player, defaultFst, "defaultTalkWithHongavunga_001", nil, nil, nil);
player:endEvent();
end

View File

@ -1,7 +0,0 @@
require ("global")
function onEventStarted(player, npc)
defaultFst = GetStaticActor("DftFst");
callClientFunction(player, "delegateEvent", player, defaultFst, "defaultTalkWithLtandhaa_001", nil, nil, nil);
player:endEvent();
end

View File

@ -1,7 +0,0 @@
require ("global")
function onEventStarted(player, npc)
defaultFst = GetStaticActor("DftFst");
callClientFunction(player, "delegateEvent", player, defaultFst, "defaultTalkWithLionnellais_001", nil, nil, nil);
player:endEvent();
end

View File

@ -1,7 +0,0 @@
require ("global")
function onEventStarted(player, npc)
defaultFst = GetStaticActor("DftFst");
callClientFunction(player, "delegateEvent", player, defaultFst, "defaultTalkWithLonsygg_001", nil, nil, nil);
player:endEvent();
end

View File

@ -1,7 +0,0 @@
require ("global")
function onEventStarted(player, npc)
defaultFst = GetStaticActor("DftFst");
callClientFunction(player, "delegateEvent", player, defaultFst, "defaultTalkWithMathye_001", nil, nil, nil);
player:endEvent();
end

View File

@ -1,7 +0,0 @@
require ("global")
function onEventStarted(player, npc)
defaultFst = GetStaticActor("DftFst");
callClientFunction(player, "delegateEvent", player, defaultFst, "defaultTalkWithMemama_001", nil, nil, nil);
player:endEvent();
end

View File

@ -1,7 +0,0 @@
require ("global")
function onEventStarted(player, npc)
defaultFst = GetStaticActor("DftFst");
callClientFunction(player, "delegateEvent", player, defaultFst, "defaultTalkWithMiniaeth_adv_001", nil, nil, nil);
player:endEvent();
end

View File

@ -1,7 +0,0 @@
require ("global")
function onEventStarted(player, npc)
defaultFst = GetStaticActor("DftFst");
callClientFunction(player, "delegateEvent", player, defaultFst, "defaultTalkWithMiounne_001", nil, nil, nil);
player:endEvent();
end

View File

@ -1,7 +0,0 @@
require ("global")
function onEventStarted(player, npc)
defaultFst = GetStaticActor("DftFst");
callClientFunction(player, "delegateEvent", player, defaultFst, "defaultTalkWithNaih_khamazom_001", nil, nil, nil);
player:endEvent();
end

View File

@ -1,7 +0,0 @@
require ("global")
function onEventStarted(player, npc)
defaultFst = GetStaticActor("DftFst");
callClientFunction(player, "delegateEvent", player, defaultFst, "defaultTalkWithNoncomananco_001", nil, nil, nil);
player:endEvent();
end

View File

@ -1,7 +0,0 @@
require ("global")
function onEventStarted(player, npc)
defaultFst = GetStaticActor("DftFst");
callClientFunction(player, "delegateEvent", player, defaultFst, "defaultTalkWithOdilie_001", nil, nil, nil);
player:endEvent();
end

View File

@ -1,7 +0,0 @@
require ("global")
function onEventStarted(player, npc)
defaultFst = GetStaticActor("DftFst");
callClientFunction(player, "delegateEvent", player, defaultFst, "defaultTalkWithPenelope_001", nil, nil, nil);
player:endEvent();
end

View File

@ -1,46 +0,0 @@
require ("global")
require ("quests/etc/etc5g0")
function onSpawn(player, npc)
if (player:HasQuest("Etc5g0") == true and player:GetQuest("Etc5g0"):GetPhase() == 0) then
npc:SetQuestGraphic(player, 0x2);
else
npc:SetQuestGraphic(player, 0x0);
end
end
function onEventStarted(player, npc)
defaultFst = GetStaticActor("DftFst");
quest = player:GetQuest("Etc5g0");
result = 1;
if (player:HasQuest("Etc5g0")) then
unknown, result = callClientFunction(player, "switchEvent", defaultFst, quest, nil, nil, 1, 1, 0x3f1);
end
if (result == 1) then
callClientFunction(player, "delegateEvent", player, defaultFst, "defaultTalkWithPfarahr_001", -1, -1);
elseif (result == 2) then
ownedQuest = player:GetQuest("Etc5g0");
if (ownedQuest:GetPhase() == 0) then
callClientFunction(player, "delegateEvent", player, quest, "processEvent_010");
worldMaster = GetWorldMaster();
player:SendGameMessage(player, worldMaster, 25225, ownedQuest:GetQuestId());
player:SendDataPacket("attention", worldMaster, "", 25225, ownedQuest:GetQuestId());
ownedQuest:NextPhase(1);
npc:SetQuestGraphic(player, 0x0);
vkorolon = GetWorldManager():GetActorInWorldByUniqueId("vkorolon");
if (vkorolon ~= nil) then
vkorolon:SetQuestGraphic(player, 0x4);
end
else
callClientFunction(player, "delegateEvent", player, quest, "processEvent_010_1");
end
end
player:endEvent();
end

View File

@ -1,7 +0,0 @@
require ("global")
function onEventStarted(player, npc)
defaultFst = GetStaticActor("DftFst");
callClientFunction(player, "delegateEvent", player, defaultFst, "defaultTalkWithPofufu_001", nil, nil, nil);
player:endEvent();
end

View File

@ -1,7 +0,0 @@
require ("global")
function onEventStarted(player, npc)
defaultFst = GetStaticActor("DftFst");
callClientFunction(player, "delegateEvent", player, defaultFst, "defaultTalkWithSeikfrae_001", nil, nil, nil);
player:endEvent();
end

View File

@ -1,7 +0,0 @@
require ("global")
function onEventStarted(player, npc)
defaultFst = GetStaticActor("DftFst");
callClientFunction(player, "delegateEvent", player, defaultFst, "defaultTalkWithSerpent_private_hill_001", nil, nil, nil);
player:endEvent();
end

View File

@ -1,7 +0,0 @@
require ("global")
function onEventStarted(player, npc)
defaultFst = GetStaticActor("DftFst");
callClientFunction(player, "delegateEvent", player, defaultFst, "defaultTalkWithSylbyrt_001", nil, nil, nil);
player:endEvent();
end

View File

@ -1,7 +0,0 @@
require ("global")
function onEventStarted(player, npc)
defaultFst = GetStaticActor("DftFst");
callClientFunction(player, "delegateEvent", player, defaultFst, "defaultTalkWithTask_board_001", nil, nil, nil);
player:endEvent();
end

View File

@ -1,7 +0,0 @@
require ("global")
function onEventStarted(player, npc)
defaultFst = GetStaticActor("DftFst");
callClientFunction(player, "delegateEvent", player, defaultFst, "defaultTalkWithTierney_001", nil, nil, nil);
player:endEvent();
end

View File

@ -1,7 +0,0 @@
require ("global")
function onEventStarted(player, npc)
defaultFst = GetStaticActor("DftFst");
callClientFunction(player, "delegateEvent", player, defaultFst, "defaultTalkWithTorsefers_001", nil, nil, nil);
player:endEvent();
end

View File

@ -1,7 +0,0 @@
require ("global")
function onEventStarted(player, npc)
defaultFst = GetStaticActor("DftFst");
callClientFunction(player, "delegateEvent", player, defaultFst, "defaultTalkWithUlta_001", nil, nil, nil);
player:endEvent();
end

View File

@ -1,67 +0,0 @@
require ("global")
require ("quests/etc/etc5g0")
function onSpawn(player, npc)
if (player:HasQuest("Etc5g0") == true and player:GetQuest("Etc5g0"):GetPhase() == 1) 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("Etc5g0");
result = 1;
if (player:IsQuestCompleted("Etc5g0") == true) then
result = 0;
else
unknown, result = callClientFunction(player, "switchEvent", defaultFst, quest, nil, nil, 1, 1, 0x3f1);
end
if (result == 0) then
choice = callClientFunction(player, "delegateEvent", player, defaultFst, "defaultTalkWithInn_Desk", nil, nil, nil);
if (choice == 1) then
GetWorldManager():DoZoneChange(player, 244, nil, 0, 15, 160.048, 0, 154.263, 0);
elseif (choice == 2) then
if (player:GetHomePointInn() ~= 2) then
player:SetHomePointInn(2);
player:SendGameMessage(GetWorldMaster(), 60019, 0x20, 2075); --Secondary homepoint set to the Roost
else
player:SendGameMessage(GetWorldMaster(), 51140, 0x20); --This inn is already your Secondary Homepoint
end
end
elseif (result == 1) then
callClientFunction(player, "delegateEvent", player, defaultFst, "defaultTalkWithVkorolon_001", -1, -1);
elseif (result == 2) then
if (player:HasQuest("Etc5g0") == false) then
offerQuestResult = callClientFunction(player, "delegateEvent", player, quest, "processEventVKOROLONStart");
if (offerQuestResult == 1) then
player:AddQuest("Etc5g0");
npc:SetQuestGraphic(player, 0x0);
pfarahr = GetWorldManager():GetActorInWorldByUniqueId("pfarahr");
if (pfarahr ~= nil) then
pfarahr:SetQuestGraphic(player, 0x2);
end
end
elseif (player:GetQuest("Etc5g0"):GetPhase() == 0) then
callClientFunction(player, "delegateEvent", player, quest, "processEvent_000_1");
elseif (player:GetQuest("Etc5g0"):GetPhase() == 1) then
callClientFunction(player, "delegateEvent", player, quest, "processEvent_020");
callClientFunction(player, "delegateEvent", player, quest, "sqrwa", 200, 1);
player:CompleteQuest("Etc5g0");
npc:SetQuestGraphic(player, 0x0);
end
end
player:EndEvent();
end

View File

@ -1,7 +0,0 @@
require ("global")
function onEventStarted(player, npc)
defaultFst = GetStaticActor("DftFst");
callClientFunction(player, "delegateEvent", player, defaultFst, "defaultTalkWithWillielmus_001", nil, nil, nil);
player:endEvent();
end

View File

@ -1,7 +0,0 @@
require ("global")
function onEventStarted(player, npc)
defaultFst = GetStaticActor("DftFst");
callClientFunction(player, "delegateEvent", player, defaultFst, "defaultTalkWithZagylhaemr_001", nil, nil, nil);
player:endEvent();
end